{"version":3,"sources":["./node_modules/moment/locale ^\\.\\/.*$","./src/$_lazy_route_resource lazy","./src/app/app-checklist/app-checklist.component.css","./src/app/app-checklist/app-checklist.component.html","./src/app/app-checklist/app-checklist.component.ts","./src/app/app.component.css","./src/app/app.component.html","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/auth.guard.ts","./src/app/call-out/call-out.component.css","./src/app/call-out/call-out.component.html","./src/app/call-out/call-out.component.ts","./src/app/call-recording/call-recording.component.css","./src/app/call-recording/call-recording.component.html","./src/app/call-recording/call-recording.component.ts","./src/app/chat/activity-dialog/activity-dialog.component.css","./src/app/chat/activity-dialog/activity-dialog.component.html","./src/app/chat/activity-dialog/activity-dialog.component.ts","./src/app/chat/chat.component.css","./src/app/chat/chat.component.html","./src/app/chat/chat.component.ts","./src/app/client-picker/client-picker.component.css","./src/app/client-picker/client-picker.component.html","./src/app/client-picker/client-picker.component.ts","./src/app/contacts/contact-activity/contact-activity.component.css","./src/app/contacts/contact-activity/contact-activity.component.html","./src/app/contacts/contact-activity/contact-activity.component.ts","./src/app/contacts/contact-comments/contact-comments.component.css","./src/app/contacts/contact-comments/contact-comments.component.html","./src/app/contacts/contact-comments/contact-comments.component.ts","./src/app/contacts/contact-info/contact-info.component.css","./src/app/contacts/contact-info/contact-info.component.html","./src/app/contacts/contact-info/contact-info.component.ts","./src/app/contacts/contact-merge/contact-dupe-warning.component.css","./src/app/contacts/contact-merge/contact-dupe-warning.component.html","./src/app/contacts/contact-merge/contact-dupe-warning.component.ts","./src/app/contacts/contact-selector/contact-selector.component.html","./src/app/contacts/contact-selector/contact-selector.component.ts","./src/app/contacts/contact-selector/repeat-contact-modal.component.html","./src/app/contacts/contact-selector/repeat-contact-modal.component.ts","./src/app/contacts/contact-top/bulk-upload.component.html","./src/app/contacts/contact-top/bulk-upload.component.ts","./src/app/contacts/contact-top/contact-top.component.css","./src/app/contacts/contact-top/contact-top.component.html","./src/app/contacts/contact-top/contact-top.component.ts","./src/app/contacts/contacts.component.css","./src/app/contacts/contacts.component.html","./src/app/contacts/contacts.component.ts","./src/app/contacts/opt-in-warning/opt-in-warning.component.css","./src/app/contacts/opt-in-warning/opt-in-warning.component.html","./src/app/contacts/opt-in-warning/opt-in-warning.component.ts","./src/app/contacts/opt-out-warning/opt-out-warning.component.css","./src/app/contacts/opt-out-warning/opt-out-warning.component.html","./src/app/contacts/opt-out-warning/opt-out-warning.component.ts","./src/app/dashboard/dashboard.component.css","./src/app/dashboard/dashboard.component.html","./src/app/dashboard/dashboard.component.ts","./src/app/dashboard/survey-responses/survey-responses.component.css","./src/app/dashboard/survey-responses/survey-responses.component.html","./src/app/dashboard/survey-responses/survey-responses.component.ts","./src/app/dashboard/unresolved-bad-reviews/unresolved-bad-reviews.component.css","./src/app/dashboard/unresolved-bad-reviews/unresolved-bad-reviews.component.html","./src/app/dashboard/unresolved-bad-reviews/unresolved-bad-reviews.component.ts","./src/app/date-picker/date-picker.component.css","./src/app/date-picker/date-picker.component.html","./src/app/date-picker/date-picker.component.ts","./src/app/dev-warning/dev-warning.component.css","./src/app/dev-warning/dev-warning.component.html","./src/app/dev-warning/dev-warning.component.ts","./src/app/dialog-host.directive.ts","./src/app/file-input/extract-file-name.pipe.ts","./src/app/file-input/file-input.component.css","./src/app/file-input/file-input.component.html","./src/app/file-input/file-input.component.ts","./src/app/help-dialog/help-dialog.component.css","./src/app/help-dialog/help-dialog.component.html","./src/app/help-dialog/help-dialog.component.ts","./src/app/help-resources/help-resources.component.css","./src/app/help-resources/help-resources.component.html","./src/app/help-resources/help-resources.component.ts","./src/app/incoming-call-notifier/confirm-spam-or-dead-dialog/confirm-spam-or-dead-dialog.component.css","./src/app/incoming-call-notifier/confirm-spam-or-dead-dialog/confirm-spam-or-dead-dialog.component.html","./src/app/incoming-call-notifier/confirm-spam-or-dead-dialog/confirm-spam-or-dead-dialog.component.ts","./src/app/incoming-call-notifier/dialer/dialer.component.css","./src/app/incoming-call-notifier/dialer/dialer.component.html","./src/app/incoming-call-notifier/dialer/dialer.component.ts","./src/app/incoming-call-notifier/incoming-call-notifier.component.css","./src/app/incoming-call-notifier/incoming-call-notifier.component.html","./src/app/incoming-call-notifier/incoming-call-notifier.component.ts","./src/app/incoming-call-notifier/merge-contacts-dialog/merge-contacts-dialog.component.css","./src/app/incoming-call-notifier/merge-contacts-dialog/merge-contacts-dialog.component.html","./src/app/incoming-call-notifier/merge-contacts-dialog/merge-contacts-dialog.component.ts","./src/app/keyword-generator/keyword-generator.component.css","./src/app/keyword-generator/keyword-generator.component.html","./src/app/keyword-generator/keyword-generator.component.ts","./src/app/leads/handle/handle.component.css","./src/app/leads/handle/handle.component.html","./src/app/leads/handle/handle.component.ts","./src/app/leads/leads.component.css","./src/app/leads/leads.component.html","./src/app/leads/leads.component.ts","./src/app/loading/loading.component.css","./src/app/loading/loading.component.html","./src/app/loading/loading.component.ts","./src/app/login/inactive-modal/inactive-modal.component.html","./src/app/login/inactive-modal/inactive-modal.component.ts","./src/app/login/login.component.css","./src/app/login/login.component.html","./src/app/login/login.component.ts","./src/app/models/client-subscribed-services.ts","./src/app/models/client-types.ts","./src/app/models/contact.ts","./src/app/models/date-range.ts","./src/app/models/email.ts","./src/app/models/help-application-types.ts","./src/app/models/lead-activity-types.ts","./src/app/models/negative-review-comment.ts","./src/app/models/permission-statuses.ts","./src/app/models/sms-statuses.ts","./src/app/nav-menu/footer-carousel/footer-carousel.component.html","./src/app/nav-menu/footer-carousel/footer-carousel.component.scss","./src/app/nav-menu/footer-carousel/footer-carousel.component.ts","./src/app/nav-menu/nav-menu.component.css","./src/app/nav-menu/nav-menu.component.html","./src/app/nav-menu/nav-menu.component.ts","./src/app/nav-menu/top-bar-host.directive.ts","./src/app/nav-menu/top-menu/top-menu.component.css","./src/app/nav-menu/top-menu/top-menu.component.html","./src/app/nav-menu/top-menu/top-menu.component.scss","./src/app/nav-menu/top-menu/top-menu.component.ts","./src/app/opt-in/opt-in.component.css","./src/app/opt-in/opt-in.component.html","./src/app/opt-in/opt-in.component.ts","./src/app/opt-in/signup-package/signup-package.component.css","./src/app/opt-in/signup-package/signup-package.component.html","./src/app/opt-in/signup-package/signup-package.component.ts","./src/app/pipes/activity-description-pipe.ts","./src/app/pipes/chat-start-pipe.ts","./src/app/pipes/contact-status-pipe.ts","./src/app/pipes/create-array-pipe.ts","./src/app/pipes/in.pipe.ts","./src/app/pipes/is-automated-sms.pipe.ts","./src/app/pipes/is-customer.pipe.ts","./src/app/pipes/is-valid.pipe.ts","./src/app/pipes/lead-status-pipe.ts","./src/app/pipes/new-lead-source-pipe.ts","./src/app/pipes/phone-pipe.ts","./src/app/pipes/referral-pipe.ts","./src/app/pipes/sms-status-pipe.ts","./src/app/request-feedback/request-feedback.component.css","./src/app/request-feedback/request-feedback.component.html","./src/app/request-feedback/request-feedback.component.ts","./src/app/services/agreement.service.ts","./src/app/services/blink.service.ts","./src/app/services/call-recording.service.ts","./src/app/services/chat-message.service.ts","./src/app/services/chat.service.ts","./src/app/services/checklist.service.ts","./src/app/services/client-picker.service.ts","./src/app/services/client.service.ts","./src/app/services/config.service.ts","./src/app/services/contact.service.ts","./src/app/services/email.service.ts","./src/app/services/help-dialog.service.ts","./src/app/services/leads.service.ts","./src/app/services/logrocket.service.ts","./src/app/services/notify.service.ts","./src/app/services/phone.service.ts","./src/app/services/sms-conversation.service.ts","./src/app/services/sms.service.ts","./src/app/services/spinner-overlay.service.ts","./src/app/services/survey.service.ts","./src/app/services/top-bar.service.ts","./src/app/services/user-settings.service.ts","./src/app/services/user.service.ts","./src/app/services/voice.service.ts","./src/app/settings/settings-first-time/settings-first-time.component.css","./src/app/settings/settings-first-time/settings-first-time.component.html","./src/app/settings/settings-first-time/settings-first-time.component.ts","./src/app/settings/settings.component.css","./src/app/settings/settings.component.html","./src/app/settings/settings.component.ts","./src/app/sms/sms-top/sms-top.component.css","./src/app/sms/sms-top/sms-top.component.html","./src/app/sms/sms-top/sms-top.component.ts","./src/app/sms/sms.component.css","./src/app/sms/sms.component.html","./src/app/sms/sms.component.ts","./src/app/sms/two-way/two-way.component.css","./src/app/sms/two-way/two-way.component.html","./src/app/sms/two-way/two-way.component.ts","./src/app/spinner-overlay/spinner-overlay.component.css","./src/app/spinner-overlay/spinner-overlay.component.html","./src/app/spinner-overlay/spinner-overlay.component.ts","./src/app/star-feedback/star-feedback.component.css","./src/app/star-feedback/star-feedback.component.html","./src/app/star-feedback/star-feedback.component.ts","./src/app/star-feedback/the-joint/joint-redirect/joint-redirect.component.css","./src/app/star-feedback/the-joint/joint-redirect/joint-redirect.component.html","./src/app/star-feedback/the-joint/joint-redirect/joint-redirect.component.ts","./src/app/star-feedback/the-joint/joint-stars/joint-stars.component.css","./src/app/star-feedback/the-joint/joint-stars/joint-stars.component.html","./src/app/star-feedback/the-joint/joint-stars/joint-stars.component.ts","./src/app/star-feedback/the-joint/joint-survey/joint-survey.component.css","./src/app/star-feedback/the-joint/joint-survey/joint-survey.component.html","./src/app/star-feedback/the-joint/joint-survey/joint-survey.component.ts","./src/app/star-feedback/the-joint/joint-thank-you/joint-thank-you.component.css","./src/app/star-feedback/the-joint/joint-thank-you/joint-thank-you.component.html","./src/app/star-feedback/the-joint/joint-thank-you/joint-thank-you.component.ts","./src/app/subscribed-service.guard.ts","./src/app/users/home/home.component.css","./src/app/users/home/home.component.html","./src/app/users/home/home.component.ts","./src/app/users/root/root.component.css","./src/app/users/root/root.component.html","./src/app/users/root/root.component.ts","./src/app/users/test/test.component.css","./src/app/users/test/test.component.html","./src/app/users/test/test.component.ts","./src/app/users/users.module.ts","./src/app/users/users.routing.ts","./src/environments/environment.ts","./src/main.ts","ws (ignored)","ws (ignored)?1d10","xmlhttprequest (ignored)"],"names":[],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClCiC;AACjB;AACI;AACW;AACT;AACK;AACG;AACJ;AACM;AACM;AACuI;AAC3I;AACoB;AACvB;AACsB;AAChC;AAEC;AACkB;AACS;AACjB;AACS;AACP;AACqB;AACkB;AACS;AACE;AACR;AACf;AACvB;AAC0B;AACT;AACG;AACd;AAC+C;AAClD;AACwC;AACR;AACA;AACf;AACe;AACO;AACzB;AAC7B;AACe;AACA;AACZ;AACG;AACS;AACyB;AACI;AACW;AACpB;AACwC;AACgB;AACpE;AACkB;AACT;AAEzB;AACJ;AACF;AACI;AACI;AACe;AACjB;AACF;AACe;AACb;AACJ;AACe;AACb;AACA;AAET;AAC6B;AACpB;AACE;AAEjB;AAC2B;AACW;AACf;AACF;AACe;AACY;AACxB;AACkB;AAC3B;AAC2B;AACV;AACd;AACa;AACkB;AAC1B;AAC2B;AACG;AAC7B;AACqC;AAC5C;AACyC;AACvC;AACc;AAClB;AACf;AACY;AACqB;AACP;AACT;AACS;AACH;AACO;AACG;AACH;AACP;AACZ;AA2KpD;IAAA;IAAyB,CAAC;IAAb,SAAS;QAxKrB,uEAAQ,CAAC;YACN,YAAY,EAAE;gBACV,qEAAY;gBACZ,uFAAgB;gBAChB,gGAAgB;gBAChB,+EAAc;gBACd,+GAAsB;gBACtB,iFAAc;gBACd,sGAAqB;gBACrB,wHAAmB;gBACnB,iIAAsB;gBACtB,mIAAsB;gBACtB,2HAAoB;gBACpB,4GAAuB;gBACvB,qFAAgB;gBAChB,+GAAwB;gBACxB,wFAAiB;gBACjB,sGAAqB;gBACrB,yGAAmB;gBACnB,yGAAmB;gBACnB,wHAAwB;gBACxB,+HAA2B;gBAC3B,0IAA6B;gBAC7B,2FAAkB;gBAClB,wFAAiB;gBACjB,gIAA0B;gBAC1B,wHAAwB;gBACxB,wHAAwB;gBACxB,sGAAqB;gBACrB,yEAAY;gBACZ,wFAAe;gBACf,oFAAmB;gBACnB,qEAAS;gB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","file":"main.2af4744ec37f61d09a9d.bundle.js","sourcesContent":["var map = {\n\t\"./af\": \"./node_modules/moment/locale/af.js\",\n\t\"./af.js\": \"./node_modules/moment/locale/af.js\",\n\t\"./ar\": \"./node_modules/moment/locale/ar.js\",\n\t\"./ar-dz\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ps\": \"./node_modules/moment/locale/ar-ps.js\",\n\t\"./ar-ps.js\": \"./node_modules/moment/locale/ar-ps.js\",\n\t\"./ar-sa\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"./node_modules/moment/locale/ar.js\",\n\t\"./az\": \"./node_modules/moment/locale/az.js\",\n\t\"./az.js\": \"./node_modules/moment/locale/az.js\",\n\t\"./be\": \"./node_modules/moment/locale/be.js\",\n\t\"./be.js\": \"./node_modules/moment/locale/be.js\",\n\t\"./bg\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bg.js\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bm\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bm.js\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bn\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bn-bd\": \"./node_modules/moment/locale/bn-bd.js\",\n\t\"./bn-bd.js\": \"./node_modules/moment/locale/bn-bd.js\",\n\t\"./bn.js\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bo\": \"./node_modules/moment/locale/bo.js\",\n\t\"./bo.js\": \"./node_modules/moment/locale/bo.js\",\n\t\"./br\": \"./node_modules/moment/locale/br.js\",\n\t\"./br.js\": \"./node_modules/moment/locale/br.js\",\n\t\"./bs\": \"./node_modules/moment/locale/bs.js\",\n\t\"./bs.js\": \"./node_modules/moment/locale/bs.js\",\n\t\"./ca\": \"./node_modules/moment/locale/ca.js\",\n\t\"./ca.js\": \"./node_modules/moment/locale/ca.js\",\n\t\"./cs\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cs.js\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cv\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cv.js\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cy\": \"./node_modules/moment/locale/cy.js\",\n\t\"./cy.js\": \"./node_modules/moment/locale/cy.js\",\n\t\"./da\": \"./node_modules/moment/locale/da.js\",\n\t\"./da.js\": \"./node_modules/moment/locale/da.js\",\n\t\"./de\": \"./node_modules/moment/locale/de.js\",\n\t\"./de-at\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-at.js\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-ch\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de.js\": \"./node_modules/moment/locale/de.js\",\n\t\"./dv\": \"./node_modules/moment/locale/dv.js\",\n\t\"./dv.js\": \"./node_modules/moment/locale/dv.js\",\n\t\"./el\": \"./node_modules/moment/locale/el.js\",\n\t\"./el.js\": \"./node_modules/moment/locale/el.js\",\n\t\"./en-au\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-il\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-il.js\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-in\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-in.js\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-nz\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-sg\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./en-sg.js\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./eo\": \"./node_modules/moment/locale/eo.js\",\n\t\"./eo.js\": \"./node_modules/moment/locale/eo.js\",\n\t\"./es\": \"./node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-mx\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-mx.js\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-us\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es-us.js\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es.js\": \"./node_modules/moment/locale/es.js\",\n\t\"./et\": \"./node_modules/moment/locale/et.js\",\n\t\"./et.js\": \"./node_modules/moment/locale/et.js\",\n\t\"./eu\": \"./node_modules/moment/locale/eu.js\",\n\t\"./eu.js\": \"./node_modules/moment/locale/eu.js\",\n\t\"./fa\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fa.js\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fi\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fi.js\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fil\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fil.js\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fo\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fo.js\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fr\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fr-ca\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fy\": \"./node_modules/moment/locale/fy.js\",\n\t\"./fy.js\": \"./node_modules/moment/locale/fy.js\",\n\t\"./ga\": \"./node_modules/moment/locale/ga.js\",\n\t\"./ga.js\": \"./node_modules/moment/locale/ga.js\",\n\t\"./gd\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gd.js\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gl\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gl.js\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gom-deva\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-deva.js\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-latn\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gu\": \"./node_modules/moment/locale/gu.js\",\n\t\"./gu.js\": \"./node_modules/moment/locale/gu.js\",\n\t\"./he\": \"./node_modules/moment/locale/he.js\",\n\t\"./he.js\": \"./node_modules/moment/locale/he.js\",\n\t\"./hi\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hi.js\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hr\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hr.js\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hu\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hu.js\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hy-am\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./id\": \"./node_modules/moment/locale/id.js\",\n\t\"./id.js\": \"./node_modules/moment/locale/id.js\",\n\t\"./is\": \"./node_modules/moment/locale/is.js\",\n\t\"./is.js\": \"./node_modules/moment/locale/is.js\",\n\t\"./it\": \"./node_modules/moment/locale/it.js\",\n\t\"./it-ch\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it-ch.js\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it.js\": \"./node_modules/moment/locale/it.js\",\n\t\"./ja\": \"./node_modules/moment/locale/ja.js\",\n\t\"./ja.js\": \"./node_modules/moment/locale/ja.js\",\n\t\"./jv\": \"./node_modules/moment/locale/jv.js\",\n\t\"./jv.js\": \"./node_modules/moment/locale/jv.js\",\n\t\"./ka\": \"./node_modules/moment/locale/ka.js\",\n\t\"./ka.js\": \"./node_modules/moment/locale/ka.js\",\n\t\"./kk\": \"./node_modules/moment/locale/kk.js\",\n\t\"./kk.js\": \"./node_modules/moment/locale/kk.js\",\n\t\"./km\": \"./node_modules/moment/locale/km.js\",\n\t\"./km.js\": \"./node_modules/moment/locale/km.js\",\n\t\"./kn\": \"./node_modules/moment/locale/kn.js\",\n\t\"./kn.js\": \"./node_modules/moment/locale/kn.js\",\n\t\"./ko\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ko.js\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ku\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ku-kmr\": \"./node_modules/moment/locale/ku-kmr.js\",\n\t\"./ku-kmr.js\": \"./node_modules/moment/locale/ku-kmr.js\",\n\t\"./ku.js\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ky\": \"./node_modules/moment/locale/ky.js\",\n\t\"./ky.js\": \"./node_modules/moment/locale/ky.js\",\n\t\"./lb\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lb.js\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lo\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lo.js\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lt\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lt.js\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lv\": \"./node_modules/moment/locale/lv.js\",\n\t\"./lv.js\": \"./node_modules/moment/locale/lv.js\",\n\t\"./me\": \"./node_modules/moment/locale/me.js\",\n\t\"./me.js\": \"./node_modules/moment/locale/me.js\",\n\t\"./mi\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mi.js\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mk\": \"./node_modules/moment/locale/mk.js\",\n\t\"./mk.js\": \"./node_modules/moment/locale/mk.js\",\n\t\"./ml\": \"./node_modules/moment/locale/ml.js\",\n\t\"./ml.js\": \"./node_modules/moment/locale/ml.js\",\n\t\"./mn\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mn.js\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mr\": \"./node_modules/moment/locale/mr.js\",\n\t\"./mr.js\": \"./node_modules/moment/locale/mr.js\",\n\t\"./ms\": \"./node_modules/moment/locale/ms.js\",\n\t\"./ms-my\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms.js\": \"./node_modules/moment/locale/ms.js\",\n\t\"./mt\": \"./node_modules/moment/locale/mt.js\",\n\t\"./mt.js\": \"./node_modules/moment/locale/mt.js\",\n\t\"./my\": \"./node_modules/moment/locale/my.js\",\n\t\"./my.js\": \"./node_modules/moment/locale/my.js\",\n\t\"./nb\": \"./node_modules/moment/locale/nb.js\",\n\t\"./nb.js\": \"./node_modules/moment/locale/nb.js\",\n\t\"./ne\": \"./node_modules/moment/locale/ne.js\",\n\t\"./ne.js\": \"./node_modules/moment/locale/ne.js\",\n\t\"./nl\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nl-be\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl.js\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nn\": \"./node_modules/moment/locale/nn.js\",\n\t\"./nn.js\": \"./node_modules/moment/locale/nn.js\",\n\t\"./oc-lnc\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./oc-lnc.js\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./pa-in\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pl\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pl.js\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pt\": \"./node_modules/moment/locale/pt.js\",\n\t\"./pt-br\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt.js\": \"./node_modules/moment/locale/pt.js\",\n\t\"./ro\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ro.js\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ru\": \"./node_modules/moment/locale/ru.js\",\n\t\"./ru.js\": \"./node_modules/moment/locale/ru.js\",\n\t\"./sd\": \"./node_modules/moment/locale/sd.js\",\n\t\"./sd.js\": \"./node_modules/moment/locale/sd.js\",\n\t\"./se\": \"./node_modules/moment/locale/se.js\",\n\t\"./se.js\": \"./node_modules/moment/locale/se.js\",\n\t\"./si\": \"./node_modules/moment/locale/si.js\",\n\t\"./si.js\": \"./node_modules/moment/locale/si.js\",\n\t\"./sk\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sk.js\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sl\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sl.js\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sq\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sq.js\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sr\": \"./node_modules/moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"./node_modules/moment/locale/sr.js\",\n\t\"./ss\": \"./node_modules/moment/locale/ss.js\",\n\t\"./ss.js\": \"./node_modules/moment/locale/ss.js\",\n\t\"./sv\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sv.js\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sw\": \"./node_modules/moment/locale/sw.js\",\n\t\"./sw.js\": \"./node_modules/moment/locale/sw.js\",\n\t\"./ta\": \"./node_modules/moment/locale/ta.js\",\n\t\"./ta.js\": \"./node_modules/moment/locale/ta.js\",\n\t\"./te\": \"./node_modules/moment/locale/te.js\",\n\t\"./te.js\": \"./node_modules/moment/locale/te.js\",\n\t\"./tet\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tet.js\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tg\": \"./node_modules/moment/locale/tg.js\",\n\t\"./tg.js\": \"./node_modules/moment/locale/tg.js\",\n\t\"./th\": \"./node_modules/moment/locale/th.js\",\n\t\"./th.js\": \"./node_modules/moment/locale/th.js\",\n\t\"./tk\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tk.js\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tl-ph\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tlh\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tlh.js\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tr\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tr.js\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tzl\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzl.js\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzm\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./ug-cn\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./ug-cn.js\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./uk\": \"./node_modules/moment/locale/uk.js\",\n\t\"./uk.js\": \"./node_modules/moment/locale/uk.js\",\n\t\"./ur\": \"./node_modules/moment/locale/ur.js\",\n\t\"./ur.js\": \"./node_modules/moment/locale/ur.js\",\n\t\"./uz\": \"./node_modules/moment/locale/uz.js\",\n\t\"./uz-latn\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"./node_modules/moment/locale/uz.js\",\n\t\"./vi\": \"./node_modules/moment/locale/vi.js\",\n\t\"./vi.js\": \"./node_modules/moment/locale/vi.js\",\n\t\"./x-pseudo\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./yo\": \"./node_modules/moment/locale/yo.js\",\n\t\"./yo.js\": \"./node_modules/moment/locale/yo.js\",\n\t\"./zh-cn\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-mo\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-mo.js\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-tw\": \"./node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"./node_modules/moment/locale/zh-tw.js\"\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number or string\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./node_modules/moment/locale recursive ^\\\\.\\\\/.*$\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale ^\\.\\/.*$\n// module id = ./node_modules/moment/locale recursive ^\\.\\/.*$\n// module chunks = main","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncatched exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/$$_lazy_route_resource lazy\n// module id = ./src/$$_lazy_route_resource lazy recursive\n// module chunks = main","module.exports = \"\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/app-checklist/app-checklist.component.css\n// module id = ./src/app/app-checklist/app-checklist.component.css\n// module chunks = main","module.exports = \"
0\\\" class=\\\"row my-3 d-flex justify-content-center\\\" style=\\\"text-align:center\\\">\\r\\n
\\r\\n
\\r\\n

Errors Found!
Please Contact Your Service Rep About The Following:

\\r\\n
{{error}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/app-checklist/app-checklist.component.html\n// module id = ./src/app/app-checklist/app-checklist.component.html\n// module chunks = main","import { Component, OnInit } from '@angular/core';\r\nimport { ClientPickerService } from '../services/client-picker.service';\r\nimport { ChecklistService } from '../services/checklist.service';\r\nimport { ClientService } from '../services/client.service';\r\nimport { NotifyService } from '../services/notify.service';\r\n\r\n@Component({\r\n selector: 'app-checklist',\r\n templateUrl: './app-checklist.component.html',\r\n styleUrls: ['./app-checklist.component.css']\r\n})\r\nexport class AppChecklistComponent implements OnInit {\r\n errors: string[] = [];\r\n isChrome: boolean = true;\r\n\r\n constructor(private checklistService: ChecklistService, private clientPickerService: ClientPickerService, private clientService: ClientService, private notify: NotifyService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.clientPickerService.$clientId.subscribe((clientId: number) => {\r\n //console.log(clientId);\r\n this.errors = [];\r\n if (clientId > 0) {\r\n this.checkGooglePlaceId(clientId);\r\n this.checkValidSmsApp(clientId);\r\n this.checkCanSendVCard(clientId);\r\n this.checkValidSmsNumber(clientId);\r\n }\r\n });\r\n this.checkBrowser();\r\n }\r\n\r\n checkGooglePlaceId(clientId: number) {\r\n this.checklistService.CheckValidGooglePlaceId(clientId).subscribe((isValid: boolean) => {\r\n if (!isValid) {\r\n this.errors.push(\"Google review link is not valid.\");\r\n }\r\n });\r\n }\r\n\r\n checkValidSmsApp(clientId: number) {\r\n this.checklistService.CheckValidSmsApplication(clientId).subscribe((isValid: boolean) => {\r\n if (!isValid) {\r\n this.errors.push(\"SMS application is not pointed to the Automated Attendant.\");\r\n }\r\n });\r\n }\r\n\r\n checkCanSendVCard(clientId: number) {\r\n this.clientService.GetSubscribedServices(clientId)\r\n .subscribe(response => {\r\n //console.log(response);\r\n let hasService: boolean = response.includes(67); //vcard Service\r\n //console.log(\"has vCard service: \" + hasService);\r\n if (!hasService) {\r\n //this.notify.error(\"You do not have the contact card service for this page\");\r\n }\r\n return hasService;\r\n }, error => {\r\n console.error(error);\r\n });\r\n }\r\n\r\n checkValidSmsNumber(clientId) {\r\n this.checklistService.CheckValidSmsNumber(clientId).subscribe((isValid: boolean) => {\r\n if (!isValid) {\r\n this.errors.push(\"Getting a new Carbon SMS number\");\r\n }\r\n })\r\n }\r\n\r\n checkBrowser() {\r\n this.isChrome = !!(window).chrome && (!!(window).chrome.webstore || !!(window).chrome.runtime);\r\n //console.log(\"Is Chrome: \", this.isChrome);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/app-checklist/app-checklist.component.ts","module.exports = \".navbar-brand {\\r\\n color: #9e4545;\\r\\n}\\r\\n\\r\\n.navbar.navbar-dark.bg-dark {\\r\\n background-color: #222 !important;\\r\\n}\\r\\n\\r\\n/*.body-content {\\r\\n flex-grow: 1;\\r\\n padding-left: 100px;\\r\\n}*/\\r\\n\\r\\n.sideBarFormat {\\r\\n display: -webkit-box;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n margin-left: -15px\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .body-content {\\r\\n -webkit-box-flex: 1;\\r\\n -ms-flex-positive: 1;\\r\\n flex-grow: 1;\\r\\n padding-left: 100px;\\r\\n } \\r\\n}\\r\\n\\r\\n@media (max-width: 767px) {\\r\\n /* On small screens, the nav menu spans the full width of the screen. Leave a space for it. */\\r\\n .body-content {\\r\\n padding-top: 50px;\\r\\n }\\r\\n}\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/app.component.css\n// module id = ./src/app/app.component.css\n// module chunks = main","module.exports = \"
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/app.component.html\n// module id = ./src/app/app.component.html\n// module chunks = main","import { Component, ViewChild, ComponentFactoryResolver, OnInit, EventEmitter, HostListener } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { DialogHostDirective } from './dialog-host.directive';\r\nimport { SmsConversationService } from './services/sms-conversation.service';\r\nimport { ClientPickerService } from './services/client-picker.service';\r\nimport { Subscription } from 'rxjs/Subscription';\r\nimport { environment } from '../environments/environment';\r\nimport { SmsActivity } from './models/sms-activity';\r\nimport { ClientService } from './services/client.service';\r\nimport { UserService } from './services/user.service';\r\nimport { ChatService } from './services/chat.service';\r\nimport * as Twilio from \"twilio-chat\";\r\nimport { Channel } from \"twilio-chat/lib/channel\";\r\nimport { ChatMessageService } from './services/chat-message.service';\r\nimport { LeadsService } from './services/leads.service';\r\nimport { ContactService } from './services/contact.service';\r\nimport { ContactActivity } from './models/contact-activity';\r\nimport { ClientSubscribedServices } from './models/client-subscribed-services';\r\nimport { BlinkService } from './services/blink.service';\r\nimport { HelpDialogService } from './services/help-dialog.service';\r\nimport { UserSettingsService } from './services/user-settings.service';\r\nimport { ConfigService } from './services/config.service';\r\nimport { LogRocketService } from './services/logrocket.service';\r\nimport * as LogRocket from 'logrocket';\r\nimport * as Pubnub from 'pubnub';\r\nimport { CryptoModule } from 'pubnub';\r\n\r\ndeclare var zE: any;\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.css']\r\n})\r\nexport class AppComponent implements OnInit {\r\n @ViewChild(DialogHostDirective) dialogHost: DialogHostDirective;\r\n pubnubInstance: Pubnub;\r\n subscription: Subscription;\r\n clientId: number = 0;\r\n clientTypeId: number = 0;\r\n hasTwoWayConfig: any = false;\r\n isAdmin: any = false;\r\n roles: any = null;\r\n currentUser: any;\r\n onlineStatus: string = \"\";\r\n googleReviewLeaders: any;\r\n hasLeadService: boolean = false;\r\n hasCallNotifierService: boolean = false;\r\n\r\n public chatClient: Twilio.Client;\r\n public currentChannel: Channel;\r\n public chatConnectedEmitter: EventEmitter = new EventEmitter()\r\n public chatDisconnectedEmitter: EventEmitter = new EventEmitter()\r\n\r\n constructor(\r\n private blinkService: BlinkService,\r\n private contactService: ContactService,\r\n private leadsService: LeadsService,\r\n private chatMessageService: ChatMessageService,\r\n private chatService: ChatService,\r\n public router: Router,\r\n private smsConversationService: SmsConversationService,\r\n private clientPickerService: ClientPickerService,\r\n private clientService: ClientService,\r\n private userService: UserService,\r\n private helpDialogService: HelpDialogService,\r\n private userSettingsService: UserSettingsService,\r\n private configService: ConfigService,\r\n private logRocketService: LogRocketService\r\n ) {\r\n this.pubnubInstance = new Pubnub({\r\n subscribeKey: environment.pubnubSubscribeKey,\r\n publishKey: environment.pubnubPublishKey,\r\n cryptoModule: CryptoModule.aesCbcCryptoModule({\r\n cipherKey: environment.pubnubCipherKey,\r\n }),\r\n userId: `clientUserId_${this.userService.clientUserId}`,\r\n ssl: true\r\n });\r\n console.log(\"Is Production: \", environment.production);\r\n }\r\n title = 'app';\r\n\r\n Unload() {\r\n let blink = this.blinkService;\r\n let shouldShow = this.ShouldShow();\r\n\r\n window.addEventListener(\"beforeunload\", function (event) {\r\n if (shouldShow) {\r\n blink.Stop()\r\n .subscribe(\r\n response => {\r\n }, error => {\r\n console.error(error);\r\n });\r\n }\r\n })\r\n }\r\n\r\n ngOnInit() {\r\n //console.log(\"ngOnInit\");\r\n if (!this.ShouldShow()) {\r\n return;\r\n }\r\n //console.log(\"ngOnInit ShouldShow ended\");\r\n //get clientuser (guid)\r\n //this.roles = this.userService.roles;\r\n //console.log(\"this.roles: \", this.roles);\r\n this.smsConversationService.dialogHost = this.dialogHost;\r\n this.chatService.dialogHost = this.dialogHost;\r\n this.leadsService.dialogHost = this.dialogHost;\r\n this.userService.dialogHost = this.dialogHost;\r\n this.helpDialogService.dialogHost = this.dialogHost;\r\n this.WarnDev();\r\n this.subscription = this.clientPickerService.$clientRequestFinished.subscribe(\r\n (isDone: boolean) => {\r\n if (!isDone)\r\n return;\r\n this.roles = this.userService.roles;\r\n //console.log(\"this.roles: \", this.roles);\r\n setTimeout(() => {\r\n this.checkRoles();\r\n })\r\n this.clientId = this.clientPickerService.selectedClient.clientId;\r\n this.CheckForBlink(this.clientId);\r\n this.clientTypeId = this.clientPickerService.selectedClient.clientTypeId;\r\n this.clientService.GetSubscribedServices(this.clientId).subscribe((services: number[]) => {\r\n this.hasLeadService = services.includes(ClientSubscribedServices.Leads);\r\n this.hasCallNotifierService = services.includes(ClientSubscribedServices.CallNotifier);\r\n });\r\n this.GetGoogleReviewLeaders();\r\n //this.HasTwoWaySMS();\r\n //always init pubnub\r\n this.PubNubInit();\r\n this.userService.getCurrentUser()\r\n .subscribe(response => {\r\n this.currentUser = response;\r\n //appcues stuff\r\n this.SetAppcuesValues(this.clientTypeId);\r\n\r\n //console.log(response);\r\n //iniitiate twilio chat/channel stuff\r\n //console.log(\"Initializing Twilio Chat\");\r\n //this.TwilioChatInit(); // Commenting out because twilio chat isn't used\r\n\r\n console.log(\"LogRocket Disabled...\");\r\n // if(this.ShouldShow(true)) {\r\n // this.logRocketService.initialize(this.currentUser);\r\n // }\r\n // else {\r\n // console.log(\"Skipping LogRocket initialization for current URL\");\r\n // }\r\n }, error => {\r\n console.error(error);\r\n });\r\n this.Unload();\r\n })\r\n this.configService.loadCarbonAppConfig().subscribe(() => console.log(\"App Config Loaded\"));\r\n }\r\n\r\n SetAppcuesValues(clientTypeId) {\r\n var brand = \"\";\r\n switch (clientTypeId) {\r\n case 1:\r\n // OTT\r\n brand = 'OTT';\r\n break;\r\n case 4: //joint\r\n brand = 'Joint';\r\n break;\r\n case 24: //ma\r\n brand = 'MA';\r\n break;\r\n case 25: //lash\r\n brand = 'Lash';\r\n break;\r\n }\r\n\r\n // need to save to local storage and use identify on every page reload\r\n localStorage.setItem('firstName', this.currentUser.firstName);\r\n localStorage.setItem('lastName', this.currentUser.lastName);\r\n localStorage.setItem('email', this.currentUser.email);\r\n localStorage.setItem('brand', brand);\r\n\r\n window['Appcues'].identify(this.clientId, {\r\n firstName: localStorage.getItem('firstName'),\r\n lastName: localStorage.getItem('lastName'),\r\n email: localStorage.getItem('email'),\r\n role: localStorage.getItem('roles'),\r\n brand: localStorage.getItem('brand'),\r\n });\r\n }\r\n\r\n CheckForBlink(clientId) {\r\n this.clientService.GetClientConfigs(\"Carbon.HasBlink\", clientId)\r\n .subscribe(response => {\r\n //console.log(\"hasBlink: \", response);\r\n if (response) {\r\n this.clientService.hasBlink = response;\r\n }\r\n },\r\n error => {\r\n console.error(error);\r\n });\r\n };\r\n\r\n GetGoogleReviewLeaders() {\r\n let today = new Date();\r\n let start = new Date().setDate(today.getDate() - 7);\r\n //console.log(start);\r\n let clientTypeId = this.clientPickerService.selectedClient.clientTypeId;\r\n this.clientService.GetGoogleReviewsLeaders(start, clientTypeId)\r\n .subscribe(response => {\r\n //console.log(\"google leaders: \", response);\r\n this.googleReviewLeaders = response;\r\n }, error => {\r\n console.error(error);\r\n });\r\n }\r\n\r\n checkRoles() {\r\n\r\n let rolesAsString = \"\";\r\n if (typeof this.roles == \"string\") {\r\n rolesAsString = this.roles;\r\n }\r\n else {\r\n rolesAsString = this.roles.join(\",\");\r\n }\r\n\r\n if (rolesAsString.includes(\"Admin\")) {\r\n this.isAdmin = true;\r\n }\r\n }\r\n\r\n WarnDev()\r\n {\r\n if (window.location.host.includes(\"dev\") && window.location.pathname.includes(\"login\")) {\r\n ///open modal with carbon.biz link\r\n this.userService.OpenDialog();\r\n }\r\n }\r\n\r\n PubNubInit() {\r\n if (!this.ShouldShow()) {\r\n return;\r\n }\r\n //console.log(\"Setting up pubnub\");\r\n let sms_channel = \"sms_\" + this.clientPickerService.selectedClient.clientGuid;\r\n let chat_channel = \"chat_\" + this.clientPickerService.selectedClient.clientGuid;\r\n //console.log(this.clientPickerService.selectedClient.clientGuid);\r\n let lead_channel = \"newlead_\" + this.clientPickerService.selectedClient.clientGuid;\r\n let call_channel = this.clientPickerService.selectedClient.clientGuid;\r\n\r\n this.pubnubInstance.subscribe({\r\n channels: [sms_channel, chat_channel, lead_channel, call_channel],\r\n triggerEvents: true\r\n })\r\n\r\n this.pubnubInstance.addListener({\r\n message: (message) => {\r\n // console.log(\"Recieved Pubnub Message: \", message);\r\n if (message.channel == sms_channel) {\r\n this.HandleSms(message, sms_channel);\r\n }\r\n else if (message.channel == chat_channel) {\r\n this.HandleChat(message, chat_channel);\r\n }\r\n else if (message.channel == lead_channel) {\r\n if (this.hasLeadService) {\r\n this.HandleLead(message, lead_channel);\r\n }\r\n }\r\n else if (message.channel == call_channel) {\r\n //console.log(\"hasCallNotifierService: \", this.hasCallNotifierService);\r\n if (this.hasCallNotifierService) {\r\n this.HandleCall(message, call_channel);\r\n }\r\n }\r\n }\r\n })\r\n }\r\n\r\n HandleSms(msg, sms_channel) {\r\n\r\n //console.log(\"sms received\");\r\n\r\n //if (msg.message.callerId != this.clientPickerService.clientPhoneNumber && msg.message.called != this.clientPickerService.clientPhoneNumber) {\r\n //return;\r\n //}\r\n\r\n let message = \"\";\r\n //console.log(\"msg: \", msg);\r\n var urlsplit = msg.message.goto.split(\"&\");\r\n for (var i = 0; i < urlsplit.length; i++) {\r\n var nameValPair = urlsplit[i];\r\n if (nameValPair.startsWith(\"message\")) {\r\n var nameValPairSplit = nameValPair.split(\"=\");\r\n message = decodeURIComponent(nameValPairSplit[1]).replace(/\\+/g, ' ');\r\n\r\n }\r\n }\r\n\r\n let direction = msg.message.activity == \"incoming\" ? 0 : 1;\r\n\r\n let smsActivity: SmsActivity = {\r\n callerId: msg.message.callerId,\r\n called: msg.message.called,\r\n message: message,\r\n smsActivityId: msg.message.smsActivityId,\r\n direction: direction,\r\n dateCreated: new Date()\r\n }\r\n //console.log(\"smsActivity: \", smsActivity);\r\n this.smsConversationService.openOrAddToConversation(smsActivity);\r\n }\r\n\r\n HandleChat(message, chat_channel) {\r\n this.onlineStatus = this.chatService.onlineStatus;\r\n //console.log(message);\r\n if (message.message == \"client_checkForOnline\" && this.onlineStatus == \"Online\") {\r\n this.pubnubInstance.publish({\r\n message: {\r\n status: \"Online\",\r\n sender: this.currentUser.guid\r\n },\r\n channel: chat_channel\r\n },\r\n (status, response) => {\r\n if (status.error) {\r\n console.error(\"Pubnub Chat Error: \", status);\r\n }\r\n else {\r\n console.log(\"Message Published w/ timetoken\", response.timetoken);\r\n }\r\n }\r\n );\r\n }\r\n }\r\n\r\n HandleLead(message, lead_channel) {\r\n\r\n this.GetCarbonLeadStartDate(this.clientId)\r\n .subscribe(resp => {\r\n //call service to open dialog\r\n this.leadsService.OpenDialog(message.message);\r\n let startDate: any = resp;\r\n this.leadsService.GetNumberOfLeads(startDate, this.clientId)\r\n .subscribe(response => {\r\n //console.log(response);\r\n this.leadsService.unreadLeadsCount = response;\r\n if (this.clientService.hasBlink == \"true\") {\r\n //console.log(\"shouldShow: \", this.ShouldShow());\r\n if (!this.ShouldShow()) {\r\n return;\r\n }\r\n else {\r\n this.blinkService.Stop().subscribe();\r\n if (response > 0 ) {\r\n this.blinkService.LightUp().subscribe();\r\n }\r\n }\r\n }\r\n },\r\n error => {\r\n console.error(error);\r\n });\r\n });\r\n }\r\n\r\n HandleCall(message, call_channel) {\r\n //Check if icn is enabled first\r\n if(!this.userSettingsService.icnEnabled) {\r\n console.log(\"ICN OFF\");\r\n return;\r\n }\r\n\r\n let phoneNumber = message.message.callerid;\r\n if (phoneNumber.charAt(0) == '+') {\r\n phoneNumber = phoneNumber.substring(1);\r\n }\r\n if (phoneNumber.charAt(0) == '1') {\r\n phoneNumber = phoneNumber.substring(1);\r\n }\r\n\r\n this.GetContactByPhone(phoneNumber, message.message.phonenumberid);\r\n\r\n //console.log(phoneNumber);\r\n //window.open(\"http://localhost:57330/incoming-call-notifier?phone=\" + phoneNumber);\r\n\r\n\r\n }\r\n\r\n GetCarbonLeadStartDate(clientId) {\r\n return this.clientService.GetCarbonLeadServiceStartDate(clientId, 68) //68 is the leads carbon service\r\n .map(response => {\r\n let beginDate = new Date(response.beginDate);\r\n let dateToStart = beginDate.setDate(beginDate.getDate());\r\n //let dateToStart = new Date().setDate(beginDate.getDate() - 30);\r\n return dateToStart;\r\n\r\n }, error => {\r\n console.error(error);\r\n })\r\n }\r\n\r\n GetContactByPhone(phoneNumber, phoneNumberId) {\r\n //console.log(this.phoneNumberQuery, this.clientTypeId);\r\n\r\n this.contactService.GetContactsByPhone(phoneNumber, this.clientTypeId, this.clientId)\r\n .subscribe(response => {\r\n //console.log(\"Existing contact: \", response);\r\n //If there is one existing contact in the selected client, select it automatically\r\n let thisClientsContacts = response.filter(con => con.clientId === this.clientId);\r\n if (thisClientsContacts.length === 1) {\r\n //console.log(thisClientsContacts[0]);\r\n //DO SOMETHING with thisClientsContacts[0]\r\n window.open(\"/incoming-call-notifier?contactGuid=\" + thisClientsContacts[0].contactGuid, \"_blank\", \"width=1000, height=750\");\r\n }\r\n else {\r\n if (response.length > 1) {\r\n let selectedContact = thisClientsContacts[0];\r\n //console.log(selectedContact);\r\n //DO SOMETHING with selectedContact\r\n window.open(\"/incoming-call-notifier?contactGuid=\" + selectedContact.contactGuid, \"_blank\", \"width=1000, height=750\");\r\n\r\n }\r\n else if (response.length === 1) {\r\n //console.log(response[0]);\r\n //DO SOMETHING with response[0]\r\n window.open(\"/incoming-call-notifier?contactGuid=\" + response[0].contactGuid, \"_blank\", \"width=1000, height=750\");\r\n }\r\n else {\r\n //DO SOMETHING if new contact\r\n window.open(\"/incoming-call-notifier?phone=\" + phoneNumber + \"&phoneNumberId=\" + phoneNumberId, \"_blank\", \"width=1000, height=750\");\r\n }\r\n }\r\n }, error => {\r\n console.error(error);\r\n });\r\n\r\n }\r\n\r\n HasTwoWaySMS() {\r\n this.clientService.GetClientConfigs(\"TwoWaySMS\", this.clientId)\r\n .subscribe(response => {\r\n //console.log(response);\r\n if (response) {\r\n this.hasTwoWayConfig = response;\r\n }\r\n if (this.hasTwoWayConfig == \"true\") {\r\n this.PubNubInit();\r\n }\r\n //console.log(this.hasTwoWayConfig);\r\n }, error => {\r\n console.error(error);\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n this.pubnubInstance.unsubscribe();\r\n }\r\n\r\n ShouldShow(debug: boolean = false) {\r\n if(debug) {\r\n console.group(\"ShouldShow\");\r\n console.log(\"/login? \", this.router.url.includes('/login'));\r\n console.log(\"/star-feedback? \", this.router.url.includes('/star-feedback'));\r\n console.log(\"/signup? \", this.router.url.includes('/signup'));\r\n console.log(\"/incoming-call-notifier? \", this.router.url.includes('/incoming-call-notifier'));\r\n console.log(\"Returning: \", !(this.router.url.includes('/login') || this.router.url.includes('/star-feedback') || this.router.url.includes('/signup') || this.router.url.includes('/incoming-call-notifier')));\r\n console.groupEnd();\r\n }\r\n\r\n return !(this.router.url.includes('/login') || this.router.url.includes('/star-feedback') || this.router.url.includes('/signup') || this.router.url.includes('/incoming-call-notifier'))\r\n }\r\n\r\n TwilioChatInit() {\r\n //get token\r\n //console.log(\"Getting Twilio Token\");\r\n this.chatService.GetTwilioToken(this.currentUser.guid)\r\n .subscribe(response => {\r\n //console.log(response);\r\n let token = response.token;\r\n if (token) {\r\n //connect to chat\r\n Twilio.Client.create(token).then(client => {\r\n this.chatClient = client;\r\n this.chatMessageService.chatClient = client;\r\n this.chatConnectedEmitter.emit(true);\r\n //join channel\r\n client.on(\"channelJoined\", (channel) => {\r\n this.chatMessageService.currentChannel = channel;\r\n\r\n this.currentChannel = channel;\r\n //console.log(\"Joined channel \" + channel.friendlyName)\r\n this.chatMessageService.channels.push({\r\n 'channel': channel,\r\n 'friendlyName': channel.friendlyName\r\n })\r\n //console.log(\"channel to close?: \", channel);\r\n //when channel is joined, set a timer for 5mins until chat is closed\r\n //const interval = 5 * 60 * 1000; //300000\r\n\r\n //this.chatMessageService.interval = setInterval(this.chatMessageService.SetCloseInterval, 300000, channel);\r\n this.chatMessageService.timeouts[channel.uniqueName] = setTimeout(this.chatMessageService.SetCloseInterval, this.chatMessageService.timeoutLength, channel);\r\n this.chatMessageService.timeouts[channel.uniqueName + \"_warn\"] = setTimeout(this.chatMessageService.WarnCloseTimeout, this.chatMessageService.timeoutLength - 60000, channel);\r\n //this.chatMessageService.SetCloseInterval()''\r\n\r\n //console.log(\"channels: \" , this.chatMessageService.channels);\r\n //listen for new messages\r\n let messagesArray = [];\r\n\r\n channel.on(\"messageAdded\", (message) => {\r\n const parsedMessage = JSON.parse(message.state.body);\r\n if (parsedMessage.status !== undefined) {\r\n this.chatService.AddIdleMessage(parsedMessage.chatId, parsedMessage.status);\r\n return;\r\n }\r\n else {\r\n this.chatService.AddIdleMessage(parsedMessage.chatId, \"\");\r\n }\r\n //console.log(\"message Added: \", message);\r\n messagesArray.push(message);\r\n //console.log(\"messagesArray: \", messagesArray.length);\r\n if (messagesArray.length == 1) {\r\n if (message.state.author !== this.currentUser.guid) {\r\n //get contact by contactGuid\r\n this.contactService.GetContactByContactGuid(message.state.author, this.clientId)\r\n .subscribe(resp => {\r\n //console.log(\"channel: \", channel);\r\n //console.log(\"got contact: \", resp);\r\n let activity = {\r\n contactId: resp.contact.contactId,\r\n clientUserId: this.userService.clientUserId,\r\n clientId: this.clientPickerService.selectedClientId,\r\n activityType: 'Carbon.StartedChat',\r\n //activityDescription: \"Contact started chat: \" + (JSON.parse(message.state.body)).message\r\n activityDescription: \"Contact started chat: \" + (JSON.parse(message.state.body)).message + \"|\" + message.state.body + \"|\" + JSON.stringify(channel.state)\r\n }\r\n //console.log(\"activity: \", activity);\r\n this.contactService.CreateContactActivity(activity).subscribe(response => {\r\n //console.log(\"activity created\", response);\r\n }, error => {\r\n console.error(error);\r\n })\r\n }, error => {\r\n console.error(error);\r\n })\r\n }\r\n }\r\n this.chatService.AddOrOpenDialog(message, channel, this.clientId);\r\n clearTimeout(this.chatMessageService.timeouts[channel.uniqueName]);\r\n clearTimeout(this.chatMessageService.timeouts[channel.uniqueName + \"_warn\"]);\r\n this.chatMessageService.timeouts[channel.uniqueName] = setTimeout(this.chatMessageService.SetCloseInterval, this.chatMessageService.timeoutLength, channel);\r\n this.chatMessageService.timeouts[channel.uniqueName + \"_warn\"] = setTimeout(this.chatMessageService.WarnCloseTimeout, this.chatMessageService.timeoutLength - 60000, channel);\r\n })\r\n\r\n })\r\n\r\n //prevent clientUser from messaging/saving message in db if contact left chat\r\n //client.on(\"channelRemoved\", (channel) => {\r\n // console.log('Channel Removed: ' + channel.friendlyName);\r\n // //this.chatMessageService.currentChannel = null;\r\n // this.chatMessageService.channelRemoved = true;\r\n //})\r\n\r\n\r\n }).catch((err) => {\r\n this.chatDisconnectedEmitter.emit(true);\r\n console.error(err);\r\n })\r\n }\r\n }, error => {\r\n console.error(error);\r\n });\r\n\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/app.component.ts","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { RouterModule } from '@angular/router';\r\nimport { OverlayModule } from '@angular/cdk/overlay'\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { UsersModule } from './users/users.module';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatSortModule, MatSnackBarModule, MatCardModule, MatFormFieldModule, MatInputModule, MatPaginatorModule, MatToolbarModule, MatSidenavModule, MatSlideToggleModule } from '@angular/material';\r\nimport { MatSliderModule } from '@angular/material/slider';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { FroalaEditorModule, FroalaViewModule } from 'angular-froala-wysiwyg';\r\nimport 'froala-editor/js/plugins.pkgd.min.js';\r\n\r\nimport { AppComponent } from './app.component';\r\nimport { NavMenuComponent } from './nav-menu/nav-menu.component';\r\nimport { TopMenuComponent } from './nav-menu/top-menu/top-menu.component';\r\nimport { LoginComponent } from './login/login.component';\r\nimport { ContactsComponent } from './contacts/contacts.component';\r\nimport { OptInComponent } from './opt-in/opt-in.component';\r\nimport { StarFeedbackComponent } from './star-feedback/star-feedback.component';\r\nimport { JointStarsComponent } from './star-feedback/the-joint/joint-stars/joint-stars.component';\r\nimport { JointRedirectComponent } from './star-feedback/the-joint/joint-redirect/joint-redirect.component';\r\nimport { JointThankYouComponent } from './star-feedback/the-joint/joint-thank-you/joint-thank-you.component';\r\nimport { JointSurveyComponent } from './star-feedback/the-joint/joint-survey/joint-survey.component';\r\nimport { SpinnerOverlayComponent } from './spinner-overlay/spinner-overlay.component';\r\nimport { LoadingComponent } from './loading/loading.component';\r\nimport { RequestFeedbackComponent } from './request-feedback/request-feedback.component';\r\nimport { ClientPickerComponent } from './client-picker/client-picker.component';\r\nimport { ContactTopComponent } from './contacts/contact-top/contact-top.component';\r\nimport { DashboardComponent } from './dashboard/dashboard.component';\r\nimport { UnresolvedBadReviewsComponent } from './dashboard/unresolved-bad-reviews/unresolved-bad-reviews.component';\r\nimport { SettingsComponent } from './settings/settings.component';\r\nimport { SettingsFirstTimeComponent } from './settings/settings-first-time/settings-first-time.component';\r\nimport { ContactActivityComponent } from './contacts/contact-activity/contact-activity.component';\r\nimport { ContactCommentsComponent } from './contacts/contact-comments/contact-comments.component';\r\nimport { BulkUploadComponent } from './contacts/contact-top/bulk-upload.component';\r\nimport { ContactSelectorComponent } from './contacts/contact-selector/contact-selector.component';\r\nimport { RepeatContactModalComponent } from './contacts/contact-selector/repeat-contact-modal.component';\r\nimport { AppChecklistComponent } from './app-checklist/app-checklist.component';\r\nimport { SmsComponent } from './sms/sms.component';\r\nimport { TwoWayComponent } from './sms/two-way/two-way.component';\r\nimport { SmsTopComponent } from './sms/sms-top/sms-top.component';\r\nimport { ChatComponent } from './chat/chat.component';\r\nimport { LeadsComponent } from './leads/leads.component';\r\nimport { HandleComponent } from './leads/handle/handle.component';\r\nimport { ActivityDialogComponent } from './chat/activity-dialog/activity-dialog.component';\r\nimport { FooterCarouselComponent } from './nav-menu/footer-carousel/footer-carousel.component';\r\nimport { IncomingCallNotifierComponent } from './incoming-call-notifier/incoming-call-notifier.component';\r\nimport { ContactInfoComponent } from './contacts/contact-info/contact-info.component';\r\nimport { MergeContactsDialogComponent } from './incoming-call-notifier/merge-contacts-dialog/merge-contacts-dialog.component';\r\nimport { ConfirmSpamOrDeadDialogComponent } from './incoming-call-notifier/confirm-spam-or-dead-dialog/confirm-spam-or-dead-dialog.component';\r\nimport { DevWarningComponent } from './dev-warning/dev-warning.component';\r\nimport { KeywordGeneratorComponent } from './keyword-generator/keyword-generator.component';\r\nimport { HelpResourcesComponent } from './help-resources/help-resources.component';\r\n\r\nimport { ClientService } from './services/client.service';\r\nimport { UserService } from './services/user.service';\r\nimport { SmsService } from './services/sms.service';\r\nimport { PhoneService } from './services/phone.service';\r\nimport { ContactService } from './services/contact.service';\r\nimport { SpinnerOverlayService } from './services/spinner-overlay.service';\r\nimport { NotifyService } from './services/notify.service';\r\nimport { EmailService } from './services/email.service';\r\nimport { ClientPickerService } from './services/client-picker.service';\r\nimport { ConfigService } from './services/config.service';\r\nimport { ChatService } from './services/chat.service';\r\nimport { ChatMessageService } from './services/chat-message.service';\r\nimport { LeadsService } from './services/leads.service';\r\nimport { BlinkService } from './services/blink.service';\r\n\r\nimport { PhonePipe } from './pipes/phone-pipe';\r\nimport { ActivityDescriptionPipe } from './pipes/activity-description-pipe';\r\nimport { ChatStartPipe } from './pipes/chat-start-pipe';\r\nimport { LeadStatusPipe } from './pipes/lead-status-pipe';\r\n\r\nimport { AuthGuard } from './auth.guard';\r\nimport { SubscribedServiceGuard } from './subscribed-service.guard';\r\nimport { ClientSubscribedServices } from './models/client-subscribed-services';\r\nimport { ChecklistService } from './services/checklist.service';\r\nimport { DialogHostDirective } from './dialog-host.directive';\r\nimport { SmsConversationService } from './services/sms-conversation.service';\r\nimport { InactiveModalComponent } from './login/inactive-modal/inactive-modal.component';\r\nimport { CallOutComponent } from './call-out/call-out.component';\r\nimport { DialerComponent } from './incoming-call-notifier/dialer/dialer.component';\r\nimport { VoiceService } from './services/voice.service';\r\nimport { CallRecordingComponent } from './call-recording/call-recording.component';\r\nimport { CallRecordingService } from './services/call-recording.service';\r\nimport { TopBarService } from './services/top-bar.service';\r\nimport { TopBarHostDirective } from './nav-menu/top-bar-host.directive';\r\nimport { SignupPackageComponent } from './opt-in/signup-package/signup-package.component';\r\nimport { AgreementService } from './services/agreement.service';\r\nimport { OptInWarningComponent } from './contacts/opt-in-warning/opt-in-warning.component';\r\nimport { OptOutWarningComponent } from './contacts/opt-out-warning/opt-out-warning.component';\r\nimport { NewLeadSourcePipe } from './pipes/new-lead-source-pipe';\r\nimport { ContactDupeWarningComponent } from './contacts/contact-merge/contact-dupe-warning.component';\r\nimport { SurveyService } from './services/survey.service';\r\nimport { SurveyResponsesComponent } from './dashboard/survey-responses/survey-responses.component';\r\nimport { CreateArrayPipe } from './pipes/create-array-pipe';\r\nimport { DatePickerComponent } from './date-picker/date-picker.component';\r\nimport { SmsStatusPipe } from './pipes/sms-status-pipe';\r\nimport { InPipe } from './pipes/in.pipe';\r\nimport { ReferralPipe } from './pipes/referral-pipe';\r\nimport { HelpDialogComponent } from './help-dialog/help-dialog.component';\r\nimport { HelpDialogService } from './services/help-dialog.service';\r\nimport { IsCustomerPipe } from './pipes/is-customer.pipe';\r\nimport { IsAutomatedSMSPipe } from './pipes/is-automated-sms.pipe';\r\nimport { ContactStatusPipe } from './pipes/contact-status-pipe';\r\nimport { FileInputComponent } from './file-input/file-input.component';\r\nimport { ExtractFileNamePipe } from './file-input/extract-file-name.pipe';\r\nimport { UserSettingsService } from './services/user-settings.service';\r\nimport { LogRocketService } from './services/logrocket.service';\r\nimport { IsValidPipe } from './pipes/is-valid.pipe';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n NavMenuComponent,\r\n TopMenuComponent,\r\n LoginComponent,\r\n InactiveModalComponent,\r\n OptInComponent,\r\n StarFeedbackComponent,\r\n JointStarsComponent,\r\n JointRedirectComponent,\r\n JointThankYouComponent,\r\n JointSurveyComponent,\r\n SpinnerOverlayComponent,\r\n LoadingComponent,\r\n RequestFeedbackComponent,\r\n ContactsComponent,\r\n ClientPickerComponent,\r\n ContactTopComponent,\r\n BulkUploadComponent,\r\n ContactSelectorComponent,\r\n RepeatContactModalComponent,\r\n UnresolvedBadReviewsComponent,\r\n DashboardComponent,\r\n SettingsComponent,\r\n SettingsFirstTimeComponent,\r\n ContactActivityComponent,\r\n ContactCommentsComponent,\r\n AppChecklistComponent,\r\n SmsComponent,\r\n TwoWayComponent,\r\n DialogHostDirective,\r\n PhonePipe,\r\n ActivityDescriptionPipe,\r\n ChatStartPipe,\r\n SmsTopComponent,\r\n ChatComponent,\r\n LeadsComponent,\r\n HandleComponent,\r\n ActivityDialogComponent,\r\n CallOutComponent,\r\n FooterCarouselComponent,\r\n IncomingCallNotifierComponent,\r\n ContactInfoComponent,\r\n CallRecordingComponent,\r\n LeadStatusPipe,\r\n DialerComponent,\r\n TopBarHostDirective,\r\n SignupPackageComponent,\r\n MergeContactsDialogComponent,\r\n ConfirmSpamOrDeadDialogComponent,\r\n OptInWarningComponent,\r\n OptOutWarningComponent,\r\n DevWarningComponent,\r\n NewLeadSourcePipe,\r\n ContactDupeWarningComponent,\r\n SurveyResponsesComponent,\r\n CreateArrayPipe,\r\n DatePickerComponent,\r\n SmsStatusPipe,\r\n InPipe,\r\n KeywordGeneratorComponent,\r\n ReferralPipe,\r\n HelpDialogComponent,\r\n IsCustomerPipe,\r\n IsAutomatedSMSPipe,\r\n ContactStatusPipe,\r\n HelpResourcesComponent,\r\n FileInputComponent,\r\n ExtractFileNamePipe,\r\n IsValidPipe,\r\n ],\r\n imports: [\r\n UsersModule,\r\n BrowserModule.withServerTransition({ appId: 'ng-cli-universal' }),\r\n HttpClientModule,\r\n FormsModule,\r\n OverlayModule,\r\n RouterModule.forRoot([\r\n { path: '', pathMatch: 'full', redirectTo: '/dashboard' },\r\n { path: 'login', component: LoginComponent },\r\n { path: 'dashboard', component: DashboardComponent, canActivate: [AuthGuard, SubscribedServiceGuard], data: { neededService: ClientSubscribedServices.CarbonBase } },\r\n { path: 'signup', component: OptInComponent },\r\n { path: 'star-feedback', component: StarFeedbackComponent },\r\n { path: 'request-feedback', component: RequestFeedbackComponent },\r\n { path: 'contacts', component: ContactsComponent, canActivate: [AuthGuard], runGuardsAndResolvers: 'always' },\r\n //{ path: 'contactTop', component: ContactTopComponent, outlet: 'topbar' },\r\n { path: 'settings', component: SettingsComponent, canActivate: [AuthGuard], data: { allowedRoles: ['Admin'] } },\r\n { path: 'conversation', component: SmsComponent, canActivate: [AuthGuard] },\r\n //{ path: 'conversationTop', component: SmsTopComponent, outlet: 'topbar' },\r\n { path: 'leads', component: LeadsComponent, canActivate: [AuthGuard, SubscribedServiceGuard], data: { neededService: ClientSubscribedServices.Leads } },\r\n { path: 'incoming-call-notifier', component: IncomingCallNotifierComponent, canActivate: [AuthGuard] },\r\n { path: 'keyword', component: KeywordGeneratorComponent, canActivate: [AuthGuard], data: { allowedRoles: ['Admin'] } },\r\n { path: 'help-resources', component: HelpResourcesComponent }\r\n ], { onSameUrlNavigation: \"reload\" }),\r\n NgbModule.forRoot(),\r\n\r\n MatTableModule,\r\n MatSortModule,\r\n MatCheckboxModule,\r\n MatSnackBarModule,\r\n MatCardModule,\r\n MatToolbarModule,\r\n MatInputModule,\r\n MatSidenavModule,\r\n MatSliderModule,\r\n MatPaginatorModule,\r\n MatFormFieldModule,\r\n MatSlideToggleModule,\r\n BrowserAnimationsModule,\r\n FlexLayoutModule,\r\n FroalaEditorModule,\r\n FroalaViewModule\r\n ],\r\n providers: [\r\n SmsConversationService,\r\n ClientService,\r\n UserService,\r\n ClientPickerService,\r\n PhoneService,\r\n SmsService,\r\n ContactService,\r\n SpinnerOverlayService,\r\n NotifyService,\r\n EmailService,\r\n ChecklistService,\r\n ConfigService,\r\n SubscribedServiceGuard,\r\n ChatService,\r\n ChatMessageService,\r\n LeadsService,\r\n VoiceService,\r\n CallRecordingService,\r\n TopBarService,\r\n AgreementService,\r\n BlinkService,\r\n SurveyService,\r\n HelpDialogService,\r\n UserSettingsService,\r\n LogRocketService\r\n ],\r\n bootstrap: [AppComponent],\r\n entryComponents: [\r\n SpinnerOverlayComponent,\r\n ContactSelectorComponent,\r\n RepeatContactModalComponent,\r\n TwoWayComponent,\r\n InactiveModalComponent,\r\n SettingsFirstTimeComponent,\r\n ChatComponent,\r\n LeadsComponent,\r\n HandleComponent,\r\n ActivityDialogComponent,\r\n FooterCarouselComponent,\r\n CallRecordingComponent,\r\n DialerComponent,\r\n ContactTopComponent,\r\n SmsTopComponent,\r\n MergeContactsDialogComponent,\r\n ConfirmSpamOrDeadDialogComponent,\r\n OptInWarningComponent,\r\n OptOutWarningComponent,\r\n DevWarningComponent,\r\n ContactDupeWarningComponent,\r\n SurveyResponsesComponent,\r\n HelpDialogComponent\r\n ]\r\n})\r\nexport class AppModule { }\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/app.module.ts","import { Injectable } from '@angular/core';\r\nimport { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\nimport { UserService } from './services/user.service';\r\nimport { tap, map } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class AuthGuard implements CanActivate {\r\n constructor(private user: UserService, private router: Router) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n return this.user.isLoggedIn()\r\n .pipe(\r\n tap(isLoggedIn => {\r\n if (!isLoggedIn) {\r\n //console.log(\"Not Logged In: Routing to Login Page\");\r\n this.router.navigate(['/login'], { queryParams: { returnUrl: encodeURI(state.url) } });\r\n }\r\n }),\r\n map(isLoggedIn => {\r\n if (isLoggedIn) {\r\n let isAllowed: boolean = false;\r\n let allowedRoles: string[] = route.data.allowedRoles;\r\n if (allowedRoles == undefined) {\r\n isAllowed = true;\r\n }\r\n\r\n if (this.user.roles != null && !isAllowed) {\r\n let roleFound = false;\r\n let roles = this.user.roles;\r\n if (typeof (this.user.roles) == \"string\") {\r\n roles = roles.split(',');\r\n }\r\n //console.log(roles);\r\n\r\n for (let i = 0; i < allowedRoles.length && !roleFound; i++) {\r\n roleFound = roles.filter(role => role.includes(allowedRoles[i])).length > 0;\r\n //roleFound = this.user.roles.includes(allowedRoles[i]);\r\n }\r\n isAllowed = roleFound;\r\n }\r\n else if(!isAllowed) {\r\n isAllowed = allowedRoles.length == 0;\r\n }\r\n\r\n if (!isAllowed) {\r\n this.router.navigate(['dashboard']);\r\n }\r\n\r\n return isAllowed;\r\n }\r\n else {\r\n return false;\r\n }\r\n })\r\n )\r\n //if (!this.user.isLoggedIn()) {\r\n // this.router.navigate(['/login'], { queryParams: {returnUrl: encodeURI(state.url)} });\r\n // return false;\r\n //}\r\n\r\n //return true;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/auth.guard.ts","module.exports = \".callout-popup-btn {\\r\\n /*border: 1px solid black;*/\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.number-pad {\\r\\n display: -ms-grid;\\r\\n display: grid;\\r\\n -ms-grid-columns: 1fr 1fr 1fr;\\r\\n grid-template-columns: 1fr 1fr 1fr;\\r\\n grid-gap: 15px 15px;\\r\\n width: 100%;\\r\\n margin: 10px 0;\\r\\n}\\r\\n\\r\\n.number-pad-number {\\r\\n border: 1px solid black;\\r\\n cursor: pointer;\\r\\n -webkit-user-select: none;\\r\\n -moz-user-select: none;\\r\\n -ms-user-select: none;\\r\\n user-select: none;\\r\\n text-align: center;\\r\\n\\r\\n}\\r\\n\\r\\n.call-btn {\\r\\n border-radius: 15px;\\r\\n border: 1px solid black;\\r\\n background-color: white;\\r\\n width: 100%;\\r\\n /*padding: 15px;*/\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.call-btn.call-start {\\r\\n border-color: green;\\r\\n color: green;\\r\\n }\\r\\n\\r\\n.call-btn.call-end {\\r\\n border-color: red;\\r\\n color: red;\\r\\n }\\r\\n\\r\\n.call-btn.call-end > i {\\r\\n -webkit-transform: rotate(224deg);\\r\\n transform: rotate(224deg);\\r\\n }\\r\\n\\r\\n.call-btn.call-loading {\\r\\n border-color: #17a2b8;\\r\\n color: #17a2b8;\\r\\n }\\r\\n\\r\\n.call-input {\\r\\n border-radius: 15px;\\r\\n border: 1px solid lightgray;\\r\\n padding: 0px 1em;\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n.mute-btn {\\r\\n border: 1px solid lightgray;\\r\\n border-radius: 5px;\\r\\n cursor: pointer;\\r\\n padding: 10px;\\r\\n vertical-align: middle;\\r\\n}\\r\\n\\r\\n.btn-carbon {\\r\\n background-color: rgba(0,0,0,.87);\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.helpLink {\\r\\n color: #0e5ba5;\\r\\n cursor: pointer;\\r\\n margin-left: 10px;\\r\\n font-size: 18px;\\r\\n vertical-align: super;\\r\\n}\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/call-out/call-out.component.css\n// module id = ./src/app/call-out/call-out.component.css\n// module chunks = main","module.exports = \"\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n

Calling {{callingContact.firstName}} {{callingContact.lastName}}

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
{{num}}
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/call-out/call-out.component.html\n// module id = ./src/app/call-out/call-out.component.html\n// module chunks = main","import { Component, OnInit, OnDestroy, Input, Output, EventEmitter } from '@angular/core';\r\nimport { Device } from 'twilio-client';\r\nimport { NgbModalRef, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { VoiceService } from '../services/voice.service';\r\nimport { UserService } from '../services/user.service';\r\nimport { Contact } from '../models/contact';\r\nimport { SmsService } from '../services/sms.service';\r\nimport { PhoneService } from '../services/phone.service';\r\nimport { ClientPickerService } from '../services/client-picker.service';\r\nimport { NotifyService } from '../services/notify.service';\r\nimport { ClientService } from '../services/client.service';\r\nimport { ContactService } from '../services/contact.service';\r\nimport { Subscription } from 'rxjs/Subscription';\r\nimport { ClientSubscribedServices } from '../models/client-subscribed-services';\r\nimport { HelpDialogService } from '../services/help-dialog.service';\r\n\r\n@Component({\r\n selector: 'call-out',\r\n templateUrl: './call-out.component.html',\r\n styleUrls: ['./call-out.component.css']\r\n})\r\n\r\nexport class CallOutComponent implements OnInit, OnDestroy {\r\n @Input() phoneNumber: string;\r\n @Input() callingContact: Contact;\r\n @Input() commentList: any[];\r\n @Output() onCommentSubmit = new EventEmitter();\r\n\r\n client: any;\r\n TwilioDevice: any = null;\r\n callInProgress: boolean = false;\r\n currentCallSid: string = \"\";\r\n muted: boolean = false;\r\n twilioReady: boolean = false;\r\n modalRef: NgbModalRef;\r\n clientPhoneNumber: string;\r\n voiceMessageUrl: string = \"\";\r\n audio: HTMLAudioElement = new Audio();\r\n subscription: Subscription;\r\n clientId: number = 0;\r\n clientGuid: string;\r\n clientTypeId: number = 0;\r\n hasSoftPhoneService: boolean = false;\r\n trackableLink: string = \"\";\r\n clientHasPaperWork: boolean = false;\r\n isTheJoint: boolean = false;\r\n carbonNumber: string;\r\n contactStatusId: number = 0;\r\n primaryOutboundVoiceNumber: string;\r\n\r\n constructor(\r\n private voiceService: VoiceService,\r\n private userService: UserService,\r\n public modalService: NgbModal,\r\n public smsService: SmsService,\r\n public phoneService: PhoneService,\r\n public clientPickerService: ClientPickerService,\r\n public notify: NotifyService,\r\n public clientService: ClientService,\r\n public contactService: ContactService,\r\n private helpDialogService: HelpDialogService) {\r\n this.TwilioDevice = new Device();\r\n }\r\n\r\n ngOnInit() {\r\n this.subscription = this.clientPickerService.$clientRequestFinished.subscribe(\r\n (isDone: boolean) => {\r\n this.clientTypeId = this.clientPickerService.selectedClient.clientTypeId;\r\n this.clientId = this.clientPickerService.selectedClient.clientId;\r\n this.clientGuid = this.clientPickerService.selectedClient.clientGuid;\r\n if (this.clientTypeId == 4) {\r\n this.isTheJoint = true\r\n }\r\n this.getPrimaryOutboundVoiceNumber(this.clientId, this.clientGuid);\r\n this.getClient(this.clientId);\r\n this.getCarbonNumber(this.clientId);\r\n })\r\n this.clientService.GetSubscribedServices(this.clientId).subscribe((services: number[]) => {\r\n this.hasSoftPhoneService = services.includes(ClientSubscribedServices.IPSoftPhone);\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.TwilioDevice != null) {\r\n this.TwilioDevice.destroy();\r\n this.TwilioDevice = null;\r\n }\r\n }\r\n\r\n getPrimaryOutboundVoiceNumber(clientId, clientGuid) {\r\n this.phoneService.GetPrimaryOutboundVoicePhoneNumber(clientId, clientGuid)\r\n .subscribe(response => {\r\n this.primaryOutboundVoiceNumber = response.phoneNumber;\r\n }, error => {\r\n this.notify.error(\"Error getting outbound phone number\");\r\n console.error(error);\r\n })\r\n }\r\n\r\n getCarbonNumber(clientId) {\r\n this.smsService.GetSMSNumber(clientId)\r\n .subscribe(response => {\r\n this.carbonNumber = response;\r\n }, error => {\r\n this.notify.error(\"Error getting carbon phone number\");\r\n console.error(error);\r\n })\r\n }\r\n\r\n getClient(clientId) {\r\n this.clientService.GetClientById(clientId)\r\n .subscribe(response => {\r\n this.client = response;\r\n let nickName = response.nickName;\r\n this.haveInitialPaperWork(nickName);\r\n this.getTrackableLink();\r\n }, error => {\r\n this.notify.error(\"Error getting client\");\r\n console.error(error);\r\n })\r\n }\r\n\r\n haveInitialPaperWork(nickName) {\r\n this.clientService.HasInitialPaperWork(nickName)\r\n .subscribe(response => {\r\n this.clientHasPaperWork = response;\r\n //get paperwork\r\n }, error => {\r\n console.error(error);\r\n })\r\n }\r\n\r\n getTrackableLink() {\r\n this.trackableLink = `You can request your Introductory Offer at ${this.client.primaryUrl}`;\r\n }\r\n\r\n SendOffer() {\r\n //get trackable link to put in message\r\n let message = this.trackableLink;\r\n let smsParameters = {\r\n from: this.carbonNumber,\r\n to: this.phoneNumber,\r\n body: message,\r\n clientId: this.clientId,\r\n contactActivity: {\r\n contactId: this.callingContact.contactId,\r\n activityType: \"Carbon.OfferSms\",\r\n activityDescription: message,\r\n clientUserId: this.userService.clientUserId\r\n }\r\n }\r\n this.sendSms(smsParameters);\r\n }\r\n\r\n SendPaperWork() {\r\n if (this.clientHasPaperWork == true) {\r\n let message = \"\";\r\n if (this.isTheJoint) {\r\n message = `The link to The Joint Chiropractic's initial paperwork is https://images.overthetop.com/images/uploads/${this.client.nickName}/Client/TheJoint-InitialPaperwork.pdf`;\r\n }\r\n //send sms\r\n let smsParameters = {\r\n from: this.carbonNumber,\r\n to: this.phoneNumber,\r\n body: message,\r\n clientId: this.clientId,\r\n contactActivity: {\r\n contactId: this.callingContact.contactId,\r\n activityType: \"Carbon.PaperWorkSms\",\r\n activityDescription: message,\r\n clientUserId: this.userService.clientUserId\r\n }\r\n }\r\n this.sendSms(smsParameters);\r\n }\r\n else {\r\n this.notify.error(\"Client does not have paper work\");\r\n }\r\n }\r\n\r\n SendMapAddress() {\r\n //send sms\r\n let nullAddress2 = this.client.Address2 != null ? \", \" + this.client.Address2 : \"\";\r\n let message = `${this.client.name} address is ${this.client.address}${nullAddress2}, ${this.client.city}, ${this.client.state} ${this.client.zipcode}`;\r\n\r\n let smsParameters = {\r\n from: this.carbonNumber,\r\n to: this.phoneNumber,\r\n body: message,\r\n clientId: this.clientId,\r\n contactActivity: {\r\n contactId: this.callingContact.contactId,\r\n activityType: \"Carbon.MapAddressSms\",\r\n activityDescription: message,\r\n clientUserId: this.userService.clientUserId\r\n }\r\n }\r\n\r\n this.sendSms(smsParameters);\r\n }\r\n\r\n sendSms(text) {\r\n this.smsService.SendMessage(text)\r\n .subscribe(response => {\r\n this.notify.success(\"SMS successfully sent!\");\r\n }, error => {\r\n this.notify.error(\"Error sending sms\");\r\n console.error(error);\r\n })\r\n }\r\n\r\n initializeTwilio() {\r\n if (this.TwilioDevice === null) {\r\n this.TwilioDevice = new Device();\r\n }\r\n\r\n this.voiceService.GetVoiceToken().subscribe(response => {\r\n this.TwilioDevice.setup(response);\r\n })\r\n\r\n this.TwilioDevice.on('ready', () => {\r\n this.twilioReady = true;\r\n })\r\n\r\n\r\n this.smsService.GetSMSNumber(this.clientPickerService.selectedClientId).subscribe(response => {\r\n this.clientPhoneNumber = response;\r\n })\r\n\r\n this.callConnected = this.callConnected.bind(this);\r\n this.callDisconnected = this.callDisconnected.bind(this);\r\n this.callError = this.callError.bind(this);\r\n\r\n this.TwilioDevice.on('connect', this.callConnected);\r\n this.TwilioDevice.on('disconnect', this.callDisconnected);\r\n this.TwilioDevice.on('error', this.callError);\r\n }\r\n\r\n getMessageUrl() {\r\n this.clientService.GetClientConfigs(\"Carbon.VoiceMessageUrl\", this.clientPickerService.selectedClientId).subscribe(response => {\r\n this.voiceMessageUrl = response;\r\n })\r\n }\r\n\r\n getMessageUrlFromTable() {\r\n this.contactStatusId = this.callingContact.leadStatus;\r\n this.voiceService.GetVoiceMailUrl(this.contactStatusId, this.clientId, this.clientTypeId).subscribe(response => {\r\n this.voiceMessageUrl = response;\r\n })\r\n }\r\n\r\n openModal(content) {\r\n this.initializeTwilio();\r\n this.getMessageUrlFromTable();\r\n this.modalRef = this.modalService.open(content, { size: 'lg', backdrop: \"static\", windowClass: 'modal-window-xl' });\r\n }\r\n\r\n closeModal() {\r\n if (!this.callInProgress) {\r\n this.modalRef.close();\r\n this.TwilioDevice.destroy();\r\n this.TwilioDevice = null;\r\n this.audio.pause();\r\n }\r\n else {\r\n alert(\"Cannot close while a call is in progress\");\r\n }\r\n }\r\n\r\n numpadClicked(num) {\r\n if (this.callInProgress) {\r\n this.TwilioDevice.activeConnection().sendDigits(num.toString());\r\n }\r\n else {\r\n this.phoneNumber += num;\r\n }\r\n }\r\n\r\n startCall() {\r\n let cleaned = this.cleanPhoneNumber(this.phoneNumber);\r\n let twilioParams = {\r\n phoneNumber: cleaned,\r\n clientUserId: this.userService.clientUserId,\r\n callerId: this.primaryOutboundVoiceNumber,\r\n contactId: this.callingContact.contactId\r\n }\r\n\r\n this.TwilioDevice.connect(twilioParams);\r\n this.callInProgress = true;\r\n\r\n if (this.callingContact) {\r\n\r\n this.userService.getCurrentUser().subscribe(currentUser => {\r\n let contactActivity = {\r\n contactId: this.callingContact.contactId,\r\n clientId: this.clientPickerService.selectedClientId,\r\n clientUserId: this.userService.clientUserId,\r\n activityType: \"Carbon.CallStarted\",\r\n activityDescription: `Call started by ${currentUser.firstName} ${currentUser.lastName}`\r\n }\r\n\r\n this.contactService.CreateContactActivity(contactActivity).subscribe(response => {\r\n })\r\n })\r\n }\r\n }\r\n\r\n addOutboundActivity() {\r\n let cleanedCalled = this.cleanPhoneNumber(this.phoneNumber);\r\n let callSid = this.TwilioDevice.activeConnection().parameters.CallSid;\r\n let clientId = this.clientPickerService.selectedClientId;\r\n\r\n let partialActivity = {\r\n callSid: callSid,\r\n clientId: clientId,\r\n callerId: this.primaryOutboundVoiceNumber,\r\n contactId: this.callingContact.contactId,\r\n called: cleanedCalled,\r\n callerClientUserId: this.userService.clientUserId\r\n }\r\n\r\n this.voiceService.addOutboundPhoneNumberActivity(partialActivity).subscribe(resp => {\r\n })\r\n }\r\n\r\n endCall() {\r\n this.TwilioDevice.disconnectAll();\r\n this.callInProgress = false;\r\n }\r\n\r\n cleanPhoneNumber(phoneNumber) {\r\n let digits = phoneNumber.replace(/\\D/g, '');\r\n if (digits.startsWith('1')) {\r\n return '+' + digits;\r\n }\r\n else {\r\n return '+1' + digits;\r\n }\r\n }\r\n\r\n toggleMute() {\r\n if (this.callInProgress) {\r\n this.muted = !this.muted;\r\n this.TwilioDevice.activeConnection().mute(this.muted);\r\n }\r\n }\r\n\r\n callConnected(connection) {\r\n this.callInProgress = true;\r\n this.addOutboundActivity();\r\n }\r\n\r\n callDisconnected(connection) {\r\n this.callInProgress = false;\r\n this.muted = false;\r\n }\r\n\r\n callError(error) {\r\n console.error(\"Call Error: \", error);\r\n this.notify.error(\"Error connecting to the call\");\r\n }\r\n\r\n leaveMessage() {\r\n if (this.voiceMessageUrl === \"\") {\r\n this.notify.error(\"Error: No voice message url\");\r\n return false;\r\n }\r\n if (!this.callInProgress) {\r\n return false;\r\n }\r\n\r\n let callSid = this.TwilioDevice.activeConnection().parameters.CallSid;\r\n let clientId = this.clientPickerService.selectedClientId;\r\n let clientTypeId = this.clientPickerService.selectedClient.clientTypeId;\r\n\r\n this.voiceService.redirectFromTable(callSid, this.contactStatusId, clientId, clientTypeId).subscribe(response => {\r\n console.log(\"Redirected: \", response);\r\n })\r\n }\r\n\r\n listenToMessage() {\r\n if (this.voiceMessageUrl === \"\") {\r\n this.notify.error(\"Error: No voice message url\");\r\n return false;\r\n }\r\n\r\n if (this.audio.paused) {\r\n this.audio.src = this.voiceMessageUrl;\r\n this.audio.load();\r\n this.audio.play();\r\n }\r\n else {\r\n this.audio.pause();\r\n }\r\n }\r\n\r\n openHelpLink() {\r\n this.closeModal();\r\n this.helpDialogService.openDialog(\"Carbon Phone Dialer\");\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/call-out/call-out.component.ts","module.exports = \"audio {\\r\\n display: block;\\r\\n margin: auto;\\r\\n}\\r\\n\\r\\ntextarea {\\r\\n resize: none;\\r\\n border-radius: 5px;\\r\\n}\\r\\n\\r\\n.flag-negative {\\r\\n color: red;\\r\\n}\\r\\n\\r\\n.flag-positive {\\r\\n color: green;\\r\\n}\\r\\n\\r\\n.loading {\\r\\n display: -webkit-box;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -webkit-box-pack: center;\\r\\n -ms-flex-pack: center;\\r\\n justify-content: center;\\r\\n}\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/call-recording/call-recording.component.css\n// module id = ./src/app/call-recording/call-recording.component.css\n// module chunks = main","module.exports = \"
\\r\\n

{{title}}

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n

Flag Call

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n

Notes:

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/call-recording/call-recording.component.html\n// module id = ./src/app/call-recording/call-recording.component.html\n// module chunks = main","import { Component, Input, Output, EventEmitter, ViewChild } from '@angular/core';\r\nimport { NgbActiveModal, NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\r\nimport { CallRecordingService } from '../services/call-recording.service';\r\nimport { UserService } from '../services/user.service';\r\nimport { NotifyService } from '../services/notify.service';\r\nimport { FlaggedCall } from '../models/flagged-call';\r\n\r\n@Component({\r\n selector: 'app-call-recording',\r\n templateUrl: './call-recording.component.html',\r\n styleUrls: ['./call-recording.component.css']\r\n})\r\nexport class CallRecordingComponent {\r\n @ViewChild('flagCallModal') public flagCallModalElem: any;\r\n @Input() title: string;\r\n @Input() recordingUrl: string;\r\n @Input() phoneNumberActivityId: number;\r\n @Input() flaggedCall: FlaggedCall;\r\n @Output() callFlagged = new EventEmitter();\r\n @Output() callUnflagged = new EventEmitter();\r\n\r\n flagCallModal: NgbModalRef;\r\n callNotes: string;\r\n loadingFlaggedCall: boolean = false;\r\n\r\n constructor(public activeModal: NgbActiveModal, private modalService: NgbModal, private callRecordingService: CallRecordingService, private userService: UserService, private notify: NotifyService) {\r\n\r\n }\r\n\r\n openFlagCallModal() {\r\n this.flagCallModal = this.modalService.open(this.flagCallModalElem);\r\n if (this.flaggedCall !== null && this.flaggedCall.flaggedCallId > 0) {\r\n this.callNotes = this.flaggedCall.note;\r\n }\r\n }\r\n\r\n flagCall(isPositive: boolean) {\r\n if (this.callNotes === undefined || this.callNotes.trim() === \"\") {\r\n this.notify.error(\"Notes cannot be blank\");\r\n return false;\r\n }\r\n\r\n let flaggedCallId = 0;\r\n if (this.flaggedCall !== null && this.flaggedCall !== undefined) {\r\n flaggedCallId = this.flaggedCall.flaggedCallId;\r\n }\r\n\r\n let flaggedCall: FlaggedCall = {\r\n flaggedCallId: flaggedCallId,\r\n clientUserId: this.userService.clientUserId,\r\n phoneNumberActivityId: this.phoneNumberActivityId,\r\n dateCreated: new Date(),\r\n note: this.callNotes,\r\n isPositive: isPositive\r\n }\r\n \r\n this.callRecordingService.FlagCall(flaggedCall)\r\n .subscribe((response: FlaggedCall) => {\r\n this.notify.success(\"Successfully flagged call\", 10000);\r\n this.flaggedCall = response;\r\n\r\n this.callFlagged.emit(response);\r\n this.flagCallModal.close();\r\n }, error => {\r\n console.error(\"Error flagging call: \", error);\r\n this.notify.error(\"Error flagging call\", 10000);\r\n })\r\n }\r\n\r\n unflagCall() {\r\n this.callRecordingService.UnflagCall(this.flaggedCall.flaggedCallId).subscribe(response => {\r\n this.notify.success(\"Successfully removed flag\", 10000);\r\n this.callUnflagged.emit(this.flaggedCall.phoneNumberActivityId);\r\n this.callNotes = \"\";\r\n this.flaggedCall = null;\r\n this.flagCallModal.close();\r\n }, error => {\r\n console.error(\"Error removing flag: \", error);\r\n this.notify.error(\"Error removing flag\", 10000);\r\n })\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/call-recording/call-recording.component.ts","module.exports = \".modelessDialog {\\r\\n position: fixed;\\r\\n -webkit-transform: translate(-50%, -50%);\\r\\n transform: translate(-50%, -50%);\\r\\n z-index: 9999 !important;\\r\\n background: rgba(255, 255, 255, 1);\\r\\n pointer-events: auto;\\r\\n -webkit-box-shadow: 10px 10px 15px -3px rgba(0,0,0,0.75);\\r\\n box-shadow: 10px 10px 15px -3px rgba(0,0,0,0.75);\\r\\n max-width: 262.4px;\\r\\n min-width: 255.87px;\\r\\n /*max-height: 380px;*/\\r\\n}\\r\\n\\r\\n.dialog-backdrop {\\r\\n position: fixed;\\r\\n top: 0;\\r\\n left: 0;\\r\\n width: 100%;\\r\\n height: 100%;\\r\\n pointer-events: none;\\r\\n z-index: 2;\\r\\n}\\r\\n\\r\\ni {\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\nbutton:hover {\\r\\n background-color: black;\\r\\n color: white;\\r\\n}\\r\\n\\r\\ntextarea {\\r\\n resize: none;\\r\\n border-radius: 5px;\\r\\n}\\r\\n\\r\\nblockquote {\\r\\n margin: 0px 20px 0px 20px; /*top right bottom left*/\\r\\n max-width: 100%;\\r\\n}\\r\\n\\r\\n.modal-header {\\r\\n background-color: black;\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.modal-body {\\r\\n overflow: scroll;\\r\\n font-size: 0.8em;\\r\\n width: auto;\\r\\n height: auto;\\r\\n min-height: 100px;\\r\\n max-height: 460px;\\r\\n /*scrollbar*/\\r\\n}\\r\\n\\r\\n.modal-footer {\\r\\n -webkit-box-pack: start !important;\\r\\n -ms-flex-pack: start !important;\\r\\n justify-content: flex-start !important;\\r\\n}\\r\\n\\r\\np.us, p.them, .us, .them {\\r\\n margin: 0 -20px 0.5em;\\r\\n border-radius: 1em;\\r\\n padding: 0.5em 1em;\\r\\n background: #e5e5ea;\\r\\n max-width: 75%;\\r\\n clear: both;\\r\\n position: relative;\\r\\n}\\r\\n\\r\\np.them, .them {\\r\\n float: left;\\r\\n}\\r\\n\\r\\np.them::after, .them::after {\\r\\n content: \\\"\\\";\\r\\n position: absolute;\\r\\n left: -0.05em;\\r\\n bottom: 0;\\r\\n width: 0.5em;\\r\\n height: 1em;\\r\\n border-right: 0.5em solid #e5e5ea;\\r\\n border-bottom-right-radius: 1em 0.5em;\\r\\n }\\r\\n\\r\\np.us, .us {\\r\\n float: right;\\r\\n background-color: #1289fe;\\r\\n color: white;\\r\\n}\\r\\n\\r\\np.us::after, .us::after {\\r\\n content: \\\"\\\";\\r\\n position: absolute;\\r\\n right: -0.05em;\\r\\n bottom: 0;\\r\\n width: 0.5em;\\r\\n height: 1em;\\r\\n border-left: 0.5em solid #1289fe;\\r\\n border-bottom-left-radius: 1em 0.5em;\\r\\n }\\r\\n\\r\\np.usDetails, .usMeta {\\r\\n font-size: .7em;\\r\\n float: right;\\r\\n clear: both;\\r\\n margin-bottom: 0;\\r\\n margin-right: -20px\\r\\n}\\r\\n\\r\\np.themDetails, .themMeta {\\r\\n font-size: .7em;\\r\\n float: left;\\r\\n clear: both;\\r\\n margin-bottom: 0;\\r\\n margin-left: -20px\\r\\n}\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/chat/activity-dialog/activity-dialog.component.css\n// module id = ./src/app/chat/activity-dialog/activity-dialog.component.css\n// module chunks = main","module.exports = \"
\\r\\n
\\r\\n
\\r\\n

\\r\\n {{conversationWith}}\\r\\n

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{message.dateCreated | date:'MMM d, y h:mm a'}}

\\r\\n

{{message.message}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Contact Started Conversation via Chat\\r\\n
\\r\\n
\\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/chat/activity-dialog/activity-dialog.component.html\n// module id = ./src/app/chat/activity-dialog/activity-dialog.component.html\n// module chunks = main","import { Input, Output, Component, EventEmitter } from '@angular/core';\r\nimport { ChatMessageService } from '../../services/chat-message.service';\r\nimport { Channel } from \"twilio-chat/lib/channel\";\r\nimport * as Twilio from \"twilio-chat\";\r\nimport { ClientPickerService } from '../../services/client-picker.service';\r\nimport { ContactService } from '../../services/contact.service';\r\n\r\n@Component({\r\n selector: 'app-chat',\r\n templateUrl: './activity-dialog.component.html',\r\n styleUrls: ['./activity-dialog.component.css']\r\n})\r\nexport class ActivityDialogComponent {\r\n @Input() conversation: any = [];\r\n @Input() conversationWith: string;\r\n @Input() channel: Channel;\r\n @Input() channelRemoved: boolean = false;\r\n @Input() contactGuid: string;\r\n @Output() onClose = new EventEmitter();\r\n\r\n //pass in function from sms.component.ts to get chat table\r\n @Output() onInit = new EventEmitter();\r\n\r\n elementX = '50%';\r\n elementY = '50%';\r\n\r\n constructor(\r\n private chatMessageService: ChatMessageService,\r\n private clientPickerService: ClientPickerService,\r\n private contactService: ContactService\r\n ) { }\r\n\r\n messageReply = '';\r\n client: Twilio.Client;\r\n typingStatus: string;\r\n\r\n ngOnInit() {\r\n this.getChatTable()\r\n }\r\n\r\n getChatTable() {\r\n this.onInit.emit(true);\r\n }\r\n\r\n closeDialog() {\r\n this.onClose.emit(true);\r\n }\r\n\r\n addToConversation(message: any) {\r\n let messageBody = JSON.parse(message.state.body);\r\n let contactGuid = message.state.author;\r\n this.conversation.push({\r\n chatMessageId: messageBody.chatMessageId,\r\n chatId: messageBody.chatId,\r\n direction: messageBody.direction,\r\n dateCreated: new Date(),\r\n message: messageBody.message,\r\n contactGuid: contactGuid\r\n });\r\n //this.scrollToBottom(\"endChat\");\r\n }\r\n\r\n div: any;\r\n\r\n scrollToBottom = (id) => {\r\n this.div = document.getElementById(id);//.scrollIntoView();\r\n //console.log(this.div);\r\n setTimeout(() => {\r\n this.div.scrollIntoView({\r\n behavior: \"smooth\",\r\n block: \"end\"\r\n });\r\n }, 100);\r\n }\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/chat/activity-dialog/activity-dialog.component.ts","module.exports = \".modelessDialog {\\r\\n position: fixed;\\r\\n -webkit-transform: translate(-50%, -50%);\\r\\n transform: translate(-50%, -50%);\\r\\n z-index: 9999 !important;\\r\\n background: rgba(255, 255, 255, 1);\\r\\n pointer-events: auto;\\r\\n -webkit-box-shadow: 10px 10px 15px -3px rgba(0,0,0,0.75);\\r\\n box-shadow: 10px 10px 15px -3px rgba(0,0,0,0.75);\\r\\n max-width: 262.4px;\\r\\n min-width: 255.87px;\\r\\n /*max-height: 380px;*/\\r\\n}\\r\\n\\r\\n.dialog-backdrop {\\r\\n position: fixed;\\r\\n top: 0;\\r\\n left: 0;\\r\\n width: 100%;\\r\\n height: 100%;\\r\\n pointer-events: none;\\r\\n z-index: 2;\\r\\n}\\r\\n\\r\\ni {\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\nbutton:hover {\\r\\n background-color: black;\\r\\n color: white;\\r\\n}\\r\\n\\r\\ntextarea {\\r\\n resize: none;\\r\\n border-radius: 5px;\\r\\n}\\r\\n\\r\\nblockquote {\\r\\n margin: 0px 20px 0px 20px; /*top right bottom left*/\\r\\n max-width: 100%;\\r\\n}\\r\\n\\r\\n.modal-header {\\r\\n background-color: black;\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.modal-body {\\r\\n overflow: scroll;\\r\\n font-size: 0.8em;\\r\\n width: auto;\\r\\n height: auto;\\r\\n min-height: 100px;\\r\\n max-height: 460px;\\r\\n /*scrollbar*/\\r\\n}\\r\\n\\r\\n.modal-footer {\\r\\n -webkit-box-pack: start !important;\\r\\n -ms-flex-pack: start !important;\\r\\n justify-content: flex-start !important;\\r\\n}\\r\\n\\r\\np.us, p.them, .us, .them {\\r\\n margin: 0 -20px 0.5em;\\r\\n border-radius: 1em;\\r\\n padding: 0.5em 1em;\\r\\n background: #e5e5ea;\\r\\n max-width: 75%;\\r\\n clear: both;\\r\\n position: relative;\\r\\n}\\r\\n\\r\\np.them, .them {\\r\\n float: left;\\r\\n}\\r\\n\\r\\np.them::after, .them::after {\\r\\n content: \\\"\\\";\\r\\n position: absolute;\\r\\n left: -0.05em;\\r\\n bottom: 0;\\r\\n width: 0.5em;\\r\\n height: 1em;\\r\\n border-right: 0.5em solid #e5e5ea;\\r\\n border-bottom-right-radius: 1em 0.5em;\\r\\n }\\r\\n\\r\\np.us, .us {\\r\\n float: right;\\r\\n background-color: #1289fe;\\r\\n color: white;\\r\\n}\\r\\n\\r\\np.us::after, .us::after {\\r\\n content: \\\"\\\";\\r\\n position: absolute;\\r\\n right: -0.05em;\\r\\n bottom: 0;\\r\\n width: 0.5em;\\r\\n height: 1em;\\r\\n border-left: 0.5em solid #1289fe;\\r\\n border-bottom-left-radius: 1em 0.5em;\\r\\n }\\r\\n\\r\\np.usDetails, .usMeta {\\r\\n font-size: .7em;\\r\\n float: right;\\r\\n clear: both;\\r\\n margin-bottom: 0;\\r\\n margin-right: -20px\\r\\n}\\r\\n\\r\\np.themDetails, .themMeta {\\r\\n font-size: .7em;\\r\\n float: left;\\r\\n clear: both;\\r\\n margin-bottom: 0;\\r\\n margin-left: -20px\\r\\n}\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/chat/chat.component.css\n// module id = ./src/app/chat/chat.component.css\n// module chunks = main","module.exports = \"
\\r\\n
\\r\\n
\\r\\n

\\r\\n \\r\\n {{conversationWith}}\\r\\n \\r\\n

\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{message.dateCreated | date:'MMM d, y h:mm a'}}

\\r\\n

{{message.message}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{typingStatus}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n

The other party has ended chat.

\\r\\n
\\r\\n

{{idleStatus}}

\\r\\n via Chat\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n

Confirm Ending Chat

\\r\\n \\r\\n
\\r\\n
\\r\\n

Are you sure you want to close this window? This will end the chat.

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/chat/chat.component.html\n// module id = ./src/app/chat/chat.component.html\n// module chunks = main","import { Input, Output, Component, EventEmitter } from '@angular/core';\r\nimport { ChatMessageService } from '../services/chat-message.service';\r\nimport { Channel } from \"twilio-chat/lib/channel\";\r\nimport * as Twilio from \"twilio-chat\";\r\nimport { ClientPickerService } from '../services/client-picker.service';\r\nimport { ContactService } from '../services/contact.service';\r\nimport { Client } from 'twilio-notifications/lib/client';\r\nimport { setTimeout } from 'timers';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-chat',\r\n templateUrl: './chat.component.html',\r\n styleUrls: ['./chat.component.css']\r\n})\r\nexport class ChatComponent {\r\n @Input() conversation: any = [];\r\n @Input() conversationWith: string;\r\n @Input() channel: Channel;\r\n @Input() channelRemoved: boolean = false;\r\n @Input() contactGuid: string;\r\n @Output() onClose = new EventEmitter();\r\n\r\n //pass in function from sms.component.ts to get chat table\r\n @Output() onInit = new EventEmitter();\r\n\r\n elementX = '50%';\r\n elementY = '50%';\r\n idleStatus: string = \"\";\r\n\r\n constructor(\r\n private chatMessageService: ChatMessageService,\r\n private clientPickerService: ClientPickerService,\r\n private contactService: ContactService,\r\n private modalService: NgbModal\r\n ) { }\r\n\r\n messageReply = '';\r\n client: Twilio.Client;\r\n typingStatus: string;\r\n modalRef: any = null;\r\n\r\n ngOnInit() {\r\n this.listenContactTyping();\r\n this.listenChannelRemoved();\r\n this.getChatTable()\r\n }\r\n\r\n getChatTable() {\r\n this.onInit.emit(true);\r\n }\r\n\r\n listenContactTyping() {\r\n //display contact typing status\r\n if (this.channel) {\r\n this.channel.on(\"typingStarted\", (member) => {\r\n this.typingStatus = \"is typing...\";\r\n })\r\n\r\n this.channel.on(\"typingEnded\", (member) => {\r\n this.typingStatus = \" \";\r\n })\r\n\r\n this.channel.on(\"memberLeft\", (member) => {\r\n this.channelRemoved = true;\r\n this.RemoveChannel();\r\n })\r\n }\r\n }\r\n\r\n RemoveChannel() {\r\n \r\n this.chatMessageService.RemoveChannel(this.conversation[0].chatId)\r\n .subscribe(response => {\r\n console.log(response);\r\n }, error => {\r\n console.error(error);\r\n });\r\n }\r\n\r\n KeyDown(event) {\r\n if (this.channel) {\r\n this.channel.typing();\r\n }\r\n }\r\n\r\n OpenModal = (content) => {\r\n if (!this.channelRemoved) {\r\n this.modalRef = this.modalService.open(content);\r\n }\r\n else {\r\n this.closeDialog('minimize')\r\n }\r\n }\r\n\r\n //depricated. lol\r\n listenChannelRemoved() {\r\n //listen for channel being removed\r\n this.client = this.chatMessageService.chatClient;\r\n console.log(this.client);\r\n this.client.on(\"channelRemoved\", (channel) => {\r\n //console.log('Channel Removed: ' + channel.friendlyName + \" \" + this.channelRemoved);\r\n this.idleStatus = \"\";\r\n this.chatMessageService.channelRemoved = true;\r\n this.channelRemoved = true;\r\n })\r\n\r\n //client.on(\"channelRemoved\", (channel) => {\r\n // console.log('Channel Removed: ' + channel.friendlyName);\r\n // //this.chatMessageService.currentChannel = null;\r\n // this.chatMessageService.channelRemoved = true;\r\n //})\r\n }\r\n\r\n closeDialog(action) {\r\n if (action == 'close') {\r\n this.modalRef.close();\r\n this.RemoveChannel();\r\n }\r\n this.onClose.emit(true);\r\n }\r\n\r\n addToConversation(message: any) {\r\n let messageBody = JSON.parse(message.state.body);\r\n let contactGuid = message.state.author;\r\n this.conversation.push({\r\n chatMessageId: messageBody.chatMessageId,\r\n chatId: messageBody.chatId,\r\n direction: messageBody.direction,\r\n dateCreated: new Date(),\r\n message: messageBody.message,\r\n contactGuid: contactGuid\r\n });\r\n //this.scrollToBottom(\"endChat\");\r\n //if message received, clear interval, then start it back up\r\n //clearInterval(this.chatMessageService.interval);\r\n //this.chatMessageService.interval = setInterval(this.chatMessageService.SetCloseInterval, 300000, this.channel);\r\n }\r\n\r\n addIdleStatus(statusMessage: string) {\r\n this.idleStatus = statusMessage;\r\n }\r\n\r\n SendMessage = (id, guid) => {\r\n //if (!this.chatMessageService.channelRemoved) {\r\n if (!this.channelRemoved) {\r\n //console.log(\"sending message\");\r\n let chatId = id;\r\n //always want direction of outgoing messages to be 1\r\n let direction = 1;\r\n let message = this.messageReply;\r\n //insert into DB\r\n this.chatMessageService.SendMessage(chatId, direction, message)\r\n .subscribe(response => {\r\n console.log(response);\r\n }, error => {\r\n console.error(error);\r\n });\r\n\r\n let objToSend = {\r\n chatId: chatId,\r\n direction: direction,\r\n name: this.clientPickerService.selectedClient.name,\r\n message: message\r\n }\r\n //get contact guid and clientguid\r\n let clientGuid = this.clientPickerService.selectedClient.clientGuid;\r\n let contactGuid = this.contactGuid;\r\n if (guid) {\r\n //console.log(\"guid: \", guid);\r\n contactGuid = guid;\r\n }\r\n\r\n //console.log(\"contactGuid: \", contactGuid);\r\n //let channelName = contactGuid + \"|\" + clientGuid;\r\n let channelName = \"chat_\" + chatId;\r\n //console.log(\"channelName: \", channelName);\r\n\r\n this.chatMessageService.GetChannelByName(channelName)\r\n .subscribe(response => {\r\n //get channel by name\r\n let channels = this.chatMessageService.channels.filter(function (data) {\r\n return data.friendlyName == response.friendly_name;\r\n })\r\n\r\n channels[0].channel.sendMessage(JSON.stringify(objToSend));\r\n\r\n }, error => {\r\n console.error(error);\r\n });\r\n\r\n //clear reply input\r\n this.messageReply = \"\";\r\n }\r\n else {\r\n console.log(\"channel doesn't exist\");\r\n }\r\n }\r\n\r\n div: any;\r\n\r\n scrollToBottom = (id) => {\r\n this.div = document.getElementById(id);//.scrollIntoView();\r\n //console.log(this.div);\r\n setTimeout(() => {\r\n this.div.scrollIntoView({\r\n behavior: \"smooth\",\r\n block: \"end\"\r\n });\r\n }, 100);\r\n }\r\n\r\n // Drag Event Methods\r\n dragStart(event) {\r\n event.dataTransfer.dropEffect = \"move\";\r\n }\r\n\r\n drop(event) {\r\n let heightOffset = (document.getElementById(this.conversation[0].chatId).clientHeight) / 2;\r\n event.preventDefault();\r\n\r\n this.elementX = `${event.clientX}px`;\r\n this.elementY = `${event.clientY + heightOffset - 50}px`;\r\n }\r\n\r\n dragover(event) {\r\n let heightOffset = (document.getElementById(this.conversation[0].chatId).clientHeight) / 2;\r\n\r\n event.preventDefault();\r\n this.elementX = `${event.clientX}px`;\r\n this.elementY = `${event.clientY + heightOffset - 50}px`;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/chat/chat.component.ts","module.exports = \".client-picker {\\r\\n display: -webkit-box;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -webkit-box-pack: justify;\\r\\n -ms-flex-pack: justify;\\r\\n justify-content: space-between;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n/*.checkmark__circle {\\r\\n stroke-dasharray: 166;\\r\\n stroke-dashoffset: 166;\\r\\n stroke-width: 2;\\r\\n stroke-miterlimit: 10;\\r\\n stroke: #7ac142;\\r\\n fill: none;\\r\\n}\\r\\n\\r\\n.checkmark {\\r\\n width: 25px;\\r\\n height: 25px;\\r\\n border-radius: 50%;\\r\\n display: block;\\r\\n stroke-width: 2;\\r\\n stroke: #fff;\\r\\n stroke-miterlimit: 10;\\r\\n margin: 2% auto;\\r\\n box-shadow: inset 0px 0px 0px #7ac142;\\r\\n}\\r\\n\\r\\n.checkmark__check {\\r\\n transform-origin: 50% 50%;\\r\\n stroke-dasharray: 48;\\r\\n stroke-dashoffset: 48;\\r\\n}\\r\\n\\r\\n.checkmark.active {\\r\\n animation: fill .4s ease-in-out .4s forwards, scale .3s ease-in-out .9s both, fade .7s linear 2.8s forwards;\\r\\n}\\r\\n .checkmark.active .checkmark__circle {\\r\\n animation: stroke 0.6s cubic-bezier(0.65, 0, 0.45, 1) forwards;\\r\\n }\\r\\n .checkmark.active .checkmark__check {\\r\\n animation: stroke 0.3s cubic-bezier(0.65, 0, 0.45, 1) 0.8s forwards;\\r\\n }\\r\\n\\r\\n@keyframes stroke {\\r\\n 100% {\\r\\n stroke-dashoffset: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes scale {\\r\\n 0%, 100% {\\r\\n transform: none;\\r\\n }\\r\\n\\r\\n 50% {\\r\\n transform: scale3d(1.1, 1.1, 1);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes fill {\\r\\n 100% {\\r\\n box-shadow: inset 0px 0px 0px 30px #7ac142;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes fade {\\r\\n 100% {\\r\\n opacity: 0;\\r\\n }\\r\\n}*/\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/client-picker/client-picker.component.css\n// module id = ./src/app/client-picker/client-picker.component.css\n// module chunks = main","module.exports = \"
\\r\\n \\r\\n \\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/client-picker/client-picker.component.html\n// module id = ./src/app/client-picker/client-picker.component.html\n// module chunks = main","import { Component, OnInit } from '@angular/core';\r\nimport { UserService } from '../services/user.service';\r\nimport { ClientPickerService } from '../services/client-picker.service';\r\nimport { NotifyService } from '../services/notify.service';\r\nimport { SpinnerOverlayService } from '../services/spinner-overlay.service';\r\nimport { BlinkService } from '../services/blink.service';\r\n\r\n@Component({\r\n selector: 'app-client-picker',\r\n templateUrl: './client-picker.component.html',\r\n styleUrls: ['./client-picker.component.css']\r\n})\r\nexport class ClientPickerComponent implements OnInit {\r\n checkmarkActive: boolean = false;\r\n\r\n constructor(private blinkService: BlinkService, private userService: UserService, public clientPickerService: ClientPickerService, private notifyService: NotifyService, private spinnerService: SpinnerOverlayService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.getClients();\r\n }\r\n\r\n getClients() {\r\n if (this.userService.clientUserId != 0) {\r\n var currentUserId = this.userService.clientUserId;\r\n //this.spinnerService.open();\r\n this.clientPickerService.getClients(currentUserId).subscribe(response => { /*this.spinnerService.close();*/ }, error => {\r\n //this.spinnerService.close();\r\n this.notifyService.error(\"Error Getting Available Locations\");\r\n console.error(error)\r\n })\r\n }\r\n }\r\n\r\n onChange(newValue: string) {\r\n this.blinkService.Stop().subscribe();\r\n this.clientPickerService.selectedClientId = parseInt(newValue);\r\n window.location.href = '/dashboard';\r\n this.checkmarkActive = true;\r\n setTimeout(() => this.checkmarkActive = false, 3500);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/client-picker/client-picker.component.ts","module.exports = \"\\r\\n.chatStarted {\\r\\n color: #007bff;\\r\\n cursor: pointer;\\r\\n}\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/contacts/contact-activity/contact-activity.component.css\n// module id = ./src/app/contacts/contact-activity/contact-activity.component.css\n// module chunks = main","module.exports = \"
\\r\\n
0; else noActivity\\\">\\r\\n
\\r\\n

\\r\\n {{activity.dateCreated + 'Z' | date:'MMM d, y h:mm a'}} -\\r\\n Contact gave rating of \\r\\n \\r\\n \\r\\n \\r\\n - ({{activity.franchiseName}})\\r\\n

\\r\\n

\\r\\n {{activity.dateCreated + 'Z' | date:'MMM d, y h:mm a'}} - {{activity.data}}\\r\\n by {{activity.clientUser.firstName}} {{activity.clientUser.lastName}}\\r\\n \\r\\n

\\r\\n

\\r\\n \\r\\n \\r\\n {{activity.dateCreated + 'Z' | date:'MMM d, y h:mm a'}} -\\r\\n Sms Received: {{activity.smsActivity.message}}\\r\\n \\r\\n \\r\\n \\r\\n {{activity.dateCreated + 'Z' | date:'MMM d, y h:mm a'}} -\\r\\n Sms Sent: {{activity.smsActivity.message}}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{activity.dateCreated + 'Z' | date:'MMM d, y h:mm a'}} -\\r\\n Sms Received: {{activity.smsActivity.message}}\\r\\n \\r\\n \\r\\n \\r\\n {{activity.dateCreated + 'Z' | date:'MMM d, y h:mm a'}} -\\r\\n Sms Sent: {{activity.smsActivity.message}}\\r\\n \\r\\n

\\r\\n
\\r\\n
\\r\\n

No Activity Found

\\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/contacts/contact-activity/contact-activity.component.html\n// module id = ./src/app/contacts/contact-activity/contact-activity.component.html\n// module chunks = main","import { Component, Input, Output, OnChanges, SimpleChanges, EventEmitter } from '@angular/core';\r\nimport { ContactService } from '../../services/contact.service';\r\nimport { ClientPickerService } from '../../services/client-picker.service';\r\nimport { ChatService } from '../../services/chat.service';\r\nimport { SmsConversationService } from '../../services/sms-conversation.service';\r\n\r\n@Component({\r\n selector: 'app-contact-activity',\r\n templateUrl: './contact-activity.component.html',\r\n styleUrls: ['./contact-activity.component.css']\r\n})\r\nexport class ContactActivityComponent implements OnChanges {\r\n @Input() activityList: any[];\r\n\r\n constructor(private smsConversationService: SmsConversationService, private chatService: ChatService, public clientPicker: ClientPickerService) {\r\n\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n }\r\n\r\n isChat(description) {\r\n if (description.includes(\"Contact started chat\")) {\r\n //console.log(description);\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n openChatModal(activity) {\r\n //console.log(\"opening chat modal\");\r\n //console.log(activity);\r\n\r\n let description = activity.activityDescription;\r\n const descriptionSplit = description.split(\"|\");\r\n\r\n let chat = descriptionSplit[1];\r\n let channel = descriptionSplit[2]// + \"|\" + description.split(\"|\")[3];\r\n if (descriptionSplit.length === 4) {\r\n channel += \"|\" + descriptionSplit[3];\r\n }\r\n\r\n //console.log(chat);\r\n //console.log(channel);\r\n\r\n let parseChat = JSON.parse(chat);\r\n let parseChannel = JSON.parse(channel);\r\n\r\n //console.log(parseChat);\r\n //console.log(parseChannel);\r\n\r\n let messageObject = {\r\n state: {\r\n body: null\r\n }\r\n };\r\n messageObject.state.body = chat;\r\n\r\n let channelObject = {state: null};\r\n channelObject.state = parseChannel;\r\n\r\n //console.log(messageObject, channelObject);\r\n //this.chatService.openConversation(messageObject, channelObject);\r\n this.chatService.openChatFromContactActivity(messageObject, channelObject, this.clientPicker.selectedClientId);\r\n }\r\n\r\n openSmsConversation(activity) {\r\n //console.log(\"open sms\");\r\n console.log(activity);\r\n //let description = activity.activityDescription.split(\"|\")[1];\r\n //console.log(description);\r\n //let parseDescription = JSON.parse(description);\r\n //let parseDescription = JSON.parse(activity);\r\n //console.log(parseDescription);\r\n\r\n //this.smsConversationService.openFromPage(parseDescription.contactId, parseDescription.firstName, parseDescription.lastName, parseDescription.contactPhoneNumber, parseDescription.clientPhoneNumber, parseDescription.smsPermission, activity.clientId);\r\n if (activity.smsActivity.direction == 0) { //received\r\n this.smsConversationService.openFromPage(activity.smsActivity.contactId, activity.firstName, activity.lastName, activity.smsActivity.callerId, activity.smsActivity.called, activity.smsPermission, activity.smsActivity.clientId);\r\n }\r\n else if (activity.smsActivity.direction == 1) { //sent\r\n this.smsConversationService.openFromPage(activity.smsActivity.contactId, activity.firstName, activity.lastName, activity.smsActivity.called, activity.smsActivity.callerId, activity.smsPermission, activity.smsActivity.clientId);\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/contacts/contact-activity/contact-activity.component.ts","module.exports = \".form-inline {\\r\\n -webkit-box-pack: justify;\\r\\n -ms-flex-pack: justify;\\r\\n justify-content: space-between;\\r\\n}\\r\\n\\r\\n.commentInput {\\r\\n width: 90%;\\r\\n}\\r\\n\\r\\n.comment {\\r\\n margin-top: 3px;\\r\\n margin-left: 10px;\\r\\n}\\r\\n\\r\\n.commentAuthor {\\r\\n margin-bottom: 0px;\\r\\n font-size: 0.9em;\\r\\n}\\r\\n\\r\\n/*@media screen and (min-width: 600px){\\r\\n .mobile.break{display: none}\\r\\n}*/\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/contacts/contact-comments/contact-comments.component.css\n// module id = ./src/app/contacts/contact-comments/contact-comments.component.css\n// module chunks = main","module.exports = \"
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
0; else noActivity\\\">\\r\\n
\\r\\n \\r\\n

\\r\\n {{activity.dateCreated + 'Z' | date:'MMM d, y h:mm a'}}\\r\\n Comment Left By: {{activity.clientUserName}}\\r\\n \\r\\n

\\r\\n \\r\\n

\\r\\n {{activity.dateCreated + 'Z' | date:'MMM d, y h:mm a'}}\\r\\n
\\r\\n Comment Left By: {{activity.clientUserName}}\\r\\n \\r\\n

\\r\\n

{{activity.activityDescription}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n

No Comments Found

\\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/contacts/contact-comments/contact-comments.component.html\n// module id = ./src/app/contacts/contact-comments/contact-comments.component.html\n// module chunks = main","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'contact-comments',\r\n templateUrl: './contact-comments.component.html',\r\n styleUrls: ['./contact-comments.component.css']\r\n})\r\nexport class ContactCommentsComponent {\r\n @Input() commentList: any[];\r\n customComment: string;\r\n @Output() onCommentSubmit = new EventEmitter();\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n submitComment() {\r\n this.onCommentSubmit.emit(this.customComment);\r\n this.customComment = \"\";\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/contacts/contact-comments/contact-comments.component.ts","module.exports = \".card-body {\\r\\n max-height: 500px;\\r\\n overflow-y: scroll;\\r\\n}\\r\\n\\r\\n.email-Bounced-Address,\\r\\n.email-Opt-Out {\\r\\n color: red;\\r\\n}\\r\\n\\r\\n.email-Opt-In,\\r\\n.email-Double-Opt-In {\\r\\n color: green;\\r\\n}\\r\\n\\r\\n.sms-Opt-In {\\r\\n color: green;\\r\\n}\\r\\n\\r\\n.sms-Opt-Out {\\r\\n color: red;\\r\\n}\\r\\n\\r\\n.unhandledLead {\\r\\n color: red;\\r\\n cursor: pointer;\\r\\n font-weight: bold;\\r\\n}\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/contacts/contact-info/contact-info.component.css\n// module id = ./src/app/contacts/contact-info/contact-info.component.css\n// module chunks = main","module.exports = \"
\\r\\n
\\r\\n Contact Info\\r\\n Customer\\r\\n
\\r\\n
\\r\\n

\\r\\n \\r\\n {{contact.firstName}} \\\"{{contact.preferredName}}\\\" {{contact.lastName}} \\r\\n

\\r\\n

Email: {{contact.email}}

\\r\\n

Mobile Phone: {{contact.mobilePhone | phone}}

\\r\\n

Date Created: {{contact.dateCreated + 'Z' | date}}

\\r\\n
    \\r\\n
  • SMS: {{smsStatusString(contact.smspermission)}}
  • \\r\\n
  • Email: {{emailStatusString(contact.emailOptInStatus)}}
  • \\r\\n
\\r\\n
\\r\\n

Feedback Left:

\\r\\n
0; else noFeedback\\\">\\r\\n
\\r\\n

{{feedback.activityDescription}} stars left on {{feedback.dateCreated + 'Z' | date:'MMM d, y h:mm a'}}

\\r\\n
\\r\\n
\\r\\n

None

\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n

Unhandled Lead

\\r\\n \\r\\n
\\r\\n
\\r\\n Are you sure you want to mark this lead as handled?\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/contacts/contact-info/contact-info.component.html\n// module id = ./src/app/contacts/contact-info/contact-info.component.html\n// module chunks = main","import { Component, Input } from '@angular/core';\r\nimport { Subscription } from 'rxjs/Subscription';\r\nimport { ClientPickerService } from '../../services/client-picker.service';\r\nimport { ClientService } from '../../services/client.service';\r\nimport { ClientSubscribedServices } from '../../models/client-subscribed-services';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { SmsConversationService } from '../../services/sms-conversation.service';\r\nimport { SmsService } from '../../services/sms.service';\r\nimport { LeadsService } from '../../services/leads.service';\r\nimport { UserService } from '../../services/user.service';\r\nimport { NotifyService } from '../../services/notify.service';\r\nimport { Contact } from '../../models/contact';\r\nimport { ContactService } from '../../services/contact.service';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { SpinnerOverlayService } from '../../services/spinner-overlay.service';\r\nimport { ContactSelectorComponent } from '../contact-selector/contact-selector.component';\r\n\r\nconst EmailStatus: string[] = [\"Unknown Status\", \"Opt-Out\", \"Opt-In\", \"Double-Opt-In\", \"Bounced Address\"];\r\nconst SMSpermissions: string[] = [\"Unknown Status\", \"Opt-In\", \"Opt-Out\"];\r\n\r\n@Component({\r\n selector: 'app-contact-info',\r\n templateUrl: './contact-info.component.html',\r\n styleUrls: ['./contact-info.component.css']\r\n})\r\nexport class ContactInfoComponent {\r\n @Input() contact: any;\r\n @Input() feedbackList: any;\r\n @Input() commentList: any;\r\n\r\n subscription: Subscription;\r\n hasLeadService: boolean = false;\r\n clientId: number = 0;\r\n hasTwoWayConfig: boolean = false;\r\n modalRef: any = null;\r\n confirmHandleLead: any;\r\n newContact: Contact = new Contact();\r\n editing: boolean = false;\r\n\r\n\r\n constructor(\r\n private clientPickerService: ClientPickerService,\r\n private clientService: ClientService,\r\n private modalService: NgbModal,\r\n private smsConversationService: SmsConversationService,\r\n private smsService: SmsService,\r\n private leadsService: LeadsService,\r\n private userService: UserService,\r\n private notify: NotifyService,\r\n private contactService: ContactService,\r\n private spinnerOverlayService: SpinnerOverlayService,\r\n ) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.subscription = this.clientPickerService.$clientRequestFinished.subscribe(\r\n (isDone: boolean) => {\r\n this.clientId = this.clientPickerService.selectedClient.clientId;\r\n //this.HasTwoWaySMS();\r\n this.clientService.GetSubscribedServices(this.clientId).subscribe((services: number[]) => {\r\n this.hasLeadService = services.includes(ClientSubscribedServices.Leads);\r\n });\r\n })\r\n }\r\n\r\n //HasTwoWaySMS() {\r\n // this.clientService.GetClientConfigs(\"TwoWaySMS\", this.clientId).subscribe(response => {\r\n // if (response) {\r\n // this.hasTwoWayConfig = response;\r\n // }\r\n // }, error => {\r\n // console.error(error);\r\n // });\r\n //}\r\n\r\n OpenHandleLeadDialog(content, contact) {\r\n this.confirmHandleLead = contact;\r\n this.modalRef = this.modalService.open(content);\r\n }\r\n\r\n emailStatusString(emailStatus) {\r\n if (emailStatus === null)\r\n emailStatus = 0;\r\n return EmailStatus[emailStatus];\r\n }\r\n\r\n smsStatusString(smsStatus) {\r\n if (smsStatus === null)\r\n smsStatus = 0;\r\n return SMSpermissions[smsStatus];\r\n }\r\n\r\n OpenConversationDialog(contact) {\r\n\r\n this.smsService.GetSMSNumber(this.clientPickerService.selectedClientId)\r\n .subscribe(response => {\r\n let clientPhoneNumber = response;\r\n this.smsConversationService.openFromPage(contact.contactId, contact.firstName, contact.lastName, contact.mobilePhone, clientPhoneNumber, contact.smspermission);\r\n },\r\n error => {\r\n console.error(error);\r\n })\r\n }\r\n\r\n\r\n EditContact() {\r\n //Creates new object from existing contact object and assigns to newContact\r\n this.newContact = Object.assign({}, this.contact);\r\n this.contact = null;\r\n this.editing = true;\r\n return false;\r\n }\r\n\r\n CancelEdit() {\r\n this.editing = false;\r\n this.contact = this.contactService.currentContact;\r\n this.newContact = Object.assign({}, this.contact);\r\n }\r\n\r\n contactValid(contact: Contact) {\r\n return contact.firstName.trim() !== \"\" && contact.lastName.trim() !== \"\" && contact.mobilePhone.trim() !== \"\";\r\n }\r\n\r\n //SubmitComment(comment: string) {\r\n // let activity = {\r\n // contactId: this.contact.contactId,\r\n // clientUserId: this.userService.clientUserId,\r\n // clientId: this.clientPickerService.selectedClientId,\r\n // activityType: 'Carbon.CustomComment',\r\n // activityDescription: comment\r\n // }\r\n // this.contactService.CreateContactActivity(activity).subscribe(response => {\r\n // this.notify.success(\"Comment created successfully\");\r\n // this.commentList.unshift(response);\r\n // }, error => {\r\n // this.notify.error(\"Error submitting comment\");\r\n // console.error(error);\r\n // })\r\n //}\r\n\r\n SubmitContact() {\r\n\r\n this.contactService.currentContact = null;\r\n this.editing = false;\r\n let contactObservable: Observable;\r\n const clientUserId = this.userService.clientUserId;\r\n if (this.newContact.contactId === 0) {\r\n this.newContact.clientId = this.clientPickerService.selectedClientId;\r\n contactObservable = this.contactService.CreateContact(this.newContact)\r\n }\r\n else {\r\n contactObservable = this.contactService.UpdateContact(this.newContact, clientUserId);\r\n }\r\n\r\n if (!this.contactValid(this.newContact)) {\r\n this.notify.error(\"All fields are required\");\r\n return false;\r\n }\r\n this.spinnerOverlayService.open();\r\n contactObservable.subscribe(response => {\r\n this.notify.success(this.newContact.contactId === 0 ? \"Contact Successfully Created\" : \"Contact Successfully Edited\");\r\n this.contactService.currentContact = response;\r\n this.spinnerOverlayService.close();\r\n this.newContact = response;\r\n this.contact = response;\r\n }, error => {\r\n console.log(\"error.error: \", error.error);\r\n let errorMsg = this.newContact.contactId === 0 ? \"Error Creating Contact\" : \"Error Editing Contact\";\r\n if (error.status === 400 && error.error.includes(\"already\")) {\r\n let email = this.newContact.email.trim();\r\n let phoneNumber = this.newContact.mobilePhone.trim();\r\n //let phoneNumberDigits = this.phoneNumber.replace(/\\D/g, '');\r\n let clientType = this.clientPickerService.selectedClient.clientTypeId;\r\n let clientId = this.clientPickerService.selectedClientId;\r\n\r\n if (error.error === \"Phone Number and Email already exists in our system.\") {\r\n errorMsg = \"Error: Duplicate Phone Number and Email. Getting Contact...\";\r\n this.getContactByPhone(phoneNumber, clientType, clientId);\r\n }\r\n else if (error.error == \"Phone Number already exists in our system.\") {\r\n errorMsg = \"Error: Duplicate Phone Number. Getting Contact...\";\r\n this.getContactByPhone(phoneNumber, clientType, clientId);\r\n }\r\n else if (error.error = \"Email already exists in our system.\") {\r\n errorMsg = \"Error: Duplicate Email. Getting Contact...\";\r\n this.getContactByEmail(email, clientType, clientId);\r\n }\r\n else {\r\n errorMsg = \"Error creating Contact.\"\r\n }\r\n }\r\n this.notify.error(errorMsg);\r\n this.spinnerOverlayService.close();\r\n console.error(error);\r\n })\r\n }\r\n\r\n setSelectedContact(selectedContact: Contact) {\r\n console.log(\"setting contact from contact-info-component\");\r\n this.contactService.currentContact = selectedContact;\r\n this.contact = selectedContact;\r\n //this.searched = true;\r\n //if (selectedContact !== null) {\r\n // this.getContactActivity(selectedContact.contactId);\r\n //}\r\n }\r\n\r\n getContactByPhone(phoneNumber, clientType, clientId) {\r\n this.contactService.GetContactsByPhone(phoneNumber, clientType, clientId)\r\n .subscribe(response => {\r\n this.spinnerOverlayService.close();\r\n console.log(\"Existing contact: \", response);\r\n //If there is one existing contact in the selected client, select it automatically\r\n let thisClientsContacts = response.filter(con => con.clientId === clientId);\r\n if (thisClientsContacts.length === 1) {\r\n this.setSelectedContact(thisClientsContacts[0]);\r\n }\r\n else {\r\n if (response.length > 1) {\r\n let modalRef = this.modalService.open(ContactSelectorComponent, { windowClass: 'modal-window-xl', size: 'lg' });\r\n modalRef.componentInstance.contactList = response;\r\n modalRef.componentInstance.clientTypeId = clientType;\r\n modalRef.componentInstance.onContactSelected.subscribe(selectedContact => {\r\n this.setSelectedContact(selectedContact);\r\n modalRef.close();\r\n })\r\n }\r\n else if (response.length === 1) {\r\n this.setSelectedContact(response[0]);\r\n }\r\n else {\r\n this.setSelectedContact(null);\r\n this.newContact = new Contact();\r\n this.newContact.mobilePhone = phoneNumber;\r\n }\r\n }\r\n\r\n }, error => {\r\n this.spinnerOverlayService.close();\r\n console.log(error);\r\n this.notify.error(error.error.Message, 7500);\r\n })\r\n }\r\n\r\n getContactByEmail(email, clientType, clientId) {\r\n this.contactService.GetContactsByEmail(email, clientType, clientId)\r\n .subscribe(response => {\r\n console.log(\"Existing contact: \", response);\r\n //If there is one existing contact in the selected client, select it automatically\r\n let thisClientsContacts = response.filter(con => con.clientId === clientId);\r\n if (thisClientsContacts.length === 1) {\r\n this.setSelectedContact(thisClientsContacts[0]);\r\n }\r\n else {\r\n if (response.length > 1) {\r\n let modalRef = this.modalService.open(ContactSelectorComponent, { windowClass: 'modal-window-xl', size: 'lg' });\r\n modalRef.componentInstance.contactList = response;\r\n modalRef.componentInstance.clientTypeId = clientType;\r\n modalRef.componentInstance.onContactSelected.subscribe(selectedContact => {\r\n this.setSelectedContact(selectedContact);\r\n modalRef.close();\r\n })\r\n }\r\n else if (response.length === 1) {\r\n this.setSelectedContact(response[0]);\r\n }\r\n else {\r\n this.setSelectedContact(null);\r\n this.newContact = new Contact();\r\n this.newContact.email = email;\r\n }\r\n }\r\n\r\n }, error => {\r\n console.error(error);\r\n })\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/contacts/contact-info/contact-info.component.ts","module.exports = \"p{\\r\\n margin-top:15px;\\r\\n}\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/contacts/contact-merge/contact-dupe-warning.component.css\n// module id = ./src/app/contacts/contact-merge/contact-dupe-warning.component.css\n// module chunks = main","module.exports = \"
\\r\\n

Warning! Duplicate Records With This Phone Number!

\\r\\n \\r\\n
\\r\\n
\\r\\n

This phone number already exists on these other contacts:

\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Name \\r\\n {{contact.firstName}} {{contact.lastName}}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Mobile Phone Number \\r\\n {{contact.mobilePhone | phone}} \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Email \\r\\n {{contact.email}} \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Location \\r\\n {{contact.franchiseName}} \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/contacts/contact-merge/contact-dupe-warning.component.html\n// module id = ./src/app/contacts/contact-merge/contact-dupe-warning.component.html\n// module chunks = main","import { Component, Input } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { Contact } from '../../models/contact';\r\n\r\n@Component({\r\n selector: 'contact-merge',\r\n templateUrl: './contact-dupe-warning.component.html',\r\n styleUrls: ['./contact-dupe-warning.component.css']\r\n})\r\nexport class ContactDupeWarningComponent {\r\n @Input() contactList: Contact[];\r\n displayedColumns: any = ['name','mobilePhone','email','franchiseName']\r\n\r\n constructor(public activeModal: NgbActiveModal) {\r\n\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/contacts/contact-merge/contact-dupe-warning.component.ts","module.exports = \"
\\r\\n

Multiple Contacts Found

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameEmailFranchise NameDate Created
{{contact.firstName}} \\\"{{contact.preferredName}}\\\" {{contact.lastName}}{{contact.email}}{{contact.franchiseName}}{{contact.dateCreated + 'Z' | date:'M/d/yyyy'}}
\\r\\n
\\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/contacts/contact-selector/contact-selector.component.html\n// module id = ./src/app/contacts/contact-selector/contact-selector.component.html\n// module chunks = main","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { Contact } from '../../models/contact';\r\n\r\n@Component({\r\n selector: 'app-contact-selector',\r\n templateUrl: './contact-selector.component.html',\r\n styles: ['.hasLeadOrCustomer { font-weight: 600; }',\r\n '.notALeadOrCustomer { font-weight: 300; }']\r\n})\r\nexport class ContactSelectorComponent {\r\n @Input() contactList: Contact[];\r\n @Input() clientTypeId: number;\r\n @Output() onContactSelected = new EventEmitter();\r\n\r\n constructor(public activeModal: NgbActiveModal) {\r\n\r\n }\r\n\r\n SelectContact(contactId: number) {\r\n let selectedContact = this.contactList.filter(con => con.contactId === contactId)[0];\r\n this.onContactSelected.emit(selectedContact);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/contacts/contact-selector/contact-selector.component.ts","module.exports = \"
\\r\\n

Multiple Contacts Found

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameEmailPhone NumberDate Created
{{one.firstName}} {{one.lastName}}{{one.email}}{{one.mobilePhone | phone}}{{one.dateCreated + 'Z' | date: 'M/d/yyyy'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n

These are the contacts you selected:

\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{each.firstName}} {{each.lastName}} {{each.email}} {{each.mobilePhone | phone}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n

*contacts that submitted feedback within the last 7 days will not be sent feedback request

\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/contacts/contact-selector/repeat-contact-modal.component.html\n// module id = ./src/app/contacts/contact-selector/repeat-contact-modal.component.html\n// module chunks = main","import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ClientPickerService } from '../../services/client-picker.service';\r\nimport { SmsService } from '../../services/sms.service';\r\n\r\n@Component({\r\n selector: 'app-repeat-contact-modal',\r\n templateUrl: './repeat-contact-modal.component.html'\r\n})\r\nexport class RepeatContactModalComponent implements OnInit {\r\n @Input() contactList: any[];\r\n @Input() addToContactList: any[];\r\n @Output() onContactSelected = new EventEmitter();\r\n @Output() onSubmission = new EventEmitter();\r\n\r\n sendFeedbackRequestTo: any = [];\r\n selectedContactIds: number[] = [];\r\n contacts: any = [];\r\n showSelectedSentTo: any = [];\r\n merged: any = [];\r\n\r\n constructor(\r\n public activeModal: NgbActiveModal,\r\n public clientPickerService: ClientPickerService,\r\n public smsService: SmsService\r\n ) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.merged = [].concat.apply([], this.addToContactList);\r\n }\r\n\r\n SelectContact(contactId: number, phoneNumber: string, index: number) {\r\n this.sendFeedbackRequestTo.push(contactId);\r\n //console.log(this.contactList);\r\n //console.log(this.addToContactList);\r\n //console.log(this.merged);\r\n\r\n this.contacts = this.contactList.filter(con => {\r\n return con.filter(c => c.contactId == contactId).length > 0\r\n })\r\n\r\n let singleContact = this.contacts[0].filter(c => c.contactId == contactId);\r\n\r\n this.merged = this.merged.concat(singleContact);\r\n //console.log(this.merged);\r\n\r\n this.showSelectedSentTo.push(singleContact[0]);\r\n\r\n this.selectedContactIds.push(contactId);\r\n\r\n this.contactList = this.contactList.filter(cl => {\r\n return cl[index].mobilePhone !== phoneNumber\r\n });\r\n }\r\n\r\n SubmitContacts() {\r\n this.onSubmission.emit(this.selectedContactIds);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/contacts/contact-selector/repeat-contact-modal.component.ts","module.exports = \"\\r\\n\\r\\n\\r\\n
\\r\\n

Add Contacts

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
First NameLast NameEmail AddressMobile PhoneSend Request For Feedback
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n

Bulk Upload Results

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

Created Contacts ({{bulkUploadResults.createdContacts.length}})

\\r\\n

\\r\\n
\\r\\n
\\r\\n

{{contact.firstName}} {{contact.lastName}}

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

Skipped Contacts ({{bulkUploadResults.skippedContacts.length}})

\\r\\n

\\r\\n
\\r\\n
\\r\\n

{{skipped.contact.firstName}} {{skipped.contact.lastName}}: Duplicate {{skipped.status}}

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

Failed Contacts ({{bulkUploadResults.failedContacts.length}})

\\r\\n

\\r\\n
\\r\\n
\\r\\n

{{failed.contact.firstName}} {{failed.contact.lastName}}: {{failed.exception.Message}}

\\r\\n
\\r\\n
\\r\\n\\r\\n
0 || bulkFeedbackResults.failedContacts.length > 0)\\\">\\r\\n
\\r\\n

Requests Not Sent:

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

Skipped ({{bulkFeedbackResults.skippedContacts.length}})

\\r\\n

\\r\\n
\\r\\n
\\r\\n

{{skipped.contact.firstName}} {{skipped.contact.lastName}}: {{skipped.status}}

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

Failed ({{bulkFeedbackResults.failedContacts.length}})

\\r\\n

\\r\\n
\\r\\n
\\r\\n

{{failed.contact.firstName}} {{failed.contact.lastName}}: {{failed.exception.Message}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/contacts/contact-top/bulk-upload.component.html\n// module id = ./src/app/contacts/contact-top/bulk-upload.component.html\n// module chunks = main","import { Component, Input, ViewChild } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nimport { Contact, BulkContactResults, BulkFeedbackResults, SkippedContact } from '../../models/contact';\r\n\r\nimport { ContactService } from '../../services/contact.service';\r\nimport { ClientPickerService } from '../../services/client-picker.service';\r\nimport { SmsService } from '../../services/sms.service';\r\nimport { NotifyService } from '../../services/notify.service';\r\nimport { SpinnerOverlayService } from '../../services/spinner-overlay.service';\r\nimport { forkJoin } from 'rxjs/observable/forkJoin';\r\nimport { RepeatContactModalComponent } from '../contact-selector/repeat-contact-modal.component';\r\nimport { UserService } from '../../services/user.service';\r\n\r\n\r\n@Component({\r\n selector: 'contact-bulk-upload',\r\n templateUrl: './bulk-upload.component.html',\r\n styleUrls: ['./contact-top.component.css']\r\n})\r\nexport class BulkUploadComponent {\r\n modalRef: any = null;\r\n bulkContactList: any[] = [{ contact: new Contact(), sendReview: false }];\r\n bulkAllSelected: boolean = false;\r\n today: any = new Date();\r\n lastweek: any = new Date().setDate(this.today.getDate() - 7);\r\n sendFeedbackRequestsTo: any[];\r\n @Input() isValidGoogleId: boolean;\r\n @Input() hasReviewService: boolean;\r\n @Input() disableReviews: boolean;\r\n\r\n bulkUploadResults: BulkContactResults = null;\r\n bulkFeedbackResults: BulkFeedbackResults = null;\r\n @ViewChild(\"resultsModal\") resultsModal;\r\n isCollapsed = {\r\n created: false,\r\n skipped: false,\r\n failed: false,\r\n feedbackSkipped: false,\r\n feedbackFailed: false\r\n };\r\n\r\n constructor(\r\n public contactService: ContactService,\r\n private modalService: NgbModal,\r\n private clientPickerService: ClientPickerService,\r\n private smsService: SmsService,\r\n private notify: NotifyService,\r\n private spinnerOverlayService: SpinnerOverlayService,\r\n private userService: UserService\r\n ) {\r\n\r\n }\r\n\r\n SubmitBulkContacts() {\r\n let contacts: Contact[] = this.bulkContactList.map(con => {\r\n con.contact.leadSource = \"Carbon\";\r\n con.contact.clientId = this.clientPickerService.selectedClientId;\r\n return con.contact\r\n });\r\n let sendReviews = this.bulkContactList.reduce((result, current) => {\r\n let cleanedPhone = this.CleanPhone(current.contact.mobilePhone);\r\n if(!result[cleanedPhone]) {\r\n result[this.CleanPhone(current.contact.mobilePhone)] = current.sendReview\r\n }\r\n return result;\r\n }, {});\r\n\r\n this.modalRef.close();\r\n this.spinnerOverlayService.open();\r\n // Send contacts to api for creation\r\n this.contactService.CreateBulkContacts(contacts).subscribe((response: BulkContactResults) => {\r\n this.spinnerOverlayService.close();\r\n this.bulkUploadResults = response;\r\n\r\n this.sendFeedbackRequestsTo = response.createdContacts.filter(con => sendReviews[this.CleanPhone(con.mobilePhone)] != undefined && sendReviews[this.CleanPhone(con.mobilePhone)]);\r\n let skippedSendFeedback = response.skippedContacts.filter(skippedContact => {\r\n let con = skippedContact.contact;\r\n return sendReviews[this.CleanPhone(con.mobilePhone)] != undefined && sendReviews[this.CleanPhone(con.mobilePhone)];\r\n });\r\n if(skippedSendFeedback.length > 0) {\r\n let dupeContacts = skippedSendFeedback.filter((skippedContact: SkippedContact) => skippedContact.foundContacts.length > 1).map((sc: SkippedContact) => sc.foundContacts);\r\n let singleContacts = skippedSendFeedback.filter((skippedContact: SkippedContact) => skippedContact.foundContacts.length == 1).map((sc: SkippedContact) => sc.foundContacts);\r\n \r\n let singleContactIds = singleContacts.map(con => con[0].contactId);\r\n \r\n if(dupeContacts.length > 0) {\r\n let dupeModalRef = this.modalService.open(RepeatContactModalComponent, {size: 'lg'});\r\n dupeModalRef.componentInstance.contactList = dupeContacts;\r\n dupeModalRef.componentInstance.addToContactList = singleContacts;\r\n dupeModalRef.componentInstance.onSubmission.subscribe(selectedContactIds => {\r\n let sendToContactIds = this.sendFeedbackRequestsTo.map(con => con.contactId).concat(singleContactIds).concat(selectedContactIds);\r\n this.SendBulkFeedbackRequests(sendToContactIds);\r\n dupeModalRef.close();\r\n })\r\n }\r\n else {\r\n let sendToContactIds = this.sendFeedbackRequestsTo.map(con => con.contactId).concat(singleContactIds);\r\n this.SendBulkFeedbackRequests(sendToContactIds);\r\n }\r\n }\r\n else {\r\n let sendToContactIds = this.sendFeedbackRequestsTo.map(con => con.contactId)\r\n this.SendBulkFeedbackRequests(sendToContactIds);\r\n }\r\n }, error => {\r\n this.spinnerOverlayService.close();\r\n this.notify.error(\"Error Creating Contacts\");\r\n console.error(error);\r\n })\r\n }\r\n\r\n SendBulkFeedbackRequests(contactIds: number[]) {\r\n let uniqueContactIds = contactIds.filter((id: number, index: number) => contactIds.indexOf(id) === index);\r\n if (uniqueContactIds.length > 0) {\r\n this.spinnerOverlayService.open();\r\n this.contactService.GetValidRequestContacts(uniqueContactIds, this.clientPickerService.selectedClientId).subscribe(response => {\r\n this.smsService.SendBulkFeedbackRequest(response, this.clientPickerService.selectedClientId, this.userService.clientUserId).subscribe(res => {\r\n this.bulkFeedbackResults = res;\r\n this.spinnerOverlayService.close();\r\n this.notify.success(\"Feedback Requests Sent\");\r\n this.modalRef = this.modalService.open(this.resultsModal);\r\n }, error => {\r\n this.spinnerOverlayService.close()\r\n this.notify.error(\"Error Sending Feedback Requests\");\r\n });\r\n })\r\n } \r\n else {\r\n this.modalRef = this.modalService.open(this.resultsModal);\r\n }\r\n }\r\n\r\n OpenModal(content) {\r\n this.bulkAllSelected = false;\r\n this.ResetBulkContactList();\r\n this.modalRef = this.modalService.open(content, { size: 'lg' });\r\n }\r\n\r\n AddContactToBulkList() {\r\n this.bulkContactList.push({ contact: new Contact(), sendReview: false });\r\n }\r\n\r\n DeleteContactFromBulkList(index) {\r\n this.bulkContactList.splice(index, 1);\r\n }\r\n\r\n CleanPhone(phoneNumber: string) {\r\n let result = phoneNumber.replace(/\\D/g, '');\r\n if (result.startsWith('1')) {\r\n result = result.slice(1);\r\n }\r\n return result;\r\n }\r\n\r\n ContactPasted(event, index) {\r\n let pastedContacts = event.clipboardData.getData('text');\r\n\r\n let contacts = this.ConvertPastedContacts(pastedContacts);\r\n\r\n let bulkContacts = contacts.map(con => { return { contact: con, sendReview: false } });\r\n if (index > 0) {\r\n let existingBulk = this.bulkContactList.slice(0, index);\r\n bulkContacts = existingBulk.concat(bulkContacts);\r\n }\r\n\r\n this.bulkContactList = bulkContacts;\r\n }\r\n\r\n ConvertPastedContacts(pasteString): Contact[] {\r\n let result: Contact[] = [];\r\n //split the string by new line\r\n var contactEntries = pasteString.split(/\\r?\\n/);\r\n //split string by tabs\r\n for (var i = 0; i < contactEntries.length; i++) {\r\n if (contactEntries[i]) {\r\n var entry = contactEntries[i].split(/\\t/);\r\n //trim each entry and assign it to an object property\r\n let contact = new Contact();\r\n contact.firstName = entry[0].trim();\r\n contact.lastName = entry[1].trim();\r\n contact.email = entry[2].trim();\r\n contact.mobilePhone = entry[3].trim();\r\n //add to list of contacts\r\n result.push(contact);\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n BulkCheckAll() {\r\n this.bulkContactList.map(con => {\r\n con.sendReview = this.bulkAllSelected;\r\n return con;\r\n })\r\n }\r\n\r\n SingleReviewCheck() {\r\n var numUnchecked = this.bulkContactList.filter(con => !con.sendReview).length;\r\n this.bulkAllSelected = numUnchecked === 0;\r\n }\r\n\r\n ReduceContactNames(nameString, currentContact: Contact) {\r\n return `${nameString}\\r\\n ${currentContact.firstName} ${currentContact.lastName},`;\r\n }\r\n\r\n ResetBulkContactList() {\r\n this.bulkContactList = [{ contact: new Contact(), sendReview: false }];\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/contacts/contact-top/bulk-upload.component.ts","module.exports = \".table-no-padding td{\\r\\n padding: 2px 0px;\\r\\n}\\r\\n\\r\\n.checkbox_col {\\r\\n display: block;\\r\\n}\\r\\n\\r\\n.checkbox_col div {\\r\\n height: 100%;\\r\\n display: -webkit-box;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -webkit-box-orient: vertical;\\r\\n -webkit-box-direction: normal;\\r\\n -ms-flex-flow: column;\\r\\n flex-flow: column;\\r\\n /*padding: 10px !important;*/\\r\\n -webkit-box-pack: center;\\r\\n -ms-flex-pack: center;\\r\\n justify-content: center;\\r\\n -webkit-box-align: center;\\r\\n -ms-flex-align: center;\\r\\n align-items: center;\\r\\n }\\r\\n\\r\\n.checkbox_col .mat-checkbox-layout {\\r\\n margin: 0;\\r\\n }\\r\\n\\r\\n.dropdown {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n#contactButtons {\\r\\n display: none;\\r\\n position: absolute;\\r\\n margin-left: -110px;\\r\\n}\\r\\n\\r\\n#contactButtons button:hover {\\r\\n background-color: #0080FF;\\r\\n color:white;\\r\\n }\\r\\n\\r\\n.bulk-upload-results-head {\\r\\n display: -webkit-box;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -webkit-box-pack: justify;\\r\\n -ms-flex-pack: justify;\\r\\n justify-content: space-between;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.bulk-upload-results-body {\\r\\n padding-left: 1em;\\r\\n}\\r\\n\\r\\n.noDropdownIcon::after {\\r\\n border: none;\\r\\n}\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/contacts/contact-top/contact-top.component.css\n// module id = ./src/app/contacts/contact-top/contact-top.component.css\n// module chunks = main","module.exports = \"\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n

Add Contact

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
EmailText 
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Introductory Offer
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Paper Work
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Map Address
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n

Are you sure you want to send?

\\r\\n \\r\\n
\\r\\n
\\r\\n

This contact has submitted a review {{daysSinceReview}} days ago, do you still want to send a review request?

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/contacts/contact-top/contact-top.component.html\n// module id = ./src/app/contacts/contact-top/contact-top.component.html\n// module chunks = main","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ClientPickerService } from '../../services/client-picker.service';\r\nimport { SpinnerOverlayService } from '../../services/spinner-overlay.service';\r\nimport { Contact } from '../../models/contact';\r\nimport { ContactService } from '../../services/contact.service';\r\nimport { SmsService } from '../../services/sms.service';\r\nimport { NotifyService } from '../../services/notify.service';\r\nimport { ClientService } from '../../services/client.service';\r\nimport { Subscription } from 'rxjs/Subscription';\r\nimport { ClientSubscribedServices } from '../../models/client-subscribed-services';\r\nimport { ClientTypes } from '../../models/client-types';\r\nimport { ChecklistService } from '../../services/checklist.service';\r\nimport { UserService } from '../../services/user.service';\r\nimport { ContactSelectorComponent } from '../contact-selector/contact-selector.component';\r\nimport { Router } from '@angular/router';\r\nimport { HelpDialogComponent } from '../../help-dialog/help-dialog.component';\r\nimport { HelpDialogService } from '../../services/help-dialog.service';\r\nimport { Email } from '../../models/email';\r\nimport { EmailService } from '../../services/email.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-contact-top',\r\n templateUrl: './contact-top.component.html',\r\n styleUrls: ['./contact-top.component.css']\r\n})\r\nexport class ContactTopComponent implements OnInit, OnDestroy {\r\n modalRef: any = null;\r\n newContact: Contact = new Contact();\r\n today: any = new Date();\r\n thisweek: any = new Date(new Date().setDate(this.today.getDate() - 7));\r\n clientIdSubscription: Subscription = null;\r\n clientRequestSubscription: Subscription = null;\r\n hasReviewService: boolean = false;\r\n hasVCardService: boolean = false;\r\n contactCardEnabled: boolean = false;\r\n hasTwoWayService: boolean = false;\r\n daysSinceReview: number = 0;\r\n feedbackIsDelayed: boolean = false;\r\n phoneNumber: string = '';\r\n email: string = '';\r\n minutes: number = 0;\r\n showFeedbackTimes: boolean = false;\r\n selectedFeedbackType: string = null;\r\n\r\n isTheJoint: boolean = false;\r\n introductoryOfferE: boolean = false;\r\n introductoryOfferS: boolean = false;\r\n paperWorkE: boolean = false;\r\n paperWorkS: boolean = false;\r\n mapAddressE: boolean = false;\r\n mapAddressS: boolean = false;\r\n client: any = null;\r\n clientHasPaperWork: boolean = false;\r\n carbonNumber: any = null;\r\n trackableLink: string = \"\";\r\n newContactComment: string = \"\";\r\n\r\n constructor(\r\n private router: Router,\r\n public contactService: ContactService,\r\n private modalService: NgbModal,\r\n private clientPickerService: ClientPickerService,\r\n private smsService: SmsService,\r\n private clientService: ClientService,\r\n private notify: NotifyService,\r\n private spinnerOverlayService: SpinnerOverlayService,\r\n public checklistService: ChecklistService,\r\n private userService: UserService,\r\n private helpDialogService: HelpDialogService,\r\n private emailService: EmailService\r\n ) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n //this.clientIdSubscription = this.clientPickerService.$clientId.subscribe((clientId: number) => {\r\n // this.CheckServices(clientId);\r\n //})\r\n\r\n this.clientIdSubscription = this.clientPickerService.$clientRequestFinished.subscribe(() => {\r\n const clientId = this.clientPickerService.selectedClientId;\r\n this.client = this.clientPickerService.selectedClient;\r\n this.isTheJoint = this.client.clientTypeId === 4;\r\n this.CheckServices(clientId);\r\n this.checkPaperwork(this.client.nickName);\r\n this.getTrackableLink(clientId, this.client.clientTypeId);\r\n this.getCarbonNumber(clientId);\r\n })\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.clientIdSubscription !== null) {\r\n this.clientIdSubscription.unsubscribe();\r\n }\r\n if (this.clientRequestSubscription !== null) {\r\n this.clientRequestSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n //Single Contact Upload\r\n HandleCreateNewContact() {\r\n if (!this.ContactValid(this.newContact)) {\r\n this.notify.error(\"All fields are required\");\r\n return false;\r\n }\r\n this.spinnerOverlayService.open();\r\n this.newContact.leadSource = \"Carbon\";\r\n this.newContact.clientId = this.clientPickerService.selectedClientId;\r\n this.contactService.CreateContact(this.newContact)\r\n .subscribe(resp => {\r\n this.notify.success(\"Contact Successfully Created\");\r\n this.modalRef.close();\r\n this.spinnerOverlayService.close();\r\n\r\n this.sendNewContactEmails(resp.contactId, this.mapAddressE, this.introductoryOfferE, this.paperWorkE);\r\n this.sendNewContactTexts(resp.contactId, this.mapAddressS, this.introductoryOfferS, this.paperWorkS);\r\n if(this.newContactComment.trim() !== \"\") {\r\n this.SubmitComment(resp.contactId, this.newContactComment);\r\n }\r\n\r\n // Reset Form Values\r\n this.mapAddressE = false;\r\n this.mapAddressS = false;\r\n this.introductoryOfferE = false;\r\n this.introductoryOfferS = false;\r\n this.paperWorkE = false;\r\n this.paperWorkS = false;\r\n this.newContactComment = \"\";\r\n \r\n this.newContact = new Contact();\r\n }, error => {\r\n this.spinnerOverlayService.close();\r\n let errorMsg = \"Error Creating Contact\";\r\n //if (error.status === 400 && error.error === \"Duplicate Phone Number Or Email\") {\r\n console.log(\"error.error: \", error.error);\r\n if (error.status === 400 && error.error.includes(\"already\")) {\r\n\r\n this.email = this.newContact.email.trim();\r\n this.phoneNumber = this.newContact.mobilePhone.trim();\r\n //let phoneNumberDigits = this.phoneNumber.replace(/\\D/g, '');\r\n let clientType = this.clientPickerService.selectedClient.clientTypeId;\r\n let clientId = this.clientPickerService.selectedClientId;\r\n\r\n if (error.error === \"Phone Number and Email already exists in our system.\") {\r\n errorMsg = \"Error: Duplicate Phone Number and Email. Getting Contact...\";\r\n this.getContactByPhone(this.phoneNumber, clientType, clientId);\r\n }\r\n else if (error.error == \"Phone Number already exists in our system.\") {\r\n errorMsg = \"Error: Duplicate Phone Number. Getting Contact...\";\r\n this.getContactByPhone(this.phoneNumber, clientType, clientId);\r\n }\r\n else if (error.error = \"Email already exists in our system.\") {\r\n errorMsg = \"Error: Duplicate Email. Getting Contact...\";\r\n this.getContactByEmail(this.email, clientType, clientId);\r\n }\r\n else {\r\n errorMsg = \"Error creating Contact.\"\r\n return;\r\n }\r\n }\r\n this.modalRef.close();\r\n this.notify.error(errorMsg, 6000);\r\n //this.spinnerOverlayService.close();\r\n console.error(error);\r\n })\r\n }\r\n\r\n getContactByPhone(phoneNumber, clientType, clientId) {\r\n this.contactService.GetContactsByPhone(phoneNumber, clientType, clientId)\r\n .subscribe(response => {\r\n console.log(\"Existing contact: \", response);\r\n //If there is one existing contact in the selected client, select it automatically\r\n let thisClientsContacts = response.filter(con => con.clientId === clientId);\r\n if (thisClientsContacts.length === 1) {\r\n this.setSelectedContact(thisClientsContacts[0]);\r\n }\r\n else {\r\n if (response.length > 1) {\r\n let modalRef = this.modalService.open(ContactSelectorComponent, { windowClass: 'modal-window-xl', size: 'lg' });\r\n modalRef.componentInstance.contactList = response;\r\n modalRef.componentInstance.clientTypeId = this.client.clientTypeId;\r\n modalRef.componentInstance.onContactSelected.subscribe(selectedContact => {\r\n this.setSelectedContact(selectedContact);\r\n modalRef.close();\r\n })\r\n }\r\n else if (response.length === 1) {\r\n this.setSelectedContact(response[0]);\r\n }\r\n else {\r\n this.setSelectedContact(null);\r\n this.newContact = new Contact();\r\n this.newContact.mobilePhone = this.phoneNumber;\r\n }\r\n }\r\n\r\n }, error => {\r\n console.error(error);\r\n })\r\n }\r\n\r\n getContactByEmail(email, clientType, clientId) {\r\n this.contactService.GetContactsByEmail(email, clientType, clientId)\r\n .subscribe(response => {\r\n console.log(\"Existing contact: \", response);\r\n //If there is one existing contact in the selected client, select it automatically\r\n let thisClientsContacts = response.filter(con => con.clientId === clientId);\r\n if (thisClientsContacts.length === 1) {\r\n this.setSelectedContact(thisClientsContacts[0]);\r\n }\r\n else {\r\n if (response.length > 1) {\r\n let modalRef = this.modalService.open(ContactSelectorComponent, { windowClass: 'modal-window-xl', size: 'lg' });\r\n modalRef.componentInstance.contactList = response;\r\n modalRef.componentInstance.clientTypeId = this.client.clientTypeId;\r\n modalRef.componentInstance.onContactSelected.subscribe(selectedContact => {\r\n this.setSelectedContact(selectedContact);\r\n modalRef.close();\r\n })\r\n }\r\n else if (response.length === 1) {\r\n this.setSelectedContact(response[0]);\r\n }\r\n else {\r\n this.setSelectedContact(null);\r\n this.newContact = new Contact();\r\n this.newContact.email = this.email;\r\n }\r\n }\r\n\r\n }, error => {\r\n console.error(error);\r\n })\r\n }\r\n\r\n setSelectedContact(selectedContact: Contact) {\r\n //window.location.href = '/contacts?contactGuid=' + selectedContact.contactGuid;\r\n this.router.navigate(['contacts'], { queryParams: { contactGuid: selectedContact.contactGuid }});\r\n }\r\n\r\n OpenModal(content) {\r\n this.modalRef = this.modalService.open(content);\r\n }\r\n\r\n //Request SMS Permission\r\n SendSMSPermissionRequest() {\r\n if (this.contactService.currentContact !== null) {\r\n let contactId: number = this.contactService.currentContact.contactId;\r\n let clientId: number = this.clientPickerService.selectedClientId;\r\n this.spinnerOverlayService.open();\r\n this.smsService.SendSMSVerification(contactId, clientId, this.userService.clientUserId).subscribe(response => {\r\n this.notify.success(\"Request For SMS Successfully Sent\");\r\n this.spinnerOverlayService.close();\r\n console.log(response);\r\n }, error => {\r\n this.notify.error(\"Error Sending Request For SMS\");\r\n this.spinnerOverlayService.close();\r\n console.error(error)\r\n });\r\n }\r\n }\r\n\r\n //Send Contact Card\r\n SendVCard() {\r\n if (this.contactService.currentContact !== null) {\r\n let contactId: number = this.contactService.currentContact.contactId;\r\n let clientId: number = this.clientPickerService.selectedClientId;\r\n this.spinnerOverlayService.open();\r\n this.smsService.SendVCard(contactId, clientId, this.userService.clientUserId).subscribe(response => {\r\n this.notify.success(\"Contact Card Successfully Sent\");\r\n this.spinnerOverlayService.close();\r\n console.log(response);\r\n }, error => {\r\n this.notify.error(\"Error Sending Contact Card\");\r\n this.spinnerOverlayService.close();\r\n console.error(error);\r\n })\r\n }\r\n }\r\n\r\n //Request Feedback\r\n SendOrOpenFeedbackRequest(isDelayed: boolean, content, minutes = 0) {\r\n let daysSinceLastReview: number = this.SentRecent();\r\n console.log(minutes);\r\n this.minutes = minutes;\r\n\r\n if (daysSinceLastReview < 0 || daysSinceLastReview >= 7) {\r\n console.log(`Last review left ${daysSinceLastReview} days ago, sending feedback text`);\r\n if (!isDelayed) {\r\n this.SendFeedbackRequest();\r\n }\r\n else {\r\n if (this.minutes == 15) {\r\n this.SendDelayedFeedbackRequest();\r\n }\r\n else if (this.minutes == 60) {\r\n this.SendHourDelayedFeedbackRequest();\r\n }\r\n }\r\n }\r\n else {\r\n console.log(`Last review left ${daysSinceLastReview} days ago, opening modal`);\r\n this.daysSinceReview = daysSinceLastReview;\r\n this.feedbackIsDelayed = isDelayed;\r\n this.OpenModal(content);\r\n }\r\n }\r\n\r\n ModalSendFeedback() {\r\n if (!this.feedbackIsDelayed) {\r\n this.SendFeedbackRequest();\r\n }\r\n else {\r\n if (this.minutes == 15) {\r\n this.SendDelayedFeedbackRequest();\r\n }\r\n else if (this.minutes == 60) {\r\n this.SendHourDelayedFeedbackRequest();\r\n }\r\n }\r\n this.modalRef.close();\r\n }\r\n\r\n SendFeedbackRequest() {\r\n this.spinnerOverlayService.open();\r\n this.smsService.SendFeedbackRequest(this.clientPickerService.selectedClientId, this.contactService.currentContact.mobilePhone, this.contactService.currentContact.contactGuid, this.userService.clientUserId, this.selectedFeedbackType)\r\n .subscribe(response => {\r\n console.log(response);\r\n this.notify.success(\"Feedback Request Successfully Sent\");\r\n this.spinnerOverlayService.close();\r\n }, error => {\r\n this.spinnerOverlayService.close();\r\n console.error(error);\r\n this.notify.error(\"Error Sending Feedback Request\");\r\n });\r\n }\r\n\r\n SendDelayedFeedbackRequest() {\r\n this.spinnerOverlayService.open();\r\n this.smsService.SendFeedbackRequestWithDelay(this.clientPickerService.selectedClientId, this.contactService.currentContact.mobilePhone, this.contactService.currentContact.contactGuid, this.userService.clientUserId, this.selectedFeedbackType)\r\n .subscribe(response => {\r\n console.log(response);\r\n this.notify.success(\"Feedback Request Successfully Sent\");\r\n this.spinnerOverlayService.close();\r\n }, error => {\r\n this.spinnerOverlayService.close();\r\n console.error(error);\r\n this.notify.error(\"Error Sending Feedback Request\");\r\n });\r\n }\r\n\r\n SendHourDelayedFeedbackRequest() {\r\n this.spinnerOverlayService.open();\r\n this.smsService.SendFeedbackRequestWithHourDelay(this.clientPickerService.selectedClientId, this.contactService.currentContact.mobilePhone, this.contactService.currentContact.contactGuid, this.userService.clientUserId, this.selectedFeedbackType)\r\n .subscribe(response => {\r\n console.log(response);\r\n this.notify.success(\"Feedback Request Successfully Sent\");\r\n this.spinnerOverlayService.close();\r\n }, error => {\r\n this.spinnerOverlayService.close();\r\n console.error(error);\r\n this.notify.error(\"Error Sending Feedback Request\");\r\n });\r\n }\r\n\r\n SendDirectFeedback() {\r\n this.spinnerOverlayService.open();\r\n this.smsService.SendDirectFeedbackRequest(this.clientPickerService.selectedClientId, this.contactService.currentContact.contactGuid, this.userService.clientUserId)\r\n .subscribe(response => {\r\n this.spinnerOverlayService.close();\r\n console.log(\"Direct feedback sent successfully: \", response);\r\n this.notify.success(\"Direct Feedback Request Successfully Sent\");\r\n }, error => {\r\n this.spinnerOverlayService.close();\r\n console.log(\"Error sending direct feedback: \", error);\r\n this.notify.error(\"Error Sending Direct Feedback Request\");\r\n })\r\n }\r\n\r\n SmsOptedIn() {\r\n let smsPermission: number = this.contactService.currentContact.smspermission;\r\n const smsOptIn: number = 1;\r\n\r\n return smsPermission === smsOptIn;\r\n }\r\n\r\n SmsOptedOut() {\r\n let smsPermission: number = this.contactService.currentContact.smspermission;\r\n const smsOptOut: number = 2;\r\n return smsPermission === smsOptOut;\r\n }\r\n\r\n ContactValid(contact) {\r\n return contact.firstName.trim() !== \"\" && contact.lastName.trim() !== \"\" && contact.mobilePhone.trim() !== \"\";\r\n }\r\n\r\n SentRecent(): number {\r\n if (this.contactService.sent !== undefined) {\r\n let sentActivity: any[] = this.contactService.sent;\r\n let requestSentRecently = sentActivity.filter(ac => new Date(ac.dateCreated) > this.thisweek).reduce((latestReview, currentReview) => {\r\n if (latestReview === null || new Date(currentReview.dateCreated) > new Date(latestReview.dateCreated)) {\r\n return currentReview;\r\n }\r\n return latestReview;\r\n }, null);\r\n if (requestSentRecently !== null) {\r\n let reviewDateCreated: string = requestSentRecently.dateCreated;\r\n console.log(reviewDateCreated);\r\n if (!reviewDateCreated.toUpperCase().endsWith('Z'))\r\n reviewDateCreated += 'Z'\r\n\r\n let today = new Date();\r\n let reviewDate = new Date(reviewDateCreated);\r\n return this.CalculateDayDiff(reviewDate, today);\r\n }\r\n }\r\n return -1;\r\n }\r\n\r\n CalculateDayDiff(day1, day2): number {\r\n const MillisecondsPerDay = 1000 * 60 * 60 * 24;\r\n const utc1 = Date.UTC(day1.getFullYear(), day1.getMonth(), day1.getDate());\r\n const utc2 = Date.UTC(day2.getFullYear(), day2.getMonth(), day2.getDate());\r\n return Math.floor((utc2 - utc1) / MillisecondsPerDay);\r\n }\r\n\r\n ShowContactButtons() {\r\n var x = document.getElementById(\"contactButtons\");\r\n if (x.style.display === \"block\") {\r\n x.style.display = \"none\";\r\n }\r\n else {\r\n x.style.display = \"block\";\r\n }\r\n }\r\n\r\n ShowUploadOptions() {\r\n var x = document.getElementById(\"uploadOptions\");\r\n if (x.style.display === \"block\") {\r\n x.style.display = \"none\";\r\n }\r\n else {\r\n x.style.display = \"block\";\r\n }\r\n }\r\n\r\n ShowFeedbackOptions() {\r\n var x = document.getElementById(\"feedbackOptions\");\r\n if (x.style.display === \"block\") {\r\n x.style.display = \"none\";\r\n }\r\n else {\r\n x.style.display = \"block\";\r\n }\r\n }\r\n\r\n CheckServices(clientId: number) {\r\n this.clientService.GetSubscribedServices(clientId).subscribe((services: number[]) => {\r\n this.hasReviewService = services.includes(ClientSubscribedServices.InstantReviews);\r\n this.hasVCardService = services.includes(ClientSubscribedServices.VCardDrop);\r\n this.hasTwoWayService = services.includes(ClientSubscribedServices.TwoWaySms);\r\n this.CheckContactCardEnabled();\r\n });\r\n }\r\n\r\n CheckContactCardEnabled() {\r\n if (this.clientPickerService.selectedClient !== null) {\r\n let clientType: number = this.clientPickerService.selectedClient.clientTypeId;\r\n switch (clientType) {\r\n case ClientTypes.ModernAcupuncture: this.contactCardEnabled = true;\r\n break;\r\n case ClientTypes.ALS: this.contactCardEnabled = true;\r\n break;\r\n case ClientTypes.TheJoint: this.contactCardEnabled = true;\r\n break;\r\n case ClientTypes.OTT: this.contactCardEnabled = true;\r\n break;\r\n default: this.contactCardEnabled = false;\r\n break;\r\n }\r\n }\r\n\r\n if (!this.hasVCardService) {\r\n this.contactCardEnabled = false;\r\n }\r\n }\r\n\r\n ContactHasPhone() {\r\n let hasPhone: string = this.contactService.currentContact.mobilePhone;\r\n return hasPhone != '';\r\n }\r\n\r\n DisableReviewButton() {\r\n return this.SmsOptedOut() || !this.hasReviewService || this.checklistService.disableReviews || this.checklistService.disableSms\r\n }\r\n\r\n DisableSendContactButton() {\r\n return this.checklistService.disableContact\r\n }\r\n\r\n HideRequestFeedbackButton() {\r\n return this.ContactHasPhone()\r\n }\r\n\r\n closeFeedbackTimeMenu() {\r\n this.showFeedbackTimes = false;\r\n }\r\n\r\n selectFeedbackType(type: string) {\r\n this.selectedFeedbackType = type;\r\n this.showFeedbackTimes = true;\r\n }\r\n\r\n selectFeedbackQueueTime(length: number, dropdown, modalContent) {\r\n if (this.selectedFeedbackType !== null) {\r\n dropdown.close();\r\n let isDelayed = length > 0;\r\n this.SendOrOpenFeedbackRequest(isDelayed, modalContent, length);\r\n }\r\n }\r\n\r\n feedbackDropdownChanged(isOpen:boolean) {\r\n if (!isOpen) {\r\n this.showFeedbackTimes = false;\r\n }\r\n }\r\n\r\n openHelpDialog() {\r\n this.helpDialogService.openDialog(\"Updated Request Feedback\");\r\n } \r\n\r\n checkPaperwork(nickName: string) {\r\n //console.log(\"Checking paperwork for \", nickName);\r\n this.clientService.HasInitialPaperWork(nickName)\r\n .subscribe(response => {\r\n //console.log(\"has initial paperwork: \", response);\r\n this.clientHasPaperWork = response;\r\n //get paperwork\r\n // if (response == true) {\r\n // let test = 'Here is a link to download a copy of our Initial Paperwork: {\r\n console.error(error);\r\n })\r\n }\r\n\r\n getCarbonNumber(clientId) {\r\n this.smsService.GetSMSNumber(clientId)\r\n .subscribe(response => {\r\n //console.log(\"carbon #: \", response);\r\n this.carbonNumber = response;\r\n }, error => {\r\n this.notify.error(\"Error getting carbon phone number\");\r\n console.error(error);\r\n })\r\n }\r\n\r\n getTrackableLink(clientId, clientTypeId) {\r\n this.trackableLink = `You can request your Introductory Offer at ${this.client.primaryUrl}`;\r\n // let name = this.trackableLink;\r\n // let targetUrl = this.client.primaryUrl;\r\n // let shortCodelength = 7;\r\n // let campaignId = 0;\r\n // let utmCampaign = null;\r\n // let utmSource = null;\r\n // let utmMedium = null;\r\n // let cg = \"\";\r\n // let tg = null;\r\n // let createdById = this.userService.clientUserId;\r\n // console.log(`smsService.GetTrackableLink(clientId:${clientId}, name:${name}, targetUrl:${targetUrl}, clientTypeId:${clientTypeId}, shortCodeLength:${shortCodelength}, campaignId:${campaignId}, utmCampaign:${utmCampaign}, utmSource:${utmSource}, utmMedium:${utmMedium}, cg:${cg}, tg:${tg}, createdById:${createdById})`);\r\n // this.smsService.GetTrackableLink(clientId, name, targetUrl, clientTypeId, shortCodelength, campaignId, utmCampaign, utmSource, utmMedium, cg, tg, createdById)\r\n // .subscribe(response => {\r\n // console.log(\"got trackable link: \", response);\r\n // this.trackableLink = `You can request your Introductory Offer at ${response}`;\r\n // console.log(\"Trackable Link: \", this.trackableLink);\r\n // }, error => {\r\n // //this.notify.error(\"Error getting trackable link\");\r\n // console.error(error);\r\n // })\r\n }\r\n\r\n SubmitComment(contactId: number, comment: string) {\r\n if (contactId > 0) {\r\n let activity = {\r\n contactId: contactId,\r\n clientUserId: this.userService.clientUserId,\r\n clientId: this.clientPickerService.selectedClientId,\r\n activityType: 'Carbon.CustomComment',\r\n activityDescription: comment\r\n }\r\n this.contactService.CreateContactActivity(activity).subscribe(response => {\r\n this.notify.success(\"Comment created successfully\");\r\n //this.activityCommentList.unshift(response);\r\n }, error => {\r\n this.notify.error(\"Error submitting comment\");\r\n console.error(error);\r\n })\r\n }\r\n }\r\n\r\n sendNewContactEmails(contactId: number, sendMapAddress: boolean, sendIntroOffer: boolean, sendPaperwork: boolean) {\r\n const emailAddress: string = this.newContact.email;\r\n const firstName: string = this.newContact.firstName;\r\n\r\n if (sendPaperwork || sendIntroOffer || sendMapAddress) {\r\n let email = new Email();\r\n email.toAddress = emailAddress;\r\n email.fromAddress = this.client.customerContactEmail;\r\n email.fromName = this.client.name;\r\n email.subject = \"Follow up info from \" + this.client.name;\r\n email.msgBody = `

Hello ${firstName},

`;\r\n email.msgBody += `

Thanks for your interest in ${this.client.name}. Below is the information that you requested in our conversation:

`\r\n\r\n if (sendMapAddress) {\r\n let nullAddress2 = this.client.Address2 != null ? \", \" + this.client.Address2 : \"\";\r\n email.msgBody += `

${this.client.name}
${this.client.address}${nullAddress2}
${this.client.city}, ${this.client.state} ${this.client.zipcode}
${this.client.primaryUrl}
Telephone:
${this.client.customerContactPhone}
Click to get `;\r\n\r\n let mapName = (this.client.clientTypeId == 4) ? \"The Joint Chiropractic\" : this.client.name;\r\n let mapAddress2 = this.client.address2.replace(\" \", \"+\");\r\n let mapCity = this.client.city.replace(\" \", \"+\");\r\n email.msgBody += `Map/Driving Directions

`;\r\n //create contactActivity\r\n //contact.RecordActivity(client.ClientId, cu.ClientUserId, ContactActivity.ActivityTypes.EmailedDirections, \"From Manage Phone Leads page.\");\r\n }\r\n\r\n if (sendIntroOffer) {\r\n //email.msgBody += `

Your offer will be emailed to you shortly

`;\r\n //currently, only the joint uses this...\r\n //TODO need to send actual coupon rather than link, see PostToTheJointComIntroOffer() method in core\r\n if (this.isTheJoint) {\r\n email.msgBody += `

Here is a link to our Introductory Offer: ${this.client.primaryUrl}

`\r\n }\r\n //create contactActivity\r\n //contact.RecordActivity(client.ClientId, cu.ClientUserId, ContactActivity.ActivityTypes.EmailedIntroCoupon, \"From Manage Phone Leads page.\");\r\n }\r\n\r\n if (sendPaperwork && this.clientHasPaperWork == true) {\r\n email.msgBody += `

Here is a link to download a copy of our Initial Paperwork: https://images.overthetop.com/images/uploads/${this.client.nickName}/Client/TheJoint-InitialPaperwork.pdf.

`\r\n //create contactActivity\r\n //contact.RecordActivity(client.ClientId, cu.ClientUserId, ContactActivity.ActivityTypes.EmailedInitialDocs, \"From Manage Phone Leads page.\");\r\n }\r\n\r\n email.msgBody += `

Thanks again for considering us here at ${this.client.name} and we look forward to assisting you.

`\r\n //console.log(\"email: \", email);\r\n //this.sendEmail(email);\r\n this.sendEmail(email, contactId);\r\n }\r\n }\r\n\r\n sendEmail(email: Email, contactId: number) {\r\n //create string for contactActivity description\r\n let subStrings = [];\r\n let newString;\r\n\r\n if (this.mapAddressE) {\r\n subStrings.push(\"map address\");\r\n }\r\n if (this.introductoryOfferE || this.introductoryOfferS) {\r\n subStrings.push(\"introductory offer\");\r\n }\r\n if (this.paperWorkE && this.clientHasPaperWork == true) {\r\n subStrings.push(\"paper work\");\r\n }\r\n let sendString = subStrings.join(\",\");\r\n if (subStrings.length > 1) {\r\n var lastComma = sendString.lastIndexOf(\",\");\r\n var firstString = sendString.slice(0, lastComma);\r\n var lastString = sendString.slice(lastComma + 1, sendString.length);\r\n newString = firstString + \" and \" + lastString;\r\n }\r\n else {\r\n newString = sendString;\r\n }\r\n //console.log(newString);\r\n\r\n this.emailService.SendEmail(email)\r\n .subscribe(response => {\r\n //console.log(\"email response: \", response);\r\n this.notify.success(\"Email successfully sent!\");\r\n //create contact activity\r\n let activity = {\r\n contactId: contactId,\r\n clientUserId: this.userService.clientUserId,\r\n clientId: this.clientPickerService.selectedClientId,\r\n activityType: 'Carbon.LeadDocs',\r\n activityDescription: 'Contact was emailed ' + newString\r\n }\r\n this.contactService.CreateContactActivity(activity).subscribe(response => {\r\n //console.log(response);\r\n }, error => {\r\n console.error(error);\r\n })\r\n }, error => {\r\n this.notify.error(\"Error sending email\");\r\n console.error(error);\r\n })\r\n }\r\n\r\n sendNewContactTexts(contactId: number, sendMapAddress: boolean, sendIntroOffer: boolean, sendPaperwork: boolean) {\r\n const firstName: string = this.newContact.firstName;\r\n const emailAddress: string = this.newContact.email;\r\n const mobilePhone: string = this.newContact.mobilePhone;\r\n const clientId: number = this.client.clientId;\r\n\r\n const sendIntroOfferEmail: boolean = this.introductoryOfferE;\r\n\r\n if (sendPaperwork || sendIntroOffer || sendMapAddress) {\r\n if (sendMapAddress) {\r\n\r\n let nullAddress2 = this.client.Address2 != null ? \", \" + this.client.Address2 : \"\";\r\n let message = `${this.client.name} address is ${this.client.address}${nullAddress2}, ${this.client.city}, ${this.client.state} ${this.client.zipcode}`;\r\n\r\n let smsParameters = {\r\n from: this.carbonNumber,\r\n to: 1 + mobilePhone,\r\n body: message,\r\n clientId: clientId,\r\n contactActivity: {\r\n contactId: contactId,\r\n activityType: \"Carbon.MapAddressSms\",\r\n activityDescription: message,\r\n clientUserId: this.userService.clientUserId\r\n }\r\n }\r\n\r\n this.sendSms(smsParameters);\r\n }\r\n if (sendIntroOffer) {\r\n if (this.isTheJoint) {\r\n\r\n if (emailAddress != null && emailAddress.trim() != \"\" && !sendIntroOfferEmail) {\r\n this.trackableLink = `You will receive your Introductory Offer in an email to ${emailAddress}`;\r\n let email = new Email();\r\n email.toAddress = emailAddress;\r\n email.fromAddress = this.client.customerContactEmail;\r\n email.fromName = this.client.name;\r\n email.subject = \"Follow up info from \" + this.client.name;\r\n email.msgBody = `

Hello ${firstName},

`;\r\n email.msgBody += `

Thanks for your interest in ${this.client.name}. Below is the information that you requested in our conversation:

`\r\n email.msgBody += `

Here is a link to our Introductory Offer: ${this.client.primaryUrl}

`\r\n email.msgBody += `

Thanks again for considering us here at ${this.client.name} and we look forward to assisting you.

`\r\n this.sendEmail(email, contactId);\r\n }\r\n\r\n //get trackable link to put in message\r\n let message = this.trackableLink;\r\n //console.log(\"trackableLink: \", message);\r\n\r\n let smsParameters = {\r\n from: this.carbonNumber,\r\n to: 1 + mobilePhone,\r\n body: message,\r\n clientId: clientId,\r\n contactActivity: {\r\n contactId: contactId,\r\n activityType: \"Carbon.OfferSms\",\r\n activityDescription: message,\r\n clientUserId: this.userService.clientUserId\r\n }\r\n }\r\n\r\n this.sendSms(smsParameters);\r\n }\r\n }\r\n if (sendPaperwork && this.clientHasPaperWork == true) {\r\n //console.log(\"sending paperwork sms\");\r\n let message = \"\";\r\n if (this.isTheJoint) {\r\n message = `The link to The Joint Chiropractic's initial paperwork is https://images.overthetop.com/images/uploads/${this.client.nickName}/Client/TheJoint-InitialPaperwork.pdf`;\r\n }\r\n\r\n //send sms\r\n let smsParameters = {\r\n from: this.carbonNumber,\r\n to: 1 + mobilePhone,\r\n body: message,\r\n clientId: clientId,\r\n contactActivity: {\r\n contactId: contactId,\r\n activityType: \"Carbon.PaperWorkSms\",\r\n activityDescription: message,\r\n clientUserId: this.userService.clientUserId\r\n }\r\n }\r\n this.sendSms(smsParameters);\r\n }\r\n //contactActivity is being created through the send sms api method\r\n }\r\n }\r\n\r\n sendSms(smsParameters) {\r\n this.smsService.SendMessage(smsParameters)\r\n .subscribe(response => {\r\n //console.log(\"sms response: \", response);\r\n this.notify.success(\"SMS successfully sent!\");\r\n }, error => {\r\n this.notify.error(\"Error sending sms\");\r\n console.error(error);\r\n })\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/contacts/contact-top/contact-top.component.ts","module.exports = \"textarea {\\r\\n resize: none;\\r\\n}\\r\\n\\r\\n.dark-modal .modal-content {\\r\\n background-color: #292b2c;\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.dark-modal .close {\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.light-blue-backdrop {\\r\\n background-color: #5cb3fd;\\r\\n}\\r\\n\\r\\n.permissionsList {\\r\\n list-style-type: none;\\r\\n}\\r\\n\\r\\n.email-UnknownStatus > b.hasEmail,\\r\\n.email-BouncedAddress > b.hasEmail\\r\\n/*.email-Opt-Out > b*/ {\\r\\n cursor: pointer;\\r\\n text-decoration: underline;\\r\\n}\\r\\n\\r\\n.email-BouncedAddress,\\r\\n.email-Opt-Out {\\r\\n color: red;\\r\\n}\\r\\n\\r\\n.email-Opt-In,\\r\\n.email-Double-Opt-In {\\r\\n color: green;\\r\\n}\\r\\n\\r\\n.sms-UnknownStatus > b.hasMobile,\\r\\n.sms-Opt-Out > b.hasMobile {\\r\\n cursor: pointer;\\r\\n text-decoration: underline;\\r\\n}\\r\\n\\r\\n.sms-Opt-In{\\r\\n color: green;\\r\\n}\\r\\n\\r\\n.sms-Opt-Out{\\r\\n color: red;\\r\\n}\\r\\n\\r\\n.card-body {\\r\\n max-height: 500px;\\r\\n overflow-y: scroll;\\r\\n}\\r\\n\\r\\n.unhandledLead{\\r\\n color: red;\\r\\n cursor: pointer;\\r\\n font-weight: bold;\\r\\n}\\r\\n\\r\\n.ringless-voicemail-btn {\\r\\n height: 1.75rem;\\r\\n width: 1.75rem;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.follow-up-button {\\r\\n background-color: rgba(0,0,0,.87);\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.follow-up-click{\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.datePicker {\\r\\n z-index: 99;\\r\\n background-color: white;\\r\\n}\\r\\n\\r\\n.helpLink {\\r\\n color: #0e5ba5;\\r\\n cursor: pointer;\\r\\n vertical-align: super;\\r\\n margin-left: 10px;\\r\\n margin-top: 5px;\\r\\n font-size: 18px !important;\\r\\n}\\r\\n\\r\\n.notALeadOrCustomer {\\r\\n font-size: 0.7em;\\r\\n padding-left: 0.25em\\r\\n}\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/contacts/contacts.component.css\n// module id = ./src/app/contacts/contacts.component.css\n// module chunks = main","module.exports = \"
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{contact.newLeadId != 0 && hasLeadService && !(contact | isCustomer: clientTypeId) ? \\\"Status\\\" : \\\"Contact Info\\\"}}\\r\\n (Not a lead or customer)\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n 0\\\" style=\\\"float:right;\\\">\\r\\n Activity \\r\\n at\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n Follow-up in: {{followUpCount}} {{followUpDuration}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n

\\r\\n \\r\\n \\r\\n \\r\\n {{contact.firstName}} \\\"{{contact.preferredName}}\\\" {{contact.lastName}} - Edit\\r\\n

\\r\\n

Email: {{contact.email}}

\\r\\n

Mobile Phone: {{contact.mobilePhone | phone}}

\\r\\n

Home Phone: {{contact.phoneNumber | phone}}

\\r\\n

Work Phone: {{contact.workPhone | phone}}

\\r\\n

Date Created: {{contact.dateCreated + 'Z' | date}}

\\r\\n

Permissions:

\\r\\n
    \\r\\n \\r\\n\\r\\n
  • \\r\\n SMS: {{smsStatusString(contact.smspermission)}}\\r\\n
  • \\r\\n\\r\\n
  • \\r\\n Email: {{emailStatusString(contact.emailOptInStatus)}}\\r\\n
  • \\r\\n
\\r\\n \\r\\n
\\r\\n

Feedback Left:

\\r\\n
0; else noFeedback\\\">\\r\\n
\\r\\n

{{feedback.activityDescription}} stars left on {{feedback.dateCreated + 'Z' | date:'MMM d, y h:mm a'}}

\\r\\n
\\r\\n
\\r\\n

None

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Activity\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Comments\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n

No Contact Found - Add New Contact

\\r\\n

Editing Contact

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/contacts/contacts.component.html\n// module id = ./src/app/contacts/contacts.component.html\n// module chunks = main","import { Component, OnInit, AfterViewInit, OnDestroy, HostListener } from '@angular/core';\r\n\r\nimport { Router, ActivatedRoute, NavigationEnd } from '@angular/router';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { Subject } from 'rxjs';\r\nimport 'rxjs/add/operator/takeUntil';\r\nimport 'rxjs/add/operator/merge';\r\nimport { forkJoin } from 'rxjs/observable/forkJoin';\r\nimport { NgbModal, NgbModalRef, ModalDismissReasons } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nimport { Contact } from '../models/contact';\r\nimport { ContactSelectorComponent } from './contact-selector/contact-selector.component';\r\n\r\nimport { ContactService } from '../services/contact.service';\r\nimport { SmsService } from '../services/sms.service';\r\nimport { SpinnerOverlayService } from '../services/spinner-overlay.service';\r\nimport { ClientPickerService } from '../services/client-picker.service';\r\nimport { NotifyService } from '../services/notify.service';\r\nimport { ClientService } from '../services/client.service';\r\nimport { Subscription } from 'rxjs/Subscription';\r\nimport { UserService } from '../services/user.service';\r\nimport { SmsConversationService } from '../services/sms-conversation.service';\r\nimport { ChecklistService } from '../services/checklist.service';\r\nimport { LeadsService } from '../services/leads.service';\r\nimport { ClientSubscribedServices } from '../models/client-subscribed-services';\r\nimport { VoiceService } from '../services/voice.service';\r\nimport { TopBarService } from '../services/top-bar.service';\r\nimport { ContactTopComponent } from './contact-top/contact-top.component';\r\nimport { LeadActivityTypes } from '../models/lead-activity-types';\r\nimport { OptOutWarningComponent } from './opt-out-warning/opt-out-warning.component';\r\nimport { of } from 'rxjs/observable/of';\r\nimport { concatMap, catchError } from 'rxjs/operators';\r\nimport { ContactDupeWarningComponent } from './contact-merge/contact-dupe-warning.component';\r\nimport { fromPromise } from 'rxjs/observable/fromPromise';\r\nimport { BlinkService } from '../services/blink.service';\r\nimport { ConfigService } from '../services/config.service';\r\nimport { NgbDate } from '@ng-bootstrap/ng-bootstrap/datepicker/ngb-date';\r\nimport Popper from 'popper.js';\r\nimport * as moment from 'moment';\r\nimport { OptInWarningComponent } from './opt-in-warning/opt-in-warning.component';\r\nimport { HelpDialogService } from '../services/help-dialog.service';\r\n\r\nconst EmailStatus: string[] = [\"Unknown Status\", \"Opt-Out\", \"Opt-In\", \"Double-Opt-In\", \"Bounced Address\"];\r\nconst SMSpermissions: string[] = [\"Unknown Status\", \"Opt-In\", \"Opt-Out\"];\r\n\r\n@Component({\r\n selector: 'app-contacts',\r\n templateUrl: './contacts.component.html',\r\n styleUrls: ['./contacts.component.css']\r\n})\r\nexport class ContactsComponent implements OnInit, AfterViewInit, OnDestroy {\r\n searchValue: string = \"\";\r\n phoneNumber: string = \"\";\r\n searched: boolean = false;\r\n contact: Contact = null;\r\n newContact: Contact = new Contact();\r\n editing: boolean = false;\r\n feedbackList: any[];\r\n //contactGuid: string = \"\";\r\n hasTwoWayConfig: boolean = false;\r\n email: string = \"\";\r\n modalRef: any = null;\r\n confirmHandleLead: any;\r\n allReturnedSearchResults: any = null;\r\n possibleMatchingContacts: any = null;\r\n matchedContact: any;\r\n\r\n contactGuidQuery: any;\r\n clientIdSubscription: Subscription = null;\r\n clientId: number = 0;\r\n clientTypeId: number = 0;\r\n activityList: any[];\r\n activityCommentList: any[];\r\n subscription: Subscription;\r\n hasLeadService: boolean = false;\r\n hasRinglessVoicemailService: boolean = false;\r\n hasReferralService: boolean = false;\r\n destroy$ = new Subject();\r\n stopSubscriptions$ = new Subject();\r\n firstInitialized: boolean = false;\r\n allowManualSmsOverride: boolean = false;\r\n\r\n datePopper: Popper;\r\n isDatePickerShown: boolean = false;\r\n today = new Date();\r\n ngbToday: NgbDate;\r\n followUpCount: number = 0;\r\n followUpDuration: string = \"days\";\r\n isEditingLeadStatus: boolean = false;\r\n saveOrCancel: boolean = false;\r\n originalLeadStatus = null;\r\n selectedDate: Date = null;\r\n\r\n newCallBackNumber: number = 0;\r\n newCallBackDuration: string = \"days\";\r\n secondCallBackNumber: number = 1;\r\n secondCallBackDuration: string = \"days\";\r\n thirdCallBackNumber: number = 3;\r\n thirdCallBackDuration: string = \"days\";\r\n fourthCallBackNumber: number = 4;\r\n fourthCallBackDuration: string = \"days\";\r\n fifthCallBackNumber: number = 7;\r\n fifthCallBackDuration: string = \"days\";\r\n\r\n leadStartDate: any;\r\n contactList: any;\r\n\r\n constructor(private smsService: SmsService,\r\n private configService: ConfigService,\r\n private blinkService: BlinkService,\r\n private leadsService: LeadsService,\r\n private contactService: ContactService,\r\n private spinnerOverlayService: SpinnerOverlayService,\r\n private clientPickerService: ClientPickerService,\r\n private clientService: ClientService,\r\n private notify: NotifyService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private modalService: NgbModal,\r\n private userService: UserService,\r\n private smsConversationService: SmsConversationService,\r\n private checklistService: ChecklistService,\r\n private voiceService: VoiceService,\r\n private topBarService: TopBarService,\r\n private helpDialogService: HelpDialogService\r\n //private calendar: NgbCalendar\r\n ) {\r\n //this.route.queryParams.subscribe(params => {\r\n // this.contactGuidQuery = params[\"contactGuid\"];\r\n //})\r\n\r\n this.router.events.takeUntil(this.destroy$).subscribe((e: any) => {\r\n if (e instanceof NavigationEnd) {\r\n if (this.firstInitialized) {\r\n this.stopSubscriptions$.next();\r\n this.ngOnInit();\r\n }\r\n }\r\n })\r\n }\r\n\r\n ngOnInit() {\r\n this.firstInitialized = true;\r\n this.resetDefaultValues();\r\n let mergedStopSubscriptions$ = this.destroy$.merge(this.stopSubscriptions$);\r\n\r\n this.ngbToday = new NgbDate(this.today.getFullYear(), this.today.getMonth() + 1, this.today.getDate());\r\n\r\n this.subscription = this.clientPickerService.$clientRequestFinished.takeUntil(mergedStopSubscriptions$).subscribe(\r\n (isDone: boolean) => {\r\n this.clientId = this.clientPickerService.selectedClient.clientId;\r\n window['Appcues'].track('v1_contacts');\r\n //this.HasTwoWaySMS();\r\n this.GetFollowUpConfig(this.clientId);\r\n\r\n this.clientTypeId = this.clientPickerService.selectedClient.clientTypeId;\r\n this.configService.getClientTypeConfig(\"AllowManualSmsOverride\", this.clientTypeId).subscribe(resp => {\r\n //console.log(\"AllowManualSmsOverride Value: \", resp);\r\n if (resp) {\r\n this.allowManualSmsOverride = (resp === 'true');\r\n }\r\n }, error => {\r\n console.error(error);\r\n });\r\n\r\n this.GetCarbonLeadStartDate(this.clientId);\r\n\r\n this.clientService.GetSubscribedServices(this.clientId).subscribe((services: number[]) => {\r\n this.hasLeadService = services.includes(ClientSubscribedServices.Leads);\r\n this.hasRinglessVoicemailService = services.includes(ClientSubscribedServices.RinglessVoicemail);\r\n this.hasReferralService = services.includes(ClientSubscribedServices.InstantReferrals)\r\n });\r\n this.route.queryParams.takeUntil(mergedStopSubscriptions$).subscribe(params => {\r\n this.contactGuidQuery = params[\"contactGuid\"];\r\n //this.router.navigate([{ outlets: { topbar: null } }]);\r\n if (this.contactGuidQuery != null) {\r\n this.SearchContactByQueryString(this.contactGuidQuery);\r\n }\r\n })\r\n })\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.topBarService.setTopBar(ContactTopComponent);\r\n }\r\n\r\n GetCarbonLeadStartDate(clientId) {\r\n this.clientService.GetCarbonLeadServiceStartDate(clientId, 68) //68 is the leads carbon service\r\n .subscribe(response => {\r\n if (response == null) {\r\n return;\r\n }\r\n let beginDate = new Date(response.beginDate);\r\n let dateToStart = beginDate.setDate(beginDate.getDate()); //active carbon service start date\r\n this.leadStartDate = dateToStart;\r\n //console.log(dateToStart);\r\n }, error => {\r\n console.error(error);\r\n })\r\n }\r\n\r\n HasTwoWaySMS() {\r\n this.clientService.GetClientConfigs(\"TwoWaySMS\", this.clientId).subscribe(response => {\r\n if (response) {\r\n this.hasTwoWayConfig = response;\r\n }\r\n }, error => {\r\n console.error(error);\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n this.topBarService.removeTopBar();\r\n }\r\n\r\n resetDefaultValues() {\r\n this.contactService.currentContact = null;\r\n this.phoneNumber = \"\";\r\n this.searched = false;\r\n this.contact = null;\r\n this.newContact = new Contact();\r\n this.editing = false;\r\n this.feedbackList = [];\r\n this.email = \"\";\r\n this.modalRef = null;\r\n this.confirmHandleLead = null;\r\n\r\n this.contactGuidQuery = null;\r\n this.clientIdSubscription = null;\r\n this.clientId = 0;\r\n this.activityList = [];\r\n this.activityCommentList = [];\r\n this.subscription = null;\r\n this.hasLeadService = false;\r\n this.hasRinglessVoicemailService = false;\r\n }\r\n\r\n SearchContactByQueryString(contactGuid) {\r\n //console.log(this.contactIdQuery);\r\n //console.log(this.contactGuidQuery);\r\n this.spinnerOverlayService.open();\r\n\r\n this.contactService.GetContactByContactGuid(contactGuid, this.clientId).subscribe(response => {\r\n this.spinnerOverlayService.close();\r\n response.contact.handled = response.handled;\r\n response.contact.newLeadId = response.newLeadId;\r\n response.contact.leadStatus = response.leadStatus;\r\n response.contact.franchiseName = response.franchiseName;\r\n //console.log(\"set selected response.contact: \", response.contact);\r\n //this.setSelectedContact(response.contact);\r\n //search for all contacts with a customerId and matching name,ph#,or email\r\n let firstName = response.contact.firstName;\r\n let lastName = response.contact.lastName;\r\n let email = response.contact.email;\r\n let mobilePhone = response.contact.mobilePhone;\r\n\r\n this.contactService.GetContactsByNameEmailOrPhoneAny(firstName, lastName, email, mobilePhone, response.contact.clientId, this.clientPickerService.selectedClient.clientTypeId).subscribe(resp => {\r\n this.allReturnedSearchResults = resp;\r\n\r\n this.setSelectedContact(response.contact);\r\n //this.possibleMatchingContacts = resp.filter(con => /*(con.email == selectedContact.email || con.mobilePhone == selectedContact.mobilePhone || (con.firstName.toLowerCase().includes(selectedContact.firstName) && con.lastName.toLowerCase().includes(selectedContact))) &&*/ (con.customerId != null && con.customerId != \"\"));\r\n })\r\n //this.contactService.currentContact = response;\r\n //this.searched = true;\r\n //this.contact = response;\r\n\r\n }, error => {\r\n console.error(error);\r\n this.spinnerOverlayService.close();\r\n });\r\n }\r\n\r\n OpenHandleLeadDialog(content, contact) {\r\n this.confirmHandleLead = contact;\r\n this.modalRef = this.modalService.open(content);\r\n }\r\n\r\n HandleSMSPermissionRequest() {\r\n if (this.contact !== null) {\r\n let contactId: number = this.contact.contactId;\r\n let clientId: number = this.contact.clientId;\r\n\r\n this.smsService.SendSMSVerification(contactId, clientId, this.userService.clientUserId).subscribe(response => {\r\n //console.log(response);\r\n }, error => console.error(error));\r\n }\r\n }\r\n\r\n GetFollowUpConfig(clientId) {\r\n let configNameFollowUp: string = 'Carbon.FollowUp';\r\n let followUpConfigString: string = \"new:0 days,second:1 days,third:3 days,fourth:4 days,fifth:7 days\";\r\n //let hasFollowUpConfig: boolean = false;\r\n\r\n this.clientService.GetClientConfigs(configNameFollowUp, clientId)\r\n .subscribe(resp => {\r\n if (resp) {\r\n //hasFollowUpConfig = true;\r\n followUpConfigString = resp;\r\n }\r\n //console.log(followUpConfigString);\r\n let callBacks = followUpConfigString.split(\",\");\r\n for (let i = 0; i < callBacks.length; i++) {\r\n let each = callBacks[i].split(\":\")[1];\r\n let count = each.split(\" \")[0];\r\n let duration = each.split(\" \")[1];\r\n\r\n if (i == 0) {\r\n this.newCallBackNumber = parseInt(count);\r\n this.newCallBackDuration = duration;\r\n }\r\n else if (i == 1) {\r\n this.secondCallBackNumber = parseInt(count);\r\n this.secondCallBackDuration = duration;\r\n }\r\n else if (i == 2) {\r\n this.thirdCallBackNumber = parseInt(count);\r\n this.thirdCallBackDuration = duration;\r\n }\r\n else if (i == 3) {\r\n this.fourthCallBackNumber = parseInt(count);\r\n this.fourthCallBackDuration = duration;\r\n }\r\n else if (i == 4) {\r\n this.fifthCallBackNumber = parseInt(count);\r\n this.fifthCallBackDuration = duration;\r\n }\r\n }\r\n }, err => {\r\n console.error(\"Could not get follow up configs\");\r\n })\r\n }\r\n\r\n ToggleDatePicker(caret: Element, datepicker: Element) {\r\n\r\n if (!this.isDatePickerShown) {\r\n this.ShowDatePicker(caret, datepicker);\r\n }\r\n else {\r\n this.HideDatePicker();\r\n }\r\n }\r\n\r\n ShowDatePicker(caret: Element, datepicker: Element) {\r\n this.isDatePickerShown = true;\r\n this.datePopper = new Popper(caret, datepicker);\r\n this.datePopper.scheduleUpdate();\r\n }\r\n\r\n HideDatePicker() {\r\n this.isDatePickerShown = false;\r\n if (this.datePopper) {\r\n this.datePopper.destroy();\r\n this.datePopper = null;\r\n }\r\n }\r\n\r\n onDateSelection(event) {\r\n this.CalculateDaysUntilFollowUp(event);\r\n this.HideDatePicker();\r\n }\r\n\r\n CalculateDaysUntilFollowUp(event) {\r\n //grab the current time and set the selected date's time to it\r\n //console.log(this.today);\r\n var time = this.today.toString().split(\" \")[4];\r\n //console.log(\"copied time: \", time);\r\n var hours = time.split(\":\")[0];\r\n var minutes = time.split(\":\")[1];\r\n var seconds = time.split(\":\")[2];\r\n //console.log(\"hours: \", hours, \" minutes: \", minutes, \" seconds: \", seconds);\r\n //console.log(\"event date: \", event);\r\n //months are offset\r\n event.month = event.month - 1;\r\n let selected = moment(event).toDate();\r\n selected.setHours(parseInt(hours));\r\n selected.setUTCMinutes(parseInt(minutes));\r\n selected.setUTCSeconds(parseInt(seconds));\r\n //console.log(\"selected: \", selected);\r\n\r\n //compare the selected date with today's date (as ms, then convert to days)\r\n let todayMoment = moment(this.today).valueOf();\r\n let selectedMoment = moment(selected).valueOf();\r\n let differenceInMs = selectedMoment - todayMoment;\r\n let difference = Math.ceil(differenceInMs / (60 * 60 * 24 * 1000));\r\n\r\n //console.log('todayMoment: ', todayMoment);\r\n //console.log('selectedMoment: ', selectedMoment);\r\n //console.log(\"difference: \", difference);\r\n\r\n this.selectedDate = selected;\r\n this.followUpCount = difference;\r\n }\r\n\r\n LeadStatusSelected(value: any, contact) {\r\n let leadStatus = value.split(\": \")[1];\r\n\r\n let utcToday = moment.utc(this.today);\r\n //console.log(\"utcToday: \", utcToday);\r\n\r\n this.saveOrCancel = true;\r\n if (leadStatus < 6) {\r\n this.isEditingLeadStatus = true;\r\n }\r\n else {\r\n this.isEditingLeadStatus = false;\r\n }\r\n\r\n if (leadStatus == 1) {\r\n this.followUpCount = this.newCallBackNumber;\r\n }\r\n else if (leadStatus == 2) {\r\n this.followUpCount = this.secondCallBackNumber;\r\n }\r\n else if (leadStatus == 3) {\r\n this.followUpCount = this.thirdCallBackNumber;\r\n }\r\n else if (leadStatus == 4) {\r\n this.followUpCount = this.fourthCallBackNumber;\r\n }\r\n else if (leadStatus == 5) {\r\n this.followUpCount = this.fifthCallBackNumber;\r\n }\r\n else {\r\n this.followUpCount = 0;\r\n }\r\n this.selectedDate = utcToday.clone().add(this.followUpCount, 'day').toDate();\r\n //console.log(\"selected Date: \", this.selectedDate);\r\n }\r\n\r\n CancelLeadStatus() {\r\n this.isEditingLeadStatus = false;\r\n this.saveOrCancel = false;\r\n this.contact.leadStatus = this.originalLeadStatus;\r\n //console.log(\"cancelled: \", this.originalLeadStatus);\r\n }\r\n\r\n UpdateLeadStatus(/*value: any, contact*/) {\r\n //let leadStatus = value.split(\": \")[1];\r\n let contact = this.contact;\r\n let leadStatus = this.contact.leadStatus;\r\n //console.log(\"leadStatus: \", contact.leadStatus);\r\n if(!contact?.newLeadId || contact.newLeadId === 0) {\r\n this.notify.error(\"Error handling lead: Invalid NewLeadId\");\r\n return;\r\n }\r\n\r\n this.isEditingLeadStatus = false;\r\n this.saveOrCancel = false;\r\n this.leadsService.UpdateAsHandled(contact.newLeadId, this.userService.clientUserId, leadStatus, contact.contactId, this.selectedDate)\r\n .subscribe(response => {\r\n if (this.leadsService.unreadLeadsCount == 0) {\r\n //console.log(\"blink stopped\");\r\n if (this.clientService.hasBlink == \"true\") {\r\n this.blinkService.Stop().subscribe();\r\n }\r\n }\r\n this.contact.handled = 1;\r\n\r\n this.getContactActivity(response.contactId);\r\n\r\n if (leadStatus == LeadActivityTypes.NoLongerInterested) {\r\n //opt out of sms and email\r\n //don't want to update deadleadreason if dead.\r\n this.UpdateContactOptInStatuses(0);\r\n }\r\n if (leadStatus == LeadActivityTypes.NeverWasALead) {\r\n //update contact's deadLeadReason spam = 4\r\n this.UpdateContactOptInStatuses(4);\r\n }\r\n //change date (get carbon service start date) so that number of leads is correct\r\n //let today: any = new Date();\r\n //let startDate: any = new Date().setDate(today.getDate() - 30);\r\n this.spinnerOverlayService.open();\r\n this.leadsService.GetNumberOfLeads(this.leadStartDate, this.clientId) //active lead service start date\r\n .subscribe(response => {\r\n this.leadsService.unreadLeadsCount = response;\r\n //console.log(\"count: \", response);\r\n if (this.clientService.hasBlink == \"true\") {\r\n this.blinkService.Stop().subscribe();\r\n if (response > 0) {\r\n //console.log(\"blink on app start\");\r\n this.blinkService.LightUp().subscribe();\r\n }\r\n }\r\n this.notify.success(\"Successfully handled lead.\")\r\n this.spinnerOverlayService.close();\r\n },\r\n error => {\r\n console.error(error);\r\n });\r\n\r\n }, error => {\r\n this.notify.error(\"Error handling lead.\");\r\n console.error(error);\r\n })\r\n }\r\n\r\n UpdateContactOptInStatuses(deadLeadReason) {\r\n\r\n let data = this.contact;\r\n //console.log(\"contact to update: \", data);\r\n data.emailOptInStatus = 1;\r\n data.smspermission = 2;\r\n data.DeadLeadReason = deadLeadReason;\r\n const clientUserId = this.userService.clientUserId;\r\n\r\n this.contactService.UpdateContact(data, clientUserId)\r\n .subscribe(response => {\r\n //console.log(\"opted out: \", response);\r\n this.notify.success(\"Dead or spam contact, opted out of sms and email\");\r\n },\r\n error => {\r\n this.notify.error(\"Error opting out of sms and email\");\r\n console.error(\"could not opt out of sms and email\", error);\r\n })\r\n }\r\n\r\n HandleSearch(event) {\r\n event.target.blur();\r\n event.preventDefault();\r\n //console.log(\"searched value: \", this.searchValue);\r\n\r\n this.editing = false;\r\n this.contactService.currentContact = null;\r\n\r\n this.spinnerOverlayService.open();\r\n this.contactService.GetContactsByNameEmailOrPhone(this.clientPickerService.selectedClient.clientTypeId, this.searchValue, this.clientPickerService.selectedClientId)\r\n .subscribe(response => {\r\n this.spinnerOverlayService.close();\r\n\r\n if (response == null || response.length == 0) {\r\n this.notify.info(\"No contacts found.\");\r\n this.setSelectedContact(null);\r\n this.newContact = new Contact();\r\n }\r\n else if (response.length > 0) {\r\n this.allReturnedSearchResults = response;\r\n let modalRef = this.modalService.open(ContactSelectorComponent, { windowClass: 'modal-window-xl', size: 'lg' });\r\n modalRef.componentInstance.contactList = response;\r\n modalRef.componentInstance.clientTypeId = this.clientTypeId;\r\n modalRef.componentInstance.onContactSelected.subscribe(selectedContact => {\r\n this.setSelectedContact(selectedContact);\r\n modalRef.close();\r\n })\r\n }\r\n }, error => {\r\n this.spinnerOverlayService.close();\r\n this.notify.error(\"Error: Invalid search parameter.\");\r\n console.error(error);\r\n })\r\n }\r\n\r\n setSelectedContact(selectedContact: Contact) {\r\n this.contactService.currentContact = selectedContact;\r\n this.contact = selectedContact;\r\n this.matchedContact = selectedContact;\r\n this.searched = true;\r\n if (selectedContact !== null) {\r\n this.originalLeadStatus = selectedContact.leadStatus;\r\n\r\n //console.log(\"set selected all returned search results: \", this.allReturnedSearchResults);\r\n if (this.allReturnedSearchResults != null) {\r\n this.possibleMatchingContacts = this.allReturnedSearchResults.filter(con => {\r\n return (con.email == selectedContact.email\r\n || con.mobilePhone == selectedContact.mobilePhone\r\n || (con.firstName.toLowerCase().includes(selectedContact.firstName)\r\n && con.lastName.toLowerCase().includes(selectedContact.lastName)\r\n )\r\n )\r\n //&& (con.customerId != null && con.customerId != \"\") \r\n && con.active == true\r\n });\r\n }\r\n //console.log(\"possible matching contacts: \", this.possibleMatchingContacts);\r\n if (this.possibleMatchingContacts != null) {\r\n this.matchedContact = this.possibleMatchingContacts.filter(co => (co.contactId == selectedContact.contactId && co.clientId == selectedContact.clientId))[0];\r\n }\r\n //console.log(\"filtered matching contact = selected: \", this.matchedContact);\r\n\r\n //console.log(this.contact.leadStatus);\r\n if (this.contact.leadStatus == 1) {\r\n this.followUpCount = this.newCallBackNumber;\r\n this.followUpDuration = this.newCallBackDuration;\r\n }\r\n else if (this.contact.leadStatus == 2) {\r\n this.followUpCount = this.secondCallBackNumber;\r\n this.followUpDuration = this.secondCallBackDuration;\r\n }\r\n else if (this.contact.leadStatus == 3) {\r\n this.followUpCount = this.thirdCallBackNumber;\r\n this.followUpDuration = this.thirdCallBackDuration;\r\n }\r\n else if (this.contact.leadStatus == 4) {\r\n this.followUpCount = this.fourthCallBackNumber;\r\n this.followUpDuration = this.fourthCallBackDuration;\r\n }\r\n else if (this.contact.leadStatus == 5) {\r\n this.followUpCount = this.fifthCallBackNumber;\r\n this.followUpDuration = this.fifthCallBackDuration;\r\n }\r\n this.getContactActivity(selectedContact.contactId);\r\n }\r\n }\r\n\r\n CustomerLocationChanged(event) {\r\n //console.log(\"changed location to: \", event.franchiseName);\r\n //console.log(\"passed-in contact: \", event);\r\n //console.log(\"matched contact: \", this.matchedContact);\r\n ////this.setSelectedContact(this.matchedContact);\r\n //this.matchedContact = event;\r\n this.setSelectedContact(event);\r\n }\r\n\r\n getContactActivity(contactId: number) {\r\n const clientId = this.clientPickerService.selectedClientId;\r\n\r\n forkJoin(\r\n this.contactService.GetContactActivity(contactId, clientId)\r\n .map(ca => {\r\n let activityList = ca.filter(ac => ac.activityType !== \"Carbon.CustomComment\" && !ac.activityDescription.includes(\"SMS Sent:\"));\r\n let activityCommentList = ca.filter(ac => (ac.activityType === \"Carbon.CustomComment\" || ac.activityType === \"Carbon.NegativeReviewComment\") && ac.clientId == clientId);\r\n let feedbackList = activityList.filter(ac => ac.activityType == \"Carbon.Rating\");\r\n\r\n return {\r\n original: ca,\r\n activityList: activityList,\r\n activityCommentList: activityCommentList,\r\n feedbackList: feedbackList\r\n };\r\n }),\r\n this.leadsService.GetActivity(clientId, undefined, contactId),\r\n this.smsService.GetAllSmsActivity(contactId, this.contact.mobilePhone, clientId)\r\n \r\n ).subscribe(response => {\r\n //console.log(\"Merged: \", response);\r\n const contactActivity = response[0];\r\n const newLeadActivity = response[1];\r\n const smsActivity = response[2];\r\n\r\n if (newLeadActivity != null && this.hasLeadService) {\r\n this.activityList = contactActivity.activityList\r\n .concat(newLeadActivity.newLeadActivity)\r\n .sort((a, b) => b.dateCreated.localeCompare(a.dateCreated));\r\n }\r\n else {\r\n this.activityList = contactActivity.activityList.sort((a, b) => b.dateCreated.localeCompare(a.dateCreated));\r\n }\r\n\r\n if (smsActivity != null) {\r\n this.activityList = this.activityList\r\n .concat(smsActivity)\r\n .sort((a, b) => b.dateCreated.localeCompare(a.dateCreated));\r\n }\r\n else {\r\n this.activityList = this.activityList.sort((a, b) => b.dateCreated.localeCompare(a.dateCreated));\r\n }\r\n\r\n this.activityCommentList = contactActivity.activityCommentList;\r\n this.feedbackList = contactActivity.feedbackList;\r\n this.contactService.sent = contactActivity.feedbackList\r\n\r\n }, error => {\r\n this.notify.error(\"Error getting contact activity\");\r\n console.error(error);\r\n })\r\n }\r\n\r\n SubmitComment(comment: string) {\r\n let activity = {\r\n contactId: this.contact.contactId,\r\n clientUserId: this.userService.clientUserId,\r\n clientId: this.clientPickerService.selectedClientId,\r\n activityType: 'Carbon.CustomComment',\r\n activityDescription: comment\r\n }\r\n this.contactService.CreateContactActivity(activity).subscribe(response => {\r\n this.notify.success(\"Comment created successfully\");\r\n this.activityCommentList.unshift(response);\r\n }, error => {\r\n this.notify.error(\"Error submitting comment\");\r\n console.error(error);\r\n })\r\n }\r\n\r\n SubmitContact() {\r\n let contactObservable: Observable;\r\n if (this.newContact.contactId === 0) {\r\n this.newContact.leadSource = \"Carbon\";\r\n this.newContact.clientId = this.clientPickerService.selectedClientId;\r\n contactObservable = this.contactService.CreateContact(this.newContact)\r\n }\r\n else {\r\n contactObservable = this.CheckAndUpdateContact(this.newContact);\r\n //contactObservable = this.contactService.UpdateContact(this.newContact);\r\n }\r\n\r\n if (!this.contactValid(this.newContact)) {\r\n this.notify.error(\"All fields are required\");\r\n return false;\r\n }\r\n this.spinnerOverlayService.open();\r\n contactObservable.subscribe(response => {\r\n if (response !== undefined) {\r\n this.contactService.currentContact = null;\r\n this.editing = false;\r\n this.notify.success(this.newContact.contactId === 0 ? \"Contact Successfully Created\" : \"Contact Successfully Edited\");\r\n this.contactService.currentContact = response;\r\n this.spinnerOverlayService.close();\r\n this.newContact = response;\r\n this.contact = response;\r\n this.activityList = response.activity;\r\n }\r\n }, error => {\r\n console.error(\"error.error: \", error.error);\r\n let errorMsg = this.newContact.contactId === 0 ? \"Error Creating Contact\" : \"Error Editing Contact\";\r\n if (error.status === 400 && error.error.includes(\"already\")) {\r\n this.email = this.newContact.email.trim();\r\n this.phoneNumber = this.newContact.mobilePhone.trim();\r\n //let phoneNumberDigits = this.phoneNumber.replace(/\\D/g, '');\r\n let clientType = this.clientPickerService.selectedClient.clientTypeId;\r\n let clientId = this.clientPickerService.selectedClientId;\r\n\r\n if (error.error == \"Phone Number and Email already exists in our system.\") {\r\n errorMsg = \"Error: Duplicate Phone Number and Email. Getting Contact...\";\r\n this.getContactByPhone(this.phoneNumber, clientType, clientId);\r\n }\r\n else if (error.error == \"Phone Number already exists in our system.\") {\r\n errorMsg = \"Error: Duplicate Phone Number. Getting Contact...\";\r\n this.getContactByPhone(this.phoneNumber, clientType, clientId);\r\n }\r\n else if (error.error == \"Email already exists in our system.\") {\r\n errorMsg = \"Error: Duplicate Email. Getting Contact...\";\r\n this.getContactByEmail(this.email, clientType, clientId);\r\n }\r\n else {\r\n errorMsg = \"Error creating Contact.\"\r\n }\r\n }\r\n this.notify.error(errorMsg);\r\n this.spinnerOverlayService.close();\r\n console.error(error);\r\n })\r\n }\r\n\r\n getContactByPhone(phoneNumber, clientType, clientId) {\r\n this.contactService.GetContactsByPhone(phoneNumber, clientType, clientId)\r\n .subscribe(response => {\r\n this.spinnerOverlayService.close();\r\n //console.log(\"Existing contact: \", response);\r\n //If there is one existing contact in the selected client, select it automatically\r\n let thisClientsContacts = response.filter(con => con.clientId === clientId);\r\n if (thisClientsContacts.length === 1) {\r\n this.setSelectedContact(thisClientsContacts[0]);\r\n }\r\n else {\r\n if (response.length > 1) {\r\n let modalRef = this.modalService.open(ContactSelectorComponent, { windowClass: 'modal-window-xl', size: 'lg' });\r\n modalRef.componentInstance.contactList = response;\r\n modalRef.componentInstance.clientTypeId = this.clientTypeId;\r\n modalRef.componentInstance.onContactSelected.subscribe(selectedContact => {\r\n this.setSelectedContact(selectedContact);\r\n modalRef.close();\r\n })\r\n }\r\n else if (response.length === 1) {\r\n this.setSelectedContact(response[0]);\r\n }\r\n else {\r\n this.setSelectedContact(null);\r\n this.newContact = new Contact();\r\n this.newContact.mobilePhone = this.phoneNumber;\r\n }\r\n }\r\n\r\n }, error => {\r\n this.notify.error(\"Error Finding Contact.\");\r\n console.error(error);\r\n this.spinnerOverlayService.close();\r\n })\r\n }\r\n\r\n updateContactPhone(updateContact) {\r\n const clientUserId = this.userService.clientUserId;\r\n updateContact.mobilePhone = this.newContact.mobilePhone;\r\n this.contactService.UpdateContact(updateContact, clientUserId)\r\n .subscribe(response => {\r\n console.log(response);\r\n },\r\n error => {\r\n console.error(error);\r\n })\r\n }\r\n\r\n getContactByEmail(email, clientType, clientId) {\r\n this.contactService.GetContactsByEmail(email, clientType, clientId)\r\n .subscribe(response => {\r\n //console.log(\"Existing contact: \", response);\r\n //If there is one existing contact in the selected client, select it automatically\r\n let thisClientsContacts = response.filter(con => con.clientId === clientId);\r\n //if the contact doesn't have a phone number, assign the searched value and update\r\n if (thisClientsContacts.length === 1) {\r\n //console.log(\"filter exists 1\");\r\n if (thisClientsContacts[0].mobilePhone == '') {\r\n this.updateContactPhone(thisClientsContacts[0]);\r\n }\r\n this.setSelectedContact(thisClientsContacts[0]);\r\n }\r\n else {\r\n if (response.length > 1) {\r\n let modalRef = this.modalService.open(ContactSelectorComponent, { windowClass: 'modal-window-xl', size: 'lg' });\r\n modalRef.componentInstance.contactList = response;\r\n modalRef.componentInstance.clientTypeId = this.clientTypeId;\r\n modalRef.componentInstance.onContactSelected.subscribe(selectedContact => {\r\n if (selectedContact.mobilePhone == '') {\r\n this.updateContactPhone(selectedContact);\r\n }\r\n this.setSelectedContact(selectedContact);\r\n modalRef.close();\r\n })\r\n }\r\n else if (response.length === 1) {\r\n //console.log(\"no filter, but 1 exists\");\r\n if (response[0].mobilePhone == '') {\r\n this.updateContactPhone(response[0]);\r\n }\r\n this.setSelectedContact(response[0]);\r\n }\r\n else {\r\n this.setSelectedContact(null);\r\n this.newContact = new Contact();\r\n this.newContact.email = this.email;\r\n }\r\n }\r\n\r\n }, error => {\r\n console.error(error);\r\n })\r\n }\r\n\r\n EditContact() {\r\n //Creates new object from existing contact object and assigns to newContact\r\n this.newContact = Object.assign({}, this.contact);\r\n\r\n this.contact = null;\r\n this.editing = true;\r\n\r\n return false;\r\n }\r\n\r\n CancelEdit() {\r\n this.editing = false;\r\n this.contact = this.contactService.currentContact;\r\n this.newContact = Object.assign({}, this.contact);\r\n }\r\n\r\n contactValid(contact: Contact) {\r\n return contact.firstName.trim() !== \"\" && contact.lastName.trim() !== \"\" && contact.mobilePhone.trim() !== \"\";\r\n }\r\n\r\n emailStatusString(emailStatus) {\r\n if (emailStatus === null)\r\n emailStatus = 0;\r\n return EmailStatus[emailStatus];\r\n }\r\n\r\n smsStatusString(smsStatus) {\r\n if (smsStatus === null)\r\n smsStatus = 0;\r\n return SMSpermissions[smsStatus];\r\n }\r\n\r\n receiveMessage($event) {\r\n this.feedbackList = $event;\r\n }\r\n\r\n OpenConversationDialog(contact) {\r\n\r\n this.smsService.GetSMSNumber(this.clientPickerService.selectedClientId)\r\n .subscribe(response => {\r\n let clientPhoneNumber = response;\r\n this.smsConversationService.openFromPage(contact.contactId, contact.firstName, contact.lastName, contact.mobilePhone, clientPhoneNumber, contact.smspermission, this.clientPickerService.selectedClientId, null, contact.leadStatus);\r\n },\r\n error => {\r\n console.error(error);\r\n })\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown(e: KeyboardEvent) {\r\n if ((e.target).id != \"txtPhoneSearch\" && (e.target).id != \"txtPhoneNumber\") {\r\n return;\r\n }\r\n\r\n if (\r\n // Allow: Delete, Backspace, Tab, Escape, Enter\r\n [46, 8, 9, 27, 13].indexOf(e.keyCode) !== -1 ||\r\n (e.keyCode === 65 && e.ctrlKey === true) || // Allow: Ctrl+A\r\n (e.keyCode === 67 && e.ctrlKey === true) || // Allow: Ctrl+C\r\n (e.keyCode === 86 && e.ctrlKey === true) || // Allow: Ctrl+V\r\n (e.keyCode === 88 && e.ctrlKey === true) || // Allow: Ctrl+X\r\n (e.keyCode === 65 && e.metaKey === true) || // Cmd+A (Mac)\r\n (e.keyCode === 67 && e.metaKey === true) || // Cmd+C (Mac)\r\n (e.keyCode === 86 && e.metaKey === true) || // Cmd+V (Mac)\r\n (e.keyCode === 88 && e.metaKey === true) || // Cmd+X (Mac)\r\n (e.keyCode >= 35 && e.keyCode <= 39) // Home, End, Left, Right\r\n ) {\r\n return; // let it happen, don't do anything\r\n }\r\n // Ensure that it is a number and stop the keypress\r\n if (\r\n (e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) &&\r\n (e.keyCode < 96 || e.keyCode > 105)\r\n ) {\r\n e.preventDefault();\r\n }\r\n }\r\n\r\n sleepTime: number = 0;\r\n\r\n leaveRinglessVoicemail(method: number) {\r\n const clientId = this.clientPickerService.selectedClientId;\r\n const contactId = this.contact.contactId;\r\n\r\n this.spinnerOverlayService.open();\r\n if (method != 5) {\r\n this.voiceService.leaveRinglessVoicemail(clientId, contactId, method)\r\n .subscribe(response => {\r\n this.spinnerOverlayService.close();\r\n this.notify.success(\"Sent Ringless Voicemail\")\r\n //console.log(\"Ringless Voicemail \" + method + \" Sent: \", response);\r\n this.userService.getCurrentUser().subscribe(currentUser => {\r\n const contactActivity = {\r\n ContactId: this.contact.contactId,\r\n ClientId: this.clientPickerService.selectedClientId,\r\n ClientUserId: this.userService.clientUserId,\r\n ActivityType: \"Carbon.VoicemailDropped\",\r\n ActivityDescription: `Ringless Voicemail dropped by ${currentUser.firstName} ${currentUser.lastName}`\r\n }\r\n this.contactService.CreateContactActivity(contactActivity).subscribe(response => {\r\n this.activityList.unshift(response);\r\n });\r\n })\r\n }, error => {\r\n this.spinnerOverlayService.close();\r\n this.notify.error(\"Error Sending Ringless Voicemail\");\r\n console.error(\"Error Sending Ringless Voicemail: \", error);\r\n })\r\n }\r\n else {\r\n this.voiceService.leaveRinglessVoicemail_adj(clientId, contactId, this.sleepTime)\r\n .subscribe(response => {\r\n this.spinnerOverlayService.close();\r\n //console.log(\"Ringless Voicemail \" + method + \" (Sleep Time: \" + this.sleepTime + \") Sent: \", response)\r\n }, error => {\r\n this.spinnerOverlayService.close();\r\n console.error(\"Error Sending Adjustable Ringless Voicemail: \", error);\r\n })\r\n }\r\n }\r\n\r\n OpenOptInWarning(method: \"sms\" | \"email\") {\r\n const smsOptIn: number = 1;\r\n const emailOptOut: number = 1;\r\n const emailOptIn: number = 2;\r\n const emailDoubleOptIn: number = 3;\r\n\r\n if ((method === \"sms\" && (this.contact.mobilePhone === null || this.contact.mobilePhone === \"\"))\r\n || (method === \"email\" && (this.contact.email === null || this.contact.email === \"\"))) {\r\n return;\r\n }\r\n\r\n if (method === \"sms\" && this.contact.smspermission === smsOptIn) {\r\n //console.log(\"SMS Already Opted In\");\r\n return;\r\n }\r\n else if (method === \"email\" && (this.contact.emailOptInStatus === emailOptIn || this.contact.emailOptInStatus === emailDoubleOptIn)) {\r\n //console.log(\"Email Already Opted In\");\r\n return;\r\n }\r\n else if (method === \"email\" && this.contact.emailOptInStatus === emailOptOut) {\r\n //console.log(\"Email Opted Out\");\r\n return;\r\n }\r\n\r\n let modalRef = this.modalService.open(OptInWarningComponent);\r\n modalRef.componentInstance.contactId = this.contact.contactId;\r\n modalRef.componentInstance.method = method;\r\n modalRef.componentInstance.permissionStatus = method === \"sms\" ? this.contact.smspermission : this.contact.emailOptInStatus;\r\n\r\n modalRef.componentInstance.finishedOptIn.subscribe(_ => {\r\n if (method === \"sms\") {\r\n this.contact.smspermission = smsOptIn;\r\n }\r\n else if (method === \"email\") {\r\n this.contact.emailOptInStatus = emailOptIn;\r\n }\r\n });\r\n }\r\n\r\n CheckAndUpdateContact(contact: Contact) {\r\n const clientType = this.clientPickerService.selectedClient.clientTypeId;\r\n const clientId = this.clientPickerService.selectedClientId;\r\n const clientUserId = this.userService.clientUserId;\r\n\r\n return this.contactService.GetContactsByPhone(contact.mobilePhone, clientType, clientId).pipe(\r\n //Opens up Contact Dupe Warning\r\n concatMap(contactList => {\r\n this.contactList = contactList;\r\n this.spinnerOverlayService.close();\r\n if (contactList.length === 0) {\r\n return of(\"create\");\r\n }\r\n else if (contactList.length === 1 && contactList[0].contactId === contact.contactId) {\r\n return of(\"create\");\r\n }\r\n\r\n let mergeDialog: NgbModalRef = this.modalService.open(ContactDupeWarningComponent, { size: 'lg' });\r\n mergeDialog.componentInstance.contactList = contactList;\r\n\r\n return fromPromise(mergeDialog.result);\r\n }),\r\n //Catches and prevents any errors that occur from pressing escape or clicking the backdrop\r\n catchError(error => {\r\n if (error === ModalDismissReasons.ESC) {\r\n return of(\"Escape\");\r\n }\r\n else if (error === ModalDismissReasons.BACKDROP_CLICK) {\r\n return of(\"Backdrop Clicked\");\r\n }\r\n else {\r\n console.error(\"Error: \", error);\r\n throw error;\r\n }\r\n }),\r\n //Update the contact if proceed was selected\r\n concatMap(closeReason => {\r\n //console.log(this.contactList);\r\n\r\n if ((closeReason).toLowerCase() === \"merge\") {\r\n //return this.contactService.mergeContactByCreatingAndUpdatingContactActivity(this.contactList[0].contactId, contact.contactId, this.clientId);\r\n return this.mergeContactByUpdatingContactActivity(this.contactList[0].contactId, contact.contactId, this.clientId, this.userService.clientUserId);\r\n\r\n //return of(this.contactList[0]);\r\n }\r\n else if ((closeReason).toLowerCase() === \"create\") {\r\n return this.contactService.UpdateContact(contact, clientUserId);\r\n }\r\n else {\r\n return of(undefined);\r\n }\r\n })\r\n );\r\n }\r\n\r\n mergeContactByUpdatingContactActivity(existingContactId, duplicateContactId, clientId, clientUserId) {\r\n //console.log(existingContactId, duplicateContactId);\r\n this.spinnerOverlayService.open();\r\n\r\n return this.contactService.mergeContactByCreatingAndUpdatingContactActivity(existingContactId, duplicateContactId, clientId, clientUserId)\r\n .map(response => {\r\n this.spinnerOverlayService.close();\r\n this.notify.success(\"Contacts Successfully Merged\");\r\n return response;\r\n }, error => {\r\n this.spinnerOverlayService.close();\r\n this.notify.error(\"Error Merging Contacts\");\r\n console.error(\"Error Merging Contacts \", error);\r\n })\r\n\r\n }\r\n\r\n promoCodeClick() {\r\n const contact = this.contact;\r\n const clientId = this.clientPickerService.selectedClientId;\r\n const clientUserId = this.userService.clientUserId;\r\n\r\n const $smsText = this.contactService.getReferralSmsText(contact.contactId, clientId, clientUserId);\r\n const $smsNumber = this.smsService.GetSMSNumber(clientId)\r\n\r\n forkJoin($smsNumber, $smsText)\r\n .subscribe(([smsNumber, smsText]) => {\r\n this.smsConversationService.openFromPage(contact.contactId, contact.firstName, contact.lastName, contact.mobilePhone, smsNumber, contact.smspermission.toString(), null, smsText);\r\n }, error => {\r\n console.error(error);\r\n })\r\n }\r\n\r\n OpenOptOutWarning(method: \"sms\" | \"email\") {\r\n const smsOptIn: number = 1;\r\n const smsOptOut: number = 2;\r\n\r\n const emailOptOut: number = 1;\r\n const emailOptIn: number = 2;\r\n const emailDoubleOptIn: number = 3;\r\n\r\n if ((method === \"sms\" && (this.contact.mobilePhone === null || this.contact.mobilePhone === \"\"))\r\n || (method === \"email\" && (this.contact.email === null || this.contact.email === \"\"))) {\r\n return;\r\n }\r\n\r\n if (method === \"sms\" && this.contact.smspermission === smsOptOut) {\r\n //console.log(\"SMS Already Opted Out\");\r\n return;\r\n }\r\n else if (method === \"email\" && this.contact.emailOptInStatus === emailOptOut) {\r\n //console.log(\"Email Opted Out\");\r\n return;\r\n }\r\n\r\n let modalRef = this.modalService.open(OptOutWarningComponent);\r\n modalRef.componentInstance.contactId = this.contact.contactId;\r\n modalRef.componentInstance.method = method;\r\n modalRef.componentInstance.permissionStatus = method === \"sms\" ? this.contact.smspermission : this.contact.emailOptInStatus;\r\n\r\n modalRef.componentInstance.finishedOptOut.subscribe(_ => {\r\n if (method === \"sms\") {\r\n this.contact.smspermission = smsOptOut;\r\n }\r\n else if (method === \"email\") {\r\n this.contact.emailOptInStatus = emailOptOut;\r\n }\r\n });\r\n }\r\n\r\n openHelpLink() {\r\n this.helpDialogService.openDialog(\"Carbon Contacts\");\r\n }\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/contacts/contacts.component.ts","module.exports = \"\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/contacts/opt-in-warning/opt-in-warning.component.css\n// module id = ./src/app/contacts/opt-in-warning/opt-in-warning.component.css\n// module chunks = main","module.exports = \"
\\r\\n
Warning manually changing {{method}} permissions
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n

Alternatively, have the contact text START to {{phoneNumber$ | async | phone}} to opt-in to SMS permissions

\\r\\n

Have the contact text START to {{phoneNumber$ | async | phone}} to opt-in to SMS permissions

\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/contacts/opt-in-warning/opt-in-warning.component.html\n// module id = ./src/app/contacts/opt-in-warning/opt-in-warning.component.html\n// module chunks = main","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { Observable } from 'rxjs';\r\nimport { of } from 'rxjs/observable/of';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { ClientPickerService } from '../../services/client-picker.service';\r\nimport { ConfigService } from '../../services/config.service';\r\nimport { ContactService } from '../../services/contact.service';\r\nimport { NotifyService } from '../../services/notify.service';\r\nimport { SmsService } from '../../services/sms.service';\r\nimport { UserService } from '../../services/user.service';\r\n\r\n@Component({\r\n selector: 'contact-opt-in-warning',\r\n templateUrl: './opt-in-warning.component.html',\r\n styleUrls: ['./opt-in-warning.component.css']\r\n})\r\nexport class OptInWarningComponent implements OnInit {\r\n @Input() contactId: number;\r\n @Input() method: \"sms\" | \"email\";\r\n @Input() permissionStatus: number;\r\n @Output() finishedOptIn = new EventEmitter()\r\n\r\n public smsOptedOut: boolean = false;\r\n public disclaimer$: Observable;\r\n public phoneNumber$: Observable;\r\n\r\n constructor(public activeModal: NgbActiveModal,\r\n public contactService: ContactService,\r\n public smsService: SmsService,\r\n public userService: UserService,\r\n public clientPickerService: ClientPickerService,\r\n public configService: ConfigService,\r\n public notify: NotifyService) {\r\n }\r\n\r\n ngOnInit() {\r\n let appConfigName = \"Carbon.ManualOptInDisclaimerSMS\";\r\n if (this.method === \"email\") {\r\n appConfigName = \"Carbon.ManualOptInDisclaimerEmail\";\r\n }\r\n\r\n // Hide liability and don't allow for manual opt in if sms is already opted out\r\n const smsOptOut = 2;\r\n if (this.method === \"sms\" && this.permissionStatus === smsOptOut) {\r\n this.smsOptedOut = true;\r\n this.disclaimer$ = of(\"\");\r\n }\r\n else {\r\n this.smsOptedOut = false;\r\n this.disclaimer$ = this.configService.getAppConfig(appConfigName).pipe(\r\n catchError(err => {\r\n console.error(err);\r\n this.notify.error(\"Error getting liability disclaimer.\", 6000)\r\n this.activeModal.close(\"Error getting liability disclaimer\");\r\n return of(\"\");\r\n })\r\n );\r\n }\r\n\r\n this.phoneNumber$ = this.smsService.GetSMSNumber(this.clientPickerService.selectedClientId).pipe(\r\n catchError(err => {\r\n console.error(err);\r\n this.notify.error(\"Error getting phone number.\", 6000);\r\n return of(\"0000000000\");\r\n })\r\n );\r\n\r\n }\r\n\r\n OptIn() {\r\n const clientUserId = this.userService.clientUserId;\r\n const clientId = this.clientPickerService.selectedClientId;\r\n\r\n this.contactService.OptIn(this.contactId, this.method, clientUserId, clientId).subscribe(response => {\r\n this.finishedOptIn.emit(this.method);\r\n this.activeModal.close();\r\n }, error => {\r\n console.error(error);\r\n this.notify.error(\"Error updating permissions\", 6000);\r\n })\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/contacts/opt-in-warning/opt-in-warning.component.ts","module.exports = \"\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/contacts/opt-out-warning/opt-out-warning.component.css\n// module id = ./src/app/contacts/opt-out-warning/opt-out-warning.component.css\n// module chunks = main","module.exports = \"
\\r\\n
Warning manually changing {{method}} permissions
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n

Are you sure you want to opt-out this contact from SMS permissions? They will have to text START to {{phoneNumber$ | async | phone}} to opt-in to SMS permissions again.

\\r\\n

Are you sure you want to opt-out this contact from email permissions? They will no longer receive your emails.

\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/contacts/opt-out-warning/opt-out-warning.component.html\n// module id = ./src/app/contacts/opt-out-warning/opt-out-warning.component.html\n// module chunks = main","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { Observable } from 'rxjs';\r\nimport { of } from 'rxjs/observable/of';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { ClientPickerService } from '../../services/client-picker.service';\r\nimport { ConfigService } from '../../services/config.service';\r\nimport { ContactService } from '../../services/contact.service';\r\nimport { NotifyService } from '../../services/notify.service';\r\nimport { SmsService } from '../../services/sms.service';\r\nimport { UserService } from '../../services/user.service';\r\n\r\n@Component({\r\n selector: 'contact-opt-out-warning',\r\n templateUrl: './opt-out-warning.component.html',\r\n styleUrls: ['./opt-out-warning.component.css']\r\n})\r\nexport class OptOutWarningComponent implements OnInit {\r\n @Input() contactId: number;\r\n @Input() method: \"sms\" | \"email\";\r\n @Input() permissionStatus: number;\r\n @Output() finishedOptOut = new EventEmitter()\r\n\r\n public smsOptedOut: boolean = false;\r\n public disclaimer$: Observable;\r\n public phoneNumber$: Observable;\r\n\r\n constructor(public activeModal: NgbActiveModal,\r\n public contactService: ContactService,\r\n public smsService: SmsService,\r\n public userService: UserService,\r\n public clientPickerService: ClientPickerService,\r\n public configService: ConfigService,\r\n public notify: NotifyService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.phoneNumber$ = this.smsService.GetSMSNumber(this.clientPickerService.selectedClientId).pipe(\r\n catchError(err => {\r\n console.error(err);\r\n this.notify.error(\"Error getting phone number.\", 6000);\r\n return of(\"0000000000\");\r\n })\r\n );\r\n }\r\n\r\n OptOut() {\r\n const clientUserId = this.userService.clientUserId;\r\n const clientId = this.clientPickerService.selectedClientId;\r\n\r\n this.contactService.OptOut(this.contactId, this.method, clientUserId, clientId).subscribe(response => {\r\n this.finishedOptOut.emit(this.method);\r\n this.activeModal.close();\r\n this.notify.success(\"Succesfully updated permissions\", 6000);\r\n }, error => {\r\n console.error(error);\r\n this.notify.error(\"Error updating permissions\", 6000);\r\n })\r\n\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/contacts/opt-out-warning/opt-out-warning.component.ts","module.exports = \".fa-star {\\r\\n color: #9e4545;\\r\\n}\\r\\n\\r\\n.star-resolved {\\r\\n color: green !important;\\r\\n}\\r\\n\\r\\n.example-container {\\r\\n display: -webkit-box;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -webkit-box-orient: vertical;\\r\\n -webkit-box-direction: normal;\\r\\n -ms-flex-direction: column;\\r\\n flex-direction: column;\\r\\n min-width: 300px;\\r\\n}\\r\\n\\r\\n.mat-table {\\r\\n overflow: auto;\\r\\n max-height: 500px;\\r\\n}\\r\\n\\r\\n/*mobile-responsive*/\\r\\n\\r\\n.table-responsive {\\r\\n display: -webkit-box;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -webkit-box-orient: vertical;\\r\\n -webkit-box-direction: normal;\\r\\n -ms-flex-direction: column;\\r\\n flex-direction: column;\\r\\n max-height: 500px;\\r\\n min-width: 300px;\\r\\n}\\r\\n\\r\\n.mat-table {\\r\\n overflow: auto;\\r\\n max-height: 500px;\\r\\n}\\r\\n\\r\\n.mobile-label {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n.survey-link {\\r\\n color: #007bff;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.survey-link:hover {\\r\\n color: #0056b3;\\r\\n text-decoration: underline;\\r\\n }\\r\\n\\r\\n.score-container {\\r\\n width: 100%;\\r\\n display: -webkit-box;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -webkit-box-pack: space-evenly;\\r\\n -ms-flex-pack: space-evenly;\\r\\n justify-content: space-evenly;\\r\\n -webkit-box-align: center;\\r\\n -ms-flex-align: center;\\r\\n align-items: center;\\r\\n}\\r\\n\\r\\n.score {\\r\\n border: 1px solid black;\\r\\n border-collapse: collapse;\\r\\n -webkit-box-flex: 1;\\r\\n -ms-flex: 1;\\r\\n flex: 1;\\r\\n height: 25px;\\r\\n text-align: center;\\r\\n background-color: #ff8d8d;\\r\\n display: -webkit-box;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -webkit-box-pack: center;\\r\\n -ms-flex-pack: center;\\r\\n justify-content: center;\\r\\n -webkit-box-align: center;\\r\\n -ms-flex-align: center;\\r\\n align-items: center;\\r\\n}\\r\\n\\r\\n.score-good {\\r\\n background-color: #52d852;\\r\\n}\\r\\n\\r\\n.score-selected {\\r\\n height: 45px;\\r\\n -webkit-box-flex: 1.25;\\r\\n -ms-flex: 1.25;\\r\\n flex: 1.25;\\r\\n}\\r\\n\\r\\n.score-labels-container {\\r\\n display: -webkit-box;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -webkit-box-pack: justify;\\r\\n -ms-flex-pack: justify;\\r\\n justify-content: space-between;\\r\\n}\\r\\n\\r\\n#lashDashboardLink {\\r\\n z-index: 0;\\r\\n background-color: #e01f62;\\r\\n color: #fff;\\r\\n border: none;\\r\\n border-radius: 5px;\\r\\n padding: 8px 10px;\\r\\n font-size: 1.8em;\\r\\n cursor: pointer;\\r\\n margin: 0;\\r\\n position: absolute;\\r\\n top: 50%;\\r\\n left: 50%;\\r\\n -webkit-transform: translate(-50%, -50%);\\r\\n transform: translate(-50%, -50%);\\r\\n}\\r\\n\\r\\n#bulkSmsLink {\\r\\n z-index: 0;\\r\\n background-color: #e01f62;\\r\\n color: #fff;\\r\\n border: none;\\r\\n border-radius: 5px;\\r\\n padding: 8px 10px;\\r\\n font-size: 1.8em;\\r\\n cursor: pointer;\\r\\n margin: 0;\\r\\n position: absolute;\\r\\n top: 60%;\\r\\n left: 50%;\\r\\n -webkit-transform: translate(-50%, -50%);\\r\\n transform: translate(-50%, -50%);\\r\\n}\\r\\n\\r\\n@media(max-width: 600px) {\\r\\n .mobile-label {\\r\\n width: 80px;\\r\\n display: inline-block;\\r\\n font-weight: bold;\\r\\n }\\r\\n\\r\\n .mat-header-row {\\r\\n display: none;\\r\\n }\\r\\n\\r\\n .mat-row {\\r\\n -webkit-box-orient: vertical;\\r\\n -webkit-box-direction: normal;\\r\\n -ms-flex-direction: column;\\r\\n flex-direction: column;\\r\\n -webkit-box-align:center;\\r\\n -ms-flex-align:center;\\r\\n align-items:center;\\r\\n padding-top: 8px;\\r\\n padding-bottom: 8px;\\r\\n }\\r\\n\\r\\n .mat-header-row::after, .mat-row::after {\\r\\n content: none;\\r\\n }\\r\\n\\r\\n #reviewsCard{\\r\\n padding-top: 0px !important;\\r\\n\\r\\n }\\r\\n}\\r\\n\\r\\n.helpLink {\\r\\n color: #0e5ba5;\\r\\n cursor: pointer;\\r\\n margin-left: 10px;\\r\\n font-size: 18px;\\r\\n}\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/dashboard/dashboard.component.css\n// module id = ./src/app/dashboard/dashboard.component.css\n// module chunks = main","module.exports = \"
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n New Reviews (last 7 days)\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Comments \\r\\n {{review.comments}} \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Score\\r\\n {{review.comments}} \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Name \\r\\n \\r\\n \\r\\n {{review.name}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Rating \\r\\n 3}\\\" [attr.title]=\\\"!review.isResolved && review.starRating <=3 ? 'This review has not been resolved yet.' : ''\\\" *ngFor=\\\"let number of CreateArray(review.starRating)\\\">\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Date Created \\r\\n {{review.dateCreated + 'Z' | date:'MMM d, y h:mm a'}} \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Mobile Phone Number \\r\\n {{review.mobilePhone | phone}} \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Email \\r\\n {{review.email}} \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Total Reviews per Platform\\r\\n
\\r\\n
\\r\\n
Total Contacts Sent to Google: {{sentToGoogle}}
\\r\\n
Total Contacts Sent to Facebook: {{sentToFacebookTotal}}
\\r\\n \\r\\n

\\r\\n Sent to Google \\r\\n : \\r\\n {{sentToGoogleInLastThirtyDays}}\\r\\n \\r\\n \\r\\n \\r\\n

\\r\\n

\\r\\n Sent to Facebook \\r\\n :\\r\\n {{sentToFacebook}}\\r\\n \\r\\n \\r\\n \\r\\n

\\r\\n

Google reviews in the last 7 days: {{numberOfGoogleReviews}}

\\r\\n See Reviews\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Unresolved Bad Reviews\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Direct Feedback Submissions

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
Average Star Rating: {{averageRating}}
\\r\\n
Review Count: {{ratingCount}}
\\r\\n

{{positiveCount}} (4 or 5 stars)

\\r\\n

{{negativeCount}} (3 or less stars)

\\r\\n
Comment(s): {{feedbackCount}}
\\r\\n
\\r\\n
Average Survey Score: {{avgScore}}%
\\r\\n
Survey Count: 0}\\\" (click)=\\\"openSurveyList()\\\">{{feedbackCount}}
\\r\\n

{{surveyRatio}}% of contacts that visited the survey({{sentToSurveyCount}}), completed it.

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n All Recent Activity (last 30 days)\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Description \\r\\n \\r\\n {{clientActivity.activityDescription | activityDescription}}\\r\\n \\r\\n \\r\\n 3}\\\" [attr.title]=\\\"!clientActivity.isResolved && clientActivity.activityDescription <=3 ? 'This review has not been resolved yet.' : ''\\\">\\r\\n \\r\\n {{clientActivity.activityDescription | activityDescription}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Date Created \\r\\n {{clientActivity.dateCreated + 'Z'| date:'MMM d, y h:mm a'}} \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Name \\r\\n \\r\\n \\r\\n {{clientActivity.firstName}} {{clientActivity.lastName}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n

Survey

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n

{{answer.surveyQuestions.question}}

\\r\\n
\\r\\n
= answer.surveyQuestions.goodReviewTheshhold}\\\">{{score+1}}
\\r\\n
\\r\\n
\\r\\n

{{answer.surveyQuestions.lowLabel}}

{{answer.surveyQuestions.highLabel}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/dashboard/dashboard.component.html\n// module id = ./src/app/dashboard/dashboard.component.html\n// module chunks = main","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { ContactService } from '../services/contact.service';\r\nimport { ClientPickerService } from '../services/client-picker.service';\r\nimport { MatTableDataSource } from '@angular/material';\r\nimport { Router } from '@angular/router';\r\nimport { Subscription } from 'rxjs/Subscription';\r\nimport { ClientService } from '../services/client.service';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ClientTypes } from '../models/client-types';\r\nimport { UserService } from '../services/user.service';\r\nimport { SurveyResponsesComponent } from './survey-responses/survey-responses.component';\r\nimport * as moment from 'moment';\r\nimport { NotifyService } from '../services/notify.service';\r\nimport { DateRange, DateRangeOptions } from '../models/date-range';\r\nimport { ConfigService } from '../services/config.service';\r\nimport { ClientSubscribedServices } from '../models/client-subscribed-services';\r\nimport { SpinnerOverlayService } from '../services/spinner-overlay.service';\r\nimport { HelpDialogService } from '../services/help-dialog.service';\r\n \r\n@Component({\r\n selector: 'app-dashboard',\r\n templateUrl: `./dashboard.component.html`,\r\n styleUrls: [`./dashboard.component.css`]\r\n})\r\n\r\nexport class DashboardComponent implements OnInit, OnDestroy {\r\n\r\n constructor(\r\n private contactService: ContactService,\r\n private clientPickerService: ClientPickerService,\r\n private router: Router,\r\n private clientService: ClientService,\r\n private modalService: NgbModal,\r\n private userService: UserService,\r\n private notify: NotifyService,\r\n private configService: ConfigService,\r\n private spinner: SpinnerOverlayService,\r\n private helpDialogService: HelpDialogService\r\n ) {\r\n }\r\n isAdmin: boolean = false;\r\n clientListReady = false;\r\n modalRef: any = null;\r\n phoneNumber: any;\r\n boundSurveyData: any;\r\n\r\n displayedActivityColumns = ['fullName', 'activityDescription', 'dateCreated'];\r\n displayedNewReviewColumns = ['name', 'mobilePhone', 'ratings', 'comments', 'dateCreated'];\r\n dataSource = new MatTableDataSource();\r\n\r\n //service parameters\r\n clientId: number = this.clientPickerService.selectedClientId;\r\n clientTypeId: any = null;\r\n activityType: string = \"carbon\";\r\n\r\n today: any = new Date();\r\n lastweek: any = new Date().setDate(this.today.getDate() - 7);\r\n lastmonth: any = new Date().setDate(this.today.getDate() - 30);\r\n dateLimit: any = new Date().setDate(this.today.getDate() - 30);\r\n googlePlaceId: any = '';\r\n\r\n //db data\r\n clientActivities: any;\r\n //allRecentActivities: any;\r\n reviews: any;\r\n positiveReviews: any;\r\n negativeReviews: any;\r\n\r\n //counts\r\n feedbackCount: any;\r\n ratingCount: number;\r\n positiveCount: number;\r\n negativeCount: number;\r\n averageRating: string;\r\n allRatings: any;\r\n totalStars: number = 0;\r\n sentToGoogle: number = 0;\r\n sentToFacebookTotal: number = 0;\r\n sentToGoogleInLastThirtyDays: number = 0;\r\n sentToFacebook: number = 0;\r\n newReviews: any;\r\n numberOfGoogleReviews: number;\r\n isCarbonLite: boolean = false;\r\n\r\n //survey data\r\n sentToSurveyCount: number = 0;\r\n surveyRatio: any;\r\n surveyScores: any;\r\n sumScore: number = 0;\r\n avgScore: any;\r\n survey: any;\r\n surveyId: number = 0;\r\n surveyQuestions: any;\r\n surveyResponseId: number = 0;\r\n surveyAnswers: any;\r\n\r\n subscription: Subscription;\r\n dateRanges = DateRangeOptions;\r\n isReviewsLoading: boolean = false;\r\n isFBReviewsLoading: boolean = false;\r\n isFeedbackLoading: boolean = false;\r\n surveyStart: moment.Moment = moment().subtract(30, \"day\").startOf(\"day\");\r\n surveyEnd: moment.Moment = moment().endOf(\"day\");\r\n\r\n showDashboardContent: boolean = false;\r\n showLashLinks: boolean = false;\r\n\r\n ngOnInit() {\r\n //this.router.navigate([{ outlets: { topbar: null } }]);\r\n this.subscription = this.clientPickerService.$clientId.subscribe(\r\n (clientId: number) => {\r\n this.totalStars = 0;\r\n this.sentToGoogle = 0;\r\n this.sentToGoogleInLastThirtyDays = 0;\r\n this.clientId = clientId;\r\n //if (this.clientPickerService.selectedClient) {\r\n // this.clientTypeId = this.clientPickerService.selectedClient.clientTypeId;\r\n //}\r\n // this.GetGooglePlaceId();\r\n // this.GetContactActivity();\r\n // this.GetTotalGoogleCount();\r\n // this.GetTotalFacebookCount();\r\n })\r\n this.spinner.open();\r\n this.clientPickerService.$clientRequestFinished.subscribe(() => {\r\n this.clientListReady = true;\r\n this.clientTypeId = this.clientPickerService.selectedClient.clientTypeId;\r\n this.clientService.GetSubscribedServices(this.clientId)\r\n .subscribe(services => {\r\n if (services.includes(ClientSubscribedServices.InstantReviews)) {\r\n this.showDashboardContent = true;\r\n this.LoadDashboardContent();\r\n }\r\n else if (this.clientTypeId == ClientTypes.ALS && !services.includes(ClientSubscribedServices.InstantReviews)) {\r\n this.showLashLinks = true;\r\n }\r\n this.spinner.close();\r\n }, error => {\r\n this.spinner.close();\r\n console.error(error);\r\n });\r\n // this.CheckIfCarbonLite(this.clientTypeId);\r\n // this.GetNumberOfGoogleReviews();\r\n })\r\n }\r\n\r\n LoadDashboardContent() {\r\n this.GetGooglePlaceId();\r\n this.GetContactActivity();\r\n this.GetTotalGoogleCount();\r\n this.GetTotalFacebookCount();\r\n\r\n this.CheckIfCarbonLite(this.clientTypeId);\r\n this.GetNumberOfGoogleReviews();\r\n }\r\n\r\n CheckIfCarbonLite(clientTypeId) {\r\n this.configService.getClientTypeConfig(\"Carbon.Lite\", clientTypeId)\r\n .subscribe(response => {\r\n if (response) {\r\n this.isCarbonLite = (response.toLowerCase() == \"true\");;\r\n }\r\n }, error => {\r\n console.error(error);\r\n })\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n OpenModal = (content, review) => {\r\n //console.log(review);\r\n this.surveyId = this.getSurveyId();\r\n this.surveyResponseId = review.surveyResponseId;\r\n //console.log(this.surveyResponseId);\r\n this.GetSurveyAnswers(this.surveyResponseId);\r\n\r\n this.boundSurveyData = review;\r\n this.modalRef = this.modalService.open(content);\r\n }\r\n\r\n GetSurveyAnswers(id) {\r\n this.surveyAnswers = [];\r\n this.userService.getSurveyAnswers(id, this.surveyId)\r\n .subscribe(response => {\r\n this.surveyAnswers = response;\r\n },\r\n error => {\r\n\r\n })\r\n }\r\n\r\n getSurveyId() {\r\n switch (this.clientTypeId) {\r\n case ClientTypes.ModernAcupuncture:\r\n return 0;\r\n case ClientTypes.ALS:\r\n return 0;\r\n case ClientTypes.TheJoint:\r\n return 45;\r\n default:\r\n return 0;\r\n }\r\n }\r\n\r\n GetTotalGoogleCount() {\r\n this.contactService.GetTotalGoogleCount(this.clientId, \"Carbon.SentToGoogle\")\r\n .subscribe(response => {\r\n //console.log(response);\r\n this.sentToGoogle = response;\r\n },\r\n error => {\r\n\r\n })\r\n }\r\n\r\n GetTotalFacebookCount() {\r\n this.contactService.getSentToFacebookNumber(this.clientId, null, null)\r\n .subscribe(response => {\r\n console.log(\"Total Facebook: \", response);\r\n this.sentToFacebookTotal = response;\r\n }, error => {\r\n console.error(\"Error getting total contacts sent to Facebook: \", error);\r\n this.notify.error(\"Error getting total contacts sent to Facebook\", 10000);\r\n });\r\n }\r\n\r\n GetNumberOfGoogleReviews() {\r\n this.clientService.GetNumberOfRecentReviews(this.clientId)\r\n .subscribe(response => {\r\n this.numberOfGoogleReviews = response;\r\n }, error => {\r\n console.error(\"Error getting recent google reviews: \", error);\r\n })\r\n }\r\n\r\n GetContactActivity() {\r\n this.contactService.GetAllContactActivity(this.clientId, this.activityType, this.dateLimit)\r\n .subscribe(response => {\r\n //console.log(\"response: \",response);\r\n this.clientActivities = response;\r\n \r\n //get last 7 days feedback and ratings\r\n this.reviews = this.clientActivities.filter(ac => new Date(ac.dateCreated) > this.lastweek\r\n && (ac.activityType == \"Carbon.Feedback\" || ac.activityType == \"Carbon.Rating\" || ac.activityType == \"Carbon.DirectFeedback\"))\r\n\r\n this.newReviews = [];\r\n\r\n for (var i = 0; i < this.reviews.length; i++) {\r\n var combinedReview: Review = {\r\n name: \"\",\r\n mobilePhone: \"\",\r\n starRating: \"\",\r\n comments: \"\",\r\n dateCreated: \"\",\r\n contactId: 0,\r\n contactGuid: \"\",\r\n surveyResponseId: 0,\r\n isResolved: false,\r\n };\r\n\r\n if (this.reviews[i].activityType == \"Carbon.Rating\") {\r\n combinedReview.name = this.reviews[i].firstName + \" \" + this.reviews[i].lastName;\r\n combinedReview.mobilePhone = this.reviews[i].mobilePhone;\r\n combinedReview.starRating = this.reviews[i].activityDescription;\r\n combinedReview.comments = \"\";\r\n combinedReview.surveyResponseId = 0\r\n combinedReview.dateCreated = this.reviews[i].dateCreated;\r\n combinedReview.contactId = this.reviews[i].contactId;\r\n combinedReview.contactGuid = this.reviews[i].contactGuid;\r\n combinedReview.isResolved = this.reviews[i].isResolved\r\n\r\n this.newReviews.push(combinedReview);\r\n }\r\n\r\n else if (this.reviews[i].activityType == \"Carbon.Feedback\") {\r\n combinedReview.name = this.reviews[i].firstName + \" \" + this.reviews[i].lastName;\r\n combinedReview.mobilePhone = this.reviews[i].mobilePhone;\r\n combinedReview.starRating = this.reviews[i + 1].activityDescription;\r\n combinedReview.comments = this.reviews[i].activityDescription.split(\"|\")[0].split(\": \")[1];\r\n //get survey response id for modal popup\r\n combinedReview.surveyResponseId = this.reviews[i].activityDescription.split(\"|\")[1];\r\n combinedReview.dateCreated = this.reviews[i + 1].dateCreated;\r\n combinedReview.contactId = this.reviews[i].contactId;\r\n combinedReview.contactGuid = this.reviews[i].contactGuid;\r\n combinedReview.isResolved = this.reviews[i + 1].isResolved\r\n\r\n this.newReviews.push(combinedReview);\r\n i++;\r\n }\r\n else if (this.reviews[i].activityType == \"Carbon.DirectFeedback\") {\r\n combinedReview.name = this.reviews[i].firstName + \" \" + this.reviews[i].lastName;\r\n combinedReview.mobilePhone = this.reviews[i].mobilePhone;\r\n combinedReview.starRating = '0';\r\n combinedReview.comments = this.reviews[i].activityDescription.split(\"|\")[0].split(\": \")[1];\r\n //get survey response id for modal popup\r\n combinedReview.surveyResponseId = this.reviews[i].activityDescription.split(\"|\")[1];\r\n combinedReview.dateCreated = this.reviews[i].dateCreated;\r\n combinedReview.contactId = this.reviews[i].contactId;\r\n combinedReview.contactGuid = this.reviews[i].contactGuid;\r\n combinedReview.isResolved = this.reviews[i].isResolved;\r\n this.newReviews.push(combinedReview);\r\n }\r\n\r\n }\r\n //console.log(this.newReviews);\r\n\r\n this.positiveReviews = this.newReviews.filter(r => parseInt(r.starRating) > 3);\r\n this.negativeReviews = this.newReviews.filter(r => parseInt(r.starRating) <= 3 && parseInt(r.starRating) > 0);\r\n\r\n //get count of all feedback and ratings\r\n this.feedbackCount = (this.clientActivities.filter(ac => ac.activityType == \"Carbon.Feedback\" || ac.activityType == \"Carbon.DirectFeedback\")).length;\r\n //console.log(\"feedback count:\" + this.feedbackCount);\r\n this.allRatings = this.clientActivities.filter(ac => ac.activityType == \"Carbon.Rating\");\r\n\r\n //this.ratingCount = (this.clientActivities.filter(ac => ac.activityType == \"Carbon.Rating\")).length;\r\n this.ratingCount = this.allRatings.length;\r\n //this.positiveCount = (this.clientActivities.filter(ac => ac.activityType == \"Carbon.Rating\" && parseInt(ac.activityDescription) > 3)).length;\r\n this.positiveCount = this.allRatings.filter(ac => parseInt(ac.activityDescription) > 3).length;\r\n //this.negativeCount = (this.clientActivities.filter(ac => ac.activityType == \"Carbon.Rating\" && parseInt(ac.activityDescription) <= 3)).length;\r\n this.negativeCount = this.allRatings.filter(ac => parseInt(ac.activityDescription) <= 3).length;\r\n\r\n this.sentToSurveyCount = (this.clientActivities.filter(ac => ac.activityType == \"Carbon.SendToSurvey\")).length;\r\n //console.log(\"sent to survey: \" + this.sentToSurveyCount);\r\n this.surveyRatio = this.sentToSurveyCount == 0 ? 0 : ((this.feedbackCount / this.sentToSurveyCount) * 100).toFixed(2);\r\n //console.log(\"survey ratio: \" + this.surveyRatio);\r\n //survey scores\r\n this.surveyScores = this.clientActivities.filter(ac => ac.activityType == \"Carbon.Feedback\" || ac.activityType == \"Carbon.DirectFeedback\");\r\n\r\n for (var i = 0; i < this.surveyScores.length; i++) {\r\n var score = this.surveyScores[i].activityDescription.split(\": \")[1];\r\n score = parseFloat(score.split(\"%\")[0]);\r\n this.sumScore += score;\r\n }\r\n this.avgScore = this.feedbackCount == 0 ? 0 : (this.sumScore / this.feedbackCount).toFixed(2);\r\n //google\r\n this.sentToGoogleInLastThirtyDays = (this.clientActivities.filter(ac => new Date(ac.dateCreated) > this.lastmonth\r\n && ac.activityType == \"Carbon.SentToGoogle\")).length;\r\n this.sentToFacebook = (this.clientActivities.filter(ac => new Date(ac.dateCreated) > this.lastmonth\r\n && ac.activityType == \"Carbon.SentToFacebook\")).length;\r\n\r\n for (var i = 0; i < this.allRatings.length; i++) {\r\n this.totalStars += parseInt(this.allRatings[i].activityDescription);\r\n }\r\n\r\n if (this.ratingCount != 0) {\r\n this.averageRating = (this.totalStars / this.ratingCount).toFixed(2);\r\n }\r\n else {\r\n this.averageRating = \"0\";\r\n }\r\n\r\n }, error => {\r\n console.error(error);\r\n });\r\n }\r\n\r\n GetGooglePlaceId() {\r\n this.clientService.GetClientById(this.clientId)\r\n .subscribe(response => {\r\n this.googlePlaceId = response.googlePlaceId;\r\n //console.log(this.googlePlaceId);\r\n }, error => {\r\n console.error(error);\r\n });\r\n }\r\n\r\n CreateArray(number) {\r\n let arrayLength = parseInt(number) || 0\r\n let result = Array(arrayLength);\r\n return result;\r\n }\r\n\r\n openSurveyList() {\r\n if (this.clientTypeId !== ClientTypes.TheJoint || this.feedbackCount <= 0) {\r\n return;\r\n }\r\n\r\n const surveyResponsesModal = this.modalService.open(SurveyResponsesComponent);\r\n surveyResponsesModal.componentInstance.clientId = this.clientId;\r\n surveyResponsesModal.componentInstance.surveyId = this.getSurveyId();\r\n surveyResponsesModal.componentInstance.startDate = this.surveyStart;\r\n surveyResponsesModal.componentInstance.endDate = this.surveyEnd;\r\n }\r\n\r\n dateRangeSentToGoogle(dateRange: DateRange) {\r\n this.isReviewsLoading = true;\r\n this.contactService.getSentToGoogleNumber(this.clientId, dateRange.startDateISO, dateRange.endDateISO)\r\n .subscribe(response => {\r\n this.sentToGoogleInLastThirtyDays = response;\r\n this.isReviewsLoading = false;\r\n }, error => {\r\n console.error(\"Error getting number sent to google: \", error);\r\n this.isReviewsLoading = false;\r\n this.notify.error(\"Error getting number of contacts sent to google\", 10000);\r\n })\r\n }\r\n\r\n dateRangeSentToFacebook(dateRange: DateRange) {\r\n this.isFBReviewsLoading = true;\r\n this.contactService.getSentToFacebookNumber(this.clientId, dateRange.startDateISO, dateRange.endDateISO)\r\n .subscribe(response => {\r\n this.sentToFacebook = response;\r\n this.isFBReviewsLoading = false;\r\n }, error => {\r\n console.error(\"Error getting number sent to Facebook: \", error);\r\n this.isReviewsLoading = false;\r\n this.notify.error(\"Error getting number of contacts sent to Facebook\", 10000);\r\n })\r\n }\r\n\r\n directFeedbackRangeSelected(dateRange: DateRange) {\r\n this.isFeedbackLoading = true;\r\n this.contactService.getFeedbackDashboardData(this.clientId, dateRange.startDateISO, dateRange.endDateISO)\r\n .subscribe(response => {\r\n this.averageRating = response.averageRating.toFixed(2);\r\n this.ratingCount = response.reviewCount;\r\n this.positiveCount = response.positiveCount;\r\n this.negativeCount = response.negativeCount;\r\n this.feedbackCount = response.feedbackCount;\r\n this.sentToSurveyCount = response.sentToSurveyCount;\r\n this.avgScore = response.surveyAverage.toFixed(2);\r\n this.surveyRatio = response.surveyRatio.toFixed(2);\r\n\r\n this.surveyStart = moment(dateRange.startDateISO);\r\n this.surveyEnd = moment(dateRange.endDateISO);\r\n\r\n this.isFeedbackLoading = false;\r\n }, error => {\r\n console.error(\"Error getting direct feedback: \", error);\r\n this.isFeedbackLoading = false;\r\n this.notify.error(\"Error getting direct feedback data\", 10000);\r\n })\r\n }\r\n\r\n OpenLashLightDashboard() {\r\n let clientUserId = this.userService.clientUserId.toString();\r\n let encodedClientUserId = window.btoa(clientUserId); \r\n let lashDashboardUrl = \"https://advantage.overthetop.com/public/dashboard/?cuid=\" + encodedClientUserId;\r\n window.open(lashDashboardUrl);\r\n }\r\n\r\n OpenLashBulkSms() {\r\n let lashBulkSmsUrl = \"https://advantage.overthetop.com/users/SendSMS.aspx\";\r\n window.open(lashBulkSmsUrl);\r\n }\r\n\r\n checkRoles() {\r\n let rolesAsString = \"\";\r\n if (typeof this.userService.roles == \"string\") {\r\n rolesAsString = this.userService.roles;\r\n }\r\n else {\r\n rolesAsString = this.userService.roles.join(\",\");\r\n }\r\n\r\n if (rolesAsString.includes(\"Admin\")) {\r\n this.isAdmin = true;\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n openHelpLink() {\r\n this.helpDialogService.openDialog(\"Carbon Instant Reviews\");\r\n }\r\n}\r\nexport interface Review {\r\n name: string,\r\n mobilePhone: string,\r\n starRating: string,\r\n comments: string,\r\n dateCreated: string,\r\n contactId: number,\r\n contactGuid: string,\r\n surveyResponseId: number,\r\n isResolved: boolean\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/dashboard/dashboard.component.ts","module.exports = \".modal-body.has-table {\\r\\n padding: 0;\\r\\n}\\r\\n.clickable-row {\\r\\n cursor: pointer;\\r\\n}\\r\\n.score-container {\\r\\n width: 100%;\\r\\n display: -webkit-box;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -webkit-box-pack: space-evenly;\\r\\n -ms-flex-pack: space-evenly;\\r\\n justify-content: space-evenly;\\r\\n -webkit-box-align: center;\\r\\n -ms-flex-align: center;\\r\\n align-items: center;\\r\\n}\\r\\n.score {\\r\\n border: 1px solid black;\\r\\n border-collapse: collapse;\\r\\n -webkit-box-flex: 1;\\r\\n -ms-flex: 1;\\r\\n flex: 1;\\r\\n height: 25px;\\r\\n text-align: center;\\r\\n background-color: #ff8d8d;\\r\\n display: -webkit-box;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -webkit-box-pack: center;\\r\\n -ms-flex-pack: center;\\r\\n justify-content: center;\\r\\n -webkit-box-align: center;\\r\\n -ms-flex-align: center;\\r\\n align-items: center;\\r\\n}\\r\\n.score-good {\\r\\n background-color: #52d852;\\r\\n}\\r\\n.score-selected {\\r\\n height: 45px;\\r\\n -webkit-box-flex: 1.25;\\r\\n -ms-flex: 1.25;\\r\\n flex: 1.25;\\r\\n}\\r\\n.score-labels-container {\\r\\n display: -webkit-box;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -webkit-box-pack: justify;\\r\\n -ms-flex-pack: justify;\\r\\n justify-content: space-between;\\r\\n}\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/dashboard/survey-responses/survey-responses.component.css\n// module id = ./src/app/dashboard/survey-responses/survey-responses.component.css\n// module chunks = main","module.exports = \"
\\r\\n

Surveys

\\r\\n \\r\\n

\\r\\n {{selectedResponse.contact.firstName}} {{selectedResponse.contact.lastName}}\\r\\n - {{selectedResponse.totalScore}}/{{selectedResponse.totalPossible}}\\r\\n

\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
DateNameScore
{{response.dateCreated + 'Z' | date: 'short'}}{{response.contact.firstName}} {{response.contact.lastName}}{{response.totalScore}}/{{response.totalPossible}}
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n

{{answer.surveyQuestions.question}}

\\r\\n
\\r\\n
= answer.surveyQuestions.goodReviewTheshhold}\\\">{{score+1}}
\\r\\n
\\r\\n
\\r\\n

{{answer.surveyQuestions.lowLabel}}

{{answer.surveyQuestions.highLabel}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/dashboard/survey-responses/survey-responses.component.html\n// module id = ./src/app/dashboard/survey-responses/survey-responses.component.html\n// module chunks = main","import { Component, Input, OnInit, OnChanges } from '@angular/core';\r\nimport { SurveyService } from '../../services/survey.service';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { Observable } from 'rxjs';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { NotifyService } from '../../services/notify.service';\r\nimport * as moment from 'moment';\r\n\r\n@Component({\r\n selector: 'survey-responses',\r\n templateUrl: './survey-responses.component.html',\r\n styleUrls: ['./survey-responses.component.css']\r\n})\r\nexport class SurveyResponsesComponent implements OnInit, OnChanges {\r\n @Input() clientId: number;\r\n @Input() surveyId: number;\r\n @Input() startDate: moment.Moment;\r\n @Input() endDate: moment.Moment;\r\n\r\n public surveyResponses$: Observable;\r\n public selectedResponse = null;\r\n\r\n constructor(public activeModal: NgbActiveModal, public surveyService: SurveyService, public notify: NotifyService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.surveyResponses$ = this.getSurveyResponseObservable(this.clientId, this.surveyId, this.startDate.toISOString(), this.endDate.toISOString());\r\n }\r\n\r\n ngOnChanges() {\r\n this.surveyResponses$ = this.getSurveyResponseObservable(this.clientId, this.surveyId, this.startDate.toISOString(), this.endDate.toISOString());\r\n }\r\n\r\n getSurveyResponseObservable(clientId: number, surveyId: number, startDateISO: string, endDateISO: string): Observable {\r\n return this.surveyService.getSurveyResponses(clientId, surveyId, startDateISO, endDateISO)\r\n .pipe(\r\n map(surveyResponses => {\r\n surveyResponses = surveyResponses.map(sr => {\r\n sr.totalPossible = sr.surveyResponseAnswers.reduce((accumulator: number, currentAnswer) => {\r\n return accumulator + currentAnswer.surveyQuestions.score;\r\n }, 0);\r\n return sr;\r\n })\r\n\r\n return surveyResponses;\r\n }),\r\n catchError(error => {\r\n console.error(\"Error getting survey responses: \", error);\r\n this.notify.error(\"Error getting survey responses\", 10000);\r\n\r\n return [];\r\n })\r\n )\r\n }\r\n\r\n selectSurveyResponse(surveyResponse) {\r\n //console.log(\"Response Selected: \", surveyResponse);\r\n this.selectedResponse = surveyResponse;\r\n }\r\n\r\n deselectResponse() {\r\n this.selectedResponse = null;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/dashboard/survey-responses/survey-responses.component.ts","module.exports = \".fa-star {\\r\\n color: #9e4545;\\r\\n}\\r\\n\\r\\n.mat-table {\\r\\n overflow: auto;\\r\\n max-height: 250px;\\r\\n}\\r\\n\\r\\n.mat-row {\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.comment {\\r\\n margin-bottom: 0px;\\r\\n}\\r\\n\\r\\n.commentAuthor {\\r\\n margin-top: 3px;\\r\\n margin-left: 10px;\\r\\n font-size: 0.9em;\\r\\n}\\r\\n\\r\\n.error {\\r\\n color: red;\\r\\n font-size: 0.9em;\\r\\n}\\r\\n\\r\\n.commentContainer {\\r\\n overflow-y: scroll;\\r\\n max-height: 500px;\\r\\n}\\r\\n\\r\\n.surveyQuestion {\\r\\n font-weight: 500;\\r\\n margin-bottom: 0px;\\r\\n}\\r\\n\\r\\n.surveyAnswer {\\r\\n margin-top: 3px;\\r\\n margin-left: 10px;\\r\\n}\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/dashboard/unresolved-bad-reviews/unresolved-bad-reviews.component.css\n// module id = ./src/app/dashboard/unresolved-bad-reviews/unresolved-bad-reviews.component.css\n// module chunks = main","module.exports = \" 0; else noRecords\\\" [dataSource]=\\\"badReviews\\\">\\r\\n \\r\\n Name \\r\\n {{badReview.firstName}} {{badReview.lastName}} \\r\\n \\r\\n \\r\\n Review \\r\\n \\r\\n \\r\\n \\r\\n Date Created \\r\\n {{badReview.dateCreated + 'Z' | date:'MMM d, y h:mm a'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n

No bad reviews found.

\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n

{{selectedRow.firstName}} {{selectedRow.lastName}} -

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n

{{selectedRow.feedbackOrSurveyResponse | activityDescription}}

\\r\\n
0\\\" class=\\\"surveyContainer\\\">\\r\\n
\\r\\n

{{answer.question}}

\\r\\n

{{answer.answerScore}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

No {{surveyId == 0 ? 'comment' : 'survey'}} found

\\r\\n
\\r\\n

Contact Info:

\\r\\n

Email: {{selectedRow.email}}

\\r\\n

Mobile Phone Number: {{selectedRow.mobilePhone | phone}}

\\r\\n
\\r\\n
0\\\" class=\\\"commentContainer\\\">\\r\\n
\\r\\n

{{comment.comment}}

\\r\\n

Left By: {{comment.firstName}} {{comment.lastName}} - {{comment.dateCreated + 'Z' | date:'MMM d, y h:mm a'}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

A comment is required for submission.

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/dashboard/unresolved-bad-reviews/unresolved-bad-reviews.component.html\n// module id = ./src/app/dashboard/unresolved-bad-reviews/unresolved-bad-reviews.component.html\n// module chunks = main","import { Component, OnChanges, Input, OnDestroy } from '@angular/core';\r\nimport { ContactService } from '../../services/contact.service';\r\nimport { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\r\nimport { NegativeReviewComment } from '../../models/negative-review-comment';\r\nimport { UserService } from '../../services/user.service';\r\nimport { NotifyService } from '../../services/notify.service';\r\n\r\n@Component({\r\n selector: 'unresolved-bad-reviews',\r\n templateUrl: './unresolved-bad-reviews.component.html',\r\n styleUrls: ['./unresolved-bad-reviews.component.css']\r\n})\r\nexport class UnresolvedBadReviewsComponent implements OnChanges, OnDestroy {\r\n @Input() clientId: number;\r\n @Input() surveyId: number = 0;\r\n badReviews: any[] = null;\r\n badReviewColumns = ['name', 'review', 'dateCreated'];\r\n selectedRow = null;\r\n negativeReviewComment: NegativeReviewComment = new NegativeReviewComment();\r\n modalRef: NgbModalRef = null;\r\n commentError: boolean = false;\r\n loading: boolean = false;\r\n\r\n surveyAnswers: any[] = [];\r\n\r\n constructor(private contactService: ContactService, private modal: NgbModal, private userService: UserService, private notify: NotifyService) {\r\n\r\n }\r\n\r\n ngOnChanges() {\r\n if (this.clientId > 0) {\r\n this.GetBadReviews();\r\n this.negativeReviewComment = new NegativeReviewComment();\r\n this.commentError = false;\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.modalRef !== null) {\r\n this.modalRef.dismiss();\r\n this.modalRef = null;\r\n }\r\n }\r\n\r\n GetBadReviews() {\r\n this.badReviews = null;\r\n this.loading = true;\r\n this.contactService.GetBadReviews(this.clientId)\r\n .subscribe(response => {\r\n this.loading = false;\r\n this.badReviews = response;\r\n }, error => {\r\n this.loading = false;\r\n this.notify.error(\"Error Getting Bad Reviews.\");\r\n console.error(error);\r\n })\r\n }\r\n\r\n GetSurveyAnswers(id) {\r\n this.surveyAnswers = [];\r\n this.userService.getSurveyAnswers(id, this.surveyId)\r\n .subscribe(response => {\r\n this.surveyAnswers = response;\r\n },\r\n error => {\r\n console.error(error);\r\n })\r\n }\r\n\r\n CreateArray(number) {\r\n let result = Array(parseInt(number));\r\n return result;\r\n }\r\n\r\n showModal(modalElement, row) {\r\n this.modalRef = this.modal.open(modalElement);\r\n this.selectedRow = row;\r\n\r\n this.contactService.GetContactByContactId(row.contactId)\r\n .subscribe(resp => {\r\n this.selectedRow.contactGuid = resp.contactGuid;\r\n }, error => {\r\n console.error(error);\r\n })\r\n\r\n this.surveyAnswers = [];\r\n if (row.feedbackOrSurveyResponse !== null && row.feedbackOrSurveyResponse !== undefined) {\r\n let splitResponse = row.feedbackOrSurveyResponse.split('|')\r\n if (splitResponse.length > 1) {\r\n let surveyResponseId = splitResponse[1];\r\n this.GetSurveyAnswers(surveyResponseId);\r\n }\r\n }\r\n }\r\n\r\n closeModal() {\r\n this.negativeReviewComment = new NegativeReviewComment();\r\n this.commentError = false;\r\n this.modalRef.close();\r\n this.modalRef = null;\r\n this.surveyAnswers = [];\r\n }\r\n\r\n submitComment() {\r\n this.commentError = false;\r\n if (!this.validateComment()) {\r\n return false;\r\n }\r\n\r\n this.negativeReviewComment.contactActivityId = this.selectedRow.contactActivityId;\r\n this.negativeReviewComment.clientUserId = this.userService.clientUserId;\r\n this.contactService.SubmitReviewComment(this.negativeReviewComment).subscribe(resp => {\r\n this.closeModal();\r\n if (this.negativeReviewComment.resolved) {\r\n this.notify.success(\"Successfully resolved review\");\r\n }\r\n else {\r\n this.notify.success(\"Successfully submitted comment\");\r\n }\r\n this.negativeReviewComment = new NegativeReviewComment();\r\n this.GetBadReviews();\r\n }, error => {\r\n this.notify.error(\"Error submitting comment\");\r\n console.error(error);\r\n })\r\n }\r\n\r\n validateComment() {\r\n if (this.negativeReviewComment.comment === undefined || this.negativeReviewComment.comment.trim() === \"\") {\r\n this.commentError = true;\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/dashboard/unresolved-bad-reviews/unresolved-bad-reviews.component.ts","module.exports = \".custom-day {\\r\\n text-align: center;\\r\\n padding: 0.185rem 0.25rem;\\r\\n display: inline-block;\\r\\n height: 2rem;\\r\\n width: 2rem;\\r\\n}\\r\\n.custom-day.focused {\\r\\n background-color: #e6e6e6;\\r\\n}\\r\\n.custom-day.range,\\r\\n.custom-day:hover {\\r\\n background-color: rgb(2, 117, 216);\\r\\n color: white;\\r\\n}\\r\\n.custom-day.faded {\\r\\n background-color: rgba(2, 117, 216, 0.5);\\r\\n}\\r\\n.custom-day.disabled {\\r\\n color: #6c757d!important;\\r\\n opacity: 0.5;\\r\\n}\\r\\n.datepicker {\\r\\n z-index: 99;\\r\\n background-color: white;\\r\\n}\\r\\nselect.date-range {\\r\\n display: inline-block;\\r\\n width: initial;\\r\\n}\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/date-picker/date-picker.component.css\n// module id = ./src/app/date-picker/date-picker.component.css\n// module chunks = main","module.exports = \"\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n {{ date.day }}\\r\\n \\r\\n\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/date-picker/date-picker.component.html\n// module id = ./src/app/date-picker/date-picker.component.html\n// module chunks = main","import { Component, OnInit, Output, EventEmitter, HostListener, ElementRef, Input } from '@angular/core';\r\nimport { NgbDate } from '@ng-bootstrap/ng-bootstrap/datepicker/ngb-date';\r\nimport * as moment from 'moment';\r\nimport { NgbDateStruct, NgbCalendar } from '@ng-bootstrap/ng-bootstrap';\r\nimport Popper from 'popper.js';\r\nimport { DateRange, DateRangeOptions } from '../models/date-range';\r\n\r\n@Component({\r\n selector: 'app-date-picker',\r\n templateUrl: './date-picker.component.html',\r\n styleUrls: ['./date-picker.component.css']\r\n})\r\nexport class DatePickerComponent implements OnInit {\r\n @Input()startDate: moment.Moment;\r\n @Input()endDate: moment.Moment;\r\n @Input()selectedDateRange: number = DateRangeOptions.last30Days;\r\n @Output() dateRangeSelected = new EventEmitter();\r\n dateRanges = DateRangeOptions;\r\n hoveredDate: NgbDateStruct;\r\n datePopper: Popper = null;\r\n isDatepickerShown: boolean = false;\r\n \r\n public get fromDate() : NgbDateStruct {\r\n return this.toNgbDateStruct(this.startDate);\r\n }\r\n public set fromDate(date : NgbDateStruct) {\r\n this.startDate = this.toMoment(date);\r\n }\r\n public get toDate() : NgbDateStruct {\r\n return this.toNgbDateStruct(this.endDate);\r\n }\r\n public set toDate(date : NgbDateStruct) {\r\n this.endDate = this.toMoment(date);\r\n }\r\n today: NgbDate;\r\n startMonth: NgbDate;\r\n constructor(private elementRef: ElementRef, private calendar: NgbCalendar) {\r\n this.today = calendar.getToday();\r\n this.startMonth = calendar.getPrev(this.today, \"m\", 1)\r\n }\r\n\r\n ngOnInit(): void {\r\n if(this.startDate) {\r\n this.startMonth = new NgbDate(this.startDate.year(), this.startDate.month() + 1, this.startDate.date());\r\n }\r\n this.onRangeDropdownChange(false);\r\n }\r\n\r\n onRangeDropdownChange(emitDates:boolean = true) {\r\n switch (this.selectedDateRange) {\r\n case DateRangeOptions.lifetime:\r\n this.startDate = null; //start - none\r\n this.endDate = null; //end - none\r\n break;\r\n case DateRangeOptions.today:\r\n this.startDate = moment(); //start - beginning of today\r\n this.endDate = moment(); //end - end of today\r\n break;\r\n case DateRangeOptions.yesterday:\r\n this.startDate = moment().subtract(1, \"day\"); //start - beginning of yesterday\r\n this.endDate = moment().subtract(1, \"day\"); //end - end of yesterday\r\n break;\r\n case DateRangeOptions.last7Days:\r\n this.startDate = moment().subtract(7, \"day\"); //start - beginning of 7 days ago\r\n this.endDate = moment(); //end - end of today\r\n break;\r\n case DateRangeOptions.last14Days:\r\n this.startDate = moment().subtract(14, \"day\"); //start - beginning of 14 days ago\r\n this.endDate = moment(); //end - end of today\r\n break;\r\n case DateRangeOptions.last30Days:\r\n this.startDate = moment().subtract(30, \"day\"); //start - beginning of 30 days ago\r\n this.endDate = moment(); //end - end of today\r\n break;\r\n case DateRangeOptions.thisWeek:\r\n this.startDate = moment().startOf(\"week\"); //start - beginning of this week\r\n this.endDate = moment(); //end - end of today\r\n break;\r\n case DateRangeOptions.lastWeek:\r\n this.startDate = moment().subtract(1, \"week\").startOf(\"week\"); //start - beginning of last week\r\n this.endDate = moment().subtract(1, \"week\").endOf(\"week\"); //end - end of last week\r\n break;\r\n case DateRangeOptions.thisMonth:\r\n this.startDate = moment().startOf(\"month\"); //start - beginning of this month\r\n this.endDate = moment(); //end - end of today\r\n break;\r\n case DateRangeOptions.lastMonth:\r\n this.startDate = moment().subtract(1, \"month\").startOf(\"month\"); //start - beginning of last month\r\n this.endDate = moment().subtract(1, \"month\").endOf(\"month\"); //end - end of last month\r\n break;\r\n case DateRangeOptions.custom:\r\n //show date picker\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n if(this.startDate)\r\n this.startDate.startOf(\"day\");\r\n if(this.endDate)\r\n this.endDate.endOf(\"day\");\r\n\r\n if(this.selectedDateRange !== DateRangeOptions.custom && emitDates) {\r\n let startISO: string = this.startDate ? this.startDate.toISOString() : null;\r\n let endISO: string = this.endDate ? this.endDate.toISOString() : null;\r\n\r\n this.dateRangeSelected.emit({startDateISO: startISO, endDateISO: endISO});\r\n }\r\n }\r\n\r\n onDateSelection(date: NgbDateStruct) {\r\n if(!this.fromDate && !this.toDate) {\r\n this.fromDate = date;\r\n } else if (this.fromDate && !this.toDate && this.after(date, this.fromDate)) {\r\n this.toDate = date;\r\n } else {\r\n this.toDate = null;\r\n this.fromDate = date;\r\n }\r\n\r\n this.startDate.startOf(\"day\");\r\n if(this.endDate !== null) {\r\n this.endDate.endOf(\"day\");\r\n }\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n documentClick(event: MouseEvent) {\r\n if(!this.elementRef.nativeElement.contains(event.target)) {\r\n this.hideDatepicker();\r\n }\r\n }\r\n\r\n //Popper functions\r\n showDatepicker(button: Element, datepicker: Element) {\r\n this.isDatepickerShown = true;\r\n this.datePopper = new Popper(button, datepicker);\r\n this.datePopper.scheduleUpdate();\r\n }\r\n hideDatepicker() {\r\n this.isDatepickerShown = false;\r\n if(this.datePopper) {\r\n this.datePopper.destroy();\r\n this.datePopper = null;\r\n\r\n if(this.endDate === null) {\r\n this.endDate = moment(this.startDate);\r\n this.endDate.endOf(\"day\");\r\n }\r\n\r\n this.dateRangeSelected.emit({startDateISO: this.startDate.toISOString(), endDateISO: this.endDate.toISOString()});\r\n }\r\n }\r\n toggleDatepicker(button: Element, datepicker: Element) {\r\n if(!this.isDatepickerShown) {\r\n this.showDatepicker(button, datepicker);\r\n }\r\n else {\r\n this.hideDatepicker();\r\n }\r\n }\r\n\r\n //Conversion functions\r\n toMoment(date: NgbDateStruct): moment.Moment {\r\n if(!date)\r\n return null;\r\n\r\n let dateCopy = Object.assign({}, date);\r\n dateCopy.month -= 1;\r\n return moment(dateCopy);\r\n }\r\n\r\n toNgbDateStruct(date: moment.Moment): NgbDateStruct {\r\n if(!date)\r\n return null;\r\n\r\n return {\r\n year: date.year(),\r\n month: date.month() + 1,\r\n day: date.date()\r\n }\r\n }\r\n\r\n //Datepicker helper functions\r\n isHovered(date: NgbDateStruct): boolean {\r\n return this.fromDate && !this.toDate && this.hoveredDate && this.after(date, this.fromDate) && this.before(date, this.hoveredDate);\r\n }\r\n\r\n isInside(date: NgbDateStruct): boolean {\r\n return this.after(date, this.fromDate) && this.before(date, this.toDate);\r\n }\r\n\r\n isRange(date: NgbDateStruct): boolean {\r\n return this.equals(date, this.fromDate) || this.equals(date, this.toDate) || this.isInside(date) || this.isHovered(date);\r\n }\r\n\r\n equals(one: NgbDateStruct, two: NgbDateStruct): boolean {\r\n return one && two && two.year === one.year && two.month === one.month && two.day === one.day;\r\n }\r\n\r\n before(one: NgbDateStruct, two: NgbDateStruct): boolean {\r\n return !one || !two ? false : one.year === two.year ? one.month === two.month ? one.day === two.day\r\n ? false : one.day < two.day : one.month < two.month : one.year < two.year;\r\n }\r\n\r\n after(one: NgbDateStruct, two: NgbDateStruct): boolean {\r\n return !one || !two ? false : one.year === two.year ? one.month === two.month ? one.day === two.day\r\n ? false : one.day > two.day : one.month > two.month : one.year > two.year;\r\n }\r\n}\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/date-picker/date-picker.component.ts","module.exports = \".modelessDialog {\\r\\n position: fixed;\\r\\n -webkit-transform: translate(-50%, -50%);\\r\\n transform: translate(-50%, -50%);\\r\\n z-index: 9999 !important;\\r\\n background: rgba(255, 255, 255, 1);\\r\\n pointer-events: auto;\\r\\n -webkit-box-shadow: 10px 10px 15px -3px rgba(0,0,0,0.75);\\r\\n box-shadow: 10px 10px 15px -3px rgba(0,0,0,0.75);\\r\\n max-width: 95%;\\r\\n top: 50%;\\r\\n left: 50%;\\r\\n width: 50%;\\r\\n}\\r\\n\\r\\n.dialog-backdrop {\\r\\n \\r\\n position: fixed;\\r\\n width: 100%;\\r\\n height: 100%;\\r\\n display: -webkit-box;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -webkit-box-pack: center;\\r\\n -ms-flex-pack: center;\\r\\n justify-content: center;\\r\\n -webkit-box-align: center;\\r\\n -ms-flex-align: center;\\r\\n align-items: center;\\r\\n top: 0;\\r\\n left: 0;\\r\\n background-color: rgba(250, 255, 255, 0.5);\\r\\n z-index: 998;\\r\\n}\\r\\n\\r\\ni {\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\nbutton:hover {\\r\\n background-color: black;\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.modal-header {\\r\\n background-color: black;\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.modal-body {\\r\\n font-size: 0.8em;\\r\\n width: auto;\\r\\n height: auto;\\r\\n min-height: 100px;\\r\\n max-height: 460px;\\r\\n}\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/dev-warning/dev-warning.component.css\n// module id = ./src/app/dev-warning/dev-warning.component.css\n// module chunks = main","module.exports = \"
\\r\\n
\\r\\n
\\r\\n

Warning

\\r\\n \\r\\n
\\r\\n
\\r\\n

\\r\\n Warning - You are accessing the pre-release version of Carbon. You may experience difficulties with certain elements as we roll out new features.
\\r\\n For the latest release, please visit Carbon.biz
\\r\\n Click here now to switch pages.\\r\\n

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/dev-warning/dev-warning.component.html\n// module id = ./src/app/dev-warning/dev-warning.component.html\n// module chunks = main","import { Component, EventEmitter, Output, HostListener } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-dev-warning',\r\n templateUrl: './dev-warning.component.html',\r\n styleUrls: ['./dev-warning.component.css']\r\n})\r\n\r\nexport class DevWarningComponent {\r\n @Output() onClose = new EventEmitter();\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent) {\r\n this.closeDialog();\r\n }\r\n\r\n closeDialog() {\r\n this.onClose.emit(true);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/dev-warning/dev-warning.component.ts","import { Directive, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[dialog-host]'\r\n})\r\nexport class DialogHostDirective {\r\n constructor(public viewContainerRef: ViewContainerRef) {\r\n\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/dialog-host.directive.ts","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({name: 'ExtractFileName'})\r\nexport class ExtractFileNamePipe implements PipeTransform {\r\n transform(url: string): any {\r\n console.log(\"url: \", url);\r\n let splitUrl = url.split(\"/\");\r\n console.log(\"splitUrl: \", splitUrl);\r\n let fileName = splitUrl[splitUrl.length - 1];\r\n console.log(\"fileName: \", fileName);\r\n return fileName;\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/file-input/extract-file-name.pipe.ts","module.exports = \"#fileInput {\\r\\n border: 0;\\r\\n clip: rect(0, 0, 0, 0);\\r\\n height: 1px;\\r\\n overflow: hidden;\\r\\n padding: 0;\\r\\n position: absolute !important;\\r\\n white-space: nowrap;\\r\\n width: 1px;\\r\\n}\\r\\n\\r\\n.template-url {\\r\\n max-width: 500px;\\r\\n overflow: hidden;\\r\\n text-overflow: ellipsis;\\r\\n}\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/file-input/file-input.component.css\n// module id = ./src/app/file-input/file-input.component.css\n// module chunks = main","module.exports = \"\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n {{url.url | ExtractFileName}}\\r\\n {{file.name}} \\r\\n
\\r\\n
\\r\\n
\\r\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/file-input/file-input.component.html\n// module id = ./src/app/file-input/file-input.component.html\n// module chunks = main","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { ClientService } from '../services/client.service';\r\nimport { ClientSubscribedServices } from '../models/client-subscribed-services';\r\n\r\n@Component({\r\n selector: 'app-file-input',\r\n templateUrl: './file-input.component.html',\r\n styleUrls: ['./file-input.component.css']\r\n})\r\nexport class FileInputComponent implements OnInit {\r\n\r\n @Input() clientId: number;\r\n @Input() fileList: File[];\r\n @Input() templateUrls: any[];\r\n @Output() fileAdded = new EventEmitter();\r\n @Output() fileRemoved = new EventEmitter();\r\n\r\n hasMmsService: boolean = false;\r\n\r\n constructor(private clientService: ClientService) { }\r\n\r\n ngOnInit(): void { \r\n this.clientService.GetSubscribedServices(this.clientId).subscribe(resp => {\r\n console.log(\"Subscribed Services: \", resp);\r\n this.hasMmsService = resp.includes(ClientSubscribedServices.CarbonMms);\r\n console.log(\"Has MMS Service: \", this.hasMmsService);\r\n })\r\n }\r\n\r\n AddFiles(files: FileList) {\r\n console.log(\"Files: \", files);\r\n let file = files.item(0);\r\n // console.log(\"File: \", file);\r\n // this.fileList.push(file);\r\n this.fileAdded.emit(file);\r\n }\r\n\r\n removeFile(file: File) {\r\n this.fileList = this.fileList.filter(f => f.name !== file.name);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/file-input/file-input.component.ts","module.exports = \".modelessDialog {\\r\\n position: fixed;\\r\\n -webkit-transform: translate(-50%, -50%);\\r\\n transform: translate(-50%, -50%);\\r\\n z-index: 9999 !important;\\r\\n background: rgba(255, 255, 255, 1);\\r\\n pointer-events: auto;\\r\\n -webkit-box-shadow: 10px 10px 15px -3px rgba(0,0,0,0.75);\\r\\n box-shadow: 10px 10px 15px -3px rgba(0,0,0,0.75);\\r\\n max-width: 450px;\\r\\n}\\r\\n\\r\\n.dialog-backdrop {\\r\\n position: fixed;\\r\\n top: 0;\\r\\n left: 0;\\r\\n width: 100%;\\r\\n height: 100%;\\r\\n pointer-events: none;\\r\\n z-index: 2;\\r\\n}\\r\\n\\r\\n.modal-header{\\r\\n background-color: black;\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.modal-body {\\r\\n overflow: auto;\\r\\n width: auto;\\r\\n height: auto;\\r\\n min-height: 100px;\\r\\n max-height: 460px;\\r\\n}\\r\\n\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/help-dialog/help-dialog.component.css\n// module id = ./src/app/help-dialog/help-dialog.component.css\n// module chunks = main","module.exports = \"
\\r\\n
\\r\\n
\\r\\n

\\r\\n {{titleText}}\\r\\n

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/help-dialog/help-dialog.component.html\n// module id = ./src/app/help-dialog/help-dialog.component.html\n// module chunks = main","import { Component, OnInit, ViewChild, ElementRef, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'help-dialog',\r\n templateUrl: './help-dialog.component.html',\r\n styleUrls: ['./help-dialog.component.css']\r\n})\r\nexport class HelpDialogComponent implements OnInit {\r\n @Input() titleText: string;\r\n @Input() bodyHtml: string;\r\n @Output() onClose = new EventEmitter();\r\n @ViewChild(\"dialog\") dialog: ElementRef;\r\n\r\n elementX = '50%';\r\n elementY = '50%';\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void { }\r\n\r\n closeDialog(reason: string = null) {\r\n this.onClose.emit(reason);\r\n }\r\n\r\n // Drag Event Methods\r\n dragStart(event) {\r\n event.dataTransfer.dropEffect = \"move\";\r\n }\r\n\r\n drop(event) {\r\n const clientHeight = this.dialog.nativeElement.clientHeight;\r\n //console.log(\"dropped\");\r\n let heightOffset = (clientHeight)/2;\r\n event.preventDefault();\r\n\r\n this.elementX = `${event.clientX}px`;\r\n this.elementY = `${event.clientY + heightOffset - 50}px`;\r\n }\r\n\r\n dragover(event) {\r\n const clientHeight = this.dialog.nativeElement.clientHeight;\r\n let heightOffset = (clientHeight)/2;\r\n\r\n event.preventDefault();\r\n this.elementX = `${event.clientX}px`;\r\n this.elementY = `${event.clientY + heightOffset - 50}px`;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/help-dialog/help-dialog.component.ts","module.exports = \".helpSection{\\r\\n margin-top: 10px;\\r\\n margin-left: 5px;\\r\\n}\\r\\n\\r\\n.helpLink {\\r\\n text-decoration: underline;\\r\\n cursor: pointer;\\r\\n padding-top: 10px;\\r\\n}\\r\\n\\r\\n.helpLink:hover {\\r\\n color: blue;\\r\\n}\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/help-resources/help-resources.component.css\n// module id = ./src/app/help-resources/help-resources.component.css\n// module chunks = main","module.exports = \"
\\r\\n
\\r\\n
\\r\\n

Legacy Help Resources

\\r\\n

Switch to the Current Version of Carbon

\\r\\n
\\r\\n
    \\r\\n
  • {{help.name}}
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n

{{helpInfo.name}}

\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/help-resources/help-resources.component.html\n// module id = ./src/app/help-resources/help-resources.component.html\n// module chunks = main","import { Component } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { ClientPickerService } from '../services/client-picker.service';\r\nimport { HelpApplicationTypes } from '../models/help-application-types';\r\nimport { HelpDialogService } from '../services/help-dialog.service';\r\nimport { SpinnerOverlayService } from '../services/spinner-overlay.service';\r\nimport { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ConfigService } from '../services/config.service';\r\n\r\n@Component({\r\n selector: 'app-help-resources',\r\n templateUrl: './help-resources.component.html',\r\n styleUrls: ['./help-resources.component.css']\r\n})\r\n\r\nexport class HelpResourcesComponent {\r\n constructor(\r\n private clientPickerService: ClientPickerService,\r\n private helpService: HelpDialogService,\r\n private spinnerService: SpinnerOverlayService,\r\n private modalService: NgbModal,\r\n private configService: ConfigService\r\n ) {}\r\n\r\n subscription: Subscription;\r\n clientTypeId: number;\r\n clientId: number;\r\n\r\n allHelpData: any = null;\r\n helpInfo: any = null;\r\n modalRef: NgbModalRef = null; \r\n v2link: string|null = null;\r\n\r\n\r\n ngOnInit() {\r\n this.subscription = this.clientPickerService.$clientRequestFinished.subscribe(\r\n (isDone: boolean) => {\r\n this.clientTypeId = this.clientPickerService.selectedClient.clientTypeId;\r\n this.subscription = this.clientPickerService.$clientId.subscribe(\r\n (clientId: number) => {\r\n this.clientId = clientId;\r\n window['Appcues'].track('v1_help');\r\n }\r\n )\r\n this.GetAllHelpInfo(this.clientTypeId, HelpApplicationTypes.Carbon);\r\n\r\n if(this.configService.carbonAppConfig != null) {\r\n if(this.configService.carbonAppConfig.v2link)\r\n this.v2link = this.configService.carbonAppConfig.v2link;\r\n }\r\n }\r\n )\r\n }\r\n\r\n GetAllHelpInfo(clientTypeId, applicationTypeId) {\r\n this.spinnerService.open();\r\n this.helpService.getAllHelp(clientTypeId, applicationTypeId)\r\n .subscribe(response => {\r\n //console.log(response);\r\n this.spinnerService.close();\r\n this.allHelpData = response.sort((a,b) => (a.title > b.title)? 1: -1);\r\n },\r\n error => {\r\n this.spinnerService.close();\r\n console.error(error);\r\n })\r\n }\r\n\r\n OpenResourceModal = (content, data) => {\r\n console.log(data);\r\n this.helpInfo = data;\r\n this.modalRef = this.modalService.open(content, { size: 'lg', backdrop: 'static' });\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/help-resources/help-resources.component.ts","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/incoming-call-notifier/confirm-spam-or-dead-dialog/confirm-spam-or-dead-dialog.component.css\n// module id = ./src/app/incoming-call-notifier/confirm-spam-or-dead-dialog/confirm-spam-or-dead-dialog.component.css\n// module chunks = main","module.exports = \"
\\r\\n

Confirm Lead Status

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n

Are you sure you want to mark this lead status as {{leadStatus | leadStatus}}?

\\r\\n

Marking this lead as {{leadStatus | leadStatus}} will close this call window and hide them from the conversations tab!

\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/incoming-call-notifier/confirm-spam-or-dead-dialog/confirm-spam-or-dead-dialog.component.html\n// module id = ./src/app/incoming-call-notifier/confirm-spam-or-dead-dialog/confirm-spam-or-dead-dialog.component.html\n// module chunks = main","import { Component, Output, EventEmitter, Input } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { NotifyService } from '../../services/notify.service';\r\nimport { LeadsService } from '../../services/leads.service';\r\nimport { UserService } from '../../services/user.service';\r\nimport { LeadActivityTypes } from '../../models/lead-activity-types';\r\nimport { Contact } from '../../models/contact';\r\nimport { ContactService } from '../../services/contact.service';\r\nimport { CallRecordingService } from '../../services/call-recording.service';\r\n\r\n@Component({\r\n selector: 'app-confirm-spam-or-dead-dialog',\r\n templateUrl: './confirm-spam-or-dead-dialog.component.html',\r\n styleUrls: ['./confirm-spam-or-dead-dialog.component.css']\r\n})\r\n\r\nexport class ConfirmSpamOrDeadDialogComponent {\r\n @Input() clientId: number;\r\n @Input() leadStatus: number;\r\n @Input() incomingPhoneNumber: string;\r\n @Input() contactId: number;\r\n @Input() selectedDate: Date;\r\n @Input() contact: Contact;\r\n newLeadId: number = 0;\r\n @Output() onConfirmClicked = new EventEmitter();\r\n\r\n constructor(\r\n private activeModal: NgbActiveModal,\r\n private userService: UserService,\r\n private notify: NotifyService,\r\n private leadService: LeadsService,\r\n private contactService: ContactService,\r\n private callRecordingService: CallRecordingService\r\n ) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.GetNewLeadByPhoneNumber();\r\n }\r\n\r\n GetNewLeadByPhoneNumber() {\r\n this.leadService.GetLeadByPhone(this.clientId, this.incomingPhoneNumber)\r\n .subscribe(response => {\r\n this.newLeadId = response.newLeadId;\r\n }, error => {\r\n console.error(error);\r\n })\r\n }\r\n\r\n UpdateLeadStatusToSpamOrDead() {\r\n if(!this.newLeadId || this.newLeadId === 0) {\r\n this.notify.error(\"Error updating lead status: Invalid NewLeadId\");\r\n this.onConfirmClicked.emit(\"Error updating lead status: Invalid NewLeadId\");\r\n return;\r\n }\r\n\r\n this.leadService.UpdateAsHandled(this.newLeadId, this.userService.clientUserId, this.leadStatus, this.contactId, this.selectedDate)\r\n .subscribe(response => {\r\n this.notify.success(\"Lead Status Updated!\");\r\n this.onConfirmClicked.emit(response);\r\n\r\n if (this.leadStatus == LeadActivityTypes.NeverWasALead) {\r\n console.log(\"this contact: \", this.contact);\r\n //either update their dead lead reason\r\n if (this.contact !== null) {\r\n this.UpdateContactDeadLeadReason(4);\r\n }\r\n //or mark their phone call activity as deleted\r\n else {\r\n this.MarkFirstPhoneActivityAsDead(4);\r\n }\r\n }\r\n else {\r\n if (this.contact !== null) {\r\n this.UpdateContactDeadLeadReason(0);\r\n }\r\n else {\r\n this.MarkFirstPhoneActivityAsDead(0);\r\n }\r\n }\r\n\r\n setTimeout(function () {\r\n window.close();\r\n }, 3000)\r\n }, error => {\r\n this.notify.error(\"Error Updating Lead Status, please contact support\");\r\n this.onConfirmClicked.emit(error);\r\n console.error(error);\r\n })\r\n }\r\n\r\n UpdateContactDeadLeadReason(deadLeadReason) {\r\n\r\n let data = this.contact;\r\n //console.log(\"contact to update: \", data);\r\n data.emailOptInStatus = 1;\r\n data.smspermission = 2;\r\n data.DeadLeadReason = deadLeadReason;\r\n\r\n const clientUserId = this.userService.clientUserId;\r\n\r\n this.contactService.UpdateContact(data, clientUserId)\r\n .subscribe(response => {\r\n console.log(\"opted out: \", response);\r\n //this.notify.success(\"Dead or spam contact, opted out of sms and email\");\r\n },\r\n error => {\r\n //this.notify.error(\"Error opting out of sms and email\");\r\n console.error(\"could not opt out of sms and email\", error);\r\n })\r\n }\r\n\r\n MarkFirstPhoneActivityAsDead(deadLeadReason) {\r\n console.log(this.clientId, this.incomingPhoneNumber, deadLeadReason);\r\n this.callRecordingService.MarkFirstPhoneNumberActivityAsDeleted(this.clientId, this.incomingPhoneNumber, deadLeadReason)\r\n .subscribe(response => {\r\n console.log(\"updated: \", response);\r\n }, error => {\r\n console.error(\"could not mark first phone number activity as dead\", error)\r\n })\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/incoming-call-notifier/confirm-spam-or-dead-dialog/confirm-spam-or-dead-dialog.component.ts","module.exports = \".callout-popup-btn {\\r\\n /*border: 1px solid black;*/\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.number-pad {\\r\\n display: -ms-grid;\\r\\n display: grid;\\r\\n -ms-grid-columns: 1fr 1fr 1fr;\\r\\n grid-template-columns: 1fr 1fr 1fr;\\r\\n grid-gap: 15px 15px;\\r\\n width: 100%;\\r\\n margin: 10px 0;\\r\\n}\\r\\n\\r\\n.number-pad-number {\\r\\n border: 1px solid black;\\r\\n cursor: pointer;\\r\\n -webkit-user-select: none;\\r\\n -moz-user-select: none;\\r\\n -ms-user-select: none;\\r\\n user-select: none;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.call-btn {\\r\\n border-radius: 15px;\\r\\n border: 1px solid black;\\r\\n background-color: white;\\r\\n width: 100%;\\r\\n /*padding: 15px;*/\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.call-btn.call-start {\\r\\n border-color: green;\\r\\n color: green;\\r\\n }\\r\\n\\r\\n.call-btn.call-end {\\r\\n border-color: red;\\r\\n color: red;\\r\\n }\\r\\n\\r\\n.call-btn.call-end > i {\\r\\n -webkit-transform: rotate(224deg);\\r\\n transform: rotate(224deg);\\r\\n }\\r\\n\\r\\n.call-btn.call-loading {\\r\\n border-color: #17a2b8;\\r\\n color: #17a2b8;\\r\\n }\\r\\n\\r\\n.call-input {\\r\\n border-radius: 15px;\\r\\n border: 1px solid lightgray;\\r\\n padding: 0px 1em;\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n.mute-btn {\\r\\n border: 1px solid lightgray;\\r\\n border-radius: 5px;\\r\\n cursor: pointer;\\r\\n padding: 10px;\\r\\n vertical-align: middle;\\r\\n}\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/incoming-call-notifier/dialer/dialer.component.css\n// module id = ./src/app/incoming-call-notifier/dialer/dialer.component.css\n// module chunks = main","module.exports = \"
\\r\\n \\r\\n

Calling {{phoneNumber |phone}}

\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
{{num}}
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/incoming-call-notifier/dialer/dialer.component.html\n// module id = ./src/app/incoming-call-notifier/dialer/dialer.component.html\n// module chunks = main","import { Component, OnInit, OnDestroy, Input, Output, EventEmitter } from '@angular/core';\r\nimport { Device } from 'twilio-client';\r\nimport { NgbModalRef, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { VoiceService } from '../../services/voice.service';\r\nimport { UserService } from '../../services/user.service';\r\nimport { Contact } from '../../models/contact';\r\nimport { SmsService } from '../../services/sms.service';\r\nimport { ClientPickerService } from '../../services/client-picker.service';\r\nimport { NotifyService } from '../../services/notify.service';\r\nimport { ClientService } from '../../services/client.service';\r\nimport { ContactService } from '../../services/contact.service';\r\nimport { Subscription } from 'rxjs/Subscription';\r\nimport { ClientSubscribedServices } from '../../models/client-subscribed-services';\r\n\r\n@Component({\r\n selector: 'app-dialer',\r\n templateUrl: './dialer.component.html',\r\n styleUrls: ['./dialer.component.css']\r\n})\r\n\r\nexport class DialerComponent {\r\n @Input() phoneNumber: string;\r\n @Output() offCall = new EventEmitter();\r\n\r\n TwilioDevice: any = null;\r\n callInProgress: boolean = false;\r\n currentCallSid: string = \"\";\r\n muted: boolean = false;\r\n twilioReady: boolean = false;\r\n modalRef: NgbModalRef;\r\n clientPhoneNumber: string;\r\n voiceMessageUrl: string = \"\";\r\n audio: HTMLAudioElement = new Audio();\r\n subscription: Subscription;\r\n clientId: number = 0;\r\n hasSoftPhoneService: boolean = false;\r\n\r\n constructor(\r\n private voiceService: VoiceService,\r\n private userService: UserService,\r\n public modalService: NgbModal,\r\n public smsService: SmsService,\r\n public clientPickerService: ClientPickerService,\r\n public notify: NotifyService,\r\n public clientService: ClientService,\r\n public contactService: ContactService) {\r\n this.TwilioDevice = new Device();\r\n }\r\n\r\n ngOnInit() {\r\n console.log(\"Initializing\");\r\n this.subscription = this.clientPickerService.$clientId.subscribe(\r\n (clientId: number) => {\r\n this.clientId = clientId;\r\n this.initializeTwilio();\r\n this.getMessageUrl();\r\n }\r\n )\r\n this.clientService.GetSubscribedServices(this.clientId).subscribe((services: number[]) => {\r\n this.hasSoftPhoneService = services.includes(ClientSubscribedServices.IPSoftPhone);\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n console.log(\"Destroying\");\r\n\r\n if (this.TwilioDevice != null) {\r\n this.TwilioDevice.destroy();\r\n this.TwilioDevice = null;\r\n }\r\n }\r\n\r\n initializeTwilio() {\r\n if (this.TwilioDevice === null) {\r\n this.TwilioDevice = new Device();\r\n }\r\n\r\n this.voiceService.GetVoiceToken().subscribe(response => {\r\n //console.log(\"Voice token: \", response);\r\n this.TwilioDevice.setup(response);\r\n })\r\n\r\n this.TwilioDevice.on('ready', () => {\r\n //console.log(\"Connected to Twilio\");\r\n this.twilioReady = true;\r\n })\r\n\r\n\r\n this.smsService.GetSMSNumber(this.clientPickerService.selectedClientId).subscribe(response => {\r\n //console.log(\"Response: \", response);\r\n this.clientPhoneNumber = response;\r\n })\r\n\r\n this.callConnected = this.callConnected.bind(this);\r\n this.callDisconnected = this.callDisconnected.bind(this);\r\n this.callError = this.callError.bind(this);\r\n\r\n this.TwilioDevice.on('connect', this.callConnected);\r\n this.TwilioDevice.on('disconnect', this.callDisconnected);\r\n this.TwilioDevice.on('error', this.callError);\r\n }\r\n\r\n getMessageUrl() {\r\n this.clientService.GetClientConfigs(\"Carbon.VoiceMessageUrl\", this.clientPickerService.selectedClientId).subscribe(response => {\r\n this.voiceMessageUrl = response;\r\n })\r\n }\r\n\r\n openModal(content) {\r\n this.initializeTwilio();\r\n this.getMessageUrl();\r\n this.modalRef = this.modalService.open(content, { size: 'lg', backdrop: \"static\", windowClass: 'modal-window-xl' });\r\n }\r\n\r\n closeModal() {\r\n if (!this.callInProgress) {\r\n this.modalRef.close();\r\n this.TwilioDevice.destroy();\r\n this.TwilioDevice = null;\r\n }\r\n else {\r\n alert(\"Cannot close while a call is in progress\");\r\n }\r\n }\r\n\r\n numpadClicked(num) {\r\n //console.log(\"Numpad Clicked: \", num);\r\n if (this.callInProgress) {\r\n this.TwilioDevice.activeConnection().sendDigits(num.toString());\r\n }\r\n else {\r\n this.phoneNumber += num;\r\n }\r\n }\r\n\r\n startCall() {\r\n //console.log(this.phoneNumber);\r\n let cleaned = this.cleanPhoneNumber(this.phoneNumber);\r\n //console.log(cleaned);\r\n\r\n let twilioParams = {\r\n phoneNumber: cleaned,\r\n clientUserId: this.userService.clientUserId,\r\n callerId: this.clientPhoneNumber\r\n //callType: \"SoftPhone\"\r\n }\r\n\r\n this.TwilioDevice.connect(twilioParams);\r\n this.callInProgress = true;\r\n this.offCall.emit(true);\r\n }\r\n\r\n endCall() {\r\n this.TwilioDevice.disconnectAll();\r\n this.callInProgress = false;\r\n this.offCall.emit(false);\r\n }\r\n\r\n cleanPhoneNumber(phoneNumber) {\r\n let digits = phoneNumber.replace(/\\D/g, '');\r\n if (digits.startsWith('1')) {\r\n return '+' + digits;\r\n }\r\n else {\r\n return '+1' + digits;\r\n }\r\n }\r\n\r\n toggleMute() {\r\n if (this.callInProgress) {\r\n this.muted = !this.muted;\r\n this.TwilioDevice.activeConnection().mute(this.muted);\r\n }\r\n }\r\n\r\n callConnected(connection) {\r\n console.log(\"Call Connected: \", connection);\r\n this.callInProgress = true;\r\n }\r\n\r\n callDisconnected(connection) {\r\n console.log(\"Call Disconnected: \", connection);\r\n this.callInProgress = false;\r\n this.muted = false;\r\n }\r\n\r\n callError(error) {\r\n console.error(\"Call Error: \", error);\r\n this.notify.error(\"Error connecting to the call\");\r\n }\r\n\r\n leaveMessage() {\r\n if (this.voiceMessageUrl === \"\") {\r\n this.notify.error(\"Error: No voice message url\");\r\n return false;\r\n }\r\n if (!this.callInProgress) {\r\n return false;\r\n }\r\n\r\n let callSid = this.TwilioDevice.activeConnection().parameters.CallSid;\r\n let clientId = this.clientPickerService.selectedClientId;\r\n\r\n this.voiceService.redirect(callSid, clientId).subscribe(response => {\r\n console.log(\"Redirected: \", response);\r\n })\r\n }\r\n\r\n listenToMessage() {\r\n if (this.voiceMessageUrl === \"\") {\r\n this.notify.error(\"Error: No voice message url\");\r\n return false;\r\n }\r\n\r\n if (this.audio.paused) {\r\n this.audio.src = this.voiceMessageUrl;\r\n this.audio.load();\r\n this.audio.play();\r\n }\r\n else {\r\n this.audio.pause();\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/incoming-call-notifier/dialer/dialer.component.ts","module.exports = \".incomingCallPage {\\r\\n /*padding: 30px;*/\\r\\n padding-bottom: 10px;\\r\\n padding-top: 10px;\\r\\n}\\r\\n\\r\\ninput, textarea, select{\\r\\n margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n/*#newPhoneDiv {\\r\\n position: relative;\\r\\n display: none;\\r\\n padding-left: 50px;\\r\\n}*/\\r\\n\\r\\n#eligibleTags {\\r\\n height: 100px;\\r\\n resize: none;\\r\\n}\\r\\n\\r\\n#notes{\\r\\n /*height: 245px;*/\\r\\n resize: none;\\r\\n}\\r\\n\\r\\n.btn-carbon{\\r\\n background-color:rgba(0,0,0,.87);\\r\\n color:white;\\r\\n}\\r\\n\\r\\n.card {\\r\\n margin-top: 10px;\\r\\n}\\r\\n\\r\\n.card-body {\\r\\n max-height: 500px;\\r\\n overflow-y: scroll;\\r\\n}\\r\\n\\r\\n.tag {\\r\\n background-color: #3786d7;\\r\\n color: white;\\r\\n border: #bbbbbb 1px solid;\\r\\n -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset;\\r\\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset;\\r\\n display: inline-block;\\r\\n border-radius: 3px;\\r\\n font-family: \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif;\\r\\n font-size: 13px;\\r\\n margin: 0 5px 5px 0;\\r\\n padding: 4px;\\r\\n text-decoration: none;\\r\\n}\\r\\n\\r\\n.callImg {\\r\\n height: 30px;\\r\\n width: 30px;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.flag-negative {\\r\\n color: red;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.flag-positive {\\r\\n color: green;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.centerContent {\\r\\n display: -webkit-box;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -webkit-box-pack: center;\\r\\n -ms-flex-pack: center;\\r\\n justify-content: center;\\r\\n}\\r\\n\\r\\n.datePicker {\\r\\n z-index: 99;\\r\\n background-color: white;\\r\\n}\\r\\n\\r\\n.helpLink {\\r\\n color: #0e5ba5;\\r\\n cursor: pointer;\\r\\n margin-left: 10px;\\r\\n font-size: 18px;\\r\\n vertical-align: super;\\r\\n}\\r\\n\\r\\n/*@media (min-width: 992px) {\\r\\n .body-content {\\r\\n padding-left: -100px !important;\\r\\n }\\r\\n}*/\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/incoming-call-notifier/incoming-call-notifier.component.css\n// module id = ./src/app/incoming-call-notifier/incoming-call-notifier.component.css\n// module chunks = main","module.exports = \"
\\r\\n
\\r\\n
\\r\\n\\r\\n

Incoming Call Notification

\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Follow-up in: {{followUpCount}} {{followUpDuration}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{tag.name}}\\r\\n \\r\\n x\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
EmailText 
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Introductory Offer
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Paper Work
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Map Address
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Comments\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Contact Activity\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Call Out Dialer\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Latest Calls
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n {{call.dateCreated | date:'MMM d, y h:mm a'}} - Phone call to {{call.called}} for {{call.minutes}} minutes\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Activity
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/incoming-call-notifier/incoming-call-notifier.component.html\n// module id = ./src/app/incoming-call-notifier/incoming-call-notifier.component.html\n// module chunks = main","import { Component,Inject } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ContactService } from '../services/contact.service';\r\nimport { Subscription } from 'rxjs/Subscription';\r\nimport { ClientPickerService } from '../services/client-picker.service';\r\nimport { ContactSelectorComponent } from '../contacts/contact-selector/contact-selector.component';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { SpinnerOverlayService } from '../services/spinner-overlay.service';\r\nimport { Contact } from '../models/contact';\r\nimport { NotifyService } from '../services/notify.service';\r\nimport { LeadsService } from '../services/leads.service';\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged, map, publishReplay, refCount } from 'rxjs/operators';\r\nimport { forkJoin } from 'rxjs/observable/forkJoin';\r\nimport { ClientService } from '../services/client.service';\r\nimport { EmailService } from '../services/email.service';\r\nimport { Email } from '../models/email';\r\nimport { Lead } from '../models/lead';\r\nimport { SmsService } from '../services/sms.service';\r\nimport { UserService } from '../services/user.service';\r\nimport { ContactActivity } from '../models/contact-activity';\r\nimport { MergeContactsDialogComponent } from './merge-contacts-dialog/merge-contacts-dialog.component';\r\nimport { LeadActivityTypes } from '../models/lead-activity-types';\r\nimport { CallRecordingService } from '../services/call-recording.service';\r\nimport { CallRecordingComponent } from '../call-recording/call-recording.component';\r\nimport Popper from 'popper.js';\r\nimport * as moment from 'moment';\r\nimport { NgbDate } from '@ng-bootstrap/ng-bootstrap/datepicker/ngb-date';\r\nimport { ConfirmSpamOrDeadDialogComponent } from './confirm-spam-or-dead-dialog/confirm-spam-or-dead-dialog.component';\r\nimport { ClientTypes } from '../models/client-types';\r\nimport { ClientSubscribedServices } from '../models/client-subscribed-services';\r\nimport { ChecklistService } from '../services/checklist.service';\r\nimport { HelpDialogService } from '../services/help-dialog.service';\r\nimport {AppComponent} from \"../app.component\";\r\n\r\n@Component({\r\n selector: 'app-incoming-call-notifier',\r\n templateUrl: './incoming-call-notifier.component.html',\r\n styleUrls: ['./incoming-call-notifier.component.css']\r\n})\r\nexport class IncomingCallNotifierComponent {\r\n search = (text$: Observable) =>\r\n text$.pipe(\r\n debounceTime(200),\r\n distinctUntilChanged(),\r\n map(term => term.length < 2 ? []\r\n : this.tagsNameArray.filter(v => v.toLowerCase().indexOf(term.toLowerCase()) > -1).slice(0, 10))\r\n )\r\n modalRef: any = null;\r\n subscription: Subscription;\r\n isCall: boolean = false;\r\n phoneNumberQuery: string = \"\";\r\n contactGuidQuery: string = \"\";\r\n referrerQuery: string = \"\";\r\n unsubQuery: boolean = true;\r\n fromQuery: string = \"\";\r\n clientTypeId: number = 0;\r\n clientId: number = 0;\r\n searched: boolean = false;\r\n contact: Contact = null;\r\n lead: Lead = null;\r\n activityList: any[];\r\n activityCommentList: any[];\r\n feedbackList: any[];\r\n isNew: boolean = false;\r\n isTheJoint: boolean = false;\r\n client: any;\r\n carbonNumber: string;\r\n trackableLink: string = \"\";\r\n leadStatus: number = 1;\r\n newLeadId: number = 0;\r\n newLead: any = null;\r\n incomingPhoneNumber: string = \"\";\r\n\r\n tagsArray: any[];\r\n tagsNameArray: any[];\r\n\r\n searchedTags: string;\r\n selectedTags: any = [];\r\n\r\n //incoming call notification contact\r\n eligibleTags: string = \"\";\r\n cLeadSource: string = \"phone\";\r\n cContactStatus: string = \"\";\r\n cMobilePhone: string = \"\";\r\n cHomePhone: string = \"\";\r\n cWorkPhone: string = \"\";\r\n cFirstName: string = \"\";\r\n cPreferredName: string = \"\";\r\n cLastName: string = \"\";\r\n cEmail: string = \"\";\r\n cEmailOptInStatus: string = \"\";\r\n cSmsPermission: string = \"\";\r\n cNotes: string = \"\";\r\n cReferrer: string = \"\";\r\n\r\n //additional email/sms variables\r\n //nickName: string;\r\n clientHasPaperWork: boolean = false;\r\n introductoryOfferE: boolean = false;\r\n introductoryOfferS: boolean = false;\r\n paperWorkE: boolean = false;\r\n paperWorkS: boolean = false;\r\n mapAddressE: boolean = false;\r\n mapAddressS: boolean = false;\r\n\r\n //lead status datepicker\r\n datePopper: Popper;\r\n isDatePickerShown: boolean = false;\r\n today = new Date();\r\n ngbToday: NgbDate;\r\n followUpCount: number = 0;\r\n followUpDuration: string = \"days\";\r\n isEditingLeadStatus: boolean = false;\r\n saveOrCancel: boolean = false;\r\n originalLeadStatus = null;\r\n selectedDate: Date = null;\r\n\r\n newCallBackNumber: number = 0;\r\n newCallBackDuration: string = \"days\";\r\n secondCallBackNumber: number = 1;\r\n secondCallBackDuration: string = \"days\";\r\n thirdCallBackNumber: number = 3;\r\n thirdCallBackDuration: string = \"days\";\r\n fourthCallBackNumber: number = 4;\r\n fourthCallBackDuration: string = \"days\";\r\n fifthCallBackNumber: number = 7;\r\n fifthCallBackDuration: string = \"days\";\r\n\r\n cContactId: string = \"\";\r\n cContactGuid: string = \"\";\r\n\r\n hasTwoWayService: boolean = false;\r\n\r\n callLog$: Observable;\r\n\r\n constructor(\r\n @Inject(AppComponent) private appComponent: AppComponent,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private clientPickerService: ClientPickerService,\r\n private contactService: ContactService,\r\n private modalService: NgbModal,\r\n private spinnerOverlayService: SpinnerOverlayService,\r\n private notify: NotifyService,\r\n private leadService: LeadsService,\r\n private clientService: ClientService,\r\n private emailService: EmailService,\r\n private smsService: SmsService,\r\n private userService: UserService,\r\n private callRecordingService: CallRecordingService,\r\n public checklistService: ChecklistService,\r\n private helpDialogService: HelpDialogService\r\n ) {\r\n this.route.queryParams.subscribe(params => {\r\n this.contactGuidQuery = params[\"contactGuid\"];\r\n this.phoneNumberQuery = params[\"phone\"];\r\n this.referrerQuery = params[\"phoneNumberId\"];\r\n if (params[\"unsub\"]) {\r\n this.unsubQuery = JSON.parse(params[\"unsub\"]);\r\n }\r\n if (params[\"from\"]) {\r\n this.fromQuery = (params[\"from\"]).toLowerCase();\r\n }\r\n if (params[\"leadsource\"]) {\r\n //console.log(\"leadsource: \", params[\"leadsource\"]);\r\n if (params[\"leadsource\"] == 10) {\r\n this.cLeadSource = \"SMS\";\r\n }\r\n else {\r\n this.cLeadSource = \"phone\";\r\n }\r\n //console.log(this.cLeadSource);\r\n }\r\n })\r\n }\r\n\r\n haveInitialPaperWork(nickName) {\r\n this.clientService.HasInitialPaperWork(nickName)\r\n .subscribe(response => {\r\n //console.log(\"has initial paperwork: \", response);\r\n this.clientHasPaperWork = response;\r\n //get paperwork\r\n if (response == true) {\r\n let test = 'Here is a link to download a copy of our Initial Paperwork: {\r\n console.error(error);\r\n })\r\n }\r\n\r\n ngOnInit() {\r\n this.ngbToday = new NgbDate(this.today.getFullYear(), this.today.getMonth() + 1, this.today.getDate());\r\n //this.router.navigate([{ outlets: { topbar: null } }]);\r\n this.subscription = this.clientPickerService.$clientRequestFinished.subscribe(\r\n (isDone: boolean) => {\r\n if (this.unsubQuery) {\r\n this.appComponent.pubnubInstance.unsubscribe({ channels: [this.clientPickerService.selectedClient.clientGuid] });\r\n }\r\n\r\n this.clientTypeId = this.clientPickerService.selectedClient.clientTypeId;\r\n this.clientId = this.clientPickerService.selectedClient.clientId;\r\n this.GetFollowUpConfig(this.clientId);\r\n\r\n this.CheckServices(this.clientId);\r\n if (this.clientTypeId == 4) {\r\n this.isTheJoint = true\r\n }\r\n this.getClient(this.clientId);\r\n this.getCarbonNumber(this.clientId);\r\n this.GetPhoneLeadTags(this.clientId);\r\n if (this.phoneNumberQuery != null) {\r\n //leave everything blank except ph number\r\n this.isNew = true;\r\n this.incomingPhoneNumber = this.phoneNumberQuery;\r\n if (this.phoneNumberQuery.charAt(0) == '1') {\r\n this.phoneNumberQuery = this.phoneNumberQuery.substring(1);\r\n //this.incomingPhoneNumber = this.phoneNumberQuery.substring(1);\r\n }\r\n this.cMobilePhone = this.phoneNumberQuery;\r\n this.cReferrer = this.referrerQuery;\r\n //open modal that allows search by email\r\n //this.OpenContactModal();\r\n\r\n this.leadService.GetLeadByPhone(this.clientId, this.incomingPhoneNumber)\r\n .subscribe(response => {\r\n console.log(\"new lead ?: \", response);\r\n this.newLeadId = response.newLeadId;\r\n this.leadStatus = response.leadStatus;\r\n }, error => {\r\n console.error(error);\r\n })\r\n\r\n this.smsService.GetAllSmsActivity(null, this.cMobilePhone, this.clientId)\r\n .subscribe(resp => {\r\n if (resp != null) {\r\n if (this.activityList == undefined) {\r\n this.activityList = resp\r\n .sort((a, b) => b.dateCreated.localeCompare(a.dateCreated));\r\n //console.log(\"this activity list: \", this.activityList);\r\n }\r\n else {\r\n this.activityList = this.activityList\r\n .concat(resp)\r\n .sort((a, b) => b.dateCreated.localeCompare(a.dateCreated));\r\n }\r\n }\r\n else {\r\n this.activityList = this.activityList.sort((a, b) => b.dateCreated.localeCompare(a.dateCreated));\r\n }\r\n }, error => {\r\n console.error(error);\r\n });\r\n this.getNewLeadActivity(this.phoneNumberQuery);\r\n if (this.fromQuery === 'leads') {\r\n this.setCallLogObservable();\r\n }\r\n }\r\n if (this.contactGuidQuery != null) {\r\n this.SearchContactByQueryString(this.contactGuidQuery);\r\n }\r\n })\r\n }\r\n\r\n CheckServices(clientId: number) {\r\n this.clientService.GetSubscribedServices(clientId).subscribe((services: number[]) => {\r\n this.hasTwoWayService = services.includes(ClientSubscribedServices.TwoWaySms);\r\n });\r\n }\r\n\r\n OpenContactModal() {\r\n this.modalRef = this.modalService.open(MergeContactsDialogComponent, { backdrop: 'static', windowClass: 'modal-window-lg', size: 'lg' });\r\n this.modalRef.componentInstance.clientTypeId = this.clientTypeId;\r\n this.modalRef.componentInstance.clientId = this.clientId;\r\n this.modalRef.componentInstance.callingNumber = this.phoneNumberQuery;\r\n this.modalRef.componentInstance.newLeadId = this.newLeadId;\r\n this.modalRef.componentInstance.onSelectContactSubmit.subscribe(selectedContact => {\r\n //console.log(selectedContact);\r\n //assign the selected contact to the contact bindings\r\n this.setSelectedContact(selectedContact);\r\n this.isNew = false;\r\n this.modalRef.close();\r\n })\r\n }\r\n\r\n OpenSpamOrDeadModal(event) {\r\n event.target.blur();\r\n event.preventDefault();\r\n\r\n this.modalRef = this.modalService.open(ConfirmSpamOrDeadDialogComponent, { backdrop: 'static', windowClass: 'modal-window-lg', size: 'lg' });\r\n this.modalRef.componentInstance.clientId = this.clientId;\r\n this.modalRef.componentInstance.leadStatus = this.leadStatus;\r\n this.modalRef.componentInstance.incomingPhoneNumber = this.incomingPhoneNumber;\r\n this.modalRef.componentInstance.contactId = parseInt(this.cContactId);\r\n this.modalRef.componentInstance.selectedDate = this.selectedDate;\r\n this.modalRef.componentInstance.contact = this.contact;\r\n this.modalRef.componentInstance.onConfirmClicked.subscribe(response => {\r\n this.modalRef.close();\r\n })\r\n }\r\n\r\n CheckIfCall(isCall: boolean) {\r\n this.isCall = isCall;\r\n }\r\n\r\n getCarbonNumber(clientId) {\r\n this.smsService.GetSMSNumber(clientId)\r\n .subscribe(response => {\r\n //console.log(\"carbon #: \", response);\r\n this.carbonNumber = response;\r\n }, error => {\r\n this.notify.error(\"Error getting carbon phone number\");\r\n console.error(error);\r\n })\r\n }\r\n\r\n getClient(clientId) {\r\n this.clientService.GetClientById(clientId)\r\n .subscribe(response => {\r\n //console.log(\"client: \", response);\r\n //this.clientNickName = response.nickName;\r\n this.client = response;\r\n let nickName = response.nickName;\r\n this.haveInitialPaperWork(nickName);\r\n this.getTrackableLink();\r\n }, error => {\r\n this.notify.error(\"Error getting client\");\r\n console.error(error);\r\n })\r\n }\r\n\r\n getTrackableLink() {\r\n this.trackableLink = `You can request your Introductory Offer at ${this.client.primaryUrl}`;\r\n //if (this.isTheJoint) {\r\n // let clientId = this.clientId;\r\n // let name = this.trackableLink;\r\n // let targetUrl = this.client.primaryUrl;\r\n // let clientTypeId = this.clientTypeId;\r\n // let shortCodelength = 7;\r\n // let campaignId = 0;\r\n // let utmCampaign = null;\r\n // let utmSource = null;\r\n // let utmMedium = null;\r\n // let cg = \"\";\r\n // let tg = null;\r\n // let createdById = this.userService.clientUserId;\r\n // //console.log(clientId, name, targetUrl, clientTypeId, shortCodelength, campaignId, utmCampaign, utmSource, utmMedium, cg, tg, createdById);\r\n\r\n // this.smsService.GetTrackableLink(clientId, name, targetUrl, clientTypeId, shortCodelength, campaignId, utmCampaign, utmSource, utmMedium, cg, tg, createdById)\r\n // .subscribe(response => {\r\n // //console.log(\"got trackable link: \", response);\r\n // //this.trackableLink = response;\r\n // this.trackableLink = `You can request your Introductory Offer at ${response}`;\r\n // //console.log(\"get here test 1\");\r\n // }, error => {\r\n // //this.notify.error(\"Error getting trackable link\");\r\n // console.error(error);\r\n // })\r\n //}\r\n //else {\r\n\r\n //}\r\n }\r\n\r\n\r\n //if contact exists\r\n SearchContactByQueryString(contactGuid) {\r\n //console.log(contactGuid);\r\n this.spinnerOverlayService.open();\r\n\r\n this.contactService.GetContactByContactGuid(contactGuid, this.clientId).subscribe(response => {\r\n //console.log(\"queryString Response: \", response);\r\n this.spinnerOverlayService.close();\r\n response.contact.handled = response.handled;\r\n response.contact.newLeadId = response.newLeadId;\r\n response.contact.leadStatus = response.leadStatus;\r\n\r\n this.incomingPhoneNumber = response.contact.mobilePhone;\r\n this.newLeadId = response.newLeadId;\r\n this.leadStatus = response.leadStatus;\r\n this.setSelectedContact(response.contact);\r\n }, error => {\r\n console.error(error);\r\n this.spinnerOverlayService.close();\r\n });\r\n }\r\n\r\n getContactTags(contactId, clientId) {\r\n this.leadService.GetContactTags(contactId, clientId)\r\n .subscribe(response => {\r\n //console.log(\"current tags: \", response);\r\n this.selectedTags = response;\r\n }, error => {\r\n this.notify.error(\"Error getting contact tags\");\r\n console.error(error);\r\n })\r\n }\r\n\r\n setSelectedContact(selectedContact) {\r\n this.contactService.currentContact = selectedContact;\r\n this.contact = selectedContact;\r\n //console.log(\"setting selected contact\");\r\n\r\n //set incoming call notification contact\r\n this.cLeadSource = selectedContact.leadSource;\r\n\r\n //get saved contact status\r\n this.cContactStatus = selectedContact.contactStatus;\r\n\r\n if (this.clientTypeId == ClientTypes.ModernAcupuncture || this.clientTypeId == ClientTypes.TheJoint) {\r\n if (selectedContact.customerId != null && selectedContact.customerId.trim() != \"\" && selectedContact.customerSince != null) {\r\n this.leadStatus = 16;\r\n }\r\n }\r\n //console.log(selectedContact);\r\n this.cMobilePhone = selectedContact.mobilePhone;\r\n this.cHomePhone = selectedContact.phoneNumber;\r\n this.cWorkPhone = selectedContact.workPhone;\r\n\r\n this.cFirstName = selectedContact.firstName;\r\n this.cLastName = selectedContact.lastName;\r\n this.cPreferredName = selectedContact.preferredName;\r\n this.cEmail = selectedContact.email;\r\n this.cEmailOptInStatus = selectedContact.emailOptInStatus;\r\n this.cSmsPermission = selectedContact.smspermission;\r\n this.cNotes = selectedContact.notes;\r\n //console.log(\"set selected lead status: \", this.leadStatus);\r\n this.cContactId = selectedContact.contactId;\r\n //console.log(\"set contact: \",this.cContactId);\r\n this.cContactGuid = selectedContact.contactGuid;\r\n //get contact tags\r\n this.subscription = this.clientPickerService.$clientId.subscribe(\r\n (clientId: number) => {\r\n this.getContactTags(this.cContactId, clientId);\r\n })\r\n\r\n this.searched = true;\r\n if (selectedContact !== null) {\r\n this.getContactActivity(selectedContact.contactId);\r\n }\r\n }\r\n\r\n getContactActivity(contactId: number) {\r\n const clientId = this.clientPickerService.selectedClientId;\r\n //console.log(\"cMobilePhone: \", this.cMobilePhone);\r\n forkJoin(\r\n this.contactService.GetContactActivity(contactId, clientId)\r\n .map(ca => {\r\n let activityList = ca.filter(ac => ac.activityType !== \"Carbon.CustomComment\" && !ac.activityDescription.includes(\"SMS Sent:\"));\r\n let activityCommentList = ca.filter(ac => (ac.activityType === \"Carbon.CustomComment\" || ac.activityType === \"Carbon.NegativeReviewComment\") && ac.clientId == clientId);\r\n let feedbackList = activityList.filter(ac => ac.activityType == \"Carbon.Rating\");\r\n\r\n return {\r\n original: ca,\r\n activityList: activityList,\r\n activityCommentList: activityCommentList,\r\n feedbackList: feedbackList\r\n };\r\n }),\r\n this.leadService.GetActivity(clientId, undefined, contactId),\r\n this.smsService.GetAllSmsActivity(contactId, this.cMobilePhone, clientId)\r\n ).subscribe(response => {\r\n //console.log(\"Merged: \", response);\r\n const contactActivity = response[0];\r\n const newLeadActivity = response[1];\r\n const smsActivity = response[2];\r\n\r\n //console.log(\"smsActivity: \", smsActivity);\r\n\r\n if (newLeadActivity != null) {\r\n this.activityList = contactActivity.activityList\r\n .concat(newLeadActivity.newLeadActivity)\r\n .sort((a, b) => b.dateCreated.localeCompare(a.dateCreated));\r\n }\r\n else {\r\n this.activityList = contactActivity.activityList.sort((a, b) => b.dateCreated.localeCompare(a.dateCreated));\r\n }\r\n\r\n if (smsActivity != null) {\r\n this.activityList = this.activityList\r\n .concat(smsActivity)\r\n .sort((a, b) => b.dateCreated.localeCompare(a.dateCreated));\r\n }\r\n else {\r\n this.activityList = this.activityList.sort((a, b) => b.dateCreated.localeCompare(a.dateCreated));\r\n }\r\n //console.log(\"activity List: \", this.activityList);\r\n this.activityCommentList = contactActivity.activityCommentList;\r\n this.feedbackList = contactActivity.feedbackList;\r\n this.contactService.sent = contactActivity.feedbackList\r\n\r\n }, error => {\r\n this.notify.error(\"Error getting contact activity\");\r\n console.error(error);\r\n })\r\n }\r\n\r\n getNewLeadActivity(phoneNumber: string): void {\r\n const clientId = this.clientPickerService.selectedClientId;\r\n\r\n this.leadService.GetActivity(clientId, phoneNumber, undefined).subscribe(response => {\r\n this.newLead = response;\r\n //this.activityList = response.newLeadActivity;\r\n if (this.activityList == undefined) {\r\n this.activityList = response.newLeadActivity\r\n .sort((a, b) => b.dateCreated.localeCompare(a.dateCreated));\r\n }\r\n else {\r\n this.activityList = this.activityList\r\n .concat(response.newLeadActivity)\r\n .sort((a, b) => b.dateCreated.localeCompare(a.dateCreated));\r\n }\r\n })\r\n }\r\n\r\n GetPhoneLeadTags(clientId) {\r\n this.leadService.GetPhoneLeadTags(clientId)\r\n .subscribe(response => {\r\n //console.log(\"tags: \", response);\r\n this.tagsArray = response;\r\n this.tagsNameArray = response.map(data => data.name);\r\n\r\n let tagsString = \"\";\r\n for (let i = 0; i < response.length; i++) {\r\n tagsString += response[i].name + ',';\r\n }\r\n tagsString = tagsString.substring(0, tagsString.length - 1);\r\n this.eligibleTags = tagsString;\r\n }, error => {\r\n this.notify.error(\"Error getting eligible contact tags\");\r\n console.error(error);\r\n })\r\n }\r\n\r\n Cancel() {\r\n if (this.cContactGuid != \"\") {\r\n window.location.href = \"/contacts?contactGuid=\" + this.cContactGuid;\r\n }\r\n else {\r\n window.location.href = \"/contacts\";\r\n }\r\n }\r\n\r\n createContactActivity(contact) {\r\n let activity = {\r\n contactId: contact.contactId,\r\n clientUserId: this.userService.clientUserId,\r\n clientId: this.clientPickerService.selectedClientId,\r\n activityType: 'Carbon.ICNContact.Created',\r\n activityDescription: 'Contact created through carbon ICN'\r\n }\r\n this.contactService.CreateContactActivity(activity).subscribe(response => {\r\n //console.log(response);\r\n }, error => {\r\n console.error(error);\r\n })\r\n }\r\n\r\n\r\n Save() {\r\n //console.log(\"new?: \", this.isNew);\r\n //console.log(\"save clicked: \", this.leadStatus);\r\n\r\n let data = new Contact();\r\n data.clientId = this.clientId;\r\n data.firstName = this.cFirstName;\r\n data.preferredName = this.cPreferredName;\r\n data.lastName = this.cLastName;\r\n data.email = this.cEmail;\r\n data.emailOptInStatus = parseInt(this.cEmailOptInStatus);\r\n data.mobilePhone = this.cMobilePhone;\r\n data.phoneNumber = this.cHomePhone;\r\n data.workPhone = this.cWorkPhone;\r\n data.leadSource = this.cLeadSource;\r\n data.contactStatus = this.cContactStatus;\r\n data.notes = this.cNotes;\r\n //if contact is marked dead, opt out of sms and email\r\n if (this.leadStatus == LeadActivityTypes.NoLongerInterested) {\r\n data.emailOptInStatus = 1;\r\n data.smspermission = 2;\r\n }\r\n\r\n if (this.leadStatus != LeadActivityTypes.NeverWasALead) {\r\n data.DeadLeadReason = 0;\r\n }\r\n\r\n //create new contact\r\n if (this.isNew) {\r\n //console.log(\"data: \", data);\r\n data.referrer = this.cReferrer;\r\n\r\n //trim first name, lastname, email\r\n data.firstName = data.firstName.trim();\r\n data.lastName = data.lastName.trim();\r\n data.email = data.email.trim();\r\n\r\n if(data.firstName.trim() == \"\" /*|| data.lastName.trim() == \"\"*/) {\r\n this.notify.info(\"Lead updated. Could not create contact without first name.\");\r\n this.getLead();\r\n }\r\n else {\r\n this.contactService.CreateContact(data)\r\n .subscribe(response => {\r\n //change parameters so next \"save\" click updates\r\n this.isNew = false;\r\n this.cContactId = response.contactId.toString();\r\n this.cContactGuid = response.contactGuid;\r\n\r\n //console.log(\"response: \", response);\r\n this.notify.success(\"Contact Added!\");\r\n //create contactActivity\r\n this.createContactActivity(response);\r\n\r\n this.SearchContactByQueryString(this.cContactGuid);\r\n\r\n //insert tags\r\n //console.log(this.selectedTags);\r\n for (let i = 0; i < this.selectedTags.length; i++) {\r\n let tContactId = response.contactId;\r\n let tTagId = this.selectedTags[i].id;\r\n //add\r\n this.addTag(tContactId, tTagId);\r\n }\r\n //set the current contact info to the successfully changed one\r\n //console.log(response.contactGuid);\r\n //this.SearchContactByQueryString(response.contactGuid);\r\n //this.cContactId = response.contactId.toString();\r\n //console.log(\"contact added: \", this.cContactId);\r\n //send email\r\n if (this.paperWorkE || this.introductoryOfferE || this.mapAddressE) {\r\n let email = new Email();\r\n email.toAddress = this.cEmail;\r\n email.fromAddress = this.client.customerContactEmail;\r\n email.fromName = this.client.name;\r\n email.subject = \"Follow up info from \" + this.client.name;\r\n email.msgBody = `

Hello ${this.cFirstName},

`;\r\n email.msgBody += `

Thanks for your interest in ${this.client.name}. Below is the information that you requested in our conversation:

`\r\n\r\n if (this.mapAddressE) {\r\n let nullAddress2 = this.client.Address2 != null ? \", \" + this.client.Address2 : \"\";\r\n email.msgBody += `

${this.client.name}
${this.client.address}${nullAddress2}
${this.client.city}, ${this.client.state} ${this.client.zipcode}
${this.client.primaryUrl}
Telephone:
${this.client.customerContactPhone}
Click to get `;\r\n\r\n let mapName = (this.client.clientTypeId == 4) ? \"The Joint Chiropractic\" : this.client.name;\r\n let mapAddress2 = this.client.address2.replace(\" \", \"+\");\r\n let mapCity = this.client.city.replace(\" \", \"+\");\r\n email.msgBody += `Map/Driving Directions

`;\r\n //create contactActivity\r\n //contact.RecordActivity(client.ClientId, cu.ClientUserId, ContactActivity.ActivityTypes.EmailedDirections, \"From Manage Phone Leads page.\");\r\n }\r\n if (this.introductoryOfferE) {\r\n //email.msgBody += `

Your offer will be emailed to you shortly

`;\r\n //currently, only the joint uses this...\r\n //TODO need to send actual coupon rather than link, see PostToTheJointComIntroOffer() method in core\r\n if (this.isTheJoint) {\r\n email.msgBody += `

Here is a link to our Introductory Offer: ${this.client.primaryUrl}

`\r\n }\r\n //create contactActivity\r\n //contact.RecordActivity(client.ClientId, cu.ClientUserId, ContactActivity.ActivityTypes.EmailedIntroCoupon, \"From Manage Phone Leads page.\");\r\n }\r\n if (this.paperWorkE && this.clientHasPaperWork == true) {\r\n email.msgBody += `

Here is a link to download a copy of our Initial Paperwork: https://images.overthetop.com/images/uploads/${this.client.nickName}/Client/TheJoint-InitialPaperwork.pdf.

`\r\n //create contactActivity\r\n //contact.RecordActivity(client.ClientId, cu.ClientUserId, ContactActivity.ActivityTypes.EmailedInitialDocs, \"From Manage Phone Leads page.\");\r\n }\r\n\r\n email.msgBody += `

Thanks again for considering us here at ${this.client.name} and we look forward to assisting you.

`\r\n //console.log(\"email: \", email);\r\n this.sendEmail(email);\r\n }\r\n //send sms (disabled because new contact is not opted in to sms yet)\r\n if (this.paperWorkS || this.introductoryOfferS || this.mapAddressS) {\r\n //console.log(\"checkboxes clicked: \", this.cContactId);\r\n\r\n if (this.mapAddressS) {\r\n\r\n let nullAddress2 = this.client.Address2 != null ? \", \" + this.client.Address2 : \"\";\r\n let message = `${this.client.name} address is ${this.client.address}${nullAddress2}, ${this.client.city}, ${this.client.state} ${this.client.zipcode}`;\r\n\r\n let smsParameters = {\r\n from: this.carbonNumber,\r\n to: 1 + this.cMobilePhone,\r\n body: message,\r\n clientId: this.clientId,\r\n contactActivity: {\r\n contactId: this.cContactId,\r\n activityType: \"Carbon.MapAddressSms\",\r\n activityDescription: message,\r\n clientUserId: this.userService.clientUserId\r\n }\r\n }\r\n\r\n this.sendSms(smsParameters);\r\n //create contactActivity carbon.paperworksms\r\n }\r\n if (this.introductoryOfferS) {\r\n if (this.isTheJoint) {\r\n if (this.cEmail != null && !this.introductoryOfferE) {\r\n this.trackableLink = `You will receive your Introductory Offer in an email to ${this.cEmail}`;\r\n let email = new Email();\r\n email.toAddress = this.cEmail;\r\n email.fromAddress = this.client.customerContactEmail;\r\n email.fromName = this.client.name;\r\n email.subject = \"Follow up info from \" + this.client.name;\r\n email.msgBody = `

Hello ${this.cFirstName},

`;\r\n email.msgBody += `

Thanks for your interest in ${this.client.name}. Below is the information that you requested in our conversation:

`\r\n email.msgBody += `

Here is a link to our Introductory Offer: ${this.client.primaryUrl}

`\r\n email.msgBody += `

Thanks again for considering us here at ${this.client.name} and we look forward to assisting you.

`\r\n this.sendEmail(email);\r\n }\r\n\r\n //get trackable link to put in message\r\n let message = this.trackableLink;\r\n //console.log(\"trackableLink: \", message);\r\n\r\n let smsParameters = {\r\n from: this.carbonNumber,\r\n to: 1 + this.cMobilePhone,\r\n body: message,\r\n clientId: this.clientId,\r\n contactActivity: {\r\n contactId: this.cContactId,\r\n activityType: \"Carbon.OfferSms\",\r\n activityDescription: message,\r\n clientUserId: this.userService.clientUserId\r\n }\r\n }\r\n\r\n this.sendSms(smsParameters);\r\n //create contactActivity carbon.paperworksms\r\n }\r\n //if other client type\r\n //else {\r\n\r\n //}\r\n }\r\n if (this.paperWorkS && this.clientHasPaperWork == true) {\r\n //console.log(\"sending paperwork sms\");\r\n let message = \"\";\r\n if (this.isTheJoint) {\r\n message = `The link to The Joint Chiropractic's initial paperwork is https://images.overthetop.com/images/uploads/${this.client.nickName}/Client/TheJoint-InitialPaperwork.pdf`;\r\n }\r\n //other client types\r\n //else {\r\n\r\n //}\r\n //send sms\r\n let smsParameters = {\r\n from: this.carbonNumber,\r\n to: 1 + this.cMobilePhone,\r\n body: message,\r\n clientId: this.clientId,\r\n contactActivity: {\r\n contactId: this.cContactId,\r\n activityType: \"Carbon.PaperWorkSms\",\r\n activityDescription: message,\r\n clientUserId: this.userService.clientUserId\r\n }\r\n }\r\n this.sendSms(smsParameters);\r\n //create contactActivity carbon.paperworksms\r\n }\r\n //contactActivity is being created through the send sms api method\r\n }\r\n //get lead record then update lead.contactId\r\n this.getLead();\r\n\r\n }, error => {\r\n this.notify.error(\"Error adding contact\");\r\n console.error(error);\r\n })\r\n }\r\n }\r\n //update existing contact\r\n else {\r\n data.contactId = parseInt(this.cContactId);\r\n data.contactGuid = this.cContactGuid;\r\n //console.log(\"data: \", data);\r\n\r\n //trim first name, lastname, email\r\n data.firstName = data.firstName.trim();\r\n data.lastName = data.lastName.trim();\r\n data.email = data.email.trim();\r\n\r\n const clientUserId = this.userService.clientUserId;\r\n\r\n this.contactService.UpdateContact(data, clientUserId)\r\n .subscribe(response => {\r\n //console.log(\"response: \", response);\r\n this.notify.success(\"Contact Updated!\");\r\n //update tags\r\n //console.log(this.selectedTags);\r\n for (let i = 0; i < this.selectedTags.length; i++) {\r\n let tContactId = response.contactId;\r\n let tTagId = this.selectedTags[i].id;\r\n //add\r\n this.addTag(tContactId, tTagId);\r\n }\r\n //set the current contact info to the successfully changed one\r\n //console.log(response.contactGuid);\r\n this.SearchContactByQueryString(response.contactGuid);\r\n //send email\r\n if (this.paperWorkE || this.introductoryOfferE || this.mapAddressE) {\r\n let email = new Email();\r\n email.toAddress = this.cEmail;\r\n email.fromAddress = this.client.customerContactEmail;\r\n email.fromName = this.client.name;\r\n email.subject = \"Follow up info from \" + this.client.name;\r\n email.msgBody = `

Hello ${this.cFirstName},

`;\r\n email.msgBody += `

Thanks for your interest in ${this.client.name}. Below is the information that you requested in our conversation:

`\r\n\r\n if (this.mapAddressE) {\r\n let nullAddress2 = this.client.Address2 != null ? \", \" + this.client.Address2 : \"\";\r\n email.msgBody += `

${this.client.name}
${this.client.address}${nullAddress2}
${this.client.city}, ${this.client.state} ${this.client.zipcode}
${this.client.primaryUrl}
Telephone: ${this.client.customerContactPhone}
Click to get `;\r\n\r\n let mapName = (this.client.clientTypeId == 4) ? \"The Joint Chiropractic\" : this.client.name;\r\n let mapAddress2 = this.client.address2.replace(\" \", \"+\");\r\n let mapCity = this.client.city.replace(\" \", \"+\");\r\n email.msgBody += `Map/Driving Directions

`;\r\n //create contactActivity\r\n //contact.RecordActivity(client.ClientId, cu.ClientUserId, ContactActivity.ActivityTypes.EmailedDirections, \"From Manage Phone Leads page.\");\r\n }\r\n if (this.introductoryOfferE) {\r\n //email.msgBody += `

Your offer will be emailed to you shortly

`;\r\n //currently, only the joint uses this...\r\n //TODO need to send actual coupon rather than link, see PostToTheJointComIntroOffer() method in core\r\n if (this.isTheJoint) {\r\n email.msgBody += `

Here is a link to our Introductory Offer: ${this.client.primaryUrl}

`\r\n }\r\n //create contactActivity\r\n //contact.RecordActivity(client.ClientId, cu.ClientUserId, ContactActivity.ActivityTypes.EmailedIntroCoupon, \"From Manage Phone Leads page.\");\r\n }\r\n if (this.paperWorkE && this.clientHasPaperWork == true) {\r\n email.msgBody += `

Here is a link to download a copy of our Initial Paperwork: https://images.overthetop.com/images/uploads/${this.client.nickName}/Client/TheJoint-InitialPaperwork.pdf.

`\r\n //create contactActivity\r\n //contact.RecordActivity(client.ClientId, cu.ClientUserId, ContactActivity.ActivityTypes.EmailedInitialDocs, \"From Manage Phone Leads page.\");\r\n }\r\n\r\n email.msgBody += `

Thanks again for considering us here at ${this.client.name} and we look forward to assisting you.

`\r\n //console.log(\"email: \", email);\r\n this.sendEmail(email);\r\n }\r\n //send sms\r\n if (this.paperWorkS || this.introductoryOfferS || this.mapAddressS) {\r\n if (this.mapAddressS) {\r\n\r\n let nullAddress2 = this.client.Address2 != null ? \", \" + this.client.Address2 : \"\";\r\n let message = `${this.client.name} address is ${this.client.address}${nullAddress2}, ${this.client.city}, ${this.client.state} ${this.client.zipcode}`;\r\n\r\n let smsParameters = {\r\n from: this.carbonNumber,\r\n to: this.cMobilePhone,\r\n body: message,\r\n clientId: this.clientId,\r\n contactActivity: {\r\n contactId: this.cContactId,\r\n activityType: \"Carbon.MapAddressSms\",\r\n activityDescription: message,\r\n clientUserId: this.userService.clientUserId\r\n }\r\n }\r\n\r\n this.sendSms(smsParameters);\r\n }\r\n if (this.introductoryOfferS) {\r\n if (this.isTheJoint) {\r\n if (this.cEmail != null && !this.introductoryOfferE) {\r\n this.trackableLink = `You will receive your Introductory Offer in an email to ${this.cEmail}`;\r\n let email = new Email();\r\n email.toAddress = this.cEmail;\r\n email.fromAddress = this.client.customerContactEmail;\r\n email.fromName = this.client.name;\r\n email.subject = \"Follow up info from \" + this.client.name;\r\n email.msgBody = `

Hello ${this.cFirstName},

`;\r\n email.msgBody += `

Thanks for your interest in ${this.client.name}. Below is the information that you requested in our conversation:

`\r\n email.msgBody += `

Here is a link to our Introductory Offer: ${this.client.primaryUrl}

`\r\n email.msgBody += `

Thanks again for considering us here at ${this.client.name} and we look forward to assisting you.

`\r\n this.sendEmail(email);\r\n }\r\n\r\n //get trackable link to put in message\r\n let message = this.trackableLink;\r\n //console.log(\"trackableLink: \", message);\r\n\r\n let smsParameters = {\r\n from: this.carbonNumber,\r\n to: this.cMobilePhone,\r\n body: message,\r\n clientId: this.clientId,\r\n contactActivity: {\r\n contactId: this.cContactId,\r\n activityType: \"Carbon.OfferSms\",\r\n activityDescription: message,\r\n clientUserId: this.userService.clientUserId\r\n }\r\n }\r\n\r\n this.sendSms(smsParameters);\r\n }\r\n //if other client type\r\n //else {\r\n\r\n //}\r\n }\r\n if (this.paperWorkS && this.clientHasPaperWork == true) {\r\n //console.log(\"sending paperwork sms\");\r\n let message = \"\";\r\n if (this.isTheJoint) {\r\n message = `The link to The Joint Chiropractic's initial paperwork is https://images.overthetop.com/images/uploads/${this.client.nickName}/Client/TheJoint-InitialPaperwork.pdf`;\r\n }\r\n //other client types\r\n //else {\r\n\r\n //}\r\n //send sms\r\n let smsParameters = {\r\n from: this.carbonNumber,\r\n to: this.cMobilePhone,\r\n body: message,\r\n clientId: this.clientId,\r\n contactActivity: {\r\n contactId: this.cContactId,\r\n activityType: \"Carbon.PaperWorkSms\",\r\n activityDescription: message,\r\n clientUserId: this.userService.clientUserId\r\n }\r\n }\r\n this.sendSms(smsParameters);\r\n }\r\n //contactActivity is being created through the send sms api method\r\n }\r\n //update leadstatus\r\n //this.updateLeadStatus();\r\n this.getLead();\r\n }, error => {\r\n this.notify.error(\"Error updating contact. Check for duplicate phone number.\");\r\n console.error(error);\r\n })\r\n }\r\n\r\n this.ManageBlink();\r\n }\r\n\r\n ManageBlink() {\r\n let parentWindow = window.parent;\r\n //console.log(parentWindow);\r\n window.opener.location.reload(false);\r\n }\r\n\r\n getLead() {\r\n //console.log(\"getting lead with this phoneNumber: \", this.incomingPhoneNumber);\r\n\r\n this.leadService.GetLeadByPhone(this.clientId, this.incomingPhoneNumber)\r\n .subscribe(response => {\r\n //console.log(\"lead by incoming phone number: \", response);\r\n this.newLeadId = response.newLeadId;\r\n this.updateLeadStatus();\r\n }, error => {\r\n console.error(error);\r\n })\r\n }\r\n\r\n updateLeadStatus() {\r\n //console.log(\"update lead status: \", this.leadStatus);\r\n //if newLeadId is 0, they are not in the new leads table/cannot update\r\n //note: leadStatus could be 0 if they were added to the newLeads table before the leadStatus column was added\r\n if (this.newLeadId == 0) {\r\n return;\r\n }\r\n //console.log(\"selected Date: \", this.selectedDate);\r\n this.leadService.UpdateAsHandled(this.newLeadId, this.userService.clientUserId, this.leadStatus, parseInt(this.cContactId), this.selectedDate)\r\n .subscribe(response => {\r\n //console.log(\"lead status updated: \", response);\r\n //console.log(\"update lead status response: \", this.leadStatus);\r\n this.leadStatus = response.leadStatus;\r\n\r\n if (this.leadStatus == LeadActivityTypes.NoLongerInterested) {\r\n //opt out of sms and email\r\n this.UpdateContactOptInStatuses(5);\r\n }\r\n if (this.leadStatus == LeadActivityTypes.NeverWasALead) {\r\n //update contact's deadLeadReason spam = 4\r\n this.UpdateContactOptInStatuses(4);\r\n }\r\n\r\n }, error => {\r\n console.error(error);\r\n })\r\n }\r\n\r\n UpdateContactOptInStatuses(deadLeadReason) {\r\n\r\n let data = this.contact;\r\n //console.log(\"contact to update: \", data);\r\n data.emailOptInStatus = 1;\r\n data.smspermission = 2;\r\n data.DeadLeadReason = deadLeadReason;\r\n\r\n const clientUserId = this.userService.clientUserId;\r\n\r\n this.contactService.UpdateContact(data, clientUserId)\r\n .subscribe(response => {\r\n //console.log(\"opted out: \", response);\r\n this.notify.success(\"Dead or spam contact, opted out of sms and email\");\r\n },\r\n error => {\r\n console.error(\"could not opt out of sms and email\")\r\n this.notify.error(\"Error opting out of sms and email\");\r\n })\r\n }\r\n\r\n\r\n addToLeadsTable() {\r\n this.leadService.InsertLeads(parseInt(this.cContactId), this.clientId, this.cEmail, this.cMobilePhone, this.leadStatus)\r\n .subscribe(response => {\r\n //console.log(\"lead added: \", response);\r\n }, error => {\r\n console.error(error);\r\n })\r\n }\r\n\r\n sendSms(text) {\r\n this.smsService.SendMessage(text)\r\n .subscribe(response => {\r\n //console.log(\"sms response: \", response);\r\n this.notify.success(\"SMS successfully sent!\");\r\n }, error => {\r\n this.notify.error(\"Error sending sms\");\r\n console.error(error);\r\n })\r\n }\r\n\r\n sendEmail(email) {\r\n //create string for contactActivity description\r\n let subStrings = [];\r\n let newString;\r\n\r\n if (this.mapAddressE) {\r\n subStrings.push(\"map address\");\r\n }\r\n if (this.introductoryOfferE) {\r\n subStrings.push(\"introductory offer\");\r\n }\r\n if (this.paperWorkE && this.clientHasPaperWork == true) {\r\n subStrings.push(\"paper work\");\r\n }\r\n let sendString = subStrings.join(\",\");\r\n\r\n if (subStrings.length > 1) {\r\n var lastComma = sendString.lastIndexOf(\",\");\r\n var firstString = sendString.slice(0, lastComma);\r\n var lastString = sendString.slice(lastComma + 1, sendString.length);\r\n newString = firstString + \" and \" + lastString;\r\n }\r\n else {\r\n newString = sendString;\r\n }\r\n //console.log(newString);\r\n\r\n this.emailService.SendEmail(email)\r\n .subscribe(response => {\r\n //console.log(\"email response: \", response);\r\n this.notify.success(\"Email successfully sent!\");\r\n //create contact activity\r\n let activity = {\r\n contactId: this.cContactId,\r\n clientUserId: this.userService.clientUserId,\r\n clientId: this.clientPickerService.selectedClientId,\r\n activityType: 'Carbon.LeadDocs',\r\n activityDescription: 'Contact was emailed ' + newString\r\n }\r\n this.contactService.CreateContactActivity(activity).subscribe(response => {\r\n //console.log(response);\r\n }, error => {\r\n console.error(error);\r\n })\r\n }, error => {\r\n this.notify.error(\"Error sending email\");\r\n console.error(error);\r\n })\r\n }\r\n\r\n addTag(tContactId, tTagId) {\r\n this.leadService.AddContactTags(tContactId, tTagId)\r\n .subscribe(response => {\r\n //console.log(\"response: \", response);\r\n\r\n }, error => {\r\n this.notify.error(\"Error adding contact tags\");\r\n console.error(error);\r\n })\r\n }\r\n\r\n CreateTag() {\r\n this.searchedTags = this.searchedTags.replace(',', '');\r\n //only add the tag if it is valid and hasn't been added yet\r\n if (!this.selectedTags.some(e => e.name === this.searchedTags) && this.tagsArray.some(e => e.name === this.searchedTags)) {\r\n let tagObjToPush = this.tagsArray.filter(e => e.name == this.searchedTags)[0];\r\n //console.log(tagObjToPush);\r\n this.selectedTags.push(tagObjToPush);\r\n this.searchedTags = \"\";\r\n }\r\n else {\r\n this.notify.error(\"Invalid or Duplicate Tag\", 1000);\r\n }\r\n }\r\n\r\n RemoveTag(tag) {\r\n //console.log(tag);\r\n this.selectedTags = this.selectedTags.filter(function (data) {\r\n return data !== tag;\r\n })\r\n }\r\n\r\n openAudio(recordingUrl, title, phoneNumberActivity) {\r\n const modalRef = this.modalService.open(CallRecordingComponent);\r\n const componentInstance = modalRef.componentInstance;\r\n componentInstance.recordingUrl = recordingUrl;\r\n componentInstance.title = title;\r\n componentInstance.phoneNumberActivityId = phoneNumberActivity.phoneNumberActivityId;\r\n componentInstance.flaggedCall = phoneNumberActivity.flaggedCall;\r\n componentInstance.callFlagged.subscribe((flaggedCall) => {\r\n this.setCallLogObservable();\r\n });\r\n componentInstance.callUnflagged.subscribe(pnaId => {\r\n this.setCallLogObservable();\r\n })\r\n return componentInstance;\r\n }\r\n\r\n setCallLogObservable() {\r\n let startDate: Date = new Date();\r\n startDate.setDate(new Date().getDate() - 30);\r\n\r\n this.callLog$ = this.callRecordingService.GetCallLog(this.phoneNumberQuery, this.clientId, startDate).pipe(\r\n publishReplay(1),\r\n refCount()\r\n );\r\n }\r\n\r\n LeadStatusChanged(sentValue, event) {\r\n let leadStatus = sentValue.split(\": \")[1];\r\n let utcToday = moment.utc(this.today);\r\n //console.log(\"utcToday: \", utcToday);\r\n\r\n this.saveOrCancel = true;\r\n if (leadStatus < 6) {\r\n this.isEditingLeadStatus = true;\r\n }\r\n else {\r\n this.isEditingLeadStatus = false;\r\n }\r\n\r\n if (leadStatus == 1) {\r\n this.followUpCount = this.newCallBackNumber;\r\n }\r\n else if (leadStatus == 2) {\r\n this.followUpCount = this.secondCallBackNumber;\r\n }\r\n else if (leadStatus == 3) {\r\n this.followUpCount = this.thirdCallBackNumber;\r\n }\r\n else if (leadStatus == 4) {\r\n this.followUpCount = this.fourthCallBackNumber;\r\n }\r\n else if (leadStatus == 5) {\r\n this.followUpCount = this.fifthCallBackNumber;\r\n }\r\n else {\r\n this.followUpCount = 0;\r\n }\r\n\r\n this.selectedDate = utcToday.clone().add(this.followUpCount, 'day').toDate();\r\n\r\n if (leadStatus == LeadActivityTypes.ExistingCustomer) {\r\n this.OpenContactModal();\r\n }\r\n\r\n if (leadStatus == LeadActivityTypes.NeverWasALead || leadStatus == LeadActivityTypes.NoLongerInterested) {\r\n this.OpenSpamOrDeadModal(event);\r\n }\r\n }\r\n\r\n GetFollowUpConfig(clientId) {\r\n let configNameFollowUp: string = 'Carbon.FollowUp';\r\n let followUpConfigString: string = \"new:0 days,second:1 days,third:3 days,fourth:4 days,fifth:7 days\";\r\n //let hasFollowUpConfig: boolean = false;\r\n\r\n this.clientService.GetClientConfigs(configNameFollowUp, clientId)\r\n .subscribe(resp => {\r\n if (resp) {\r\n //hasFollowUpConfig = true;\r\n followUpConfigString = resp;\r\n }\r\n //console.log(followUpConfigString);\r\n let callBacks = followUpConfigString.split(\",\");\r\n for (let i = 0; i < callBacks.length; i++) {\r\n let each = callBacks[i].split(\":\")[1];\r\n let count = each.split(\" \")[0];\r\n let duration = each.split(\" \")[1];\r\n\r\n if (i == 0) {\r\n this.newCallBackNumber = parseInt(count);\r\n this.newCallBackDuration = duration;\r\n }\r\n else if (i == 1) {\r\n this.secondCallBackNumber = parseInt(count);\r\n this.secondCallBackDuration = duration;\r\n }\r\n else if (i == 2) {\r\n this.thirdCallBackNumber = parseInt(count);\r\n this.thirdCallBackDuration = duration;\r\n }\r\n else if (i == 3) {\r\n this.fourthCallBackNumber = parseInt(count);\r\n this.fourthCallBackDuration = duration;\r\n }\r\n else if (i == 4) {\r\n this.fifthCallBackNumber = parseInt(count);\r\n this.fifthCallBackDuration = duration;\r\n }\r\n }\r\n }, err => {\r\n console.error(\"Could not get follow up configs\");\r\n })\r\n }\r\n\r\n ToggleDatePicker(caret: Element, datepicker: Element) {\r\n\r\n if (!this.isDatePickerShown) {\r\n this.ShowDatePicker(caret, datepicker);\r\n }\r\n else {\r\n this.HideDatePicker();\r\n }\r\n }\r\n\r\n ShowDatePicker(caret: Element, datepicker: Element) {\r\n this.isDatePickerShown = true;\r\n this.datePopper = new Popper(caret, datepicker);\r\n this.datePopper.scheduleUpdate();\r\n }\r\n\r\n HideDatePicker() {\r\n this.isDatePickerShown = false;\r\n if (this.datePopper) {\r\n this.datePopper.destroy();\r\n this.datePopper = null;\r\n }\r\n }\r\n\r\n onDateSelection(event) {\r\n this.CalculateDaysUntilFollowUp(event);\r\n this.HideDatePicker();\r\n }\r\n\r\n CalculateDaysUntilFollowUp(event) {\r\n //grab the current time and set the selected date's time to it\r\n //console.log(this.today);\r\n var time = this.today.toString().split(\" \")[4];\r\n //console.log(\"copied time: \", time);\r\n var hours = time.split(\":\")[0];\r\n var minutes = time.split(\":\")[1];\r\n var seconds = time.split(\":\")[2];\r\n //console.log(\"hours: \", hours, \" minutes: \", minutes, \" seconds: \", seconds);\r\n //console.log(\"event date: \", event);\r\n //months are offset\r\n event.month = event.month - 1;\r\n let selected = moment(event).toDate();\r\n selected.setHours(parseInt(hours));\r\n selected.setUTCMinutes(parseInt(minutes));\r\n selected.setUTCSeconds(parseInt(seconds));\r\n //console.log(\"selected: \", selected);\r\n\r\n //compare the selected date with today's date (as ms, then convert to days)\r\n let todayMoment = moment(this.today).valueOf();\r\n let selectedMoment = moment(selected).valueOf();\r\n let differenceInMs = selectedMoment - todayMoment;\r\n let difference = Math.ceil(differenceInMs / (60 * 60 * 24 * 1000));\r\n\r\n //console.log('todayMoment: ', todayMoment);\r\n //console.log('selectedMoment: ', selectedMoment);\r\n //console.log(\"difference: \", difference);\r\n\r\n this.selectedDate = selected;\r\n this.followUpCount = difference;\r\n }\r\n\r\n SubmitComment(comment: string) {\r\n if (this.contact.contactId > 0) {\r\n let activity = {\r\n contactId: this.contact.contactId,\r\n clientUserId: this.userService.clientUserId,\r\n clientId: this.clientPickerService.selectedClientId,\r\n activityType: 'Carbon.CustomComment',\r\n activityDescription: comment\r\n }\r\n this.contactService.CreateContactActivity(activity).subscribe(response => {\r\n this.notify.success(\"Comment created successfully\");\r\n this.activityCommentList.unshift(response);\r\n }, error => {\r\n this.notify.error(\"Error submitting comment\");\r\n console.error(error);\r\n })\r\n }\r\n }\r\n\r\n SmsOptedIn() {\r\n let smsPermission = this.cSmsPermission;\r\n const smsOptIn = '1';\r\n return smsPermission === smsOptIn;\r\n }\r\n\r\n SmsOptedOut() {\r\n let smsPermission = this.cSmsPermission;\r\n const smsOptOut = '2';\r\n return smsPermission === smsOptOut;\r\n }\r\n\r\n SendSMSPermissionRequest() {\r\n if (this.contact !== null) {\r\n let contactId: number = this.contact.contactId;\r\n let clientId: number = this.clientPickerService.selectedClientId;\r\n\r\n this.spinnerOverlayService.open();\r\n this.smsService.SendSMSVerification(contactId, clientId, this.userService.clientUserId).subscribe(response => {\r\n this.notify.success(\"Request For SMS Successfully Sent\");\r\n this.spinnerOverlayService.close();\r\n console.log(response);\r\n }, error => {\r\n this.notify.error(\"Error Sending Request For SMS\");\r\n this.spinnerOverlayService.close();\r\n console.error(error)\r\n });\r\n }\r\n }\r\n\r\n openHelpLink() {\r\n this.helpDialogService.openDialog(\"Carbon Incoming Call Notifier\");\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/incoming-call-notifier/incoming-call-notifier.component.ts","module.exports = \"\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/incoming-call-notifier/merge-contacts-dialog/merge-contacts-dialog.component.css\n// module id = ./src/app/incoming-call-notifier/merge-contacts-dialog/merge-contacts-dialog.component.css\n// module chunks = main","module.exports = \"
\\r\\n

Search and Merge

\\r\\n \\r\\n
\\r\\n
\\r\\n

Search for Contact by Email or Phone Number

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
First NameLast NameEmailMobile PhoneLead SourceSelect
{{contact.firstName}}{{contact.lastName}}{{contact.email}}{{contact.mobilePhone}}{{contact.leadSource}}
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
First NameLast NameEmailMobile PhoneLead Source
{{selectedContact.firstName}}{{selectedContact.lastName}}{{selectedContact.email}}{{selectedContact.mobilePhone}}{{selectedContact.leadSource}}
\\r\\n
\\r\\n

Please update one of the following saved numbers with the incoming phone number to merge:

\\r\\n {{callingNumber}}\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/incoming-call-notifier/merge-contacts-dialog/merge-contacts-dialog.component.html\n// module id = ./src/app/incoming-call-notifier/merge-contacts-dialog/merge-contacts-dialog.component.html\n// module chunks = main","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ContactService } from '../../services/contact.service';\r\nimport { NotifyService } from '../../services/notify.service';\r\nimport { ContactActivity } from '../../models/contact-activity';\r\nimport { LeadsService } from '../../services/leads.service';\r\nimport { UserService } from '../../services/user.service';\r\nimport { LeadActivityTypes } from '../../models/lead-activity-types';\r\n\r\n@Component({\r\n selector: 'app-merge-contacts-dialog',\r\n templateUrl: './merge-contacts-dialog.component.html',\r\n styleUrls: ['./merge-contacts-dialog.component.css']\r\n})\r\nexport class MergeContactsDialogComponent {\r\n @Input() clientTypeId: number;\r\n @Input() clientId: number;\r\n @Input() callingNumber: string;\r\n @Input() newLeadId: number;\r\n searchedContact: any;\r\n searchParam: string;\r\n selectedContact: any;\r\n mergeSelected: boolean = false;\r\n oldMobilePhone: string = \"\";\r\n oldWorkPhone: string = \"\";\r\n oldHomePhone: string = \"\";\r\n @Output() onSelectContactSubmit = new EventEmitter();\r\n\r\n constructor(private activeModal: NgbActiveModal, private contactService: ContactService, private notify: NotifyService, private leadService: LeadsService, private userService: UserService) {\r\n\r\n }\r\n\r\n\r\n GetContactByEmailorPhone() {\r\n console.log(this.searchParam);\r\n this.contactService.GetContactsByEmailOrPhone(this.clientTypeId, this.searchParam)\r\n .subscribe(response => {\r\n //console.log(\"contact: \", response);\r\n if (response.length > 0) {\r\n //this.searchedContact = response[0];\r\n this.searchedContact = response;\r\n }\r\n else {\r\n this.notify.error(\"Contact with that email or phone number does not exist\");\r\n }\r\n }, error => {\r\n this.notify.error(\"Not valid email or phone number\");\r\n console.error(error);\r\n })\r\n }\r\n\r\n SelectContact(contact) {\r\n //replace modal content with selected contacts info.\r\n this.selectedContact = contact;\r\n this.oldMobilePhone = contact.mobilePhone;\r\n this.oldWorkPhone = contact.workPhone;\r\n this.oldHomePhone = contact.phoneNumber;\r\n this.mergeSelected = true;\r\n }\r\n\r\n UpdateContactWithPhoneNumber() {\r\n //update contact's numbers\r\n const clientUserId = this.userService.clientUserId;\r\n this.contactService.UpdateContact(this.selectedContact, clientUserId)\r\n .subscribe(response => {\r\n this.CreateContactActivity(this.selectedContact.contactId);\r\n this.DeleteFakeNewLead();\r\n\r\n setTimeout(() => {\r\n this.onSelectContactSubmit.emit(this.selectedContact);\r\n }, 3000);\r\n\r\n this.notify.success(\"Contact Successfully Merged.\");\r\n }, error => {\r\n this.notify.error(\"Could Not Merge Contact. Please contact support.\");\r\n console.error(error);\r\n })\r\n }\r\n\r\n CreateContactActivity(contactId) {\r\n let activity = {\r\n contactId: contactId,\r\n clientId: this.clientId,\r\n clientUserId: this.userService.clientUserId,\r\n activityType: \"Carbon.MergedContact\",\r\n activityDescription: \"Contact's changed numbers.\"\r\n };\r\n\r\n if (this.oldMobilePhone != this.selectedContact.mobilePhone) {\r\n activity.activityDescription += ` MOBILE -- old: ${this.oldMobilePhone}, new: ${this.selectedContact.mobilePhone}`;\r\n }\r\n if (this.oldWorkPhone != this.selectedContact.workPhone) {\r\n activity.activityDescription += ` WORK -- old: ${this.oldWorkPhone}, new: ${this.selectedContact.workPhone}`;\r\n }\r\n if (this.oldHomePhone != this.selectedContact.phoneNumber) {\r\n activity.activityDescription += ` HOME -- old: ${this.oldHomePhone}, new: ${this.selectedContact.phoneNumber}`;\r\n }\r\n\r\n this.contactService.CreateContactActivity(activity)\r\n .subscribe(response => {\r\n }, error => {\r\n console.error(error);\r\n })\r\n }\r\n\r\n DeleteFakeNewLead() {\r\n this.leadService.DeleteNewLead(this.newLeadId)\r\n .subscribe(response => {\r\n }, error => {\r\n console.error(error);\r\n })\r\n }\r\n\r\n UpdateNewLeadStatus() {\r\n let clientUserId = this.userService.clientUserId;\r\n\r\n if(!this.newLeadId || this.newLeadId === 0) {\r\n return;\r\n }\r\n\r\n this.leadService.UpdateAsHandled(this.newLeadId, clientUserId, LeadActivityTypes.ExistingCustomer, this.selectedContact.contactId, new Date())\r\n .subscribe(response => {\r\n }, error => {\r\n console.error(error);\r\n })\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/incoming-call-notifier/merge-contacts-dialog/merge-contacts-dialog.component.ts","module.exports = \"ul {\\r\\n list-style-type: none;\\r\\n}\\r\\n\\r\\n.table-responsive{\\r\\n padding-bottom: 30px;\\r\\n}\\r\\n\\r\\n.mat-table {\\r\\n overflow: auto;\\r\\n max-height: 500px;\\r\\n}\\r\\n\\r\\nlabel{\\r\\n padding-top:10px;\\r\\n}\\r\\n\\r\\n.space{\\r\\n margin-right: 5px;\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\ntable {\\r\\n font-family: arial, sans-serif;\\r\\n border-collapse: collapse;\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\ntd, th {\\r\\n border: 1px solid #dddddd;\\r\\n text-align: left;\\r\\n padding: 8px;\\r\\n}\\r\\n\\r\\n#keywordSearchDiv{\\r\\n padding-bottom: 50px;\\r\\n}\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/keyword-generator/keyword-generator.component.css\n// module id = ./src/app/keyword-generator/keyword-generator.component.css\n// module chunks = main","module.exports = \"
\\r\\n
\\r\\n
\\r\\n

Current Keywords

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n Type \\r\\n {{keyword.type}}\\r\\n \\r\\n \\r\\n Keyword \\r\\n {{keyword.keyword}}\\r\\n \\r\\n \\r\\n Name \\r\\n {{keyword.name}}\\r\\n \\r\\n \\r\\n Start Date \\r\\n \\r\\n {{keyword.startDate + 'Z' | date:'MMM d, y'}}\\r\\n \\r\\n \\r\\n \\r\\n End Date \\r\\n \\r\\n {{keyword.endDate + 'Z' | date:'MMM d, y'}}\\r\\n \\r\\n \\r\\n \\r\\n Business Name \\r\\n {{keyword.businessName}} \\r\\n \\r\\n \\r\\n Mobile Phone \\r\\n {{keyword.phoneNumber | phone}} \\r\\n \\r\\n \\r\\n Email \\r\\n {{keyword.email}} \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n

Add Keyword

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n

Use Existing Offer

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n

{{keywordAction}} Keyword

\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n

\\r\\n Are you sure you want to deactivate this keyword? \\r\\n
\\r\\n

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
KeywordEvent NameStart DateEnd Date
{{editData.keyword}}{{editData.eventName}}{{editData.startDate + 'Z' | date:'MMM d, y'}}{{editData.endDate + 'Z' | date:'MMM d, y'}}
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n

\\r\\n Are you sure you want to deactivate this keyword? \\r\\n \\r\\n

\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
KeywordNamePhoneEmailBusiness Name
{{editData.keyword}}{{editData.firstName}} {{editData.lastName}}{{editData.phoneNumber | phone}}{{editData.email}}{{editData.businessName}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n

{{offerAction}} Offer

\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n

Use Existing Offer

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n

\\r\\n Create New Offer\\r\\n \\r\\n \\r\\n

\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n

Send Contact Card

\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n

Please select a keyword/recipient.

\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/keyword-generator/keyword-generator.component.html\n// module id = ./src/app/keyword-generator/keyword-generator.component.html\n// module chunks = main","import { Component, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { NotifyService } from '../services/notify.service';\r\nimport { UserService } from '../services/user.service';\r\nimport { ClientService } from '../services/client.service';\r\nimport { ClientPickerService } from '../services/client-picker.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { SmsService } from '../services/sms.service';\r\nimport { NgbDate } from '@ng-bootstrap/ng-bootstrap/datepicker/ngb-date';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { SpinnerOverlayService } from '../services/spinner-overlay.service';\r\nimport { MatTableDataSource, MatSort, MatPaginator } from '@angular/material';\r\nimport { ConfigService } from '../services/config.service';\r\n\r\n@Component({\r\n selector: 'app-keyword',\r\n templateUrl: './keyword-generator.component.html',\r\n styleUrls: ['./keyword-generator.component.css']\r\n})\r\n\r\nexport class KeywordGeneratorComponent {\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild(MatPaginator) paginator: MatPaginator\r\n constructor(\r\n private clientService: ClientService,\r\n private clientPickerService: ClientPickerService,\r\n private smsService: SmsService,\r\n private notify: NotifyService,\r\n private modalService: NgbModal,\r\n private spinner: SpinnerOverlayService,\r\n private configService: ConfigService,\r\n private userService: UserService\r\n ) { }\r\n\r\n subscription: Subscription;\r\n clientId: number = 0;\r\n clientTypeId: number = 0;\r\n\r\n //data + filtered data\r\n keywords: any = [];\r\n eventKeywords: any = []; \r\n affiliateKeywords: any = []; \r\n\r\n //data table + default filter/radio values\r\n filteredKeywordTable: any;\r\n keywordType: string = \"all\";\r\n filteredKeywordValue = 1; //active\r\n\r\n displayedKeywordColumns = ['type', 'keyword', 'name', 'startDate', 'endDate', 'businessName', 'mobilePhone', 'email', 'delete'];\r\n newKeywordType: string = \"affiliate\";\r\n eventData: any = {};\r\n affiliateData: any = {};\r\n\r\n email: string;\r\n startDate: any;\r\n endDate: any;\r\n\r\n thisClientsKeywords: any;\r\n keywordDetails: any;\r\n\r\n modalRef: any = null;\r\n keywordFormType: string;\r\n keywordAction: string;\r\n editData: any = {};\r\n editingStartDate: any;\r\n editingEndDate: any;\r\n offerType: string = \"existing\";\r\n offerAction: string;\r\n offerData: any = {};\r\n offers: any = [];\r\n selectedOffer;\r\n introOffer: any = [];\r\n isNewOffer: boolean = false;\r\n keywordAndOffers: any = [];\r\n selectedOfferHtml: string;\r\n selectedOfferSubject: string;\r\n\r\n offerNameToCreate: string;\r\n fromNameToCreate: string;\r\n addressToCreate: string;\r\n subjectToCreate: string;\r\n offerToCreate: string;\r\n\r\n landingPageBaseUrl: string;\r\n dropDownAffilicateKeywords: any;\r\n cardRecipient: string;\r\n selectedKeyword: string;\r\n showSendAffiliateCardValidation: boolean = false;\r\n\r\n //displayedOffersColumns = ['keyword','name','offer'/*,'delete'*/];\r\n\r\n options: Object = {\r\n events: {\r\n 'image.beforeUpload': function (images) {\r\n if (images.length) {\r\n console.log(images);\r\n // Create a File Reader.\r\n const reader = new FileReader();\r\n // Set the reader to insert images when they are loaded.\r\n reader.onload = (ev) => {\r\n const result = ev.target['result'];\r\n this.image.insert(result, null, null, this.image.get());\r\n console.log(ev, this.image, ev.target['result'])\r\n };\r\n // Read image as base64.\r\n reader.readAsDataURL(images[0]);\r\n }\r\n // Stop default upload chain.\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.clientPickerService.$clientRequestFinished.subscribe(\r\n (isDone: boolean) => {\r\n this.clientId = this.clientPickerService.selectedClientId;\r\n this.clientTypeId = this.clientPickerService.selectedClient.clientTypeId;\r\n this.clientService.GetSubscribedServices(this.clientId).subscribe((services: number[]) => {\r\n //get current keywords\r\n this.GetKeywordDetails(this.clientId);\r\n this.GetOffersByClientId(this.clientId);\r\n //this.GetKeywordAndOffers(this.clientId);\r\n this.fromNameToCreate = this.clientPickerService.selectedClient.name;\r\n this.addressToCreate = this.clientPickerService.selectedClient.address;\r\n });\r\n //get clientTypeConfig for LandingPageBaseUrl\r\n this.GetLandingPageBaseUrl(this.clientTypeId);\r\n }\r\n )\r\n }\r\n\r\n GetLandingPageBaseUrl(clientTypeId) {\r\n this.spinner.open();\r\n this.configService.getClientTypeConfig(\"LandingPageBaseUrl\",clientTypeId)\r\n .subscribe(response => {\r\n //console.log(response);\r\n this.landingPageBaseUrl = response;\r\n this.spinner.close();\r\n }, error => {\r\n this.spinner.close();\r\n this.notify.error(\"Error getting LandingPageBaseUrl config\");\r\n console.error(\"Error getting LandingPageBaseUrl config for clientType: \" + clientTypeId, error);\r\n })\r\n }\r\n\r\n GetKeywordDetails(clientId) {\r\n this.spinner.open();\r\n this.smsService.GetKeywordDetails(clientId)\r\n .subscribe(response => {\r\n //add type and name properties (to use for sorting)\r\n response = response.filter(function (data) {\r\n data.type = data.startDate == null ? \"affiliate\" : \"event\";\r\n data.name = data.startDate == null ? (data.firstName + \" \" + data.lastName) : data.eventName;\r\n return data;\r\n })\r\n //console.log(\"response: \", response);\r\n this.eventKeywords = response.filter(function (data) {\r\n return data.startDate !== null;\r\n });\r\n this.affiliateKeywords = response.filter(function (data) {\r\n return data.startDate == null;\r\n });\r\n this.eventKeywords.sort((a, b) => (b.startDate > a.startDate) ? 1 : -1);\r\n\r\n this.keywords = response;\r\n this.filteredKeywordTable = this.keywords.filter(function (data) {\r\n return data.deleted == 0;\r\n })\r\n //set up mat-table features\r\n this.filteredKeywordTable = new MatTableDataSource(this.filteredKeywordTable);\r\n this.filteredKeywordTable.sort = this.sort;\r\n this.filteredKeywordTable.paginator = this.paginator;\r\n\r\n this.spinner.close();\r\n }, error => {\r\n this.spinner.close();\r\n this.notify.error(\"Error getting keyword details\");\r\n console.error(\"Error getting keyword details: \", error);\r\n })\r\n }\r\n\r\n KeywordSubmit() {\r\n if (this.newKeywordType == \"event\") {\r\n if (this.eventData.eventName == null || this.startDate == null || this.endDate == null) {\r\n this.notify.error(\"All fields are required.\");\r\n }\r\n else {\r\n this.CreateSmsKeyword(\"event\");\r\n }\r\n }\r\n else { //affiliate\r\n if (this.affiliateData.firstName == null || this.affiliateData.lastName == null ||\r\n this.affiliateData.phoneNumber == null || this.affiliateData.email == null ||\r\n this.affiliateData.businessName == null || this.affiliateData.address == null ||\r\n this.affiliateData.city == null || this.affiliateData.state == null || this.affiliateData.zip == null) {\r\n this.notify.error(\"All fields are required.\");\r\n }\r\n else {\r\n this.CreateSmsKeyword(\"affiliate\");\r\n }\r\n }\r\n }\r\n\r\n\r\n CreateSmsKeyword(detailType) {\r\n this.spinner.open();\r\n this.smsService.CreateSmsKeyword(this.clientId)\r\n .subscribe(response => {\r\n //create details (event/affiliates)\r\n this.CreateSmsKeywordDetails(response, detailType);\r\n }, error => {\r\n this.spinner.close();\r\n this.notify.error(\"Error. Could not create unique keyword.\");\r\n console.error(\"Error creating unique keyword: \", error);\r\n })\r\n }\r\n\r\n CreateSmsKeywordDetails(smsKeyword, detailType) {\r\n let data: any = {};\r\n\r\n if (detailType == \"affiliate\") {\r\n data = this.affiliateData;\r\n }\r\n else if (detailType == \"event\") {\r\n data = this.eventData;\r\n let newStart = new Date(this.startDate.year, this.startDate.month-1, this.startDate.day);\r\n let newEnd = new Date(this.endDate.year, this.endDate.month-1, this.endDate.day);\r\n\r\n data.startDate = newStart;\r\n data.endDate = newEnd;\r\n }\r\n data.smsKeywordId = smsKeyword.smsKeywordId;\r\n\r\n this.smsService.CreateKeywordDetails(data)\r\n .subscribe(response => {\r\n this.spinner.close();\r\n //reset all fields to null\r\n this.startDate = null;\r\n this.endDate = null;\r\n this.eventData = {};\r\n this.affiliateData = {};\r\n //close modal\r\n this.modalRef.close();\r\n //get updated keyword details\r\n this.GetKeywordDetails(this.clientId);\r\n //this.GetKeywordAndOffers(this.clientId);\r\n //create clicktrack\r\n this.CreateClickTrack(smsKeyword.keyword);\r\n //create tag\r\n this.CreateTag(smsKeyword);\r\n setTimeout(() => this.AddSmsKeywordAction(smsKeyword.smsKeywordId, 5, this.selectedOffer), 3000);\r\n\r\n this.notify.success(\"Success. New keyword created.\");\r\n }, error => {\r\n this.spinner.close();\r\n this.notify.error(\"Error creating record details.\");\r\n console.error(\"Error creating keyword details: \", error);\r\n })\r\n }\r\n\r\n CreateClickTrack(keyword) {\r\n let createdById = this.userService.clientUserId;\r\n let targetUrl = this.landingPageBaseUrl + '/affiliate/' + keyword;\r\n\r\n this.clientService.CreateClickTrackWithKeyword(this.clientId, keyword, targetUrl, this.clientTypeId, createdById)\r\n .subscribe(response => {\r\n console.log(response);\r\n }, error => {\r\n console.error(\"Error creating click track. \", error);\r\n this.notify.error(\"Error creating click track, please notify support.\");\r\n })\r\n }\r\n\r\n CreateTag(smsKeyword) {\r\n let active = true;\r\n let name = smsKeyword.keyword;\r\n let tagType = 4;\r\n let clientId = this.clientId;\r\n let clientTypeId = 0;\r\n\r\n this.clientService.CreateTag(active, name, tagType, clientId, clientTypeId)\r\n .subscribe(response => {\r\n //console.log(response);\r\n this.AddSmsKeywordAction(smsKeyword.smsKeywordId, 1, response.id);\r\n }, error => {\r\n console.error(\"Error creating tag. \", error);\r\n this.notify.error(\"Error creating tag, please notify support.\");\r\n })\r\n }\r\n\r\n EditKeyword(action) {\r\n this.spinner.open();\r\n if (action == \"Edit\") {\r\n console.log(this.editingStartDate);\r\n if (this.editingStartDate) {\r\n let newStart = new Date(this.editingStartDate.year, this.editingStartDate.month - 1, this.editingStartDate.day);\r\n let newEnd = new Date(this.editingEndDate.year, this.editingEndDate.month - 1, this.editingEndDate.day);\r\n\r\n this.editData.startDate = newStart;\r\n this.editData.endDate = newEnd;\r\n console.log(this.editData.endDate);\r\n }\r\n this.smsService.EditKeywordDetails(this.editData)\r\n .subscribe(response => {\r\n this.spinner.close();\r\n this.modalRef.close();\r\n this.GetKeywordDetails(this.clientId);\r\n //this.GetKeywordAndOffers(this.clientId);\r\n this.notify.success(\"Keyword details updated.\");\r\n\r\n //turn on keyword if endDate > today's date\r\n if ((this.editData.endDate != null && this.editData.endDate >= new Date() ) && this.editData.deleted == 1) {\r\n this.MakeKeywordActive(this.editData.smsKeywordId);\r\n }\r\n //turns off keyword if endDate < today's date\r\n else if ((this.editData.endDate != null && this.editData.endDate < new Date()) && this.editData.deleted == 0) {\r\n this.smsService.MarkKeywordDeleted(this.editData.smsKeywordId)\r\n .subscribe(response => {\r\n this.GetKeywordDetails(this.clientId);\r\n }, error => {\r\n this.notify.error(\"Error deactivating keyword.\");\r\n console.error(\"Error setting end Date to earlier: \", error);\r\n })\r\n }\r\n }, error => {\r\n this.spinner.close();\r\n this.notify.error(\"Error updating keyword details.\");\r\n console.error(\"Error deactivating keyword: \", error);\r\n })\r\n }\r\n else if (action == \"Delete\") {\r\n this.smsService.MarkKeywordDeleted(this.editData.smsKeywordId)\r\n .subscribe(response => {\r\n this.spinner.close();\r\n this.modalRef.close();\r\n this.GetKeywordDetails(this.clientId);\r\n //this.GetKeywordAndOffers(this.clientId);\r\n this.notify.success(\"Keyword deactivated.\");\r\n }, error => {\r\n this.spinner.close();\r\n this.notify.error(\"Error deactivating keyword.\");\r\n console.error(\"Error deactivating keyword: \", error);\r\n })\r\n }\r\n }\r\n\r\n MakeKeywordActive(keywordId) {\r\n this.smsService.MarkKeywordActive(keywordId)\r\n .subscribe(response => {\r\n this.GetKeywordDetails(this.clientId);\r\n }, error => {\r\n this.notify.error(\"Error activating keyword.\");\r\n console.error(\"Error when changing end Date to later: \", error);\r\n })\r\n }\r\n\r\n OpenModal = (content, type, action, data) => {\r\n this.editData = data;\r\n //console.log(type, action, data);\r\n if (type == 'event' && action == 'Edit') {\r\n var [year, month, day] = this.editData.startDate.split('-');\r\n const startObj = {\r\n year: parseInt(year), month: parseInt(month), day:\r\n parseInt(day.split(' ')[0].trim())\r\n };\r\n this.editingStartDate = startObj;\r\n\r\n var [year, month, day] = this.editData.endDate.split('-');\r\n const endObj = {\r\n year: parseInt(year), month: parseInt(month), day:\r\n parseInt(day.split(' ')[0].trim())\r\n };\r\n this.editingEndDate = endObj;\r\n }\r\n\r\n this.keywordFormType = type;\r\n this.keywordAction = action;\r\n this.modalRef = this.modalService.open(content, { size: 'lg'});\r\n }\r\n\r\n OpenSendContactCardModal = (content) => {\r\n this.showSendAffiliateCardValidation = false;\r\n this.dropDownAffilicateKeywords = this.affiliateKeywords.filter(function (data) {\r\n return data.deleted == 0;\r\n });\r\n //console.log(this.dropDownAffilicateKeywords);\r\n\r\n this.modalRef = this.modalService.open(content, { size: 'lg' });\r\n }\r\n\r\n OnKeywordSelectChange() {\r\n let selectedKeyword = this.selectedKeyword;\r\n\r\n //should only be 1 match, but we'll grab the first one\r\n let selected = this.dropDownAffilicateKeywords.filter(function (data) {\r\n return data.keyword == selectedKeyword;\r\n })[0];\r\n\r\n //comment this out for testing to self\r\n this.cardRecipient = selected.phoneNumber;\r\n }\r\n\r\n SendContactCard() {\r\n console.log(\"send card\");\r\n if (this.selectedKeyword == null || this.cardRecipient == null) {\r\n this.showSendAffiliateCardValidation = true;\r\n return;\r\n }\r\n else {\r\n this.showSendAffiliateCardValidation = false;\r\n }\r\n\r\n //find out what we need to send contact card\r\n let mobilePhone = this.cardRecipient;\r\n let keyword = this.selectedKeyword;\r\n let clientId = this.clientId;\r\n let clientUserId = this.userService.clientUserId;\r\n\r\n console.log(mobilePhone, keyword, clientId, clientUserId);\r\n\r\n //create and send contact card\r\n this.spinner.open();\r\n this.smsService.SendAffiliateCard(mobilePhone, keyword, clientId, clientUserId)\r\n .subscribe(response => {\r\n console.log(response);\r\n this.spinner.close();\r\n this.modalRef.close();\r\n this.notify.success(\"Contact card sent to affiliate.\");\r\n }, error => {\r\n this.spinner.close();\r\n this.notify.error(\"Error sending affiliate card.\");\r\n console.error(\"Error sending affiliate card: \", error);\r\n })\r\n }\r\n\r\n FilterChange(value) {\r\n value = value.split(\": \")[1];\r\n this.filteredKeywordValue = parseInt(value);\r\n\r\n switch (this.filteredKeywordValue) {\r\n case 0: //all\r\n if (this.keywordType == \"all\") {\r\n this.filteredKeywordTable = this.keywords;\r\n }\r\n else if (this.keywordType == \"affiliates\") {\r\n this.filteredKeywordTable = this.affiliateKeywords;\r\n }\r\n else {\r\n this.filteredKeywordTable = this.eventKeywords;\r\n }\r\n break;\r\n case 1: //active\r\n if (this.keywordType == \"all\") {\r\n this.filteredKeywordTable = this.keywords.filter(function (data) {\r\n return data.deleted == 0;\r\n })\r\n }\r\n else if (this.keywordType == \"affiliates\") {\r\n this.filteredKeywordTable = this.affiliateKeywords.filter(function (data) {\r\n return data.deleted == 0;\r\n })\r\n }\r\n else {\r\n this.filteredKeywordTable = this.eventKeywords.filter(function (data) {\r\n return data.deleted == 0;\r\n })\r\n }\r\n break;\r\n case 2: //inactive\r\n if (this.keywordType == \"all\") {\r\n this.filteredKeywordTable = this.keywords.filter(function (data) {\r\n return data.deleted == 1;\r\n })\r\n }\r\n else if (this.keywordType == \"affiliates\") {\r\n this.filteredKeywordTable = this.affiliateKeywords.filter(function (data) {\r\n return data.deleted == 1;\r\n })\r\n }\r\n else {\r\n this.filteredKeywordTable = this.eventKeywords.filter(function (data) {\r\n return data.deleted == 1;\r\n })\r\n }\r\n break;\r\n }\r\n this.filteredKeywordTable = new MatTableDataSource(this.filteredKeywordTable);\r\n this.filteredKeywordTable.sort = this.sort;\r\n this.filteredKeywordTable.paginator = this.paginator;\r\n }\r\n\r\n RadioChange(value) {\r\n this.keywordType = value;\r\n if (this.keywordType != \"all\") {\r\n this.displayedKeywordColumns = ['keyword', 'name', 'startDate', 'endDate', 'businessName', 'mobilePhone', 'email', 'delete'];\r\n }\r\n else {\r\n this.displayedKeywordColumns = ['type', 'keyword', 'name', 'startDate', 'endDate', 'businessName', 'mobilePhone', 'email', 'delete'];\r\n }\r\n\r\n switch (this.filteredKeywordValue) {\r\n case 0: //all\r\n if (this.keywordType == \"all\") {\r\n this.filteredKeywordTable = this.keywords;\r\n }\r\n else if (this.keywordType == \"affiliates\") {\r\n this.filteredKeywordTable = this.affiliateKeywords;\r\n }\r\n else {\r\n this.filteredKeywordTable = this.eventKeywords;\r\n }\r\n break;\r\n case 1: //active\r\n if (this.keywordType == \"all\") {\r\n this.filteredKeywordTable = this.keywords.filter(function (data) {\r\n return data.deleted == 0;\r\n })\r\n }\r\n else if (this.keywordType == \"affiliates\") {\r\n this.filteredKeywordTable = this.affiliateKeywords.filter(function (data) {\r\n return data.deleted == 0;\r\n })\r\n }\r\n else {\r\n this.filteredKeywordTable = this.eventKeywords.filter(function (data) {\r\n return data.deleted == 0;\r\n })\r\n }\r\n break;\r\n case 2: //inactive\r\n if (this.keywordType == \"all\") {\r\n this.filteredKeywordTable = this.keywords.filter(function (data) {\r\n return data.deleted == 1;\r\n })\r\n }\r\n else if (this.keywordType == \"affiliates\") {\r\n this.filteredKeywordTable = this.affiliateKeywords.filter(function (data) {\r\n return data.deleted == 1;\r\n })\r\n }\r\n else {\r\n this.filteredKeywordTable = this.eventKeywords.filter(function (data) {\r\n return data.deleted == 1;\r\n })\r\n }\r\n break;\r\n }\r\n this.filteredKeywordTable = new MatTableDataSource(this.filteredKeywordTable);\r\n this.filteredKeywordTable.sort = this.sort;\r\n this.filteredKeywordTable.paginator = this.paginator;\r\n }\r\n\r\n NewKeywordChange(value) {\r\n if (value == 'event') {\r\n this.newKeywordType = \"event\";\r\n }\r\n else { //affiliate\r\n this.newKeywordType = \"affiliate\";\r\n }\r\n }\r\n\r\n GetOffersByClientId(clientId) {\r\n this.spinner.open();\r\n this.clientService.GetOffersByClientId(clientId)\r\n .subscribe(response => {\r\n this.offers = response;\r\n //if not the joint, only show intro offer\r\n this.introOffer = response.filter(function (data) {\r\n return data.name == \"Introductory Offer\";\r\n })\r\n //comment this if statement out if you want all offers shown for non-joint clients\r\n //if (this.clientTypeId != 4) {\r\n // this.offers = this.introOffer;\r\n //}\r\n //if there's an intro offer, use it as the template for a new offer\r\n if (this.introOffer.length > 0) {//this.introOffer should be array of 1 object\r\n this.offerToCreate = this.introOffer[0].campaignEmailContent; \r\n }\r\n\r\n this.selectedOffer = this.offers[0] ? this.offers[0].couponCampaignGuid : null;\r\n this.spinner.close();\r\n }, error => {\r\n this.spinner.close();\r\n console.error(\"Error getting offers: \", error);\r\n })\r\n }\r\n\r\n AddSmsKeywordAction(keywordId, actionType, actionText) {\r\n this.spinner.open();\r\n this.smsService.AddKeywordAction(keywordId, actionType, actionText)\r\n .subscribe(response => {\r\n this.spinner.close();\r\n this.modalRef.close();\r\n if (actionType == 5) {\r\n //get updated keyword details\r\n this.GetKeywordDetails(this.clientId);\r\n this.notify.success(\"Offer added.\");\r\n }\r\n //this.GetKeywordAndOffers(this.clientId);\r\n }, error => {\r\n this.spinner.close();\r\n this.notify.error(\"Error adding keyword action.\");\r\n console.error(\"Error adding keyword action: \", error);\r\n })\r\n }\r\n\r\n applyFilter(filterValue: string) {\r\n this.filteredKeywordTable.filter = filterValue.trim().toLowerCase();\r\n }\r\n\r\n //OpenOfferModal(content, action, data) {\r\n\r\n // if (action == 'View') {\r\n // //get offer html by filtering on couponCampaignGuid\r\n // let selectedOfferWithHtml = this.offers.filter(function (x) {\r\n // return x.couponCampaignGuid == data.couponCampaignGuid\r\n // });\r\n // this.selectedOfferHtml = selectedOfferWithHtml[0].campaignEmailContent;\r\n // this.selectedOfferSubject = selectedOfferWithHtml[0].campaignEmailSubject;\r\n // }\r\n\r\n // this.offerData = data;\r\n // this.offerAction = action;\r\n // this.modalRef = this.modalService.open(content, { size: 'lg' , backdrop: 'static'});\r\n //}\r\n\r\n //GetKeywordAndOffers(clientId) {\r\n // this.spinner.open();\r\n // this.smsService.GetKeywordAndOffers(clientId)\r\n // .subscribe(response => {\r\n // this.keywordAndOffers = response;\r\n // this.spinner.close();\r\n // }, error => {\r\n // this.spinner.close();\r\n // this.notify.error(\"Error getting keywords and offers.\");\r\n // console.error(\"Error getting keyword and offers.\")\r\n // })\r\n //}\r\n\r\n //EditOffer(action, data) {\r\n // if (action == 'Add') {\r\n // if (this.isNewOffer) {\r\n // let dataToSend = {\r\n // ClientId: this.clientId\r\n // , Name: this.offerNameToCreate\r\n // , MaxRedemptionsPerCoupon: 0\r\n // , CouponLifeInDays: 0\r\n // , CampaignEmailFromName: this.fromNameToCreate\r\n // , CampaignEmailSubject: this.subjectToCreate\r\n // , CampaignEmailContent: this.offerToCreate\r\n // , CouponCampaignInfusionSoftTag: 0\r\n // , CouponCampaignInfusionSoftFUSId: 0\r\n // , ShowSharing: 0\r\n // , RewardFor3Referrals: 0\r\n // , ReferralCouponId: 0\r\n // , SourceType: 0\r\n // }\r\n\r\n // if (dataToSend.ClientId == null ||\r\n // dataToSend.Name == null ||\r\n // dataToSend.CampaignEmailFromName == null ||\r\n // dataToSend.CampaignEmailSubject == null ||\r\n // dataToSend.CampaignEmailContent == null\r\n // ) {\r\n // this.notify.error(\"All fields are required.\")\r\n // }\r\n // else {\r\n // if (confirm(\"Please confirm that everything is correct. Changes cannot be made after creation, a new keyword and offer will need to be made.\")) {\r\n // this.CreateOffer(dataToSend, data.smsKeywordId);\r\n // }\r\n // }\r\n // }\r\n // else if (this.selectedOffer) {\r\n // this.AddSmsKeywordAction(data.smsKeywordId, 5 /*sendOfferByEmail*/, this.selectedOffer);\r\n // }\r\n // else {\r\n // this.modalRef.close();\r\n // this.notify.info(\"You have not selected a valid offer to attach to this keyword.\");\r\n // }\r\n // }\r\n // //no editing if action == 'View'\r\n //}\r\n\r\n //CreateOffer(offer, keywordId) {\r\n // this.spinner.open();\r\n // this.clientService.CreateOffer(offer)\r\n // .subscribe(response => {\r\n // this.spinner.close();\r\n // this.modalRef.close();\r\n // this.notify.success(\"Offer created.\");\r\n // //clear the offerName, offerSubject and offerContent\r\n // this.offerNameToCreate = null;\r\n // this.subjectToCreate = null;\r\n // this.offerToCreate = null;\r\n // //after creating a new offer, attach the couponGuid to the keyword\r\n // this.AddSmsKeywordAction(keywordId, 5 /*sendOfferByEmail*/, response.couponCampaignGuid);\r\n // this.GetKeywordAndOffers(this.clientId);\r\n // this.GetOffersByClientId(this.clientId);\r\n // }, error => {\r\n // this.spinner.close();\r\n // this.notify.error(\"Error creating new offer.\");\r\n // console.error(\"Error creating new offer: \", error);\r\n // })\r\n //}\r\n\r\n //ToggleNewOffer() {\r\n // if (!this.isNewOffer) {\r\n // this.isNewOffer = true;\r\n // }\r\n // else {\r\n // this.isNewOffer = false;\r\n // }\r\n //}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/keyword-generator/keyword-generator.component.ts","module.exports = \".modelessDialog {\\r\\n position: fixed;\\r\\n -webkit-transform: translate(-50%, -50%);\\r\\n transform: translate(-50%, -50%);\\r\\n z-index: 9999 !important;\\r\\n background: rgba(255, 255, 255, 1);\\r\\n pointer-events: auto;\\r\\n -webkit-box-shadow: 10px 10px 15px -3px rgba(0,0,0,0.75);\\r\\n box-shadow: 10px 10px 15px -3px rgba(0,0,0,0.75);\\r\\n /*max-width: 262.4px;*/\\r\\n max-width: 95%;\\r\\n top: 50%;\\r\\n left: 50%;\\r\\n /*max-height: 380px;*/\\r\\n}\\r\\n\\r\\n.dialog-backdrop {\\r\\n position: fixed;\\r\\n top: 0;\\r\\n left: 0;\\r\\n width: 100%;\\r\\n height: 100%;\\r\\n pointer-events: none;\\r\\n z-index: 2;\\r\\n}\\r\\n\\r\\ni {\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\nbutton:hover {\\r\\n background-color: black;\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.modal-header {\\r\\n background-color: black;\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.modal-body {\\r\\n /*overflow: scroll;*/\\r\\n font-size: 0.8em;\\r\\n width: auto;\\r\\n height: auto;\\r\\n min-height: 100px;\\r\\n max-height: 460px;\\r\\n /*scrollbar*/\\r\\n}\\r\\n\\r\\n.modal-footer {\\r\\n /*justify-content: flex-start !important;*/\\r\\n}\\r\\n\\r\\n/*mobile-responsive*/\\r\\n\\r\\n.table-responsive {\\r\\n display: -webkit-box;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -webkit-box-orient: vertical;\\r\\n -webkit-box-direction: normal;\\r\\n -ms-flex-direction: column;\\r\\n flex-direction: column;\\r\\n max-height: 500px;\\r\\n min-width: 300px;\\r\\n overflow-x: hidden !important;\\r\\n}\\r\\n\\r\\n.mat-table {\\r\\n /*overflow: auto;*/\\r\\n max-height: 500px;\\r\\n}\\r\\n\\r\\n.mobile-label {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n@media(max-width: 600px) {\\r\\n .mobile-label {\\r\\n width: 80px;\\r\\n display: inline-block;\\r\\n font-weight: bold;\\r\\n }\\r\\n\\r\\n .mat-header-row {\\r\\n display: none;\\r\\n }\\r\\n\\r\\n .mat-row {\\r\\n -webkit-box-orient: vertical;\\r\\n -webkit-box-direction: normal;\\r\\n -ms-flex-direction: column;\\r\\n flex-direction: column;\\r\\n -webkit-box-align: center;\\r\\n -ms-flex-align: center;\\r\\n align-items: center;\\r\\n padding-top: 8px;\\r\\n padding-bottom: 8px;\\r\\n }\\r\\n\\r\\n .mat-header-row::after, .mat-row::after {\\r\\n content: none;\\r\\n }\\r\\n\\r\\n .widerColumn {\\r\\n text-align: center;\\r\\n }\\r\\n\\r\\n .mat-table{\\r\\n margin-right: 12px;\\r\\n }\\r\\n}\\r\\n\\r\\n.widerColumn {\\r\\n width: 350px;\\r\\n -webkit-box-flex: 2;\\r\\n -ms-flex: 2;\\r\\n flex: 2;\\r\\n}\\r\\n\\r\\n@media only screen and (device-width: 768px){\\r\\n\\r\\n}\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/leads/handle/handle.component.css\n// module id = ./src/app/leads/handle/handle.component.css\n// module chunks = main","module.exports = \"
\\r\\n
\\r\\n
\\r\\n

New Lead

\\r\\n \\r\\n
\\r\\n
\\r\\n

\\r\\n A new lead has been found!\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Name \\r\\n \\r\\n {{firstName}} {{lastName}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Email \\r\\n \\r\\n {{email}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Mobile Phone \\r\\n \\r\\n {{mobilePhone | phone}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Status \\r\\n \\r\\n {{contactStatus | contactStatus: clientTypeId: null}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Lead Source \\r\\n \\r\\n {{leadSource}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Date Arrived \\r\\n \\r\\n {{leadDateCreated + 'Z' | date:'MMM d, y h:mm a'}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/leads/handle/handle.component.html\n// module id = ./src/app/leads/handle/handle.component.html\n// module chunks = main","import { Component, Output, EventEmitter, Input } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { ClientPickerService } from '../../services/client-picker.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-handle',\r\n templateUrl: './handle.component.html',\r\n styleUrls: ['./handle.component.css']\r\n})\r\nexport class HandleComponent {\r\n @Input() contactId: number;\r\n @Input() contactGuid: string;\r\n @Input() newLeadId: number;\r\n @Input() firstName: string;\r\n @Input() lastName: string;\r\n @Input() email: string;\r\n @Input() mobilePhone: string;\r\n @Input() contactStatus: string;\r\n @Input() leadDateCreated: string;\r\n @Input() leadSource: string;\r\n clientTypeId: number;\r\n @Output() onClose = new EventEmitter();\r\n\r\n constructor(\r\n private router: Router,\r\n private clientPickerService: ClientPickerService\r\n ) { }\r\n\r\n leads = [{\r\n firstName: this.firstName,\r\n lastName: this.lastName,\r\n email: this.email,\r\n mobilePhone: this.mobilePhone\r\n }]\r\n\r\n displayColumns = ['name', 'email', 'phone', 'status', 'source', 'date'];\r\n\r\n ngOnInit() {\r\n this.clientPickerService.$clientRequestFinished.subscribe(() => {\r\n this.clientTypeId = this.clientPickerService.selectedClient.clientTypeId;\r\n })\r\n }\r\n\r\n closeDialog() {\r\n this.onClose.emit(true);\r\n }\r\n\r\n goToContacts() {\r\n //window.location.href = '/contacts?contactGuid=' + this.contactGuid;\r\n this.router.navigate(['contacts'], { queryParams: {contactGuid: this.contactGuid} });\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/leads/handle/handle.component.ts","module.exports = \"/*mobile-responsive*/\\r\\n.table-responsive {\\r\\n display: -webkit-box;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -webkit-box-orient: vertical;\\r\\n -webkit-box-direction: normal;\\r\\n -ms-flex-direction: column;\\r\\n flex-direction: column;\\r\\n /*max-height: 500px;*/\\r\\n min-width: 300px;\\r\\n}\\r\\n.mat-table {\\r\\n /*overflow: auto;*/\\r\\n /*max-height: 500px;*/\\r\\n margin-bottom: 10px;\\r\\n}\\r\\n.mobile-label {\\r\\n display: none;\\r\\n}\\r\\n.mat-cell {\\r\\n cursor: pointer;\\r\\n}\\r\\n.table-header{\\r\\n color: black !important;\\r\\n font-size: 16px !important;\\r\\n font-weight: bold;\\r\\n}\\r\\na{\\r\\n cursor: pointer;\\r\\n}\\r\\n.lead-source {\\r\\n white-space: nowrap;\\r\\n -webkit-box-flex: 2;\\r\\n -ms-flex: 2;\\r\\n flex: 2;\\r\\n}\\r\\n@media(max-width: 600px) {\\r\\n .mobile-label {\\r\\n width: 80px;\\r\\n display: inline-block;\\r\\n font-weight: bold;\\r\\n }\\r\\n\\r\\n .mat-header-row {\\r\\n display: none;\\r\\n }\\r\\n\\r\\n .mat-row {\\r\\n -webkit-box-orient: vertical;\\r\\n -webkit-box-direction: normal;\\r\\n -ms-flex-direction: column;\\r\\n flex-direction: column;\\r\\n -webkit-box-align: center;\\r\\n -ms-flex-align: center;\\r\\n align-items: center;\\r\\n padding-top: 8px;\\r\\n padding-bottom: 8px;\\r\\n }\\r\\n\\r\\n .mat-header-row::after, .mat-row::after {\\r\\n content: none;\\r\\n }\\r\\n\\r\\n #reviewsCard {\\r\\n padding-top: 0px !important;\\r\\n }\\r\\n\\r\\n .lead-source {\\r\\n white-space: normal;\\r\\n -webkit-box-flex: 1;\\r\\n -ms-flex: 1;\\r\\n flex: 1;\\r\\n }\\r\\n}\\r\\n.card {\\r\\n margin-top: 20px !important;\\r\\n margin-bottom: 70px !important;\\r\\n}\\r\\ni{\\r\\n font-size: 24px;\\r\\n}\\r\\n.separateLeads {\\r\\n min-height: 1px !important;\\r\\n padding: 10px;\\r\\n}\\r\\n.callImg {\\r\\n height: 30px;\\r\\n width: 30px;\\r\\n}\\r\\n.helpLink {\\r\\n color: #0e5ba5;\\r\\n cursor: pointer;\\r\\n margin-left: 10px;\\r\\n margin-top: 5px;\\r\\n font-size: 18px !important;\\r\\n}\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/leads/leads.component.css\n// module id = ./src/app/leads/leads.component.css\n// module chunks = main","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Name \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Lead Source \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Date Created\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Follow Up Date\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Aging \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Last Handled By \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n 0;\\\" [dataSource]=\\\"new\\\" [class.isMobile]=\\\"isMobile\\\">\\r\\n \\r\\n \\r\\n
New
\\r\\n \\r\\n {{lead.firstName}} {{lead.lastName}}\\r\\n {{lead.mobilePhone | phone}}\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.leadStatus | leadStatus}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.mobilePhone | phone}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.dateCreated | date:'h:mm a'}}\\r\\n \\r\\n \\r\\n {{lead.dateCreated | date:'MMM d'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.dateModified || lead.dateCreated | date:'MMM d, y h:mm a'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.handledByClientUserFirstName}} {{lead.handledByClientUserLastName}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{lead.newLeadSource | NewLeadSource}}: {{lead.shortcodeKeyword | uppercase}}\\r\\n \\r\\n : {{(lead.searchTactic !== 'none' ? lead.searchTactic : lead.contactSource) | titlecase}}\\r\\n \\r\\n \\r\\n : {{lead.createSource | Referral}}\\r\\n \\r\\n \\r\\n : {{lead.phoneNumberName | titlecase}}\\r\\n : Other\\r\\n \\r\\n 0\\\">\\r\\n ({{lead.latestCallDuration}} minutes)\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{lead.searchMethod}} : {{lead.contactSource}}\\r\\n \\r\\n \\r\\n {{lead.searchTactic}} : {{lead.contactSource}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.searchMethod}}\\r\\n \\r\\n \\r\\n {{lead.searchTactic}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n today\\r\\n \\r\\n 0\\\">\\r\\n {{lead.followUpDate + 'Z' | date:'MMM d'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n 0\\\" style=\\\"font-weight: bold; color: red;\\\">\\r\\n {{lead.aging}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n 0;\\\" [dataSource]=\\\"secondCallback\\\" [class.isMobile]=\\\"isMobile\\\">\\r\\n \\r\\n \\r\\n
Awaiting Second Callback
\\r\\n \\r\\n {{lead.firstName}} {{lead.lastName}}\\r\\n {{lead.mobilePhone | phone}}\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.leadStatus | leadStatus}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.mobilePhone | phone}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.dateCreated | date:'h:mm a'}}\\r\\n \\r\\n \\r\\n {{lead.dateCreated | date:'MMM d'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.dateModified || lead.dateCreated | date:'MMM d, y h:mm a'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.handledByClientUserFirstName}} {{lead.handledByClientUserLastName}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{lead.newLeadSource | NewLeadSource}}: {{lead.shortcodeKeyword | uppercase}}\\r\\n \\r\\n : {{(lead.searchTactic !== 'none' ? lead.searchTactic : lead.contactSource) | titlecase}}\\r\\n \\r\\n \\r\\n : {{lead.createSource | Referral}}\\r\\n \\r\\n \\r\\n : {{lead.phoneNumberName | titlecase}}\\r\\n : Other\\r\\n \\r\\n 0\\\">\\r\\n ({{lead.latestCallDuration}} minutes)\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{lead.searchMethod}} : {{lead.contactSource}}\\r\\n \\r\\n \\r\\n {{lead.searchTactic}} : {{lead.contactSource}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.searchMethod}}\\r\\n \\r\\n \\r\\n {{lead.searchTactic}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n today\\r\\n \\r\\n 0\\\">\\r\\n {{lead.followUpDate + 'Z' | date:'MMM d'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n 0\\\" style=\\\"font-weight: bold; color: red;\\\">\\r\\n {{lead.aging}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n 0;\\\" [dataSource]=\\\"thirdCallback\\\" [class.isMobile]=\\\"isMobile\\\">\\r\\n \\r\\n \\r\\n
Awaiting Third Callback
\\r\\n \\r\\n {{lead.firstName}} {{lead.lastName}}\\r\\n {{lead.mobilePhone | phone}}\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.leadStatus | leadStatus}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.mobilePhone | phone}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.dateCreated | date:'h:mm a'}}\\r\\n \\r\\n \\r\\n {{lead.dateCreated | date:'MMM d'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.dateModified || lead.dateCreated | date:'MMM d, y h:mm a'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.handledByClientUserFirstName}} {{lead.handledByClientUserLastName}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{lead.newLeadSource | NewLeadSource}}: {{lead.shortcodeKeyword | uppercase}}\\r\\n \\r\\n : {{(lead.searchTactic !== 'none' ? lead.searchTactic : lead.contactSource) | titlecase}}\\r\\n \\r\\n \\r\\n : {{lead.createSource | Referral}}\\r\\n \\r\\n \\r\\n : {{lead.phoneNumberName | titlecase}}\\r\\n : Other\\r\\n \\r\\n 0\\\">\\r\\n ({{lead.latestCallDuration}} minutes)\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{lead.searchMethod}} : {{lead.contactSource}}\\r\\n \\r\\n \\r\\n {{lead.searchTactic}} : {{lead.contactSource}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.searchMethod}}\\r\\n \\r\\n \\r\\n {{lead.searchTactic}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n today\\r\\n \\r\\n 0\\\">\\r\\n {{lead.followUpDate + 'Z' | date:'MMM d'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n 0\\\" style=\\\"font-weight: bold; color: red;\\\">\\r\\n {{lead.aging}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n 0;\\\" [dataSource]=\\\"fourthCallback\\\" [class.isMobile]=\\\"isMobile\\\">\\r\\n \\r\\n \\r\\n
Awaiting Fourth Callback
\\r\\n \\r\\n {{lead.firstName}} {{lead.lastName}}\\r\\n {{lead.mobilePhone | phone}}\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.leadStatus | leadStatus}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.mobilePhone | phone}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.dateCreated | date:'h:mm a'}}\\r\\n \\r\\n \\r\\n {{lead.dateCreated | date:'MMM d'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.dateModified + 'Z' || lead.dateCreated | date:'MMM d, y h:mm a'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.handledByClientUserFirstName}} {{lead.handledByClientUserLastName}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{lead.newLeadSource | NewLeadSource}}: {{lead.shortcodeKeyword | uppercase}}\\r\\n \\r\\n : {{(lead.searchTactic !== 'none' ? lead.searchTactic : lead.contactSource) | titlecase}}\\r\\n \\r\\n \\r\\n : {{lead.createSource | Referral}}\\r\\n \\r\\n \\r\\n : {{lead.phoneNumberName | titlecase}}\\r\\n : Other\\r\\n \\r\\n 0\\\">\\r\\n ({{lead.latestCallDuration}} minutes)\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{lead.searchMethod}} : {{lead.contactSource}}\\r\\n \\r\\n \\r\\n {{lead.searchTactic}} : {{lead.contactSource}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.searchMethod}}\\r\\n \\r\\n \\r\\n {{lead.searchTactic}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n today\\r\\n \\r\\n 0\\\">\\r\\n {{lead.followUpDate + 'Z' | date:'MMM d'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n 0\\\" style=\\\"font-weight: bold; color: red;\\\">\\r\\n {{lead.aging}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n 0;\\\" [dataSource]=\\\"fifthCallback\\\" [class.isMobile]=\\\"isMobile\\\">\\r\\n \\r\\n \\r\\n
Awaiting Fifth Callback
\\r\\n \\r\\n {{lead.firstName}} {{lead.lastName}}\\r\\n {{lead.mobilePhone | phone}}\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.leadStatus | leadStatus}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.mobilePhone | phone}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.dateCreated | date:'h:mm a'}}\\r\\n \\r\\n \\r\\n {{lead.dateCreated | date:'MMM d'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.dateModified || lead.dateCreated | date:'MMM d, y h:mm a'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.handledByClientUserFirstName}} {{lead.handledByClientUserLastName}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{lead.newLeadSource | NewLeadSource}}: {{lead.shortcodeKeyword | uppercase}}\\r\\n \\r\\n : {{(lead.searchTactic !== 'none' ? lead.searchTactic : lead.contactSource) | titlecase}}\\r\\n \\r\\n \\r\\n : {{lead.createSource | Referral}}\\r\\n \\r\\n \\r\\n : {{lead.phoneNumberName | titlecase}}\\r\\n : Other\\r\\n \\r\\n 0\\\">\\r\\n ({{lead.latestCallDuration}} minutes)\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{lead.searchMethod}} : {{lead.contactSource}}\\r\\n \\r\\n \\r\\n {{lead.searchTactic}} : {{lead.contactSource}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.searchMethod}}\\r\\n \\r\\n \\r\\n {{lead.searchTactic}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n today\\r\\n \\r\\n 0\\\">\\r\\n {{lead.followUpDate + 'Z' | date:'MMM d'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n 0\\\" style=\\\"font-weight: bold; color: red;\\\">\\r\\n {{lead.aging}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Name \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Lead Source \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Date Created\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Follow Up Date\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Aging \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Last Handled By \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n 0;\\\" [dataSource]=\\\"filteredLeadsTable\\\" [class.isMobile]=\\\"isMobile\\\">\\r\\n\\r\\n \\r\\n \\r\\n
7
\\r\\n \\r\\n {{lead.firstName}} {{lead.lastName}}\\r\\n {{lead.mobilePhone | phone}}\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.leadStatus | leadStatus}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.mobilePhone | phone}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.dateCreated | date:'h:mm a'}}\\r\\n \\r\\n \\r\\n {{lead.dateCreated | date:'MMM d'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.dateModified + 'Z' || lead.dateCreated | date:'MMM d, y h:mm a'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.handledByClientUserFirstName}} {{lead.handledByClientUserLastName}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{lead.newLeadSource | NewLeadSource}}: {{lead.shortcodeKeyword | uppercase}}\\r\\n \\r\\n : {{(lead.searchTactic !== 'none' ? lead.searchTactic : lead.contactSource) | titlecase}}\\r\\n \\r\\n \\r\\n : {{lead.createSource | Referral}}\\r\\n \\r\\n \\r\\n : {{lead.phoneNumberName | titlecase}}\\r\\n : Other\\r\\n \\r\\n 0\\\">\\r\\n ({{lead.latestCallDuration}} minutes)\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{lead.searchMethod}} : {{lead.contactSource}}\\r\\n \\r\\n \\r\\n {{lead.searchTactic}} : {{lead.contactSource}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.searchMethod}}\\r\\n \\r\\n \\r\\n {{lead.searchTactic}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.followUpDate + 'Z' | date:'MMM d'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n 0\\\" style=\\\"font-weight: bold; color: red;\\\">\\r\\n {{lead.aging}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Name \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Lead Source \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Date Created\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Follow Up Date\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Last Handled By \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n 0;\\\" [dataSource]=\\\"allNew\\\" [class.isMobile]=\\\"isMobile\\\">\\r\\n \\r\\n \\r\\n
New
\\r\\n \\r\\n {{lead.firstName}} {{lead.lastName}}\\r\\n {{lead.mobilePhone | phone}}\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.leadStatus | leadStatus}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.mobilePhone | phone}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.dateCreated | date:'h:mm a'}}\\r\\n \\r\\n \\r\\n {{lead.dateCreated | date:'MMM d'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.dateModified || lead.dateCreated | date:'MMM d, y h:mm a'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.handledByClientUserFirstName}} {{lead.handledByClientUserLastName}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{lead.newLeadSource | NewLeadSource}}: {{lead.shortcodeKeyword | uppercase}}\\r\\n \\r\\n : {{(lead.searchTactic !== 'none' ? lead.searchTactic : lead.contactSource) | titlecase}}\\r\\n \\r\\n \\r\\n : {{lead.createSource | Referral}}\\r\\n \\r\\n \\r\\n : {{lead.phoneNumberName | titlecase}}\\r\\n : Other\\r\\n \\r\\n 0\\\">\\r\\n ({{lead.latestCallDuration}} minutes)\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{lead.searchMethod}} : {{lead.contactSource}}\\r\\n \\r\\n \\r\\n {{lead.searchTactic}} : {{lead.contactSource}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.searchMethod}}\\r\\n \\r\\n \\r\\n {{lead.searchTactic}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.dateCreated | date:'MMM d'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n 0;\\\" [dataSource]=\\\"allSecondCallback\\\" [class.isMobile]=\\\"isMobile\\\">\\r\\n \\r\\n \\r\\n
Awaiting Second Callback
\\r\\n \\r\\n {{lead.firstName}} {{lead.lastName}}\\r\\n {{lead.mobilePhone | phone}}\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.leadStatus | leadStatus}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.mobilePhone | phone}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.dateCreated | date:'h:mm a'}}\\r\\n \\r\\n \\r\\n {{lead.dateCreated | date:'MMM d'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.dateModified || lead.dateCreated | date:'MMM d, y h:mm a'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.handledByClientUserFirstName}} {{lead.handledByClientUserLastName}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{lead.newLeadSource | NewLeadSource}}: {{lead.shortcodeKeyword | uppercase}}\\r\\n \\r\\n : {{(lead.searchTactic !== 'none' ? lead.searchTactic : lead.contactSource) | titlecase}}\\r\\n \\r\\n \\r\\n : {{lead.createSource | Referral}}\\r\\n \\r\\n \\r\\n : {{lead.phoneNumberName | titlecase}}\\r\\n : Other\\r\\n \\r\\n 0\\\">\\r\\n ({{lead.latestCallDuration}} minutes)\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{lead.searchMethod}} : {{lead.contactSource}}\\r\\n \\r\\n \\r\\n {{lead.searchTactic}} : {{lead.contactSource}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.searchMethod}}\\r\\n \\r\\n \\r\\n {{lead.searchTactic}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.followUpDate + 'Z' | date:'MMM d'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n 0;\\\" [dataSource]=\\\"allThirdCallback\\\" [class.isMobile]=\\\"isMobile\\\">\\r\\n \\r\\n \\r\\n
Awaiting Third Callback
\\r\\n \\r\\n {{lead.firstName}} {{lead.lastName}}\\r\\n {{lead.mobilePhone | phone}}\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.leadStatus | leadStatus}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.mobilePhone | phone}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.dateCreated | date:'h:mm a'}}\\r\\n \\r\\n \\r\\n {{lead.dateCreated | date:'MMM d'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.dateModified || lead.dateCreated | date:'MMM d, y h:mm a'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.handledByClientUserFirstName}} {{lead.handledByClientUserLastName}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{lead.newLeadSource | NewLeadSource}}: {{lead.shortcodeKeyword | uppercase}}\\r\\n \\r\\n : {{(lead.searchTactic !== 'none' ? lead.searchTactic : lead.contactSource) | titlecase}}\\r\\n \\r\\n \\r\\n : {{lead.createSource | Referral}}\\r\\n \\r\\n \\r\\n : {{lead.phoneNumberName | titlecase}}\\r\\n : Other\\r\\n \\r\\n 0\\\">\\r\\n ({{lead.latestCallDuration}} minutes)\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{lead.searchMethod}} : {{lead.contactSource}}\\r\\n \\r\\n \\r\\n {{lead.searchTactic}} : {{lead.contactSource}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.searchMethod}}\\r\\n \\r\\n \\r\\n {{lead.searchTactic}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.followUpDate + 'Z' | date:'MMM d'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n 0;\\\" [dataSource]=\\\"allFourthCallback\\\" [class.isMobile]=\\\"isMobile\\\">\\r\\n \\r\\n \\r\\n
Awaiting Fourth Callback
\\r\\n \\r\\n {{lead.firstName}} {{lead.lastName}}\\r\\n {{lead.mobilePhone | phone}}\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.leadStatus | leadStatus}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.mobilePhone | phone}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.dateCreated | date:'h:mm a'}}\\r\\n \\r\\n \\r\\n {{lead.dateCreated | date:'MMM d'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.dateModified + 'Z' || lead.dateCreated | date:'MMM d, y h:mm a'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.handledByClientUserFirstName}} {{lead.handledByClientUserLastName}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{lead.newLeadSource | NewLeadSource}}: {{lead.shortcodeKeyword | uppercase}}\\r\\n \\r\\n : {{(lead.searchTactic !== 'none' ? lead.searchTactic : lead.contactSource) | titlecase}}\\r\\n \\r\\n \\r\\n : {{lead.createSource | Referral}}\\r\\n \\r\\n \\r\\n : {{lead.phoneNumberName | titlecase}}\\r\\n : Other\\r\\n \\r\\n 0\\\">\\r\\n ({{lead.latestCallDuration}} minutes)\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{lead.searchMethod}} : {{lead.contactSource}}\\r\\n \\r\\n \\r\\n {{lead.searchTactic}} : {{lead.contactSource}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.searchMethod}}\\r\\n \\r\\n \\r\\n {{lead.searchTactic}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.followUpDate + 'Z' | date:'MMM d'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n 0;\\\" [dataSource]=\\\"allFifthCallback\\\" [class.isMobile]=\\\"isMobile\\\">\\r\\n \\r\\n \\r\\n
Awaiting Fifth Callback
\\r\\n \\r\\n {{lead.firstName}} {{lead.lastName}}\\r\\n {{lead.mobilePhone | phone}}\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.leadStatus | leadStatus}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.mobilePhone | phone}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.dateCreated | date:'h:mm a'}}\\r\\n \\r\\n \\r\\n {{lead.dateCreated | date:'MMM d'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.dateModified || lead.dateCreated | date:'MMM d, y h:mm a'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.handledByClientUserFirstName}} {{lead.handledByClientUserLastName}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{lead.newLeadSource | NewLeadSource}}: {{lead.shortcodeKeyword | uppercase}}\\r\\n \\r\\n : {{(lead.searchTactic !== 'none' ? lead.searchTactic : lead.contactSource) | titlecase}}\\r\\n \\r\\n \\r\\n : {{lead.createSource | Referral}}\\r\\n \\r\\n \\r\\n : {{lead.phoneNumberName | titlecase}}\\r\\n : Other\\r\\n \\r\\n 0\\\">\\r\\n ({{lead.latestCallDuration}} minutes)\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{lead.searchMethod}} : {{lead.contactSource}}\\r\\n \\r\\n \\r\\n {{lead.searchTactic}} : {{lead.contactSource}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.searchMethod}}\\r\\n \\r\\n \\r\\n {{lead.searchTactic}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.followUpDate + 'Z' | date:'MMM d'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n 0;\\\" [dataSource]=\\\"allLongTermProspect\\\" [class.isMobile]=\\\"isMobile\\\">\\r\\n \\r\\n \\r\\n
Long Term Prospect
\\r\\n \\r\\n {{lead.firstName}} {{lead.lastName}}\\r\\n {{lead.mobilePhone | phone}}\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.leadStatus | leadStatus}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.mobilePhone | phone}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.dateCreated | date:'h:mm a'}}\\r\\n \\r\\n \\r\\n {{lead.dateCreated | date:'MMM d'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.dateModified || lead.dateCreated | date:'MMM d, y h:mm a'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.handledByClientUserFirstName}} {{lead.handledByClientUserLastName}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{lead.newLeadSource | NewLeadSource}}: {{lead.shortcodeKeyword | uppercase}}\\r\\n \\r\\n : {{(lead.searchTactic !== 'none' ? lead.searchTactic : lead.contactSource) | titlecase}}\\r\\n \\r\\n \\r\\n : {{lead.createSource | Referral}}\\r\\n \\r\\n \\r\\n : {{lead.phoneNumberName | titlecase}}\\r\\n : Other\\r\\n \\r\\n 0\\\">\\r\\n ({{lead.latestCallDuration}} minutes)\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{lead.searchMethod}} : {{lead.contactSource}}\\r\\n \\r\\n \\r\\n {{lead.searchTactic}} : {{lead.contactSource}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.searchMethod}}\\r\\n \\r\\n \\r\\n {{lead.searchTactic}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.followUpDate + 'Z' | date:'MMM d'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n 0;\\\" [dataSource]=\\\"allAppointmentMade\\\" [class.isMobile]=\\\"isMobile\\\">\\r\\n \\r\\n \\r\\n
Appointment Made
\\r\\n \\r\\n {{lead.firstName}} {{lead.lastName}}\\r\\n {{lead.mobilePhone | phone}}\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.leadStatus | leadStatus}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.mobilePhone | phone}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.dateCreated | date:'h:mm a'}}\\r\\n \\r\\n \\r\\n {{lead.dateCreated | date:'MMM d'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.dateModified || lead.dateCreated | date:'MMM d, y h:mm a'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.handledByClientUserFirstName}} {{lead.handledByClientUserLastName}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{lead.newLeadSource | NewLeadSource}}: {{lead.shortcodeKeyword | uppercase}}\\r\\n \\r\\n : {{(lead.searchTactic !== 'none' ? lead.searchTactic : lead.contactSource) | titlecase}}\\r\\n \\r\\n \\r\\n : {{lead.createSource | Referral}}\\r\\n \\r\\n \\r\\n : {{lead.phoneNumberName | titlecase}}\\r\\n : Other\\r\\n \\r\\n 0\\\">\\r\\n ({{lead.latestCallDuration}} minutes)\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{lead.searchMethod}} : {{lead.contactSource}}\\r\\n \\r\\n \\r\\n {{lead.searchTactic}} : {{lead.contactSource}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.searchMethod}}\\r\\n \\r\\n \\r\\n {{lead.searchTactic}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.followUpDate + 'Z' | date:'MMM d'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n 0;\\\" [dataSource]=\\\"allNoLongerInterested\\\" [class.isMobile]=\\\"isMobile\\\">\\r\\n \\r\\n \\r\\n
No Longer Interested
\\r\\n \\r\\n {{lead.firstName}} {{lead.lastName}}\\r\\n {{lead.mobilePhone | phone}}\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.leadStatus | leadStatus}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.mobilePhone | phone}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.dateCreated | date:'h:mm a'}}\\r\\n \\r\\n \\r\\n {{lead.dateCreated | date:'MMM d'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.dateModified || lead.dateCreated | date:'MMM d, y h:mm a'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.handledByClientUserFirstName}} {{lead.handledByClientUserLastName}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{lead.newLeadSource | NewLeadSource}}: {{lead.shortcodeKeyword | uppercase}}\\r\\n \\r\\n : {{(lead.searchTactic !== 'none' ? lead.searchTactic : lead.contactSource) | titlecase}}\\r\\n \\r\\n \\r\\n : {{lead.createSource | Referral}}\\r\\n \\r\\n \\r\\n : {{lead.phoneNumberName | titlecase}}\\r\\n : Other\\r\\n \\r\\n 0\\\">\\r\\n ({{lead.latestCallDuration}} minutes)\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{lead.searchMethod}} : {{lead.contactSource}}\\r\\n \\r\\n \\r\\n {{lead.searchTactic}} : {{lead.contactSource}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.searchMethod}}\\r\\n \\r\\n \\r\\n {{lead.searchTactic}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.followUpDate + 'Z' | date:'MMM d'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n 0;\\\" [dataSource]=\\\"allNeverWasALead\\\" [class.isMobile]=\\\"isMobile\\\">\\r\\n \\r\\n \\r\\n
Never Was A Lead
\\r\\n \\r\\n {{lead.firstName}} {{lead.lastName}}\\r\\n {{lead.mobilePhone | phone}}\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.leadStatus | leadStatus}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.mobilePhone | phone}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.dateCreated | date:'h:mm a'}}\\r\\n \\r\\n \\r\\n {{lead.dateCreated | date:'MMM d'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.dateModified || lead.dateCreated | date:'MMM d, y h:mm a'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.handledByClientUserFirstName}} {{lead.handledByClientUserLastName}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{lead.newLeadSource | NewLeadSource}}: {{lead.shortcodeKeyword | uppercase}}\\r\\n \\r\\n : {{(lead.searchTactic !== 'none' ? lead.searchTactic : lead.contactSource) | titlecase}}\\r\\n \\r\\n \\r\\n : {{lead.createSource | Referral}}\\r\\n \\r\\n \\r\\n : {{lead.phoneNumberName | titlecase}}\\r\\n : Other\\r\\n \\r\\n 0\\\">\\r\\n ({{lead.latestCallDuration}} minutes)\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{lead.searchMethod}} : {{lead.contactSource}}\\r\\n \\r\\n \\r\\n {{lead.searchTactic}} : {{lead.contactSource}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.searchMethod}}\\r\\n \\r\\n \\r\\n {{lead.searchTactic}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.followUpDate + 'Z' | date:'MMM d'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n 0;\\\" [dataSource]=\\\"allExistingCustomer\\\" [class.isMobile]=\\\"isMobile\\\">\\r\\n \\r\\n \\r\\n
Existing Customer
\\r\\n \\r\\n {{lead.firstName}} {{lead.lastName}}\\r\\n {{lead.mobilePhone | phone}}\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.leadStatus | leadStatus}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.mobilePhone | phone}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.dateCreated | date:'h:mm a'}}\\r\\n \\r\\n \\r\\n {{lead.dateCreated | date:'MMM d'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.dateModified || lead.dateCreated | date:'MMM d, y h:mm a'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.handledByClientUserFirstName}} {{lead.handledByClientUserLastName}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{lead.newLeadSource | NewLeadSource}}: {{lead.shortcodeKeyword | uppercase}}\\r\\n \\r\\n : {{(lead.searchTactic !== 'none' ? lead.searchTactic : lead.contactSource) | titlecase}}\\r\\n \\r\\n \\r\\n : {{lead.createSource | Referral}}\\r\\n \\r\\n \\r\\n : {{lead.phoneNumberName | titlecase}}\\r\\n : Other\\r\\n \\r\\n 0\\\">\\r\\n ({{lead.latestCallDuration}} minutes)\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{lead.searchMethod}} : {{lead.contactSource}}\\r\\n \\r\\n \\r\\n {{lead.searchTactic}} : {{lead.contactSource}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.searchMethod}}\\r\\n \\r\\n \\r\\n {{lead.searchTactic}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lead.followUpDate + 'Z' | date:'MMM d'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/leads/leads.component.html\n// module id = ./src/app/leads/leads.component.html\n// module chunks = main","import { Component } from '@angular/core';\r\nimport { ClientPickerService } from '../services/client-picker.service';\r\nimport { Subscription } from 'rxjs/Subscription';\r\nimport { LeadsService } from '../services/leads.service';\r\nimport { Router } from '@angular/router';\r\nimport { NotifyService } from '../services/notify.service';\r\nimport { SpinnerOverlayService } from '../services/spinner-overlay.service';\r\nimport { ConfigService } from '../services/config.service';\r\nimport { LeadActivityTypes } from '../models/lead-activity-types';\r\nimport { UserService } from '../services/user.service';\r\nimport * as moment from 'moment';\r\nimport { ClientService } from '../services/client.service';\r\nimport { ClientTypes } from '../models/client-types';\r\nimport { HelpDialogService } from '../services/help-dialog.service';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { CallRecordingComponent } from '../call-recording/call-recording.component';\r\n\r\n@Component({\r\n selector: 'app-leads',\r\n templateUrl: './leads.component.html',\r\n styleUrls: ['./leads.component.css']\r\n})\r\n\r\nexport class LeadsComponent {\r\n constructor(\r\n private notify: NotifyService,\r\n private clientPickerService: ClientPickerService,\r\n private leadsService: LeadsService,\r\n private router: Router,\r\n private spinnerOverlayService: SpinnerOverlayService,\r\n private configService: ConfigService,\r\n private userService: UserService,\r\n private clientService: ClientService,\r\n private helpDialogService: HelpDialogService,\r\n private modalService: NgbModal\r\n ) {\r\n }\r\n subscription: Subscription;\r\n leadsSubscription: Subscription;\r\n displayDefaultLeadsColumns = ['name', 'leadSource', 'date', 'followUpDate', 'aging'];\r\n displayLeadsColumns = ['name', 'leadSource', 'date', 'followUpDate'];\r\n displayAllLeadsColumns = ['name','leadSource','date','followUpDate'];\r\n today: any = new Date();\r\n startDate: any; //= new Date(\"1/1/2000\");\r\n //startDate: any = new Date().setDate(this.today.getDate() - 30);\r\n endDate: any = new Date().setDate(this.today.getDate() + 1);\r\n daysSinceAppointmentMade: number = 0;\r\n\r\n clientId: number = 0;\r\n clientTypeId: number = 0;\r\n\r\n filterValue = 0;\r\n leadsTable = null;\r\n filteredLeadsTable = null;\r\n\r\n new = null;\r\n appointmentMade = null;\r\n secondCallback = null;\r\n thirdCallback = null;\r\n fourthCallback = null;\r\n fifthCallback = null;\r\n LeadActivityTypes = LeadActivityTypes;\r\n\r\n allNew = null;\r\n allSecondCallback = null;\r\n allThirdCallback = null;\r\n allFourthCallback = null;\r\n allFifthCallback = null;\r\n allLongTermProspect = null;\r\n allAppointmentMade = null;\r\n allNoLongerInterested = null;\r\n allNeverWasALead = null;\r\n allExistingCustomer = null;\r\n\r\n ngOnInit() {\r\n //this.router.navigate([{ outlets: { topbar: null } }]);\r\n this.subscription = this.clientPickerService.$clientRequestFinished.subscribe(\r\n (isDone: boolean) => {\r\n this.clientTypeId = this.clientPickerService.selectedClient.clientTypeId;\r\n //currently aren't showing days since appointment made\r\n //this.GetClientTypeConfig(\"Carbon.LeadConversionDays\", this.clientTypeId);\r\n this.subscription = this.clientPickerService.$clientId.subscribe(\r\n (clientId: number) => {\r\n this.clientId = clientId;\r\n window['Appcues'].track('v1_leads');\r\n this.GetCarbonStartDate(clientId);\r\n //this.GetLeadsData(this.startDate, this.clientId);\r\n //this.GetLeadDashboard(this.startDate, this.endDate, this.clientId);\r\n }\r\n )\r\n }\r\n )\r\n\r\n this.leadsSubscription = this.leadsService.$conversation.subscribe(() => {\r\n //this.GetLeadsData(this.startDate, this.endDate, this.clientId);\r\n this.GetLeadsData(this.startDate, this.clientId);\r\n })\r\n }\r\n\r\n GetCarbonStartDate(clientId) {\r\n this.clientService.GetCarbonLeadServiceStartDate(clientId, 68) //68 is the leads carbon service\r\n .subscribe(response => {\r\n let beginDate = new Date(response.beginDate);\r\n //let dateToStart = new Date().setDate(beginDate.getDate() - 30); //30days before today\r\n //let dateToStart = beginDate.setDate(beginDate.getDate() - 30); // 30 days before opening\r\n let dateToStart = beginDate.setDate(beginDate.getDate()); //active carbon service start date\r\n this.startDate = dateToStart;\r\n console.log(dateToStart);\r\n //moved this.GetLeadsData from onInit because it has to wait for beginDate \r\n this.GetLeadsData(dateToStart, this.clientId);\r\n }, error => {\r\n console.error(error);\r\n })\r\n }\r\n\r\n GetClientTypeConfig(name, clientTypeId) {\r\n this.configService.getClientTypeConfig(name, clientTypeId)\r\n .subscribe(response => {\r\n //console.log(response);\r\n this.daysSinceAppointmentMade = parseInt(response);\r\n },\r\n error => {\r\n console.error(error);\r\n })\r\n }\r\n\r\n CheckIfCustomerOrProspect(leadToCheck, clientType){\r\n let isCustomerOrProspect = false;\r\n \r\n switch (clientType) {\r\n case ClientTypes.ALS:\r\n //if (leadToCheck.contactStatus != null && (leadToCheck.contactStatus.toLowerCase() == \"member\" || leadToCheck.contactStatus.toLowerCase() == \"first time\" || leadToCheck.contactStatus.toLowerCase() == \"second time\")) {\r\n //if (leadToCheck.membershipStatus != null && leadToCheck.membershipStatus != '') {\r\n // isCustomerOrProspect = true;\r\n //}\r\n var date = moment.utc();\r\n var customerSince = moment.utc(leadToCheck.customerSince);\r\n \r\n if ((leadToCheck.customerId != null || leadToCheck.customerId != \"\") && customerSince <= date) {\r\n isCustomerOrProspect = true;\r\n }\r\n break;\r\n case ClientTypes.ModernAcupuncture:\r\n case ClientTypes.TheJoint:\r\n if (leadToCheck.customerSince != null) {\r\n isCustomerOrProspect = true;\r\n }\r\n break;\r\n default:\r\n isCustomerOrProspect = false;\r\n break;\r\n }\r\n return isCustomerOrProspect;\r\n }\r\n\r\n GetLeadDashboard(start, end, clientId) {\r\n this.spinnerOverlayService.open();\r\n this.leadsService.GetLeadsDashboard(start, end, clientId)\r\n .subscribe(response => {\r\n this.spinnerOverlayService.close();\r\n //filter out customers/members\r\n this.leadsTable = response.filter((data) => {\r\n let isCustomer = this.CheckIfCustomerOrProspect(data, this.clientTypeId);\r\n return isCustomer == false;\r\n });\r\n console.log(\"look here: \", this.leadsTable);\r\n\r\n //restrict to last 30 days\r\n let newDate = new Date();\r\n //console.log(newDate);\r\n let thirtyDaysAgo = newDate.setDate(newDate.getDate()-30);\r\n\r\n this.allNew = this.leadsTable.filter(function (data) {\r\n let dataDate = new Date(data.dateCreated);\r\n let dataMoment = dataDate.setDate(dataDate.getDate());\r\n return data.leadStatus == LeadActivityTypes.New && dataMoment > thirtyDaysAgo;\r\n })\r\n this.allSecondCallback = this.leadsTable.filter(function (data) {\r\n let dataDate = new Date(data.dateCreated);\r\n let dataMoment = dataDate.setDate(dataDate.getDate());\r\n return data.leadStatus == LeadActivityTypes.SecondCallBack && dataMoment > thirtyDaysAgo;\r\n })\r\n this.allThirdCallback = this.leadsTable.filter(function (data) {\r\n let dataDate = new Date(data.dateCreated);\r\n let dataMoment = dataDate.setDate(dataDate.getDate());\r\n return data.leadStatus == LeadActivityTypes.ThirdCallBack && dataMoment > thirtyDaysAgo;\r\n })\r\n this.allFourthCallback = this.leadsTable.filter(function (data) {\r\n let dataDate = new Date(data.dateCreated);\r\n let dataMoment = dataDate.setDate(dataDate.getDate());\r\n return data.leadStatus == LeadActivityTypes.FourthCallBack && dataMoment > thirtyDaysAgo;\r\n })\r\n this.allFifthCallback = this.leadsTable.filter(function (data) {\r\n let dataDate = new Date(data.dateCreated);\r\n let dataMoment = dataDate.setDate(dataDate.getDate());\r\n return data.leadStatus == LeadActivityTypes.FifthCallBack && dataMoment > thirtyDaysAgo;\r\n })\r\n this.allLongTermProspect = this.leadsTable.filter(function (data) {\r\n let dataDate = new Date(data.dateCreated);\r\n let dataMoment = dataDate.setDate(dataDate.getDate());\r\n return data.leadStatus == LeadActivityTypes.LongTermProspect && dataMoment > thirtyDaysAgo;\r\n })\r\n this.allAppointmentMade = this.leadsTable.filter(function (data) {\r\n let dataDate = new Date(data.dateCreated);\r\n let dataMoment = dataDate.setDate(dataDate.getDate());\r\n return data.leadStatus == LeadActivityTypes.AppointmentMade && dataMoment > thirtyDaysAgo;\r\n })\r\n this.allNoLongerInterested = this.leadsTable.filter(function (data) {\r\n let dataDate = new Date(data.dateCreated);\r\n let dataMoment = dataDate.setDate(dataDate.getDate());\r\n return data.leadStatus == LeadActivityTypes.NoLongerInterested && dataMoment > thirtyDaysAgo;\r\n })\r\n this.allNeverWasALead = this.leadsTable.filter(function (data) {\r\n let dataDate = new Date(data.dateCreated);\r\n let dataMoment = dataDate.setDate(dataDate.getDate());\r\n return data.leadStatus == LeadActivityTypes.NeverWasALead && dataMoment > thirtyDaysAgo;\r\n })\r\n this.allExistingCustomer = this.leadsTable.filter(function (data) {\r\n let dataDate = new Date(data.dateCreated);\r\n let dataMoment = dataDate.setDate(dataDate.getDate());\r\n return data.leadStatus == LeadActivityTypes.ExistingCustomer && dataMoment > thirtyDaysAgo;\r\n })\r\n },\r\n error => {\r\n this.spinnerOverlayService.close();\r\n console.error(error);\r\n })\r\n }\r\n\r\n GetLeadsData(start, clientId) {\r\n this.spinnerOverlayService.open();\r\n this.leadsService.GetLeadsData(start, clientId).subscribe(response => {\r\n console.log(\"Lead Data: \", response);\r\n //separated lead sections on default page load\r\n this.new = response.item2[0];\r\n this.secondCallback = response.item2[1];\r\n this.thirdCallback = response.item2[2];\r\n this.fourthCallback = response.item2[3];\r\n this.fifthCallback = response.item2[4];\r\n this.spinnerOverlayService.close();\r\n\r\n //this.new.forEach(function(element) {\r\n\r\n // let newFollowUpDate = moment(element.followUpDate).valueOf();\r\n // let newDate = moment(new Date()).valueOf();\r\n // let msBetweenDates = newDate - newFollowUpDate;\r\n // console.log(msBetweenDates, newFollowUpDate, newDate);\r\n // if (msBetweenDates >= 0) {\r\n // let aging = Math.floor(msBetweenDates / (1000 * 60 * 60 * 24));\r\n // element.aging = aging;\r\n // }\r\n //})\r\n \r\n if (response.length < 1) {\r\n this.notify.info(\"No New Leads\");\r\n }\r\n this.GetLeadDashboard(this.startDate, this.endDate, this.clientId);\r\n }, error => {\r\n this.spinnerOverlayService.close();\r\n this.notify.error(\"Error Getting Leads\");\r\n console.error(error);\r\n })\r\n }\r\n\r\n MarkAsReadAndSendToContact(newLeadId, leadStatus, contactId, contactGuid, mobilePhone, leadSource) {\r\n let clientUserId = this.userService.clientUserId;\r\n\r\n if (this.userService.isOTTUser) {\r\n if (contactId !== null) {\r\n this.router.navigate(['contacts'], { queryParams: { contactGuid: contactGuid } });\r\n }\r\n else {\r\n window.open(\"/incoming-call-notifier?phone=\" + mobilePhone + \"&unsub=false&from=leads&leadsource=\" + leadSource, \"_blank\", \"width=1000, height=750\");\r\n }\r\n return;\r\n }\r\n\r\n this.leadsService.OnlyHandled(newLeadId, clientUserId, leadStatus, contactId)\r\n .subscribe(response => {\r\n //console.log(response);\r\n if (contactId !== null) {\r\n this.router.navigate(['contacts'], { queryParams: { contactGuid: contactGuid } });\r\n }\r\n else {\r\n window.open(\"/incoming-call-notifier?phone=\" + mobilePhone + \"&unsub=false&from=leads&leadsource=\" + leadSource, \"_blank\", \"width=1000, height=750\");\r\n }\r\n },\r\n error => {\r\n console.error(error);\r\n })\r\n }\r\n\r\n CheckIfDateIsToday(date) {\r\n let dateCheck = new Date(date);\r\n\r\n //console.log(\"dateCheck: \", dateCheck);\r\n //console.log(\"today: \", this.today);\r\n return dateCheck.getFullYear() === this.today.getFullYear() &&\r\n dateCheck.getMonth() === this.today.getMonth() &&\r\n dateCheck.getDate() === this.today.getDate();\r\n }\r\n\r\n FilterChange(value) {\r\n value = value.split(\": \")[1];\r\n //console.log(\"Drop down changed to: \", value);\r\n\r\n switch (value) {\r\n //case \"0\": //all\r\n // this.filteredConversationTable = this.conversationTable;\r\n // break;\r\n case \"1\": //New\r\n this.filteredLeadsTable = this.leadsTable.filter(function (data) {\r\n return data.leadStatus == LeadActivityTypes.New;\r\n })\r\n break;\r\n case \"2\": //Needs Second Call\r\n this.filteredLeadsTable = this.leadsTable.filter(function (data) {\r\n return data.leadStatus == LeadActivityTypes.SecondCallBack;\r\n })\r\n break;\r\n case \"3\": //Needs Third Call\r\n this.filteredLeadsTable = this.leadsTable.filter(function (data) {\r\n return data.leadStatus == LeadActivityTypes.ThirdCallBack;\r\n })\r\n break;\r\n case \"4\": //Needs Fourth Call\r\n this.filteredLeadsTable = this.leadsTable.filter(function (data) {\r\n return data.leadStatus == LeadActivityTypes.FourthCallBack;\r\n })\r\n break;\r\n case \"5\": //Needs Fifth Call\r\n this.filteredLeadsTable = this.leadsTable.filter(function (data) {\r\n return data.leadStatus == LeadActivityTypes.FifthCallBack;\r\n })\r\n break;\r\n case \"6\": //Long Term Prospect\r\n this.filteredLeadsTable = this.leadsTable.filter(function (data) {\r\n return data.leadStatus == LeadActivityTypes.LongTermProspect;\r\n })\r\n break;\r\n case \"7\": //Dead\r\n this.filteredLeadsTable = this.leadsTable.filter(function (data) {\r\n return data.leadStatus == LeadActivityTypes.NoLongerInterested;\r\n })\r\n break;\r\n case \"13\": //Appointment Made\r\n this.filteredLeadsTable = this.leadsTable.filter(function (data) {\r\n return data.leadStatus == LeadActivityTypes.AppointmentMade;\r\n })\r\n break;\r\n case \"15\": //Spam\r\n this.filteredLeadsTable = this.leadsTable.filter(function (data) {\r\n return data.leadStatus == LeadActivityTypes.NeverWasALead;\r\n })\r\n break;\r\n case \"16\": //Existing Customer\r\n this.filteredLeadsTable = this.leadsTable.filter(function (data) {\r\n return data.leadStatus == LeadActivityTypes.ExistingCustomer;\r\n })\r\n break;\r\n }\r\n //console.log(\"dead? \", LeadActivityTypes.Dead);\r\n //console.log(this.filteredLeadsTable);\r\n }\r\n\r\n openAudio(recordingUrl, title, phoneNumberActivity) {\r\n const modalRef = this.modalService.open(CallRecordingComponent);\r\n const componentInstance = modalRef.componentInstance;\r\n componentInstance.recordingUrl = recordingUrl;\r\n componentInstance.title = title;\r\n componentInstance.phoneNumberActivityId = -1;\r\n \r\n return componentInstance;\r\n }\r\n\r\n openHelpLink() {\r\n this.helpDialogService.openDialog(\"Carbon Leads\");\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/leads/leads.component.ts","module.exports = \".lds-hourglass {\\r\\n display: inline-block;\\r\\n position: relative;\\r\\n width: 64px;\\r\\n height: 64px;\\r\\n}\\r\\n\\r\\n .lds-hourglass:after {\\r\\n content: \\\" \\\";\\r\\n display: block;\\r\\n border-radius: 50%;\\r\\n width: 0;\\r\\n height: 0;\\r\\n margin: 6px;\\r\\n -webkit-box-sizing: border-box;\\r\\n box-sizing: border-box;\\r\\n border: 26px solid #2ab8ff;\\r\\n border-color: #2ab8ff transparent #2ab8ff transparent;\\r\\n -webkit-animation: lds-hourglass 1.2s infinite;\\r\\n animation: lds-hourglass 1.2s infinite;\\r\\n }\\r\\n\\r\\n @-webkit-keyframes lds-hourglass {\\r\\n 0% {\\r\\n -webkit-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\\r\\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\\r\\n }\\r\\n\\r\\n 50% {\\r\\n -webkit-transform: rotate(900deg);\\r\\n transform: rotate(900deg);\\r\\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\r\\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: rotate(1800deg);\\r\\n transform: rotate(1800deg);\\r\\n }\\r\\n}\\r\\n\\r\\n @keyframes lds-hourglass {\\r\\n 0% {\\r\\n -webkit-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\\r\\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\\r\\n }\\r\\n\\r\\n 50% {\\r\\n -webkit-transform: rotate(900deg);\\r\\n transform: rotate(900deg);\\r\\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\r\\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: rotate(1800deg);\\r\\n transform: rotate(1800deg);\\r\\n }\\r\\n}\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/loading/loading.component.css\n// module id = ./src/app/loading/loading.component.css\n// module chunks = main","module.exports = \"
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/loading/loading.component.html\n// module id = ./src/app/loading/loading.component.html\n// module chunks = main","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-loading',\r\n templateUrl: './loading.component.html',\r\n styleUrls: ['./loading.component.css']\r\n})\r\n\r\nexport class LoadingComponent {\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/loading/loading.component.ts","module.exports = \"
\\r\\n

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n

You have been inactive for a while, and will be automatically logged out in:

\\r\\n
{{userService.currentTime}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/login/inactive-modal/inactive-modal.component.html\n// module id = ./src/app/login/inactive-modal/inactive-modal.component.html\n// module chunks = main","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { UserService } from '../../services/user.service';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'inactive-modal',\r\n templateUrl: './inactive-modal.component.html'\r\n})\r\nexport class InactiveModalComponent {\r\n @Input() userService: UserService;\r\n\r\n constructor(public activeModal: NgbActiveModal, public router: Router) {\r\n\r\n }\r\n\r\n logOut() {\r\n this.userService.logout();\r\n this.router.navigate(['login']);\r\n this.activeModal.close('logged out');\r\n }\r\n\r\n staySignedIn() {\r\n this.userService.staySignedIn().subscribe(() => {\r\n this.activeModal.close('stay logged in')\r\n })\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/login/inactive-modal/inactive-modal.component.ts","module.exports = \".login-container {\\r\\n display: -webkit-box;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -webkit-box-pack: center;\\r\\n -ms-flex-pack: center;\\r\\n justify-content: center;\\r\\n -ms-flex-line-pack: center;\\r\\n align-content: center;\\r\\n}\\r\\n\\r\\n.mat-card-content{\\r\\n display: -webkit-box;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -webkit-box-orient: vertical;\\r\\n -webkit-box-direction: normal;\\r\\n -ms-flex-flow: column;\\r\\n flex-flow: column;\\r\\n -webkit-box-pack: center;\\r\\n -ms-flex-pack: center;\\r\\n justify-content: center;\\r\\n -ms-flex-line-pack: center;\\r\\n align-content: center;\\r\\n}\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/login/login.component.css\n// module id = ./src/app/login/login.component.css\n// module chunks = main","module.exports = \"
\\r\\n \\r\\n \\r\\n

Login

\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n

Select a Location Below:

\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{client.name}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/login/login.component.html\n// module id = ./src/app/login/login.component.html\n// module chunks = main","import { Component, OnInit } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { UserService } from '../services/user.service';\r\nimport { SpinnerOverlayService } from '../services/spinner-overlay.service';\r\nimport { NotifyService } from '../services/notify.service';\r\nimport { ClientPickerService } from '../services/client-picker.service';\r\nimport { ClientService } from '../services/client.service';\r\n\r\n@Component({\r\n selector: 'app-login',\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.css']\r\n})\r\nexport class LoginComponent implements OnInit {\r\n returnUrl = \"dashboard\";\r\n email: string = \"\";\r\n password: string = \"\";\r\n isLoggedIn: boolean = false;\r\n clientList: any[] = [];\r\n\r\n constructor(public router: Router,\r\n private userService: UserService,\r\n private route: ActivatedRoute,\r\n private spinnerService: SpinnerOverlayService,\r\n private notifyService: NotifyService,\r\n private clientPickerService: ClientPickerService,\r\n private clientService: ClientService)\r\n {\r\n\r\n this.route.queryParams.subscribe(params => {\r\n this.returnUrl = params[\"returnUrl\"];\r\n })\r\n }\r\n\r\n ngOnInit() {\r\n this.clientPickerService.selectedClientId = 0;\r\n }\r\n\r\n onLoginClicked() {\r\n this.spinnerService.open();\r\n this.userService.login(this.email, this.password)\r\n .subscribe(response => {\r\n this.spinnerService.close();\r\n this.getClientList();\r\n }, error => {\r\n this.spinnerService.close();\r\n let errorMsg = \"Error: Login Failed\";\r\n if (error.status === 400) {\r\n errorMsg = \"Invalid Username Or Password\";\r\n }\r\n this.notifyService.error(errorMsg);\r\n console.error(error);\r\n })\r\n }\r\n\r\n logLoginActivity(clientId: number) {\r\n this.userService.addActivity(clientId, \"Carbon.LoggedIn\", \"Logged into Carbon\")\r\n .subscribe(response => {\r\n console.log(\"Logged login\");\r\n })\r\n }\r\n\r\n redirect(clientId: number) {\r\n this.logLoginActivity(clientId);\r\n this.clientService.GetClientConfigs(\"Carbon.WentToSettings\", clientId).subscribe(response => {\r\n if (response != \"true\") {\r\n this.returnUrl = \"settings\";\r\n }\r\n\r\n\r\n if (this.returnUrl === undefined) {\r\n this.returnUrl = \"dashboard\";\r\n }\r\n\r\n let decodedReturn = decodeURIComponent(this.returnUrl);\r\n let queryParameters = {};\r\n if (decodedReturn.includes('?')) {\r\n this.returnUrl = decodedReturn.split('?')[0];\r\n let queryString = decodedReturn.split('?')[1];\r\n\r\n let pairs = queryString.split('&');\r\n queryParameters = pairs.reduce((acc, current) => {\r\n let keyValue = current.split('=');\r\n acc[keyValue[0]] = keyValue[1];\r\n return acc;\r\n }, {})\r\n }\r\n\r\n this.router.navigate([this.returnUrl], { queryParams: queryParameters });\r\n })\r\n\r\n }\r\n \r\n getClientList() {\r\n this.clientPickerService.getClientsForLogin(this.userService.clientUserId)\r\n .subscribe(response => {\r\n if (response.length === 1) {\r\n this.clientPickerService.selectedClientId = response[0].clientId;\r\n this.redirect(response[0].clientId);\r\n }\r\n else {\r\n this.isLoggedIn = true;\r\n this.clientList = response;\r\n }\r\n })\r\n }\r\n\r\n selectClient(clientId: number) {\r\n this.clientPickerService.selectedClientId = clientId;\r\n this.redirect(clientId);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/login/login.component.ts","export enum ClientSubscribedServices {\r\n CarbonBase = 85,\r\n InstantReviews = 65,\r\n InstantReferrals = 66,\r\n VCardDrop = 67,\r\n Leads = 68,\r\n WebChat = 69,\r\n CallNotifier = 71,\r\n IPSoftPhone = 72,\r\n RinglessVoicemail = 73,\r\n RandomizedKeywordGenerator = 82,\r\n TwoWaySms = 70,\r\n CarbonMms = 87\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/models/client-subscribed-services.ts","export enum ClientTypes {\r\n OTT = 1,\r\n TheJoint = 4,\r\n ModernAcupuncture = 24,\r\n ALS = 25\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/models/client-types.ts","export class Contact {\r\n active: number = 0;\r\n activity: any[] = [];\r\n contactId: number = 0;\r\n clientId: number = 0;\r\n firstName: string = \"\";\r\n preferredName: string = \"\";\r\n lastName: string = \"\";\r\n email: string = \"\";\r\n emailOptInStatus: number = 0;\r\n mobilePhone: string;\r\n phoneNumber: string;\r\n workPhone: string;\r\n smspermission: number = 0;\r\n contactGuid: string;\r\n franchiseName: string;\r\n handled: number = 0;\r\n leadSource: string = \"\";\r\n contactStatus: string = \"\";\r\n membershipStatus: string = \"\";\r\n notes: string = \"\";\r\n referrer: string = \"\";\r\n leadStatus: number = 0;\r\n newLeadId: number = 0;\r\n dateModified: Date = null;\r\n DeadLeadReason: number = 0;\r\n customerId: string = null;\r\n customerSince: Date = null;\r\n}\r\n\r\nexport interface BulkContactResults {\r\n createdContacts: Contact[];\r\n skippedContacts: SkippedContact[];\r\n failedContacts: FailedContact[];\r\n}\r\n\r\nexport interface BulkFeedbackResults {\r\n skippedContacts: SkippedContact[];\r\n failedContacts: FailedContact[];\r\n}\r\n\r\nexport interface SkippedContact {\r\n contact: Contact;\r\n status: string;\r\n foundContacts: any[];\r\n}\r\n\r\nexport interface FailedContact {\r\n contact: Contact;\r\n exception: any;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/models/contact.ts","export interface DateRange {\r\n startDateISO: string,\r\n endDateISO: string\r\n}\r\n\r\nexport enum DateRangeOptions {\r\n lifetime = 0,\r\n today = 1,\r\n yesterday = 2,\r\n last7Days = 3,\r\n last14Days = 4,\r\n last30Days = 5,\r\n thisWeek = 6,\r\n lastWeek = 7,\r\n thisMonth = 8,\r\n lastMonth = 9,\r\n custom = 10,\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/models/date-range.ts","export class Email {\r\n toAddress: string;\r\n fromAddress: string;\r\n subject: string;\r\n msgBody: string;\r\n fromName: string;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/models/email.ts","export enum HelpApplicationTypes {\r\n All = 0,\r\n Advantage = 1,\r\n Carbon = 2\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/models/help-application-types.ts","export enum LeadActivityTypes {\r\n UpdatedContact = 0,\r\n New = 1,\r\n SecondCallBack = 2,\r\n ThirdCallBack = 3,\r\n FourthCallBack = 4,\r\n FifthCallBack = 5,\r\n LongTermProspect = 6,\r\n NoLongerInterested = 7,\r\n FormFill = 8,\r\n PhoneCall = 9,\r\n Sms = 10,\r\n Chat = 11,\r\n Referral = 12,\r\n AppointmentMade = 13,\r\n ShortCode = 14,\r\n NeverWasALead = 15,\r\n ExistingCustomer = 16,\r\n AppointmentRequest = 17\r\n}\r\n\r\nexport const LeadActivityNames = [\r\n \"Updated Contact\",\r\n \"New\",\r\n \"Needs Second Call Back\",\r\n \"Needs Third Call Back\",\r\n \"Needs Fourth Call Back\",\r\n \"Needs Fifth Call Back\",\r\n \"Long Term Prospect\",\r\n \"No Longer Interested\",\r\n \"Form Fill\",\r\n \"Phone Call\",\r\n \"Sms\",\r\n \"Chat\",\r\n \"Referral\",\r\n \"Appointment Made\",\r\n \"Short Code\",\r\n \"Never Was a Lead\",\r\n \"Existing Customer\",\r\n \"Appointment Request\" ]\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/models/lead-activity-types.ts","export class NegativeReviewComment {\r\n public negativeReviewCommentId: number;\r\n public contactActivityId: number;\r\n public resolved: boolean;\r\n public comment: string;\r\n public clientUserId: number;\r\n public dateCreated: Date;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/models/negative-review-comment.ts","\r\nexport enum SmsPermissionStatus {\r\n Unknown = 0,\r\n OptedIn = 1,\r\n OptedOut = 2,\r\n}\r\n\r\nexport enum EmailPermissionStatus {\r\n Unknown = 0,\r\n OptedOut = 1,\r\n OptedIn = 2,\r\n DoubleOptIn = 3\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/models/permission-statuses.ts","export enum SmsStatuses {\r\n //[Description(\"Failed - Unknown\")]\r\n Failed = 0,\r\n //[Description(\"Sent\")]\r\n Sent = 1,\r\n //[Description(\"Blocked - Permission\")]\r\n Blocked = 2,\r\n //[Description(\"Non-Mobile Phone\")]\r\n NonMobile = 3,\r\n //[Description(\"Received\")]\r\n Received = 4,\r\n //[Description(\"Queued\")]\r\n Queued = 5,\r\n //[Description(\"Sending\")]\r\n Sending = 6,\r\n //[Description(\"Accepted\")]\r\n Accepted = 7,\r\n // [Description(\"Sending\")]\r\n sending = 8,\r\n // [Description(\"Receiving\")]\r\n Receiving = 9,\r\n // [Description(\"Delivered\")]\r\n Delivered = 10,\r\n // [Description(\"Undelivered\")]\r\n Undelivered = 11,\r\n // [Description(\"Skipped - Duplicate Text\")]\r\n Skipped = 12,\r\n\r\n // [Description(\"Blocked - Opted Out\")]\r\n BlockedOptedOut = 13,\r\n // [Description(\"Blocked - Birthdate\")]\r\n BlockedBirthdate = 14,\r\n // [Description(\"Blocked - No Body\")]\r\n BlockedNoBody = 15\r\n}\r\n\r\nexport const SmsStatusStrings: string[] = [\r\n \"Failed - Unknown\",\r\n \"Sent\",\r\n \"Blocked - Permission\",\r\n \"Non-Mobile Phone\",\r\n \"Received\",\r\n \"Queued\",\r\n \"Sending\",\r\n \"Accepted\",\r\n \"Sending\",\r\n \"Receiving\",\r\n \"Delivered\",\r\n \"Undelivered\",\r\n \"Skipped - Duplicate Text\",\r\n \"Blocked - Opted Out\",\r\n \"Blocked - Birthdate\",\r\n \"Blocked - No Body\",\r\n]\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/models/sms-statuses.ts","module.exports = \"
\\r\\n
\\r\\n

\\r\\n 1st Place: {{leaders[0].franchiseName}} - {{leaders[0].total}}\\r\\n 1\\\">, 2nd Place: {{leaders[1].franchiseName}} - {{leaders[1].total}}\\r\\n 2\\\">, 3rd Place: {{leaders[2].franchiseName}} - {{leaders[2].total}}\\r\\n 3\\\">, 4th Place: {{leaders[3].franchiseName}} - {{leaders[3].total}}\\r\\n 4\\\">, 5th place: {{leaders[4].franchiseName}} - {{leaders[4].total}}\\r\\n

\\r\\n
\\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/nav-menu/footer-carousel/footer-carousel.component.html\n// module id = ./src/app/nav-menu/footer-carousel/footer-carousel.component.html\n// module chunks = main","module.exports = \".tech-slideshow {\\n margin: 0 auto;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n position: fixed;\\n overflow: hidden;\\n -webkit-transform: translate3d(0, 0, 0);\\n transform: translate3d(0, 0, 0);\\n background-color: #222;\\n color: white;\\n}\\n\\n.tech-slideshow > div {\\n width: 100%;\\n height: 100%;\\n -webkit-transform: translate3d(0, 0, 0);\\n transform: translate3d(0, 0, 0);\\n}\\n\\n.tech-slideshow .mover-1 {\\n -webkit-animation: moveSlideshow 60s linear infinite;\\n animation: moveSlideshow 60s linear infinite;\\n}\\n\\n/*.tech-slideshow .mover-2 {\\n opacity: 0;\\n transition: opacity 0.5s ease-out;\\n background-position: 0 -200px;\\n animation: moveSlideshow 15s linear infinite;\\n}\\n\\n.tech-slideshow:hover .mover-2 {\\n opacity: 1;\\n}*/\\n\\n.total {\\n color: #9e4545;\\n}\\n\\n@-webkit-keyframes moveSlideshow {\\n 0% {\\n -webkit-transform: translateX(100%);\\n transform: translateX(100%);\\n }\\n 100% {\\n -webkit-transform: translateX(-100%);\\n transform: translateX(-100%);\\n }\\n}\\n\\n@keyframes moveSlideshow {\\n 0% {\\n -webkit-transform: translateX(100%);\\n transform: translateX(100%);\\n }\\n 100% {\\n -webkit-transform: translateX(-100%);\\n transform: translateX(-100%);\\n }\\n}\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/nav-menu/footer-carousel/footer-carousel.component.scss\n// module id = ./src/app/nav-menu/footer-carousel/footer-carousel.component.scss\n// module chunks = main","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-footer-carousel',\r\n templateUrl: './footer-carousel.component.html',\r\n styleUrls: ['./footer-carousel.component.scss']\r\n})\r\n\r\nexport class FooterCarouselComponent {\r\n @Input() leaders: any = [];\r\n constructor(\r\n\r\n) {}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/nav-menu/footer-carousel/footer-carousel.component.ts","module.exports = \"@import \\\"https://fonts.googleapis.com/css?family=Poppins:300,400,500,600,700\\\";\\r\\n\\r\\nbody {\\r\\n font-family: 'Poppins', sans-serif;\\r\\n background: #fafafa;\\r\\n}\\r\\n\\r\\np {\\r\\n font-family: 'Poppins', sans-serif;\\r\\n font-size: 1.1em;\\r\\n font-weight: 300;\\r\\n line-height: 1.7em;\\r\\n color: #999;\\r\\n}\\r\\n\\r\\na,\\r\\na:hover,\\r\\na:focus {\\r\\n color: inherit;\\r\\n text-decoration: none;\\r\\n -webkit-transition: all 0.3s;\\r\\n transition: all 0.3s;\\r\\n}\\r\\n\\r\\n.navbar {\\r\\n padding: 15px 10px;\\r\\n background: #fff;\\r\\n border: none;\\r\\n border-radius: 0;\\r\\n margin-bottom: 40px;\\r\\n -webkit-box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);\\r\\n box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);\\r\\n}\\r\\n\\r\\n.navbar-left {\\r\\n padding-top: 50px;\\r\\n\\r\\n}\\r\\n\\r\\n.navbar-btn {\\r\\n -webkit-box-shadow: none;\\r\\n box-shadow: none;\\r\\n outline: none !important;\\r\\n border: none;\\r\\n}\\r\\n\\r\\n.line {\\r\\n width: 100%;\\r\\n height: 1px;\\r\\n border-bottom: 1px dashed #ddd;\\r\\n margin: 40px 0;\\r\\n}\\r\\n\\r\\ni,\\r\\nspan {\\r\\n display: inline-block;\\r\\n}\\r\\n\\r\\n/* ---------------------------------------------------\\r\\n SIDEBAR STYLE\\r\\n----------------------------------------------------- */\\r\\n\\r\\n.wrapper {\\r\\n display: -webkit-box;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -webkit-box-align: stretch;\\r\\n -ms-flex-align: stretch;\\r\\n align-items: stretch;\\r\\n height: 100%;\\r\\n}\\r\\n\\r\\n#sidebar {\\r\\n min-width: 250px;\\r\\n max-width: 250px;\\r\\n background: #222;\\r\\n color: #fff;\\r\\n -webkit-transition: all 0.3s;\\r\\n transition: all 0.3s;\\r\\n}\\r\\n\\r\\n#sidebar.active {\\r\\n min-width: 100px;\\r\\n max-width: 80px;\\r\\n text-align: center;\\r\\n }\\r\\n\\r\\n#sidebar.active .sidebar-header h3,\\r\\n #sidebar.active .CTAs {\\r\\n display: none;\\r\\n }\\r\\n\\r\\n#sidebar.active .sidebar-header strong {\\r\\n display: block;\\r\\n }\\r\\n\\r\\n#sidebar ul li a {\\r\\n text-align: left;\\r\\n }\\r\\n\\r\\n#sidebar.active ul li a {\\r\\n padding: 20px 10px;\\r\\n text-align: center;\\r\\n font-size: 0.85em;\\r\\n }\\r\\n\\r\\n#sidebar.active ul li a i {\\r\\n margin-right: 0;\\r\\n display: block;\\r\\n font-size: 1.8em;\\r\\n margin-bottom: 5px;\\r\\n }\\r\\n\\r\\n#sidebar.active ul ul a {\\r\\n padding: 10px !important;\\r\\n }\\r\\n\\r\\n#sidebar.active .dropdown-toggle::after {\\r\\n top: auto;\\r\\n bottom: 10px;\\r\\n right: 50%;\\r\\n -webkit-transform: translateX(50%);\\r\\n transform: translateX(50%);\\r\\n }\\r\\n\\r\\n#sidebar .sidebar-header {\\r\\n padding: 20px;\\r\\n background: #222;\\r\\n text-align: center;\\r\\n /*color: #9e4545;*/\\r\\n }\\r\\n\\r\\n#sidebar .sidebar-header strong {\\r\\n display: none;\\r\\n font-size: 1.8em;\\r\\n }\\r\\n\\r\\n#sidebar ul.components {\\r\\n padding: 20px 0;\\r\\n border-bottom: 1px solid #47748b;\\r\\n background: #222;\\r\\n }\\r\\n\\r\\n#sidebar ul li a {\\r\\n padding: 10px;\\r\\n font-size: 1.1em;\\r\\n display: block;\\r\\n }\\r\\n\\r\\n#sidebar ul li a:hover {\\r\\n color: #222;\\r\\n background: #fff;\\r\\n }\\r\\n\\r\\n#sidebar ul li a i {\\r\\n margin-right: 10px;\\r\\n }\\r\\n\\r\\n#sidebar ul li.active > a,\\r\\n a[aria-expanded=\\\"true\\\"] {\\r\\n color: #fff;\\r\\n background: #4189C7;\\r\\n }\\r\\n\\r\\na[data-toggle=\\\"collapse\\\"] {\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n.dropdown-toggle::after {\\r\\n display: block;\\r\\n position: absolute;\\r\\n top: 50%;\\r\\n right: 20px;\\r\\n -webkit-transform: translateY(-50%);\\r\\n transform: translateY(-50%);\\r\\n}\\r\\n\\r\\nul ul a {\\r\\n font-size: 0.9em !important;\\r\\n padding-left: 30px !important;\\r\\n background: #6d7fcc;\\r\\n}\\r\\n\\r\\nul.CTAs {\\r\\n padding: 20px;\\r\\n}\\r\\n\\r\\nul.CTAs a {\\r\\n text-align: center;\\r\\n font-size: 0.9em !important;\\r\\n display: block;\\r\\n border-radius: 5px;\\r\\n margin-bottom: 5px;\\r\\n }\\r\\n\\r\\na.download {\\r\\n background: #fff;\\r\\n color: #222;\\r\\n}\\r\\n\\r\\na.article,\\r\\na.article:hover {\\r\\n background: #6d7fcc !important;\\r\\n color: #fff !important;\\r\\n}\\r\\n\\r\\n/* ---------------------------------------------------\\r\\n CONTENT STYLE\\r\\n----------------------------------------------------- */\\r\\n\\r\\n#content {\\r\\n width: 0%;\\r\\n min-height: 100vh;\\r\\n -webkit-transition: all 0.3s;\\r\\n transition: all 0.3s;\\r\\n}\\r\\n\\r\\n/* ---------------------------------------------------\\r\\n MEDIAQUERIES\\r\\n----------------------------------------------------- */\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n #sidebar {\\r\\n min-width: 80px;\\r\\n max-width: 80px;\\r\\n text-align: center;\\r\\n margin-left: -80px !important;\\r\\n }\\r\\n\\r\\n .dropdown-toggle::after {\\r\\n top: auto;\\r\\n bottom: 10px;\\r\\n right: 50%;\\r\\n -webkit-transform: translateX(50%);\\r\\n transform: translateX(50%);\\r\\n }\\r\\n\\r\\n #sidebar.active {\\r\\n margin-left: 0 !important;\\r\\n }\\r\\n\\r\\n #sidebar .sidebar-header h3,\\r\\n #sidebar .CTAs {\\r\\n display: none;\\r\\n }\\r\\n\\r\\n #sidebar .sidebar-header strong {\\r\\n display: block;\\r\\n }\\r\\n\\r\\n #sidebar ul li a {\\r\\n padding: 20px 10px;\\r\\n }\\r\\n\\r\\n #sidebar ul li a span {\\r\\n font-size: 0.85em;\\r\\n }\\r\\n\\r\\n #sidebar ul li a i {\\r\\n margin-right: 0;\\r\\n display: block;\\r\\n }\\r\\n\\r\\n #sidebar ul ul a {\\r\\n padding: 10px !important;\\r\\n }\\r\\n\\r\\n #sidebar ul li a i {\\r\\n font-size: 1.3em;\\r\\n }\\r\\n\\r\\n #sidebar {\\r\\n margin-left: 0;\\r\\n }\\r\\n\\r\\n #sidebarCollapse span {\\r\\n display: none;\\r\\n }\\r\\n}\\r\\n\\r\\n.example-container {\\r\\n z-index: 0;\\r\\n position: fixed;\\r\\n}\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/nav-menu/nav-menu.component.css\n// module id = ./src/app/nav-menu/nav-menu.component.css\n// module chunks = main","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/nav-menu/nav-menu.component.html\n// module id = ./src/app/nav-menu/nav-menu.component.html\n// module chunks = main","import { Component, Input } from '@angular/core';\r\nimport { UserService } from '../services/user.service';\r\nimport { Router } from '@angular/router';\r\nimport { SmsService } from '../services/sms.service';\r\nimport { Subscription } from 'rxjs/Subscription';\r\nimport { ClientPickerService } from '../services/client-picker.service';\r\nimport { ChecklistService } from '../services/checklist.service';\r\nimport { ChatService } from '../services/chat.service';\r\nimport { LeadsService } from '../services/leads.service';\r\nimport { ClientService } from '../services/client.service';\r\nimport { ClientSubscribedServices } from '../models/client-subscribed-services';\r\nimport { ConfigService } from '../services/config.service';\r\nimport { NotifyService } from '../services/notify.service';\r\nimport { BlinkService } from '../services/blink.service';\r\n\r\n@Component({\r\n selector: 'app-nav-menu',\r\n templateUrl: './nav-menu.component.html',\r\n styleUrls: ['./nav-menu.component.css']\r\n})\r\nexport class NavMenuComponent {\r\n isExpanded = false;\r\n @Input() hasTwoWayConfig;\r\n @Input() isAdmin;\r\n subscription: Subscription;\r\n today: any = new Date();\r\n\r\n //unreadSmsCount: number = 0;\r\n //unreadChatCount: number = 0;\r\n totalUnreadConversationsCount: number = 0;\r\n\r\n unresolved: any;\r\n secondCallback: any;\r\n thirdCallback: any;\r\n fourthCallback: any;\r\n fifthCallback: any;\r\n appointmentMade: any;\r\n daysSinceAppointmentMade: any;\r\n\r\n hasLeadService: boolean = false;\r\n hasInstantReferralService: boolean = false;\r\n hasRandomizedKeywordGeneratorService: boolean = false;\r\n //smsTable parameters\r\n clientId: number = 0;\r\n clientTypeId: number = 0;\r\n endDate: any = new Date().setDate(this.today.getDate() + 1);\r\n v2link: string = \"\";\r\n\r\n constructor(private blinkService: BlinkService, private configService: ConfigService, private clientService: ClientService, private leadsService: LeadsService, private chatService: ChatService, private userService: UserService, private router: Router, private smsService: SmsService, private clientPickerService: ClientPickerService, private checklistService: ChecklistService, private notify: NotifyService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.subscription = this.clientPickerService.$clientRequestFinished.subscribe(\r\n (isDone: boolean) => {\r\n this.clientTypeId = this.clientPickerService.selectedClient.clientTypeId;\r\n //this.GetClientTypeConfig(\"Carbon.LeadConversionDays\", this.clientTypeId);\r\n this.subscription = this.clientPickerService.$clientId.subscribe(\r\n (clientId: number) => {\r\n this.clientId = clientId;\r\n\r\n this.GetCarbonStartDateConversations(clientId);\r\n this.GetCarbonStartDateLeads(clientId);\r\n\r\n //this.GetUnreadSmsCount(this.startDate, this.endDate, this.clientId);\r\n //this.GetUnreadConversationsCount(this.startDate, this.endDate, this.clientId);\r\n //this.GetUnreadLeadsCount(this.startDate, this.endDate, this.clientId);\r\n }\r\n )\r\n this.clientService.GetSubscribedServices(this.clientId).subscribe((services: number[]) => {\r\n this.hasLeadService = services.includes(ClientSubscribedServices.Leads);\r\n this.hasInstantReferralService = services.includes(ClientSubscribedServices.InstantReferrals);\r\n this.hasRandomizedKeywordGeneratorService = services.includes(ClientSubscribedServices.RandomizedKeywordGenerator);\r\n });\r\n if (this.configService.carbonAppConfig != null) {\r\n //console.log(\"Carbon App Config (nav-menu): \", this.configService.carbonAppConfig);\r\n //console.log(\"Carbon App Config v2link (nav-menu): \", this.configService.carbonAppConfig.v2link);\r\n if (this.configService.carbonAppConfig.v2link)\r\n this.v2link = this.configService.carbonAppConfig.v2link;\r\n }\r\n }\r\n )\r\n }\r\n\r\n GetCarbonStartDateConversations(clientId) {\r\n this.clientService.GetCarbonServiceStartDate(clientId, ClientSubscribedServices.CarbonBase) //85 is the base carbon service\r\n .subscribe(response => {\r\n if (response == null) {\r\n return;\r\n }\r\n let beginDate = new Date(response.beginDate);\r\n console.log(\"conversations: \", beginDate);\r\n let dateToStart = beginDate.setDate(beginDate.getDate()); //active carbon service start date\r\n this.GetUnreadConversationsCount(dateToStart, this.endDate, this.clientId);\r\n }, error => {\r\n console.error(error);\r\n })\r\n }\r\n\r\n GetCarbonStartDateLeads(clientId) {\r\n this.clientService.GetCarbonLeadServiceStartDate(clientId, 68) //68 is the live leads service\r\n .subscribe(response => {\r\n if (response == null) {\r\n return;\r\n }\r\n let beginDate = new Date(response.beginDate);\r\n console.log(\"leads: \", beginDate);\r\n let dateToStart = beginDate.setDate(beginDate.getDate());\r\n this.GetUnreadLeadsCount(dateToStart, this.endDate, this.clientId);\r\n }, error => {\r\n console.error(error);\r\n })\r\n }\r\n\r\n GetUnreadConversationsCount(start, end, clientId) {\r\n this.smsService.GetAllConversations(start, end, clientId, 0)\r\n .subscribe(response => {\r\n //let smsUnread = response[\"sms\"].filter((data) => {\r\n // return data.read == 0;\r\n //})\r\n //let chatUnread = response[\"chat\"].filter((data) => {\r\n // return data.read == 0;\r\n //})\r\n \r\n //let smsCount = smsUnread.length;\r\n //let chatCount = chatUnread.length;\r\n //let phoneCount = response[\"phone\"].length;\r\n //this.smsService.unreadConversationCount = chatCount + smsCount/* + phoneCount*/;\r\n this.smsService.unreadConversationCount = response[\"sms\"].length + response[\"chat\"].length + response[\"phone\"].length;\r\n }, error => {\r\n console.error(error);\r\n })\r\n }\r\n\r\n GetUnreadLeadsCount(start, end, clientId) {\r\n this.leadsService.GetNumberOfLeads(start, clientId).subscribe(response => {\r\n this.leadsService.unreadLeadsCount = response;\r\n \r\n if (this.clientService.hasBlink == \"true\") {\r\n //console.log(\"shouldShow: \", this.ShouldShow());\r\n if (!this.ShouldShow()) {\r\n return;\r\n }\r\n else {\r\n this.blinkService.Stop().subscribe();\r\n if (response > 0) {\r\n this.blinkService.LightUp().subscribe();\r\n }\r\n }\r\n }\r\n }, error => {\r\n console.error(\"Error getting number of leads: \", error);\r\n this.notify.error(\"Error getting number of leads.\");\r\n });\r\n }\r\n\r\n collapse() {\r\n this.isExpanded = false;\r\n }\r\n\r\n toggle() {\r\n this.isExpanded = !this.isExpanded;\r\n }\r\n\r\n logout() {\r\n this.userService.logout();\r\n this.router.navigate([\"login\"]);\r\n }\r\n\r\n ShouldShow() {\r\n return !(this.router.url.includes('/login') || this.router.url.includes('/star-feedback') || this.router.url.includes('/signup') || this.router.url.includes('/incoming-call-notifier'))\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/nav-menu/nav-menu.component.ts","import { Directive, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[top-bar-host]'\r\n})\r\nexport class TopBarHostDirective {\r\n constructor(public viewContainerRef: ViewContainerRef) {\r\n\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/nav-menu/top-bar-host.directive.ts","module.exports = \".navbar-brand {\\r\\n color: #9e4545;\\r\\n}\\r\\n\\r\\n.navbar.navbar-dark.bg-dark {\\r\\n background-color: #222 !important;\\r\\n position: fixed;\\r\\n width: 100%;\\r\\n z-index: 1;\\r\\n}\\r\\n\\r\\n.brand-subtext {\\r\\n color: white;\\r\\n font-size: 0.6em;\\r\\n}\\r\\n\\r\\n.navbarNavAltMarkup {\\r\\n display: -webkit-box;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -webkit-box-pack: justify;\\r\\n -ms-flex-pack: justify;\\r\\n justify-content: space-between;\\r\\n}\\r\\n\\r\\n.center {\\r\\n display: block;\\r\\n margin-left: auto;\\r\\n margin-right: auto;\\r\\n margin-top: 30px;\\r\\n}\\r\\n\\r\\nul {\\r\\n list-style-type: none;\\r\\n margin: 0;\\r\\n padding: 0;\\r\\n overflow: hidden;\\r\\n background-color: #333;\\r\\n}\\r\\n\\r\\nli {\\r\\n float: left;\\r\\n}\\r\\n\\r\\nli a {\\r\\n display: block;\\r\\n color: white;\\r\\n text-align: center;\\r\\n padding: 14px 16px;\\r\\n text-decoration: none;\\r\\n }\\r\\n\\r\\nli a:hover {\\r\\n background-color: #111;\\r\\n }\\r\\n\\r\\n/*hide blink button if they are not on a computer*/\\r\\n\\r\\n@media only screen and (max-width: 1367px) {\\r\\n .computerScreen {\\r\\n display:none;\\r\\n }\\r\\n}\\r\\n\\r\\nbutton:hover{\\r\\n cursor: pointer;\\r\\n background-color: grey;\\r\\n color:white;\\r\\n}\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/nav-menu/top-menu/top-menu.component.css\n// module id = ./src/app/nav-menu/top-menu/top-menu.component.css\n// module chunks = main","module.exports = \"
\\r\\n \\r\\n \\r\\n \\\"Carbon\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n ICN {{ !userSettingsService.icnEnabled ? 'Off' : 'On' }}\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/nav-menu/top-menu/top-menu.component.html\n// module id = ./src/app/nav-menu/top-menu/top-menu.component.html\n// module chunks = main","module.exports = \"HTML SCSS JS Result EDIT ON body {\\n width: 100%;\\n height: 100%;\\n position: fixed;\\n background-color: #34495e;\\n}\\n\\n.content {\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n -webkit-transform: translate(-50%, -50%);\\n transform: translate(-50%, -50%);\\n height: 160px;\\n overflow: hidden;\\n font-family: \\\"Lato\\\", sans-serif;\\n font-size: 35px;\\n line-height: 40px;\\n color: #ecf0f1;\\n}\\n\\n.content__container {\\n font-weight: 600;\\n overflow: hidden;\\n height: 40px;\\n padding: 0 40px;\\n}\\n\\n.content__container:before {\\n content: \\\"[\\\";\\n left: 0;\\n}\\n\\n.content__container:after {\\n content: \\\"]\\\";\\n position: absolute;\\n right: 0;\\n}\\n\\n.content__container:after, .content__container:before {\\n position: absolute;\\n top: 0;\\n color: #16a085;\\n font-size: 42px;\\n line-height: 40px;\\n -webkit-animation-name: opacity;\\n -webkit-animation-duration: 2s;\\n -webkit-animation-iteration-count: infinite;\\n animation-name: opacity;\\n animation-duration: 2s;\\n animation-iteration-count: infinite;\\n}\\n\\n.content__container__text {\\n display: inline;\\n float: left;\\n margin: 0;\\n}\\n\\n.content__container__list {\\n margin-top: 0;\\n padding-left: 110px;\\n text-align: left;\\n list-style: none;\\n -webkit-animation-name: change;\\n -webkit-animation-duration: 10s;\\n -webkit-animation-iteration-count: infinite;\\n animation-name: change;\\n animation-duration: 10s;\\n animation-iteration-count: infinite;\\n}\\n\\n.content__container__list__item {\\n line-height: 40px;\\n margin: 0;\\n}\\n\\n@-webkit-keyframes opacity {\\n 0%, 100% {\\n opacity: 0;\\n }\\n 50% {\\n opacity: 1;\\n }\\n}\\n\\n@-webkit-keyframes change {\\n 0%, 12.66%, 100% {\\n -webkit-transform: translate3d(0, 0, 0);\\n transform: translate3d(0, 0, 0);\\n }\\n 16.66%, 29.32% {\\n -webkit-transform: translate3d(0, -25%, 0);\\n transform: translate3d(0, -25%, 0);\\n }\\n 33.32%, 45.98% {\\n -webkit-transform: translate3d(0, -50%, 0);\\n transform: translate3d(0, -50%, 0);\\n }\\n 49.98%, 62.64% {\\n -webkit-transform: translate3d(0, -75%, 0);\\n transform: translate3d(0, -75%, 0);\\n }\\n 66.64%, 79.3% {\\n -webkit-transform: translate3d(0, -50%, 0);\\n transform: translate3d(0, -50%, 0);\\n }\\n 83.3%, 95.96% {\\n -webkit-transform: translate3d(0, -25%, 0);\\n transform: translate3d(0, -25%, 0);\\n }\\n}\\n\\n@keyframes opacity {\\n 0%, 100% {\\n opacity: 0;\\n }\\n 50% {\\n opacity: 1;\\n }\\n}\\n\\n@keyframes change {\\n 0%, 12.66%, 100% {\\n -webkit-transform: translate3d(0, 0, 0);\\n transform: translate3d(0, 0, 0);\\n }\\n 16.66%, 29.32% {\\n -webkit-transform: translate3d(0, -25%, 0);\\n transform: translate3d(0, -25%, 0);\\n }\\n 33.32%, 45.98% {\\n -webkit-transform: translate3d(0, -50%, 0);\\n transform: translate3d(0, -50%, 0);\\n }\\n 49.98%, 62.64% {\\n -webkit-transform: translate3d(0, -75%, 0);\\n transform: translate3d(0, -75%, 0);\\n }\\n 66.64%, 79.3% {\\n -webkit-transform: translate3d(0, -50%, 0);\\n transform: translate3d(0, -50%, 0);\\n }\\n 83.3%, 95.96% {\\n -webkit-transform: translate3d(0, -25%, 0);\\n transform: translate3d(0, -25%, 0);\\n }\\n}\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/nav-menu/top-menu/top-menu.component.scss\n// module id = ./src/app/nav-menu/top-menu/top-menu.component.scss\n// module chunks = main","import { Component, OnInit, ViewChild, AfterViewInit, Input } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { TopBarHostDirective } from '../top-bar-host.directive';\r\nimport { TopBarService } from '../../services/top-bar.service';\r\nimport { ClientService } from '../../services/client.service';\r\nimport { BlinkService } from '../../services/blink.service';\r\nimport { ClientPickerService } from '../../services/client-picker.service';\r\nimport { ClientSubscribedServices } from '../../models/client-subscribed-services';\r\nimport { UserSettingsService } from '../../services/user-settings.service';\r\n\r\n@Component({\r\n selector: 'app-top-menu',\r\n templateUrl: './top-menu.component.html',\r\n styleUrls: ['./top-menu.component.css', './top-menu.component.scss']\r\n})\r\nexport class TopMenuComponent implements OnInit, AfterViewInit {\r\n @ViewChild(TopBarHostDirective) topBarHost: TopBarHostDirective;\r\n @Input() shouldShow: boolean;\r\n\r\n // ICN Slider\r\n hasIcnService: boolean = false;\r\n\r\n constructor(\r\n public blinkService: BlinkService,\r\n public clientService: ClientService,\r\n public router: Router,\r\n public topBarService: TopBarService,\r\n public userSettingsService: UserSettingsService,\r\n public clientPickerService: ClientPickerService\r\n ) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n console.log(\"top-menu-component on init\");\r\n this.clientPickerService.$clientId.subscribe((selectedClientId: number) => {\r\n console.log(\"Selected ClientId: \", selectedClientId);\r\n this.clientService.GetSubscribedServices(selectedClientId).subscribe((services: number[]) => {\r\n this.hasIcnService = services.includes(ClientSubscribedServices.CallNotifier);\r\n console.log(\"Has ICN Service: \", this.hasIcnService);\r\n }) \r\n })\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.shouldShow) {//this.ShouldShow()) {\r\n this.topBarService.host = this.topBarHost;\r\n }\r\n }\r\n\r\n HasBlinkService() {\r\n if (this.clientService.hasBlink == \"true\") {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n //ShouldShow() {\r\n // return !(this.router.url.includes('/login') || this.router.url.includes('/star-feedback') || this.router.url.includes('/signup'))\r\n //}\r\n\r\n HideAll() {\r\n return !(this.router.url.includes('/star-feedback') || this.router.url.includes('/incoming-call-notifier'))\r\n }\r\n\r\n PauseBlinkClicked() {\r\n this.blinkService.Stop().subscribe()\r\n }\r\n\r\n Toggled(event) {\r\n this.userSettingsService.icnEnabled = event.checked;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/nav-menu/top-menu/top-menu.component.ts","module.exports = \"/*.row {\\r\\n height: 100%;\\r\\n}\\r\\n\\r\\n#optInContainer {\\r\\n position: absolute;\\r\\n height: 100%;\\r\\n margin-top: 15px;\\r\\n width: 50%;\\r\\n}\\r\\n\\r\\n.package {\\r\\n text-align: center;\\r\\n padding: 15px;\\r\\n}\\r\\n*/\\r\\n\\r\\n.outline {\\r\\n border: 1px solid black;\\r\\n}\\r\\n\\r\\n#packagesContainer {\\r\\n padding: 15px;\\r\\n /*text-align: center;\\r\\n justify-content: space-around;*/\\r\\n}\\r\\n\\r\\n.packageHeader{\\r\\n padding: 15px;\\r\\n}\\r\\n\\r\\n.titles{\\r\\n -webkit-box-flex:1;\\r\\n -ms-flex:auto;\\r\\n flex:auto;\\r\\n text-align:center;\\r\\n}\\r\\n\\r\\n.ownedLocations {\\r\\n border-bottom: 1px black;\\r\\n}\\r\\n\\r\\ntable {\\r\\n font-family: arial, sans-serif;\\r\\n border-collapse: collapse;\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\ntd, th {\\r\\n border: 1px solid #dddddd;\\r\\n text-align: left;\\r\\n padding: 8px;\\r\\n}\\r\\n\\r\\n.container-fluid{\\r\\n padding-left:15px;\\r\\n}\\r\\n\\r\\ni{\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n/*tr:nth-child(even) {\\r\\n background-color: #dddddd;\\r\\n}*/\\r\\n\\r\\n.backgroundColumnColor{\\r\\n background-color: #B5D3E7;\\r\\n}\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/opt-in/opt-in.component.css\n// module id = ./src/app/opt-in/opt-in.component.css\n// module chunks = main","module.exports = \"
\\r\\n
\\r\\n
\\r\\n

Carbon Packages

\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NoneReviews Referrals CRM
{{location.franchiseName}}$0${{location.reviews}}${{location.referrals}}${{location.crm}}
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n

Package Info

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Reviews Referrals CRM
Atlas IntegrationXXX
Instant ReviewsXXX
Contact Databasexxx
Two-Way SMSxxx
Custom Joint Survey
Dashboardxxx
Reportsxxx
Instant ReferralsXX
Contact Cardxx
Personalized Landing Pagexx
Live Web ChatX
Live Web LeadsX
Telephony PackageX
IP Soft Phonex
Callback Schedulingx
Automated Attendantx
Incoming Call Notifierx
Instant Voicemailx
Ringless Voicemailx
Voice Mailboxx
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/opt-in/opt-in.component.html\n// module id = ./src/app/opt-in/opt-in.component.html\n// module chunks = main","import { Component, OnInit} from '@angular/core';\r\nimport { SpinnerOverlayService } from '../services/spinner-overlay.service';\r\nimport { UserService } from '../services/user.service';\r\nimport { ClientPickerService } from '../services/client-picker.service';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-opt-in',\r\n templateUrl: './opt-in.component.html',\r\n styleUrls: ['./opt-in.component.css']\r\n})\r\n\r\nexport class OptInComponent implements OnInit {\r\n constructor(private modalService: NgbModal, private userService: UserService, private clientpickerService: ClientPickerService, private spinnerOverlayService: SpinnerOverlayService) {\r\n\r\n }\r\n modalRef: any = null;\r\n locations: any = [];\r\n highlightedColumnName: string = \"\";\r\n //selectedValue: number = 0;\r\n //selectedPackage: string = \"\";\r\n\r\n ngOnInit() {\r\n this.getCarbonProspectClients();\r\n }\r\n \r\n getCarbonProspectClients = () => {\r\n console.log(\"getting...\");\r\n this.userService.getCarbonProspectClients(/*315*/3164).subscribe(response => {\r\n console.log(\"owned locations: \", response);\r\n if (response) {\r\n this.locations = response;\r\n for (let i = 0; i < this.locations.length; i++) {\r\n this.locations[i].selectedValue = 0;\r\n this.locations[i].selectedPackage = 0;\r\n }\r\n }\r\n })\r\n }\r\n\r\n OpenModal = (content, columnName) => {\r\n this.highlightedColumnName = columnName;\r\n this.modalRef = this.modalService.open(content);\r\n }\r\n\r\n RadioChange = (event, index, value, packageNumber) => {\r\n console.log(\"radio value: \", index, value, packageNumber);\r\n //this.selectedValue = value;\r\n this.locations[index].selectedValue = value;\r\n this.locations[index].selectedPackage = packageNumber;\r\n console.log(this.locations);\r\n }\r\n\r\n signUp = () => {\r\n let filteredLocations = this.locations.filter(function (data) {\r\n return data.selectedPackage !== 0;\r\n })\r\n console.log(filteredLocations);\r\n\r\n //for (let i = 0; i < filteredLocations.length; i++) {\r\n ////add service\r\n //this.addServicePackage(filteredLocations[i]);\r\n //}\r\n this.addServicePackage(filteredLocations[0]);\r\n\r\n }\r\n\r\n addServicePackage = (ownedLocation) => {\r\n //this.spinnerOverlayService.open();\r\n let clientId = ownedLocation.clientId;\r\n let clientServiceId = ownedLocation.selectedPackage;\r\n let costString = ownedLocation.selectedValue + \".00\";\r\n let cost = parseFloat(costString);\r\n let beginDate = new Date();\r\n\r\n console.log(\"adding Service Package\");\r\n\r\n this.userService.addCarbonPackage(clientId, clientServiceId, cost, beginDate)\r\n .subscribe(response => {\r\n //this.spinnerOverlayService.close();\r\n console.log(\"response: \" , response);\r\n this.getCarbonProspectClients();\r\n }, error => {\r\n //this.spinnerOverlayService.close();\r\n //this.notifyService.error(errorMsg);\r\n console.error(error);\r\n })\r\n }\r\n}\r\n\r\n\r\n//import { Component, OnInit, SecurityContext } from '@angular/core';\r\n//import { SpinnerOverlayService } from '../services/spinner-overlay.service';\r\n//import { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n//import { AgreementService } from '../services/agreement.service';\r\n//import { UserService } from '../services/user.service';\r\n//import { ClientPickerService } from '../services/client-picker.service';\r\n\r\n//@Component({\r\n// selector: 'app-opt-in',\r\n// templateUrl: './opt-in.component.html',\r\n// styleUrls: ['./opt-in.component.css']\r\n//})\r\n\r\n//export class OptInComponent implements OnInit {\r\n// selectedPackage: number = -1;\r\n// agreement: SafeHtml = null;\r\n// agreementId: number = 36; // Need to switch with the real agreement id\r\n// agreedToTerms: boolean = false;\r\n\r\n// constructor(private agreementService: AgreementService, private userService: UserService, private clientpickerService: ClientPickerService, private spinnerOverlayService: SpinnerOverlayService, private sanitizer: DomSanitizer) {\r\n\r\n// }\r\n\r\n// ngOnInit() {\r\n\r\n// }\r\n\r\n// selectPackage(packageNum: number) {\r\n// console.log(`Package ${packageNum} selected`);\r\n// this.selectedPackage = packageNum;\r\n// this.getAgreement();\r\n// }\r\n\r\n// getAgreement() {\r\n// this.spinnerOverlayService.open();\r\n// this.agreementService.GetAgreement(this.agreementId).subscribe(response => {\r\n// this.agreement = this.sanitizer.bypassSecurityTrustHtml(response.body); // Bypassing security so inline styles don't get removed\r\n// this.spinnerOverlayService.close();\r\n// })\r\n// }\r\n\r\n// acceptTerms() {\r\n// console.log(\"Accepted terms\");\r\n// if (!this.agreedToTerms) {\r\n// return false;\r\n// }\r\n\r\n// const clientUserId = this.userService.clientUserId;\r\n// const clientId = this.clientpickerService.selectedClientId;\r\n\r\n// //Could do all below from 1 api call\r\n// // Sign Carbon Agreement\r\n// this.agreementService.SignAgreement(this.agreementId, clientUserId, clientId).subscribe(response => {\r\n// // Add Carbon Services\r\n// // Setup Carbon Tracking Number\r\n// // Automatically add service to invoice\r\n// })\r\n// }\r\n\r\n// backToPackages() {\r\n// this.agreement = null;\r\n// }\r\n//}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/opt-in/opt-in.component.ts","module.exports = \".package {\\r\\n border: 1px solid black;\\r\\n height: 100%;\\r\\n width: 100%;\\r\\n text-align: center;\\r\\n padding: 15px;\\r\\n}\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/opt-in/signup-package/signup-package.component.css\n// module id = ./src/app/opt-in/signup-package/signup-package.component.css\n// module chunks = main","module.exports = \"\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/opt-in/signup-package/signup-package.component.html\n// module id = ./src/app/opt-in/signup-package/signup-package.component.html\n// module chunks = main","import { Component, Input, EventEmitter, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'signup-package',\r\n templateUrl: './signup-package.component.html',\r\n styleUrls: ['./signup-package.component.css']\r\n})\r\nexport class SignupPackageComponent {\r\n @Input() title: string;\r\n @Input() price: string;\r\n @Input() selectedPackage: number;\r\n @Input() packageNum: number;\r\n @Output() selectPackage = new EventEmitter();\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n isSelected(): boolean {\r\n return this.selectedPackage === this.packageNum;\r\n }\r\n\r\n getButtonClass(): string {\r\n return this.isSelected() ? 'btn-success' : 'btn-primary'\r\n }\r\n\r\n getButtonText(): string {\r\n return this.isSelected() ? \"Selected\" : \"Select\";\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/opt-in/signup-package/signup-package.component.ts","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'activityDescription' })\r\nexport class ActivityDescriptionPipe implements PipeTransform {\r\n transform(activityDescription: string): string {\r\n if (activityDescription != undefined) {\r\n let cutOff = activityDescription.split('|')[1];\r\n let newDescription = activityDescription.replace(cutOff, '');\r\n newDescription = newDescription.replace('|', '');\r\n return newDescription;\r\n }\r\n else return \"\";\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/pipes/activity-description-pipe.ts","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'chatStart' })\r\nexport class ChatStartPipe implements PipeTransform {\r\n transform(chatStart: string): string {\r\n if (chatStart != undefined) {\r\n //console.log(chatStart);\r\n let keepString = chatStart.split('|')[0];\r\n return keepString;\r\n }\r\n else return \"\";\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/pipes/chat-start-pipe.ts","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { ClientTypes } from '../models/client-types';\r\n\r\n@Pipe({ name: 'contactStatus' })\r\nexport class ContactStatusPipe implements PipeTransform {\r\n transform(contactStatus: string, clientTypeId: number, customerId: string): string {\r\n console.log(contactStatus, clientTypeId, customerId);\r\n \r\n switch (clientTypeId) {\r\n case ClientTypes.ALS:\r\n if (contactStatus != null && (contactStatus.toLowerCase() == \"first time\" || contactStatus.toLowerCase() == \"second time\")) {\r\n return \"Prospect\";\r\n }\r\n else if (contactStatus != null && contactStatus.toLowerCase() == 'member') {\r\n return \"Member\";\r\n }\r\n //contactStatus = 'prospect' was moved here to display 'Lead' for the lead pop up.\r\n else if (contactStatus == null || contactStatus == '' || contactStatus.toLowerCase() == \"prospect\") {\r\n return \"Lead\";\r\n }\r\n break;\r\n case ClientTypes.ModernAcupuncture:\r\n case ClientTypes.TheJoint:\r\n if ((contactStatus == null || contactStatus == \"\") && customerId != null) {\r\n return \"Patient\";\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n return \"\";\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/pipes/contact-status-pipe.ts","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'createArray' })\r\nexport class CreateArrayPipe implements PipeTransform {\r\n transform(length: number): Array {\r\n return new Array(length);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/pipes/create-array-pipe.ts","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({name: 'in'})\r\nexport class InPipe implements PipeTransform {\r\n transform(value: any, list: any[], invert:'invert'|undefined): boolean {\r\n let included = list.includes(value);\r\n\r\n if(invert === 'invert') {\r\n return !included;\r\n }\r\n else {\r\n return included;\r\n }\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/pipes/in.pipe.ts","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { SmsService } from '../services/sms.service';\r\n\r\n@Pipe({name: 'IsAutomatedSMS'})\r\nexport class IsAutomatedSMSPipe implements PipeTransform {\r\n constructor(private smsService: SmsService) {\r\n \r\n }\r\n\r\n transform(sms: any): Observable {\r\n return this.smsService.IsAutomatedSms(sms);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/pipes/is-automated-sms.pipe.ts","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { Contact } from '../models/contact';\r\nimport { ClientTypes } from '../models/client-types';\r\nimport * as moment from 'moment';\r\n\r\n@Pipe({name: 'isCustomer'})\r\nexport class IsCustomerPipe implements PipeTransform {\r\n transform(value: Contact, clientTypeId: number): any {\r\n if(value === undefined || value === null) {\r\n return false;\r\n }\r\n\r\n const customerId = value.customerId;\r\n const since = value.customerSince;\r\n\r\n var date = moment.utc();\r\n var customerSince = moment.utc(since);\r\n\r\n //console.group(\"Checking If Customer\");\r\n //console.log(\"customerId: \", customerId);\r\n //console.log(\"customerSince: \", customerSince);\r\n //console.log(\"date: \", date);\r\n //console.log(\"customerId != null : \", customerId != null);\r\n //console.log(\"customerId.trim() != '' : \", customerId.trim() != \"\");\r\n //console.log(\"customerSince != null : \", customerSince != null);\r\n //console.log(\"customerSince <= date : \", customerSince <= date);\r\n \r\n let isCustomer = false;\r\n \r\n switch (clientTypeId) {\r\n case ClientTypes.ALS:\r\n //return value.membershipStatus != null && value.membershipStatus.trim() != \"\";\r\n case ClientTypes.ModernAcupuncture:\r\n case ClientTypes.TheJoint:\r\n //console.log(\"ClientTypeId: \", clientTypeId);\r\n isCustomer = customerId != null && customerId.trim() != \"\" && customerSince != null && customerSince <= date;\r\n //return customerId != null && customerId.trim() != \"\" && customerSince != null && customerSince <= date;\r\n break;\r\n default:\r\n //console.log(\"ClientTypeId: Default\");\r\n isCustomer = true;\r\n break;\r\n }\r\n \r\n //console.log(\"isCustomer: \", isCustomer);\r\n //console.groupEnd();\r\n\r\n return isCustomer;\r\n\r\n //return customerId != null && customerSince != null && customerId.trim() != \"\";\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/pipes/is-customer.pipe.ts","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({name: 'isValid'})\r\nexport class IsValidPipe implements PipeTransform {\r\n transform(value: string, type: \"email\" | \"phone\"): boolean {\r\n if (!value || value.trim() === \"\") {\r\n return false;\r\n }\r\n\r\n if(type == \"email\") {\r\n return this.isValidEmail(value);\r\n }\r\n else if(type == \"phone\") {\r\n return this.isValidPhone(value);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private isValidEmail(value: string): boolean {\r\n var emailRegex = /^([a-zA-Z0-9_\\-\\.\\+]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9_\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$/;\r\n return emailRegex.test(value);\r\n }\r\n\r\n private isValidPhone(value: string): boolean {\r\n let phoneNumberDigits: string = value.replace(/\\D/g, '');\r\n\r\n if (phoneNumberDigits.length == 10 || (phoneNumberDigits.startsWith(\"1\") && phoneNumberDigits.length == 11)) // Added the OR statement so that if the number starts with 1 it should be 11 characters long\r\n return true;\r\n else\r\n return false;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/pipes/is-valid.pipe.ts","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'leadStatus' })\r\nexport class LeadStatusPipe implements PipeTransform {\r\n transform(status: number): string {\r\n var leadStatus: string = \"\";\r\n switch (status) {\r\n case 1: {\r\n leadStatus = \"New\";\r\n break;\r\n }\r\n case 2: {\r\n leadStatus = \"Needs Second Call Back\";\r\n break;\r\n }\r\n case 3: {\r\n leadStatus = \"Needs Third Call Back\";\r\n break;\r\n }\r\n case 4: {\r\n leadStatus = \"Needs Fourth Call Back\";\r\n break;\r\n }\r\n case 5: {\r\n leadStatus = \"Needs Fifth Call Back\";\r\n break;\r\n }\r\n case 6: {\r\n leadStatus = \"Long Term Prospect\";\r\n break;\r\n }\r\n case 7: {\r\n leadStatus = \"No Longer Interested\";\r\n break;\r\n }\r\n case 8: {\r\n leadStatus = \"Form Fill\";\r\n break;\r\n }\r\n case 9: {\r\n leadStatus = \"Phone Call\";\r\n break;\r\n }\r\n case 10: {\r\n leadStatus = \"Sms\";\r\n break;\r\n }\r\n case 11: {\r\n leadStatus = \"Chat\";\r\n break;\r\n }\r\n case 12: {\r\n leadStatus = \"Referral\";\r\n break;\r\n }\r\n case 13: {\r\n leadStatus = \"Appointment Made\";\r\n break;\r\n }\r\n case 14: {\r\n leadStatus = \"Short Code\";\r\n break;\r\n }\r\n case 15: {\r\n leadStatus = \"Never Was a Lead\";\r\n break;\r\n }\r\n case 16: {\r\n leadStatus = \"Existing Customer\";\r\n break;\r\n }\r\n default: {\r\n leadStatus = \"\"\r\n break;\r\n }\r\n }\r\n return leadStatus;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/pipes/lead-status-pipe.ts","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { LeadActivityNames } from '../models/lead-activity-types';\r\n\r\n@Pipe({ name: 'NewLeadSource' })\r\nexport class NewLeadSourcePipe implements PipeTransform {\r\n transform(leadSource: number): string {\r\n if (leadSource < LeadActivityNames.length) {\r\n return LeadActivityNames[leadSource];\r\n }\r\n return \"\";\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/pipes/new-lead-source-pipe.ts","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'phone' })\r\nexport class PhonePipe implements PipeTransform {\r\n transform(phoneNumber: string): string {\r\n if (phoneNumber != undefined) {\r\n let phoneNumberDigits = phoneNumber.replace(/\\D/g, '');\r\n if (phoneNumberDigits.startsWith('1')) {\r\n phoneNumberDigits = phoneNumberDigits.slice(1);\r\n }\r\n\r\n if (phoneNumberDigits.length > 7) {\r\n return `(${phoneNumberDigits.substr(0, 3)}) ${phoneNumberDigits.substr(3, 3)}-${phoneNumberDigits.substr(6)}`;\r\n }\r\n else if (phoneNumberDigits.length > 3) {\r\n return `${phoneNumberDigits.substr(0, 3)}-${phoneNumberDigits.substr(3)}`;\r\n }\r\n\r\n return phoneNumberDigits;\r\n }\r\n else return \"\";\r\n }\r\n\r\n\r\n //transform(phoneNumber: string): string {\r\n\r\n // if (phoneNumber.startsWith('1')) {\r\n // phoneNumber = phoneNumber.slice(1);\r\n // }\r\n\r\n // var matched = phoneNumber.match(/\\d+\\.?\\d*/g);\r\n // if (matched == null) {\r\n // return \"\";\r\n // }\r\n\r\n // // 10 digit\r\n // if (matched.length === 3) {\r\n // return '(' + matched[0] + ') ' + matched[1] + '-' + matched[2];\r\n // // 7 digit\r\n // } else if (matched.length === 2) {\r\n // return matched[0] + '-' + matched[1];\r\n // }\r\n // // no formatting attempted only found integers (i.e. 1234567890)\r\n // else if (matched.length === 1) {\r\n // // 10 digit\r\n // if (matched[0].length === 10) {\r\n // return '(' + matched[0].substr(0, 3) + ') ' + matched[0].substr(3, 3) + '-' + matched[0].substr(6);\r\n // }\r\n // // 7 digit\r\n // if (matched[0].length === 7) {\r\n // return matched[0].substr(0, 3) + '-' + matched[0].substr(3);\r\n // }\r\n // }\r\n\r\n // return phoneNumber;\r\n //}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/pipes/phone-pipe.ts","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'Referral' })\r\nexport class ReferralPipe implements PipeTransform {\r\n transform(referral: string): string {\r\n var referredBy = referral.split(\":\")[2];\r\n return referredBy;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/pipes/referral-pipe.ts","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SmsStatusStrings } from '../models/sms-statuses';\r\n\r\n@Pipe({name: 'smsStatus'})\r\nexport class SmsStatusPipe implements PipeTransform {\r\n transform(value: any): any {\r\n let parsedValue = parseInt(value);\r\n if(isNaN(parsedValue) || parsedValue < 0 || parsedValue >= SmsStatusStrings.length) {\r\n return value;\r\n }\r\n\r\n return SmsStatusStrings[parsedValue];\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/pipes/sms-status-pipe.ts","module.exports = \"textarea {\\r\\n resize: none;\\r\\n}\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/request-feedback/request-feedback.component.css\n// module id = ./src/app/request-feedback/request-feedback.component.css\n// module chunks = main","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/request-feedback/request-feedback.component.html\n// module id = ./src/app/request-feedback/request-feedback.component.html\n// module chunks = main","import { Component } from '@angular/core';\r\nimport { SmsService } from '../services/sms.service';\r\nimport { ClientPickerService } from '../services/client-picker.service';\r\nimport { SpinnerOverlayService } from '../services/spinner-overlay.service';\r\nimport { NotifyService } from '../services/notify.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-request-feedback',\r\n templateUrl: './request-feedback.component.html',\r\n styleUrls: ['./request-feedback.component.css']\r\n})\r\n\r\nexport class RequestFeedbackComponent {\r\n constructor(\r\n private smsService: SmsService,\r\n private clientPickerService: ClientPickerService,\r\n private spinnerOverlayService: SpinnerOverlayService,\r\n private notify: NotifyService\r\n ){}\r\n\r\n fromClientId: number = this.clientPickerService.selectedClientId;\r\n phoneNumbers: string = \"\";\r\n //clientTypeId: number = this.clientPickerService.selectedClient.clientTypeId;\r\n\r\n SendFeedbackRequest() {\r\n //this.snackBar.open(\"Success\", \"\", {\r\n // duration: 3000,\r\n // verticalPosition: \"top\",\r\n // horizontalPosition: \"right\",\r\n // panelClass: ['snackbar-success']\r\n //});\r\n //this.snackBar.open(\"Error\", \"\", {\r\n // duration: 3000,\r\n // verticalPosition: \"top\",\r\n // horizontalPosition: \"right\",\r\n // panelClass: ['snackbar-error']\r\n //});\r\n\r\n ////get client type id\r\n ////get contact guid where client type id == and phone number ==\r\n //this.smsService.GetContactsByPhone()\r\n // .subscribe(response => {\r\n // console.log(response);\r\n // })\r\n \r\n ////send contact guid as query parameter\r\n\r\n\r\n //this.spinnerOverlayService.open();\r\n //this.smsService.SendFeedbackRequest(this.clientPickerService.selectedClientId, this.phoneNumbers, this)\r\n // .subscribe(response => {\r\n // console.log(response);\r\n // this.snackBar.open(\"Success\", \"\", {\r\n // duration: 3000,\r\n // verticalPosition: \"top\",\r\n // horizontalPosition: \"right\",\r\n // panelClass: ['snackbar-success']\r\n // });\r\n // this.spinnerOverlayService.close();\r\n //}, error => {\r\n // this.spinnerOverlayService.close();\r\n // console.error(error);\r\n // this.snackBar.open(\"Error\", \"\", {\r\n // duration: 3000,\r\n // verticalPosition: \"top\",\r\n // horizontalPosition: \"right\",\r\n // panelClass: ['snackbar-error']\r\n // });\r\n //});\r\n\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/request-feedback/request-feedback.component.ts","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class AgreementService {\r\n constructor(private http: HttpClient, @Inject('BASE_URL') private baseUrl: string, @Inject('API_KEY') private apiKey: string) {\r\n\r\n }\r\n\r\n GetAgreement(agreementId: number): Observable {\r\n return this.http.get(this.baseUrl + `api/agreements?apiKey=${this.apiKey}&agreementId=${agreementId}`);\r\n }\r\n\r\n SignAgreement(agreementId: number, clientUserId: number, clientId: number): Observable {\r\n return this.http.post(this.baseUrl + `api/agreements/sign?apiKey=${this.apiKey}&agreementId=${agreementId}&clientUserId=${clientUserId}&clientId=${clientId}`, {});\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/agreement.service.ts","import { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable()\r\nexport class BlinkService {\r\n constructor(private http: HttpClient, @Inject('BASE_URL') private baseUrl: string, @Inject('API_KEY') private apiKey: string) {\r\n\r\n }\r\n\r\n LightUp(): Observable {\r\n //console.log(\"blink on\");\r\n return this.http.get(\"http://localhost:8934/blink1/pattern/add?pname=policeflash&pattern=0,%23ff0000,0.5,%230000ff,0.5\");\r\n }\r\n\r\n Stop(): Observable {\r\n //console.log(\"blink off\");\r\n return this.http.get(\"http://localhost:8934/blink1/pattern/stop?pname=policeflash\");\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/blink.service.ts","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { DatePipe } from '@angular/common';\r\nimport { FlaggedCall } from '../models/flagged-call';\r\nimport * as moment from 'moment';\r\n\r\n@Injectable()\r\nexport class CallRecordingService {\r\n constructor(private http: HttpClient, @Inject('BASE_URL') private baseUrl: string, @Inject('API_KEY') private apiKey: string) {\r\n\r\n }\r\n\r\n GetPhoneActivityDashboard(start: Date, end: Date, clientId: number): Observable {\r\n let datePipe = new DatePipe('en-US');\r\n let startStr = datePipe.transform(start, 'MM-dd-yyyy');\r\n let endStr = datePipe.transform(end, 'MM-dd-yyyy');\r\n return this.http.get(this.baseUrl + `api/phonenumberactivity/phoneActivityDashboard?apikey=${this.apiKey}&start=${startStr}&end=${endStr}&clientId=${clientId}`);\r\n }\r\n\r\n FlagCall(flaggedCall: FlaggedCall): Observable {\r\n return this.http.post(this.baseUrl + `api/phonenumberactivity/flagCall?apikey=${this.apiKey}`, flaggedCall)\r\n }\r\n\r\n UnflagCall(flaggedCallId: number): Observable {\r\n return this.http.delete(this.baseUrl + `api/phonenumberactivity/unflagCall?apikey=${this.apiKey}&flaggedCallId=${flaggedCallId}`);\r\n }\r\n\r\n GetCallLog(phoneNumber: string, clientId: number, start: Date): Observable {\r\n let datePipe = new DatePipe('en-US');\r\n let startStr = datePipe.transform(start, 'MM-dd-yyyy');\r\n return this.http.get(this.baseUrl + `api/phonenumberactivity/calllog?apikey=${this.apiKey}&phoneNumber=${phoneNumber}&clientId=${clientId}&start=${startStr}`);\r\n }\r\n\r\n GetMissedCalls(start: Date, clientId: number): Observable {\r\n let startStr = moment(start).format(\"MM-DD-YYYY\")\r\n return this.http.get(this.baseUrl + `api/phonenumberactivity/missedCalls?apikey=${this.apiKey}&start=${startStr}&clientId=${clientId}`)\r\n }\r\n\r\n CloseConversation(phoneNumberActivityId: number, clientUserId: number): Observable {\r\n return this.http.get(this.baseUrl + `api/phonenumberactivity/closeConversation?apikey=${this.apiKey}&phoneNumberActivityId=${phoneNumberActivityId}&clientUserId=${clientUserId}`)\r\n }\r\n\r\n ReopenConversation(phoneNumberActivityId: number, clientUserId: number): Observable {\r\n return this.http.get(this.baseUrl + `api/phonenumberactivity/reopenConversation?apikey=${this.apiKey}&phoneNumberActivityId=${phoneNumberActivityId}&clientUserId=${clientUserId}`)\r\n }\r\n\r\n MarkFirstPhoneNumberActivityAsDeleted(clientId: number, phoneNumber: string, deleted: number): Observable {\r\n return this.http.get(this.baseUrl + `api/phonenumberactivity/markDeletedForCarbon?apikey=${this.apiKey}&clientId=${clientId}&phoneNumber=${phoneNumber}&deleted=${deleted}`);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/call-recording.service.ts","import { Injectable, Inject, ComponentFactoryResolver } from '@angular/core';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { DatePipe } from '@angular/common';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Channel } from \"twilio-chat/lib/channel\";\r\nimport * as Twilio from \"twilio-chat\";\r\n\r\n@Injectable()\r\nexport class ChatMessageService {\r\n public timeoutLength: number = 10 * 60 * 1000;\r\n\r\n currentChannel: Channel;\r\n typingStatus: string;\r\n channelRemoved: boolean = false;\r\n chatClient: Twilio.Client;\r\n channels: any[] = [];\r\n interval: any;\r\n\r\n timeouts:any = {};\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') private baseUrl: string, @Inject('API_KEY') private apiKey: string) {\r\n\r\n }\r\n\r\n SetCloseInterval = (channel) => {\r\n console.group(\"ChatMessageService.SetCloseInterval\");\r\n console.log(channel);\r\n if (channel) {\r\n console.log(\"closing channel\");\r\n let chatId = parseInt(channel.uniqueName.split(\"_\")[1]);\r\n console.log(chatId);\r\n //TODO: \"send\" message alerting users that they were inactive too long\r\n\r\n this.RemoveChannel(chatId)\r\n .subscribe(response => {\r\n this.channelRemoved = true;\r\n console.log(response);\r\n }, error => {\r\n if (error.status === 404) {\r\n console.log(\"Channel not found, it may have been deleted already\");\r\n }\r\n else {\r\n console.error(error);\r\n }\r\n });\r\n }\r\n console.groupEnd();\r\n }\r\n\r\n WarnCloseTimeout(chatChannel: Channel) {\r\n if (chatChannel) {\r\n const chatId = parseInt(chatChannel.uniqueName.split(\"_\")[1]);\r\n let objToSend = {\r\n chatId: chatId,\r\n status: \"This chat has been inactive for a while and will close soon\"\r\n }\r\n\r\n chatChannel.sendMessage(JSON.stringify(objToSend));\r\n }\r\n }\r\n\r\n SendMessage(chatId: number, direction: number, message: string): Observable {\r\n let messageObj = {\r\n ChatId: chatId,\r\n Direction: direction,\r\n Message: message\r\n }\r\n return this.http.post(this.baseUrl + `api/chat/send?apikey=${this.apiKey}`, messageObj);\r\n }\r\n\r\n GetChannelByName(name: string): Observable {\r\n return this.http.get(this.baseUrl + `api/twiliochat/room?apikey=${this.apiKey}&uniqueName=${name}`);\r\n }\r\n\r\n RemoveChannel(chatId: number): Observable {\r\n return this.http.delete(this.baseUrl + `api/twiliochat/room?apikey=${this.apiKey}&chatId=${chatId}`)\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/chat-message.service.ts","import { Injectable, Inject, ComponentFactoryResolver } from '@angular/core';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { DatePipe } from '@angular/common';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { DialogHostDirective } from '../dialog-host.directive';\r\nimport { ChatComponent } from '../chat/chat.component';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { Message } from '../models/message';\r\nimport { ContactService } from './contact.service';\r\nimport { ActivityDialogComponent } from '../chat/activity-dialog/activity-dialog.component';\r\n\r\n@Injectable()\r\nexport class ChatService {\r\n //unreadChatCount: number = 0;\r\n //totalUnreadCount: number = 0;\r\n\r\n dialogHost: DialogHostDirective = null;\r\n openDialogs: any = {};\r\n\r\n onlineStatus: string = \"Offline\";\r\n checked: boolean = false;\r\n $conversation: Subject = new Subject();\r\n\r\n constructor(private contactService: ContactService, private componentFactoryResolver: ComponentFactoryResolver, private http: HttpClient, @Inject('BASE_URL') private baseUrl: string, @Inject('API_KEY') private apiKey: string) {\r\n }\r\n\r\n GetTwilioToken(clientUserGuid: string): Observable {\r\n //return this.http.get(`http://78cc08d4.ngrok.io/api/twiliochat/token?apikey=${this.apiKey}&clientUserGuid=${clientUserGuid}`);\r\n return this.http.get(this.baseUrl + `api/twiliochat/token?apikey=${this.apiKey}&clientUserGuid=${clientUserGuid}`);\r\n }\r\n\r\n GetChatDashboard(start: Date, end: Date, clientId: number): Observable {\r\n let datePipe = new DatePipe('en-US');\r\n let startStr = datePipe.transform(start, 'MM-dd-yyyy');\r\n let endStr = datePipe.transform(end, 'MM-dd-yyyy');\r\n return this.http.get(this.baseUrl + `api/chat/conversations?apikey=${this.apiKey}&start=${startStr}&end=${endStr}&clientid=${clientId}`);\r\n }\r\n\r\n GetConversation(chatId: number): Observable {\r\n return this.http.get(this.baseUrl + `api/chat/conversation?apikey=${this.apiKey}&chatId=${chatId}`);\r\n }\r\n\r\n UpdateMessageToRead(chatId: number): Observable {\r\n return this.http.get(this.baseUrl + `api/chat/update?apikey=${this.apiKey}&chatId=${chatId}`);\r\n }\r\n\r\n UpdateChatToRead(chatId: number): Observable {\r\n //console.log(\"updating to Read\");\r\n return this.http.get(this.baseUrl + `api/chat/read?apikey=${this.apiKey}&chatId=${chatId}`);\r\n }\r\n\r\n OpenDialog(lineItem, conversation, channel) {\r\n //if (channel) {\r\n console.log(\"Clicked table item: \", channel);\r\n //}\r\n\r\n let componentFactory = this.componentFactoryResolver.resolveComponentFactory(ChatComponent);\r\n let viewContainerRef = this.dialogHost.viewContainerRef;\r\n\r\n let componentRef = viewContainerRef.createComponent(componentFactory);\r\n //console.log(componentRef);\r\n let dialogRef = (componentRef.instance);\r\n\r\n dialogRef.contactGuid = lineItem.contactGuid;\r\n dialogRef.conversationWith = lineItem.conversationWith;\r\n dialogRef.conversation = conversation;\r\n if (channel) {\r\n dialogRef.channel = channel;\r\n }\r\n else {\r\n dialogRef.channelRemoved = true;\r\n console.log(\"removed: \", dialogRef.channelRemoved);\r\n }\r\n dialogRef.onClose.subscribe(() => {\r\n componentRef.destroy();\r\n this.openDialogs[conversation[0].chatId] = null;\r\n })\r\n //all objects in array will have same chatId - grab first and add it to object\r\n this.openDialogs[conversation[0].chatId] = dialogRef;\r\n }\r\n\r\n async AddOrOpenDialog(message, channel, clientId) {\r\n console.log(\"message: \", message);\r\n //console.log(\"Add/Open Dialog: \", channel.friendlyName);\r\n //console.log(\"Dialog has been 'opened'. User sent message:\", message);\r\n let messageBody = JSON.parse(message.state.body);\r\n //console.log(\"PARSED add/open MESSAGEBODY: \", messageBody);\r\n //console.log(\"OPENDIALOGS: \", this.openDialogs);\r\n if (this.openDialogs[messageBody.chatId] === null || this.openDialogs[messageBody.chatId] === undefined) {\r\n //console.log(\"opening new conversation...\");\r\n this.openDialogs[messageBody.chatId] = await this.openConversation(message, channel, clientId);\r\n //console.log(\"openDialogs: \", this.openDialogs);\r\n }\r\n else {\r\n if (messageBody.message != \"\") {\r\n //console.log(\"adding to conversation...\");\r\n this.addToConversation(message);\r\n }\r\n }\r\n\r\n //this.playNotificationSound();\r\n this.$conversation.next(messageBody);\r\n }\r\n\r\n addToConversation(message) {\r\n //console.log(\"adding to conversation\");\r\n let chatId = (JSON.parse(message.state.body)).chatId;\r\n //console.log(\"PARSED CHATID: \", chatId);\r\n //this.playNotificationSound();\r\n (this.openDialogs[chatId]).addToConversation(message);\r\n }\r\n\r\n async openConversation(message, channel, clientId) {\r\n console.log(\"open Conversation channel: \", channel);\r\n let messageBody = JSON.parse(message.state.body);\r\n //console.log(\"PARSED open MESSAGEBODY: \", messageBody);\r\n console.log(\"checked: \", this.checked);\r\n if (this.checked == false) {\r\n return;\r\n }\r\n this.playNotificationSound();\r\n if (this.dialogHost !== null) {\r\n let componentFactory = this.componentFactoryResolver.resolveComponentFactory(ChatComponent);\r\n let viewContainerRef = this.dialogHost.viewContainerRef;\r\n\r\n let componentRef = viewContainerRef.createComponent(componentFactory)\r\n let dialogRef = (componentRef.instance);\r\n\r\n let contactGuid = messageBody.contactGuid;\r\n dialogRef.contactGuid = contactGuid;\r\n console.log(\"CONTACTGUID\", contactGuid);\r\n await this.contactService.GetContactByContactGuid(contactGuid, clientId).subscribe(resp => {\r\n //console.log(\"find firstName:\", resp);\r\n dialogRef.conversationWith = resp.contact.firstName + \" \" + resp.contact.lastName;\r\n })\r\n\r\n await this.GetConversation(messageBody.chatId).subscribe(resp => {\r\n dialogRef.conversation = resp;\r\n })\r\n dialogRef.channel = channel;\r\n dialogRef.addToConversation(message);\r\n //name is being sent as whoever sends the message to open it\r\n //dialogRef.contactGuid = message.state.author;\r\n //dialogRef.conversationWith = messageBody.name;\r\n //\r\n\r\n dialogRef.onClose.subscribe(() => {\r\n componentRef.destroy();\r\n this.openDialogs[messageBody.chatId] = null;\r\n })\r\n return dialogRef;\r\n }\r\n else {\r\n console.log(\"DialogHost is null :[\");\r\n }\r\n return null;\r\n }\r\n\r\n playNotificationSound() {\r\n let audio = new Audio();\r\n audio.src = \"https://advantage.overthetop.com/assets/js/ion.sound-3.0.7/sounds/door_bell.mp3\"\r\n audio.load();\r\n audio.play();\r\n }\r\n\r\n async openChatFromContactActivity(message, channel, clientId) {\r\n //console.log(\"open Conversation channel: \", channel);\r\n let messageBody = JSON.parse(message.state.body);\r\n //console.log(\"PARSED open MESSAGEBODY: \", messageBody);\r\n //console.log(\"checked: \", this.checked);\r\n \r\n if (this.dialogHost !== null)\r\n {\r\n let componentFactory = this.componentFactoryResolver.resolveComponentFactory(ActivityDialogComponent);\r\n let viewContainerRef = this.dialogHost.viewContainerRef;\r\n\r\n let componentRef = viewContainerRef.createComponent(componentFactory)\r\n let dialogRef = (componentRef.instance);\r\n\r\n let contactGuid = messageBody.contactGuid;\r\n if (contactGuid === undefined) {\r\n contactGuid = channel.state.uniqueName.split(\"|\")[0];\r\n }\r\n\r\n dialogRef.contactGuid = contactGuid;\r\n //console.log(\"CONTACTGUID\", contactGuid);\r\n await this.contactService.GetContactByContactGuid(contactGuid, clientId).subscribe(resp => {\r\n //console.log(\"find firstName:\", resp);\r\n dialogRef.conversationWith = resp.contact.firstName + \" \" + resp.contact.lastName;\r\n })\r\n\r\n await this.GetConversation(messageBody.chatId).subscribe(resp => {\r\n dialogRef.conversation = resp;\r\n })\r\n dialogRef.channel = channel;\r\n dialogRef.addToConversation(message);\r\n\r\n dialogRef.onClose.subscribe(() => {\r\n componentRef.destroy();\r\n this.openDialogs[messageBody.chatId] = null;\r\n })\r\n return dialogRef;\r\n }\r\n else {\r\n console.log(\"DialogHost is null :[\");\r\n }\r\n return null;\r\n }\r\n\r\n AddIdleMessage(chatId: number, statusMessage: string) {\r\n if (this.openDialogs[chatId] !== null && this.openDialogs[chatId] !== undefined) {\r\n (this.openDialogs[chatId]).addIdleStatus(statusMessage);\r\n }\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/chat.service.ts","import { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { tap, publishReplay, refCount } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class ChecklistService {\r\n public disableReviews: boolean = false;\r\n public disableSms: boolean = false;\r\n public disableContact: boolean = false;\r\n private _cached = {\r\n googlePlaceId: null,\r\n validSmsApp: null,\r\n vCardService: null,\r\n validSmsNumber: null\r\n }\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') private baseUrl: string, @Inject('API_KEY') private apiKey: string) {\r\n\r\n }\r\n\r\n CheckValidGooglePlaceId(clientId: number): Observable {\r\n if (!this._cached.googlePlaceId) {\r\n this._cached.googlePlaceId = this.http.get(this.baseUrl + `api/client/checkGooglePlaceId?apiKey=${this.apiKey}&clientId=${clientId}`)\r\n .pipe(\r\n tap((isValid: boolean) => {\r\n this.disableReviews = !isValid;\r\n }),\r\n publishReplay(1),\r\n refCount()\r\n )\r\n }\r\n\r\n return this._cached.googlePlaceId;\r\n }\r\n\r\n CheckValidSmsApplication(clientId: number): Observable {\r\n if (!this._cached.validSmsApp) {\r\n this._cached.validSmsApp = this.http.get(this.baseUrl + `api/client/checkSmsApplication?apiKey=${this.apiKey}&clientId=${clientId}`)\r\n .pipe(\r\n tap((isValid: boolean) => {\r\n this.disableSms = !isValid;\r\n }),\r\n publishReplay(1),\r\n refCount()\r\n );\r\n }\r\n\r\n return this._cached.validSmsApp;\r\n }\r\n\r\n CheckVCardService(clientId: number): Observable {\r\n if (!this._cached.vCardService) {\r\n this._cached.vCardService = this.http.get(this.baseUrl + `api/client/checkVCardService?apiKey=${this.apiKey}&clientId=${clientId}`)\r\n .pipe(\r\n tap((isValid: boolean) => {\r\n this.disableContact = !isValid;\r\n }),\r\n publishReplay(1),\r\n refCount()\r\n );\r\n }\r\n\r\n return this._cached.vCardService;\r\n }\r\n\r\n CheckValidSmsNumber(clientId: number): Observable {\r\n if (!this._cached.validSmsNumber) {\r\n this._cached.validSmsNumber = this.http.get(this.baseUrl + `api/sms/validCarbonNumber?apiKey=${this.apiKey}&clientId=${clientId}`)\r\n .pipe(\r\n tap((isValid: boolean) => {\r\n this.disableSms = !isValid;\r\n }),\r\n publishReplay(1),\r\n refCount()\r\n )\r\n }\r\n\r\n return this._cached.validSmsNumber;\r\n }\r\n\r\n clearCache(): void {\r\n this._cached = {\r\n googlePlaceId: null,\r\n validSmsApp: null,\r\n vCardService: null,\r\n validSmsNumber: null\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/checklist.service.ts","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { ReplaySubject } from 'rxjs/ReplaySubject'\r\nimport 'rxjs/add/operator/map';\r\nimport { map, publishReplay, refCount } from 'rxjs/operators';\r\nimport { Client } from '../models/client';\r\nimport { ClientService } from './client.service';\r\nimport { Router } from '@angular/router';\r\nimport { Location } from '@angular/common';\r\nimport { UserService } from './user.service';\r\nimport { SmsService } from './sms.service';\r\n\r\n@Injectable()\r\nexport class ClientPickerService {\r\n private _clients: Observable = null;\r\n\r\n public clientList: Client[] = [];\r\n private clientId: number = 0;\r\n public $clientId = new ReplaySubject(1);\r\n public $clientRequestFinished = new ReplaySubject(1);\r\n public clientPhoneNumber: string = \"\";\r\n public get selectedClientId(): number {\r\n return this.clientId;\r\n }\r\n public set selectedClientId(newId: number) {\r\n this.clientId = newId;\r\n try {\r\n localStorage.setItem('selected_client_id', String(newId));\r\n localStorage.setItem('selected_client_guid', this.selectedClient.clientGuid);\r\n }\r\n catch (ex) { }\r\n if (newId === 0) {\r\n return;\r\n }\r\n this.$clientId.next(newId);\r\n \r\n if (!this.location.path().includes('/login') && !this.location.path().includes('/star-feedback') && newId > 0) {\r\n this.clientService.GetClientConfigs(\"Carbon.WentToSettings\", newId).subscribe(response => {\r\n //console.log(\"WentToSettings: \", response);\r\n if ((response).toLowerCase() != \"true\") {\r\n if (this.userService.roles != null && this.userService.roles.includes(\"Admin\")) {\r\n this.router.navigate(['settings'])\r\n }\r\n }\r\n })\r\n }\r\n\r\n this.smsService.GetSMSNumber(newId).subscribe(phoneNumber => {\r\n this.clientPhoneNumber = phoneNumber;\r\n })\r\n }\r\n public get selectedClient(): Client {\r\n if (this.clientList === undefined)\r\n return null;\r\n var filteredClients = this.clientList.filter(client => client.clientId === Number(this.selectedClientId));\r\n if (filteredClients.length > 0)\r\n return filteredClients[0];\r\n else\r\n return null;\r\n }\r\n\r\n constructor(private http: HttpClient,\r\n @Inject('BASE_URL') private baseUrl: string,\r\n @Inject('API_KEY') private apiKey: string,\r\n private clientService: ClientService,\r\n private router: Router,\r\n private location: Location,\r\n private userService: UserService,\r\n private smsService: SmsService)\r\n {\r\n let savedClientId: number = parseInt(localStorage.getItem('selected_client_id'));\r\n if (isNaN(savedClientId)) {\r\n savedClientId = 0;\r\n }\r\n\r\n this.selectedClientId = savedClientId;\r\n }\r\n\r\n getClients(clientUserId): Observable {\r\n //return this.http.get(`${this.baseUrl}api/clientusers/locations?apikey=${this.apiKey}&clientuserid=${clientUserId}`)\r\n return this.getClientsForLogin(clientUserId)\r\n .pipe(\r\n map((clientsResponse: Client[]) => {\r\n this.clientList = clientsResponse;\r\n if (this.clientList.length === 1 && (this.selectedClientId === 0 || !this.clientList.some(client => client.clientId === this.selectedClientId))) {\r\n this.selectedClientId = this.clientList[0].clientId;\r\n }\r\n this.$clientRequestFinished.next(true);\r\n return clientsResponse;\r\n })\r\n )\r\n }\r\n\r\n getClientsForLogin(clientUserId): Observable {\r\n //return this.http.get(`${this.baseUrl}api/clientusers/locations?apikey=${this.apiKey}&clientuserid=${clientUserId}`);\r\n if (!this._clients) {\r\n this._clients = this.http.get(`${this.baseUrl}api/clientusers/locationsslim?apikey=${this.apiKey}&clientuserid=${clientUserId}`)\r\n .pipe(\r\n publishReplay(1),\r\n refCount()\r\n )\r\n }\r\n\r\n return this._clients;\r\n }\r\n\r\n clearCache(): void {\r\n this._clients = null;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/client-picker.service.ts","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { DatePipe } from '@angular/common';\r\nimport { map, publishReplay, refCount } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class ClientService {\r\n private _cached: any = {\r\n ownedClients: null,\r\n client: null,\r\n owner: null,\r\n subscribedServices: null,\r\n carbonStartDate: null,\r\n carbonLeadStartDate: null\r\n };\r\n public hasBlink: string = \"false\";\r\n\r\n private _configCache: any = {};\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') private baseUrl: string, @Inject('API_KEY') private apiKey: string) {\r\n\r\n }\r\n\r\n GetOwnedClients(clientUserId: number): Observable {\r\n //let data = {\r\n // clientUserId: clientUserId\r\n //};\r\n //console.log(data);\r\n if (!this._cached.ownedClients) {\r\n this._cached.ownedClients = this.http.get(this.baseUrl + `api/ClientUsers/owned?apikey=${this.apiKey}&clientUserId=${clientUserId}`)\r\n .pipe(\r\n publishReplay(1),\r\n refCount()\r\n );\r\n }\r\n\r\n return this._cached.ownedClients;\r\n }\r\n\r\n GetClientById(clientId: number): Observable {\r\n if (!this._cached.client) {\r\n this._cached.client = this.http.get(this.baseUrl + `api/Client/clientId?apikey=${this.apiKey}&clientId=${clientId}`)\r\n .pipe(\r\n publishReplay(1),\r\n refCount()\r\n )\r\n }\r\n\r\n return this._cached.client\r\n }\r\n\r\n GetOwner(clientId: number): Observable {\r\n if (!this._cached.owner) {\r\n this._cached.owner = this.http.get(this.baseUrl + `api/Client/owners?apikey=${this.apiKey}&clientId=${clientId}`)\r\n .pipe(\r\n publishReplay(1),\r\n refCount()\r\n )\r\n }\r\n\r\n return this._cached.owner;\r\n }\r\n \r\n GetLogoUrl(clientId: number): Observable {\r\n return this.http.get(this.baseUrl + `api/client/logourl?apiKey=${this.apiKey}&clientId=${clientId}`);\r\n }\r\n\r\n GetClientConfigs(name: string, clientId: number, isCaseSensitive: boolean = false): Observable {\r\n const cacheName = `config_${name}_${clientId}`;\r\n\r\n //return this.http.get(this.baseUrl + `api/configs/get?apiKey=${this.apiKey}&name=${name}&clientId=${clientId}`);\r\n if (!this._configCache[cacheName]) {\r\n this._configCache[cacheName] = this.http.get(this.baseUrl + `api/configs/get?apiKey=${this.apiKey}&name=${name}&clientId=${clientId}`)\r\n .pipe(\r\n map(val => {\r\n if (isCaseSensitive)\r\n return val;\r\n else\r\n return (val).toLowerCase();\r\n }),\r\n publishReplay(1),\r\n refCount()\r\n )\r\n }\r\n\r\n return this._configCache[cacheName];\r\n }\r\n\r\n GetSubscribedServices(clientId: number): Observable {\r\n if (!this._cached.subscribedServices) {\r\n this._cached.subscribedServices = this.http.get(`${this.baseUrl}api/client/subscribedServices?apikey=${this.apiKey}&clientId=${clientId}`)\r\n .pipe(\r\n publishReplay(1),\r\n refCount()\r\n )\r\n }\r\n return this._cached.subscribedServices;\r\n }\r\n\r\n AddClientConfig(value: string, name: string, clientId: number): Observable {\r\n var data = { \r\n clientId: clientId,\r\n name: name,\r\n value: value\r\n }\r\n this.clearConfigCache();\r\n\r\n return this.http.post(this.baseUrl + `api/configs/add?apiKey=${this.apiKey}`, data);\r\n }\r\n\r\n UpdateClientConfig(body: any): Observable {\r\n this.clearConfigCache();\r\n return this.http.put(this.baseUrl + `api/configs/update?apiKey=${this.apiKey}`, body);\r\n }\r\n\r\n GetNumberOfRecentReviews(clientId: number): Observable {\r\n return this.http.get(this.baseUrl + `api/client/numberOfRecentReviews?apiKey=${this.apiKey}&clientId=${clientId}`);\r\n }\r\n\r\n GetGoogleReviewsLeaders(start: number, clientTypeId: number) : Observable {\r\n let datePipe = new DatePipe('en-US');\r\n let startStr = datePipe.transform(start, 'MM-dd-yyyy');\r\n return this.http.get(this.baseUrl + `api/client/googleReviewLeaders?apikey=${this.apiKey}&start=${startStr}&clientTypeId=${clientTypeId}`);\r\n }\r\n\r\n HasInitialPaperWork(nickName: string): Observable {\r\n return this.http.get(this.baseUrl + `api/client/paperwork?apiKey=${this.apiKey}&nickName=${nickName}`);\r\n }\r\n\r\n GetCarbonServiceStartDate(clientId: number, clientServiceId: number): Observable {\r\n if (!this._cached.carbonStartDate) {\r\n this._cached.carbonStartDate = this.http.get(this.baseUrl + `api/client/getServiceDate?apiKey=${this.apiKey}&clientId=${clientId}&clientServiceId=${clientServiceId}`)\r\n .pipe(\r\n publishReplay(1),\r\n refCount()\r\n )\r\n }\r\n return this._cached.carbonStartDate;\r\n }\r\n\r\n GetCarbonLeadServiceStartDate(clientId: number, clientServiceId: number): Observable {\r\n if (!this._cached.carbonLeadStartDate) {\r\n this._cached.carbonLeadStartDate = this.http.get(this.baseUrl + `api/client/getServiceDate?apiKey=${this.apiKey}&clientId=${clientId}&clientServiceId=${clientServiceId}`)\r\n .pipe(\r\n publishReplay(1),\r\n refCount()\r\n )\r\n }\r\n return this._cached.carbonLeadStartDate;\r\n }\r\n\r\n GetOffersByClientId(clientId: number): Observable {\r\n return this.http.get(this.baseUrl + `api/client/offers?apiKey=${this.apiKey}&clientId=${clientId}`);\r\n }\r\n\r\n EditOfferEmailSubject(couponCampaignGuid: string, subject: string): Observable {\r\n return this.http.get(this.baseUrl + `api/client/offerEditTitle?apiKey=${this.apiKey}&couponCampaignGuid=${couponCampaignGuid}&subject=${subject}`);\r\n }\r\n\r\n CreateOffer(offer: any): Observable {\r\n return this.http.post(this.baseUrl + `api/client/createOffer?apiKey=${this.apiKey}`, offer);\r\n }\r\n\r\n CreateTag(active: boolean, name: string, tagType: number, clientId: number, clientTypeId: number): Observable {\r\n return this.http.get(this.baseUrl + `api/client/createTag?apiKey=${this.apiKey}&active=${active}&name=${name}&tagType=${tagType}&clientId=${clientId}&clientTypeId=${clientTypeId}`);\r\n }\r\n\r\n CreateClickTrackWithKeyword(clientId: number, keyword: string, targetUrl: string, clientTypeId: number, createdById: number): Observable {\r\n return this.http.get(this.baseUrl + `api/clicktrack/trackWithKeyword?apiKey=${this.apiKey}&clientId=${clientId}&keyword=${keyword}&targetUrl=${targetUrl}&clientTypeId=${clientTypeId}&createdById=${createdById}`);\r\n }\r\n\r\n GetDefaultShortCode(clientId: number): Observable {\r\n return this.GetClientConfigs(\"DefaultShortCode\", clientId);\r\n }\r\n\r\n clearCache(): void {\r\n this._cached = {\r\n ownedClients: null,\r\n client: null,\r\n owner: null,\r\n subscribedServices: null,\r\n carbonStartDate: null\r\n };\r\n this.clearConfigCache();\r\n }\r\n\r\n clearConfigCache(): void {\r\n this._configCache = {};\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/client.service.ts","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { publishReplay, refCount, tap } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class ConfigService {\r\n private _cached: any = {}\r\n public isCarbonLite: boolean = false;\r\n public carbonAppConfig: any = null;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') private baseUrl: string, @Inject('API_KEY') private apiKey: string) {\r\n\r\n }\r\n\r\n loadCarbonAppConfig(): Observable {\r\n return this.http.get('assets/app-config.json')\r\n .pipe(\r\n tap(configVal => {\r\n //console.log(\"Carbon App Config: \", v);\r\n this.carbonAppConfig = configVal;\r\n })\r\n )\r\n }\r\n\r\n getConfig(name: string, clientId: number): Observable {\r\n const cacheName = `config_${name}_${clientId}`;\r\n if (!this._cached[cacheName]) {\r\n this._cached[cacheName] = this.http.get(this.baseUrl + `api/configs/get?apiKey=${this.apiKey}&name=${name}&clientId=${clientId}`)\r\n .pipe(\r\n publishReplay(1),\r\n refCount()\r\n )\r\n }\r\n\r\n return this._cached[cacheName];\r\n }\r\n\r\n getAppConfig(name: string): Observable {\r\n const cacheName = \"appConfig_\" + name;\r\n if (!this._cached[cacheName]) {\r\n this._cached[cacheName] = this.http.get(this.baseUrl + `api/configs/appconfig?apiKey=${this.apiKey}&name=${name}`)\r\n .pipe(\r\n publishReplay(1),\r\n refCount()\r\n );\r\n }\r\n\r\n return this._cached[cacheName];\r\n }\r\n\r\n getClientTypeConfig(name: string, clientTypeId: number): Observable {\r\n const cacheName = `clientTypeConfig_${name}_${clientTypeId}`;\r\n if (!this._cached[cacheName]) {\r\n this._cached[cacheName] = this.http.get(this.baseUrl + `api/configs/clienttypeconfig?apiKey=${this.apiKey}&name=${name}&clientTypeId=${clientTypeId}`)\r\n .pipe(\r\n publishReplay(1),\r\n refCount()\r\n )\r\n }\r\n\r\n return this._cached[cacheName];\r\n }\r\n\r\n clearCache(): void {\r\n this._cached = {};\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/config.service.ts","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { ContactActivity } from '../models/contact-activity';\r\nimport { Contact, BulkContactResults } from '../models/contact';\r\nimport { DatePipe } from '@angular/common'\r\n\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nimport 'rxjs/add/operator/mergeMap';\r\nimport 'rxjs/add/operator/map';\r\nimport { map } from 'rxjs/operators';\r\nimport { forkJoin } from 'rxjs/observable/forkJoin';\r\nimport { NegativeReviewComment } from '../models/negative-review-comment';\r\n\r\n@Injectable()\r\nexport class ContactService {\r\n public currentContact: Contact = null;\r\n public sent: any[];\r\n public contactsToAdd: any[] = [];\r\n public repeatContacts: any[] = [];\r\n public modalRef: any = \"\";\r\n public activityArray: any[] = [];\r\n\r\n constructor(private http: HttpClient,\r\n @Inject('BASE_URL') private baseUrl: string,\r\n @Inject('API_KEY') private apiKey: string\r\n ) {\r\n\r\n }\r\n\r\n GetContactByContactId(contactId: number): Observable {\r\n return this.http.get(this.baseUrl + `api/contacts/byContactId?apikey=${this.apiKey}&contactId=${contactId}`);\r\n }\r\n\r\n GetContactsByPhone(phoneNumber: string, clientTypeId: number, clientId: number): Observable {\r\n return this.http.get(this.baseUrl + `api/contacts/byPhoneNumber?apikey=${this.apiKey}&clientTypeId=${clientTypeId}&phoneNumber=${phoneNumber}&clientId=${clientId}`)\r\n .map((response: any) => {\r\n return response.map(con => {\r\n let contact = (Object).assign({}, con.contact);\r\n contact.franchiseName = con.franchiseName;\r\n contact.handled = con.handled;\r\n contact.newLeadId = con.newLeadId;\r\n contact.leadStatus = con.leadStatus;\r\n contact.dateModified = con.dateModified;\r\n return contact;\r\n })\r\n })\r\n }\r\n\r\n GetContactsByEmail(email: string, clientTypeId: number, clientId: number): Observable {\r\n //let data = {email: email};\r\n\r\n let encodedEmail = encodeURIComponent(email);\r\n console.log(encodedEmail);\r\n\r\n return this.http.get(this.baseUrl + `api/contacts/byEmail?apikey=${this.apiKey}&clientTypeId=${clientTypeId}&email=${encodedEmail}&clientId=${clientId}`)\r\n .map((response: any) => {\r\n return response.map(con => {\r\n let contact = (Object).assign({}, con.contact);\r\n contact.franchiseName = con.franchiseName;\r\n contact.handled = con.handled;\r\n contact.newLeadId = con.newLeadId;\r\n contact.leadStatus = con.leadStatus;\r\n contact.dateModified = con.dateModified;\r\n return contact;\r\n })\r\n })\r\n }\r\n\r\n GetContactsByEmailOrPhone(clientTypeId: number, searchParam: string): Observable {\r\n\r\n let encodedSearchParam = encodeURIComponent(searchParam);\r\n console.log(encodedSearchParam);\r\n\r\n return this.http.get(this.baseUrl + `api/contacts/byEmailorPhone?apiKey=${this.apiKey}&clientTypeId=${clientTypeId}¶m=${encodedSearchParam}`);\r\n }\r\n\r\n GetContactsByNameEmailOrPhone(clientTypeId: number, searchValue: string, clientId: number): Observable {\r\n let encodedSearchValue = encodeURIComponent(searchValue);\r\n return this.http.get(this.baseUrl + `api/contacts/byNameEmailorPhone?apiKey=${this.apiKey}&clientTypeId=${clientTypeId}&searchValue=${encodedSearchValue}&clientId=${clientId}`)\r\n .map((response: any) => {\r\n return response.map(con => {\r\n let contact = (Object).assign({}, con.contact);\r\n contact.franchiseName = con.franchiseName;\r\n contact.handled = con.handled;\r\n contact.newLeadId = con.newLeadId;\r\n contact.leadStatus = con.leadStatus;\r\n contact.dateModified = con.dateModified;\r\n return contact;\r\n })\r\n })\r\n }\r\n\r\n GetContactsByNameEmailOrPhoneAny(firstName: string, lastName: string, email: string, mobilePhone: string, clientId: number, clientTypeId: number): Observable {\r\n let encodedSearchValue = encodeURIComponent(email);\r\n return this.http.get(this.baseUrl + `api/contacts/byEverything?apiKey=${this.apiKey}&firstName=${firstName}&lastname=${lastName}&email=${encodedSearchValue}&mobilePhone=${mobilePhone}&clientId=${clientId}&clientTypeId=${clientTypeId}`)\r\n .map((response: any) => {\r\n return response.map(con => {\r\n let contact = (Object).assign({}, con.contact);\r\n contact.franchiseName = con.franchiseName;\r\n contact.handled = con.handled;\r\n contact.newLeadId = con.newLeadId;\r\n contact.leadStatus = con.leadStatus;\r\n contact.dateModified = con.dateModified;\r\n return contact;\r\n })\r\n })\r\n }\r\n\r\n GetContactByContactGuid(contactGuid: string, clientId: number): Observable {\r\n return this.http.get(this.baseUrl + `api/contacts/byContactGuid?apikey=${this.apiKey}&contactGuid=${contactGuid}&clientId=${clientId}`);\r\n }\r\n\r\n CreateContact(contact: Contact): Observable {\r\n console.log(\"service: \", contact);\r\n return this.http.post(this.baseUrl + `api/contacts/create?apikey=${this.apiKey}`, contact);\r\n }\r\n\r\n UpdateContact(contact: Contact, updatedByClientUserId: number): Observable {\r\n return this.http.put(this.baseUrl + `api/contacts?apikey=${this.apiKey}&updatedByClientUserId=${updatedByClientUserId}`, contact);\r\n }\r\n\r\n CreateBulkContacts(contacts: Contact[]): Observable {\r\n return this.http.post(this.baseUrl + `api/contacts/bulkCreate?apikey=${this.apiKey}`, contacts);\r\n }\r\n\r\n CreateContactActivity(contactActivity: any): Observable {\r\n return this.http.post(this.baseUrl + `api/contacts/contactActivity?apikey=${this.apiKey}`, contactActivity);\r\n }\r\n\r\n GetContactActivity(contactId: number, clientId: number): Observable {\r\n return this.http.get(this.baseUrl + `api/contacts/getsinglecontactActivity?apikey=${this.apiKey}&contactId=${contactId}&clientId=${clientId}`);\r\n }\r\n\r\n GetAllContactActivity(clientId: number, activityType: string, date: Date): Observable {\r\n let datePipe = new DatePipe('en-US');\r\n let dateStr = datePipe.transform(date, 'MM-dd-yyyy');\r\n return this.http.get(this.baseUrl + `api/contacts/carbonActivity?apikey=${this.apiKey}&clientId=${clientId}&activityType=${activityType}&date=${dateStr}`);\r\n }\r\n\r\n GetTotalGoogleCount(clientId: number, activityType: string): Observable {\r\n return this.http.get(this.baseUrl + `api/contacts/googleCount?apikey=${this.apiKey}&clientId=${clientId}&activityType=${activityType}`);\r\n }\r\n\r\n GetValidRequestContacts(contactIds: number[], clientId: number): Observable {\r\n\r\n let requests = contactIds.map(id => this.GetContactActivity(id, clientId));\r\n let lastweek: any = new Date().setDate(new Date().getDate() - 7);\r\n return forkJoin(requests)\r\n .pipe(\r\n map(response => {\r\n //console.log(\"forkJoin response: \", response);\r\n let validContactIds: number[] = [];\r\n for (var i = 0; i < response.length; i++) {\r\n if (response[i].filter(ac => ac.activityType == \"Carbon.Rating\" && new Date(ac.dateCreated) > lastweek).length === 0) {\r\n validContactIds.push(contactIds[i]);\r\n }\r\n }\r\n return validContactIds;\r\n })\r\n )\r\n }\r\n\r\n GetInfoBySmsActivityId(smsActivityId: number): Observable {\r\n return this.http.get(this.baseUrl + `api/contacts/bySmsActivityId?apikey=${this.apiKey}&smsActivityId=${smsActivityId}`)\r\n }\r\n\r\n GetBadReviews(clientId: number): Observable {\r\n return this.http.get(this.baseUrl + `api/contacts/badReviews?apikey=${this.apiKey}&clientId=${clientId}`);\r\n }\r\n\r\n SubmitReviewComment(negativeReviewComment: NegativeReviewComment): Observable {\r\n return this.http.post(this.baseUrl + `api/contacts/badReviews?apikey=${this.apiKey}`, negativeReviewComment);\r\n }\r\n\r\n OptIn(contactId: number, method: string, clientUserId: number, clientId: number): Observable {\r\n return this.http.get(this.baseUrl + `api/contacts/optin?apikey=${this.apiKey}&contactId=${contactId}&method=${method}&clientUserId=${clientUserId}&clientId=${clientId}`)\r\n }\r\n\r\n OptOut(contactId: number, method: string, clientUserId: number, clientId: number): Observable {\r\n return this.http.get(this.baseUrl + `api/contacts/optout?apikey=${this.apiKey}&contactId=${contactId}&method=${method}&clientUserId=${clientUserId}&clientId=${clientId}`)\r\n }\r\n\r\n getSentToGoogleNumber(clientId: number, startDateISO: string, endDateISO: string): Observable {\r\n return this.http.get(this.baseUrl + `api/contacts/sentToGoogle?apikey=${this.apiKey}&clientId=${clientId}&startDate=${startDateISO}&endDate=${endDateISO}`);\r\n }\r\n\r\n getSentToFacebookNumber(clientId: number, startDateISO: string, endDateISO: string): Observable {\r\n return this.http.get(this.baseUrl + `api/contacts/sentToFacebook?apikey=${this.apiKey}&clientId=${clientId}&startDate=${startDateISO}&endDate=${endDateISO}`);\r\n }\r\n\r\n getFeedbackDashboardData(clientId: number, startDateISO: string, endDateISO: string): Observable {\r\n return this.http.get(this.baseUrl + `api/contacts/feedbackDashboard?apikey=${this.apiKey}&clientId=${clientId}&startDate=${startDateISO}&endDate=${endDateISO}`);\r\n }\r\n\r\n getReferralSmsText(contactId: number, clientId: number, clientUserId: number): Observable {\r\n return this.http.get(this.baseUrl + `api/contacts/referralSmsText?apikey=${this.apiKey}&contactId=${contactId}&clientId=${clientId}&clientUserId=${clientUserId}`);\r\n }\r\n\r\n mergeContactByCreatingAndUpdatingContactActivity(existingContactId: number, duplicateContactId: number, clientId: number, clientUserId: number): Observable {\r\n return this.http.get(this.baseUrl + `api/contacts/mergeByUpdatingContactActivity?apikey=${this.apiKey}&existingContactId=${existingContactId}&duplicateContactId=${duplicateContactId}&clientId=${clientId}&clientUserId=${clientUserId}`);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/contact.service.ts","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { Email } from '../models/email';\r\n\r\n@Injectable()\r\nexport class EmailService {\r\n constructor(private http: HttpClient, @Inject('BASE_URL') private baseUrl: string, @Inject('API_KEY') private apiKey: string) {\r\n\r\n }\r\n\r\n SendEmail(email: Email): Observable {\r\n return this.http.post(this.baseUrl + `api/email/send?apikey=${this.apiKey}`, email);\r\n }\r\n\r\n SendEmailList(emailList: Email[]): Observable {\r\n return this.http.post(this.baseUrl + `api/email/sendList?apikey=${this.apiKey}`, emailList);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/email.service.ts","import { Injectable, ComponentFactoryResolver, Inject } from '@angular/core';\r\nimport { ContactService } from './contact.service';\r\nimport { HelpDialogComponent } from '../help-dialog/help-dialog.component';\r\nimport { DialogHostDirective } from '../dialog-host.directive';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { SpinnerOverlayService } from './spinner-overlay.service';\r\nimport { NotifyService } from './notify.service';\r\n\r\n@Injectable()\r\nexport class HelpDialogService {\r\n dialogHost: DialogHostDirective = null;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') private baseUrl: string, @Inject('API_KEY') private apiKey: string, private componentFactoryResolver: ComponentFactoryResolver, private contactService: ContactService, private spinnerService: SpinnerOverlayService, private notify: NotifyService) {}\r\n\r\n getHelpInfo(name: string): Observable {\r\n return this.http.get(this.baseUrl + `api/help/helpInfo?apikey=${this.apiKey}&name=${encodeURIComponent(name)}`);\r\n }\r\n\r\n openDialog(name: string) {\r\n if (this.dialogHost !== null) {\r\n this.spinnerService.open();\r\n this.getHelpInfo(name).subscribe(resp => {\r\n let componentFactory = this.componentFactoryResolver.resolveComponentFactory(HelpDialogComponent);\r\n let viewContainerRef = this.dialogHost.viewContainerRef;\r\n\r\n let componentRef = viewContainerRef.createComponent(componentFactory);\r\n let dialogRef = (componentRef.instance);\r\n\r\n this.spinnerService.close();\r\n //changed to show name instead of title\r\n dialogRef.titleText = resp.name;\r\n dialogRef.bodyHtml = resp.description;\r\n dialogRef.onClose.subscribe(() => {\r\n componentRef.destroy();\r\n })\r\n }, err => {\r\n this.notify.error(\"Error getting help information\");\r\n console.error(\"Error getting help information: \", err);\r\n this.spinnerService.close();\r\n })\r\n }\r\n else {\r\n console.error(\"Error: No dialog host set when trying to open a new help dialog\");\r\n }\r\n }\r\n\r\n getAllHelp(clientTypeId: number, applicationTypeId: number): Observable{\r\n return this.http.get(this.baseUrl + `api/help/allHelp?apikey=${this.apiKey}&clientTypeId=${clientTypeId}&applicationTypeId=${applicationTypeId}`);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/help-dialog.service.ts","import { Injectable, Inject, ComponentFactoryResolver } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { DatePipe } from '@angular/common'\r\nimport { DialogHostDirective } from '../dialog-host.directive';\r\nimport { HandleComponent } from '../leads/handle/handle.component';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { Lead } from '../models/lead';\r\nimport { ClientTypes } from '../models/client-types';\r\n\r\n@Injectable()\r\nexport class LeadsService {\r\n unreadLeadsCount: number = 0;\r\n dialogHost: DialogHostDirective = null;\r\n openDialogs: any = {};\r\n $conversation: Subject = new Subject();\r\n\r\n constructor(private componentFactoryResolver: ComponentFactoryResolver, private http: HttpClient, @Inject('BASE_URL') private baseUrl: string, @Inject('API_KEY') private apiKey: string) {\r\n\r\n }\r\n\r\n GetLeadsData(start: Date, clientId: number): Observable {\r\n let datePipe = new DatePipe('en-US');\r\n let startStr = datePipe.transform(start, 'MM-dd-yyyy');\r\n return this.http.get(this.baseUrl + `api/leads/get?apikey=${this.apiKey}&start=${startStr}&clientid=${clientId}`);\r\n }\r\n\r\n GetLeadsDashboard(start: Date, end: Date, clientId: number): Observable {\r\n let datePipe = new DatePipe('en-US');\r\n let startStr = datePipe.transform(start, 'MM-dd-yyyy');\r\n let endStr = datePipe.transform(end, 'MM-dd-yyyy');\r\n return this.http.get(this.baseUrl + `api/leads/getDashboard?apikey=${this.apiKey}&start=${startStr}&end=${endStr}&clientid=${clientId}`);\r\n }\r\n\r\n GetNumberOfLeads(start: Date, clientId: number): Observable {\r\n let datePipe = new DatePipe('en-US');\r\n let startStr = datePipe.transform(start, 'MM-dd-yyyy');\r\n return this.http.get(this.baseUrl + `api/leads/number?apikey=${this.apiKey}&start=${startStr}&clientid=${clientId}`);\r\n }\r\n\r\n GetLeadByEmailorPhone(clientTypeId: number, email: string, mobilePhone: string): Observable {\r\n return this.http.get(this.baseUrl + `api/leads/lead?apiKey=${this.apiKey}&clientTypeId=${clientTypeId}&email=${email}&mobilePhone=${mobilePhone}`); \r\n }\r\n\r\n GetLeadByPhone(clientId: number, mobilePhone: string): Observable {\r\n return this.http.get(this.baseUrl + `api/leads/byPhone?apiKey=${this.apiKey}&clientId=${clientId}&mobilePhone=${mobilePhone}`);\r\n }\r\n\r\n async OpenDialog(message: any) {\r\n console.log(\"THIS MESSAGE'S SOURCE: \", message);\r\n this.$conversation.next();\r\n //dont want the ICN lead, Chat lead, or Sms lead that's added to open the dialog\r\n if ((message.customerSince != null && message.customerSince != \"\" ) || message.leadSource == \"chat\" || (message.leadSource == \"SMS\" && message.contactStatus != \"Prospect\") || message.leadSource == \"phone\" || message.leadSource == \"\" || message.leadSource == null) {\r\n return null;\r\n }\r\n\r\n if (this.dialogHost !== null) {\r\n let componentFactory = this.componentFactoryResolver.resolveComponentFactory(HandleComponent);\r\n let viewContainerRef = this.dialogHost.viewContainerRef;\r\n\r\n let componentRef = viewContainerRef.createComponent(componentFactory);\r\n let dialogRef = (componentRef.instance);\r\n\r\n dialogRef.contactId = message.contactId;\r\n dialogRef.newLeadId = message.newleadId;\r\n dialogRef.contactGuid = message.contactGuid;\r\n dialogRef.firstName = message.firstName;\r\n dialogRef.lastName = message.lastName;\r\n dialogRef.email = message.email;\r\n dialogRef.mobilePhone = message.mobilePhone;\r\n dialogRef.contactStatus = message.contactStatus;\r\n dialogRef.leadDateCreated = message.leadDateCreated;\r\n dialogRef.leadSource = message.leadSource;\r\n\r\n dialogRef.onClose.subscribe(() => {\r\n componentRef.destroy();\r\n })\r\n return dialogRef;\r\n }\r\n else {\r\n console.error(\"Error: No dialog host set when trying to open a new leads dialog\");\r\n }\r\n return null;\r\n }\r\n\r\n UpdateAsHandled(newLeadId: number, clientUserId: number, leadStatus: number, contactId: number, followUpDate: Date): Observable {\r\n let datePipe = new DatePipe('en-US');\r\n let dateStr = datePipe.transform(followUpDate, 'MM-dd-yyyy HH:mm:ss');\r\n return this.http.get(this.baseUrl + `api/leads/update?apikey=${this.apiKey}&newLeadId=${newLeadId}&clientUserId=${clientUserId}&leadStatus=${leadStatus}&followUpDate=${dateStr}&contactId=${contactId}`);\r\n }\r\n\r\n OnlyHandled(newLeadId: number, clientUserId: number, leadStatus: number, contactId: number): Observable {\r\n return this.http.get(this.baseUrl + `api/leads/handle?apikey=${this.apiKey}&newLeadId=${newLeadId}&clientUserId=${clientUserId}&leadStatus=${leadStatus}&contactId=${contactId}`);\r\n }\r\n\r\n GetPhoneLeadTags(clientId: number): Observable {\r\n return this.http.get(this.baseUrl + `api/leads/phoneLeadTags?apikey=${this.apiKey}&clientId=${clientId}`);\r\n }\r\n\r\n GetContactTags(contactId: number, clientId: number): Observable {\r\n console.log(\"ids from service\", contactId, clientId);\r\n return this.http.get(this.baseUrl + `api/leads/contactTags?apikey=${this.apiKey}&contactId=${contactId}&clientId=${clientId}`);\r\n }\r\n\r\n AddContactTags(contactId: number, tagId: number): Observable {\r\n return this.http.post(this.baseUrl + `api/leads/tags?apikey=${this.apiKey}&contactId=${contactId}&tagId=${tagId}`, {});\r\n }\r\n\r\n InsertLeads(contactId: number, clientId: number, email: string, mobilePhone: string, activityTypeId: number): Observable {\r\n return this.http.get(this.baseUrl + `api/leads/new?apikey=${this.apiKey}&contactId=${contactId}&clientId=${clientId}&email=${email}&mobilePhone=${mobilePhone}&activityTypeId=${activityTypeId}`);\r\n }\r\n\r\n GetActivity(clientId: number, phoneNumber: string, contactId: number): Observable {\r\n let queryString = `&clientId=${clientId}`;\r\n if (phoneNumber) {\r\n queryString += `&phoneNumber=${phoneNumber}`\r\n }\r\n if (contactId) {\r\n queryString += `&contactId=${contactId}`\r\n }\r\n\r\n\r\n return this.http.get(this.baseUrl + `api/leads/activity?apikey=${this.apiKey}${queryString}`)\r\n }\r\n\r\n DeleteNewLead(newLeadId: number): Observable {\r\n return this.http.delete(this.baseUrl + `api/leads/delete?apikey=${this.apiKey}&newLeadId=${newLeadId}`);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/leads.service.ts","import { Injectable } from '@angular/core';\r\nimport * as LogRocket from 'logrocket';\r\nimport { environment } from '../../environments/environment';\r\n\r\ndeclare var zE: any;\r\n\r\n@Injectable()\r\nexport class LogRocketService {\r\n logRocketInitalized: boolean;\r\n\r\n constructor() {\r\n this.logRocketInitalized = false;\r\n }\r\n\r\n initialize(currentUser: any) {\r\n // Don't initalize twice\r\n if(this.logRocketInitalized)\r\n {\r\n console.log(\"LogRocket already initalized...\");\r\n return;\r\n }\r\n\r\n // Only initalize on production\r\n if(!environment.production) {\r\n console.log(\"Not in production skipping LogRocket...\");\r\n return;\r\n }\r\n\r\n //console.log(\"CurrentUser: \", currentUser);\r\n\r\n // Don't initalize for OTT users\r\n if(currentUser.clientId == 10) {\r\n console.log(\"OTT User logged in skipping LogRocket...\");\r\n return;\r\n }\r\n\r\n\r\n LogRocket.init('j64up1/carbon-v1', {\r\n network: {\r\n requestSanitizer: request => {\r\n if (request.url.toLowerCase().indexOf('login') !== -1) {\r\n return null;\r\n }\r\n\r\n return request;\r\n }\r\n }\r\n });\r\n \r\n\r\n //console.log(\"Identifing LogRocket & ZenDesk: \", currentUser);\r\n var fullName = currentUser.firstName + ' ' + currentUser.lastName;\r\n var email = currentUser.email;\r\n\r\n if (zE) {\r\n zE(function () {\r\n zE.identify({\r\n name: fullName,\r\n email: email\r\n });\r\n });\r\n }\r\n\r\n LogRocket.identify(currentUser.clientUserId, {\r\n name: fullName,\r\n email: email\r\n });\r\n\r\n console.log(\"LogRocket Finished Initializing\");\r\n this.logRocketInitalized = true;\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/logrocket.service.ts","import { Injectable } from '@angular/core';\r\nimport { MatSnackBar } from '@angular/material';\r\n\r\n@Injectable()\r\nexport class NotifyService {\r\n constructor(private snackBar: MatSnackBar) {\r\n\r\n }\r\n\r\n success(successMsg: string, duration: number = 3000, panelClasses: string[] = []) {\r\n this.snackBar.open(successMsg, \"\", {\r\n duration: duration,\r\n verticalPosition: \"top\",\r\n horizontalPosition: \"right\",\r\n panelClass: ['snackbar-success'].concat(panelClasses)\r\n });\r\n }\r\n\r\n error(errorMsg: string, duration: number = 3000, panelClasses: string[] = []) {\r\n this.snackBar.open(errorMsg, \"\", {\r\n duration: duration,\r\n verticalPosition: \"top\",\r\n horizontalPosition: \"right\",\r\n panelClass: ['snackbar-error'].concat(panelClasses)\r\n });\r\n }\r\n\r\n info(infoMsg: string, duration: number = 3000, panelClasses: string[] = []) {\r\n this.snackBar.open(infoMsg, \"\", {\r\n duration: duration,\r\n verticalPosition: \"top\",\r\n horizontalPosition: \"right\",\r\n panelClass: ['snackbar-info'].concat(panelClasses)\r\n })\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/notify.service.ts","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/Observable';\r\n\r\n@Injectable()\r\nexport class PhoneService {\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') private baseUrl: string, @Inject('API_KEY') private apiKey: string) {\r\n\r\n }\r\n\r\n GetPrimaryOutboundVoicePhoneNumber(clientId: number, clientGuid: string): Observable {\r\n return this.http.get(\r\n this.baseUrl +\r\n `api/phonenumbers/primaryVoiceNumber?apiKey=${this.apiKey}&clientId=${clientId}&clientGuid=${clientGuid}`\r\n );\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/phone.service.ts","import { Injectable, ComponentFactoryResolver } from '@angular/core';\r\nimport { DialogHostDirective } from '../dialog-host.directive';\r\nimport { ContactService } from './contact.service';\r\nimport { TwoWayComponent } from '../sms/two-way/two-way.component';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { SmsActivity } from '../models/sms-activity';\r\nimport { ChecklistService } from './checklist.service';\r\nimport { ClientService } from './client.service';\r\nimport { NotifyService } from './notify.service';\r\n\r\n@Injectable()\r\nexport class SmsConversationService {\r\n dialogHost: DialogHostDirective = null;\r\n openDialogs: any = {};\r\n $conversation: Subject = new Subject();\r\n\r\n constructor(private componentFactoryResolver: ComponentFactoryResolver, private contactService: ContactService, private checklistService: ChecklistService, private clientService: ClientService, private notify: NotifyService) {\r\n\r\n }\r\n\r\n //async openOrAddToConversation(contactPhoneNumber: string, clientPhoneNumber: string, message: string, smsActivityId: number, direction: number) {\r\n async openOrAddToConversation(smsActivity: SmsActivity) {\r\n if (this.checklistService.disableSms) {\r\n return;\r\n }\r\n\r\n if(!this.IsValidPhoneNumber(smsActivity.called)) {\r\n this.notify.error(\"Error: Invalid Contact Phone Number\");\r\n return;\r\n }\r\n\r\n let conversationKey = `${smsActivity.callerId}${smsActivity.called}`.replace(/\\+/g, '');\r\n //console.log(conversationKey);\r\n //console.log(this.openDialogs);\r\n //console.log(this.openDialogs[conversationKey]);\r\n if (this.openDialogs[conversationKey] === null || this.openDialogs[conversationKey] === undefined) {\r\n this.openDialogs[conversationKey] = await this.openConversation(conversationKey, smsActivity.callerId, smsActivity.called, smsActivity.smsActivityId);\r\n }\r\n else {\r\n if (smsActivity.message != \"\") {\r\n this.addToConversation(conversationKey, smsActivity.callerId, smsActivity.called, smsActivity.message, smsActivity.smsActivityId, smsActivity.direction);\r\n }\r\n }\r\n\r\n this.playNotificationSound();\r\n\r\n this.$conversation.next(smsActivity);\r\n }\r\n\r\n async openConversation(conversationKey: string, contactPhoneNumber: string, clientPhoneNumber: string, smsActivityId: number) {\r\n if(!this.IsValidPhoneNumber(contactPhoneNumber)) {\r\n this.notify.error(\"Error: Invalid Contact Phone Number\");\r\n return;\r\n }\r\n\r\n //console.log(\"THIS IS IT: \",clientPhoneNumber);\r\n if (this.dialogHost !== null) {\r\n let componentFactory = this.componentFactoryResolver.resolveComponentFactory(TwoWayComponent);\r\n let viewContainerRef = this.dialogHost.viewContainerRef;\r\n\r\n let componentRef = viewContainerRef.createComponent(componentFactory);\r\n let dialogRef = (componentRef.instance);\r\n\r\n await this.contactService.GetInfoBySmsActivityId(smsActivityId).subscribe(resp => {\r\n if (resp) {\r\n dialogRef.contactId = resp.contactId;\r\n dialogRef.contactFirstName = resp.firstName;\r\n dialogRef.contactLastName = resp.lastName;\r\n dialogRef.smsPermission = resp.smspermission;\r\n dialogRef.getContactGuid(); // Manually calling this function to update the contact guid inside the component because ngOnChanges wasn't being fired\r\n }\r\n })\r\n\r\n dialogRef.conversationKey = conversationKey;\r\n dialogRef.phoneNumber = contactPhoneNumber;\r\n dialogRef.clientPhoneNumber = clientPhoneNumber;\r\n dialogRef.onClose.subscribe(() => {\r\n componentRef.destroy();\r\n this.openDialogs[conversationKey] = null;\r\n })\r\n return dialogRef;\r\n }\r\n else {\r\n console.error(\"Error: No dialog host set when trying to open a new sms conversation\");\r\n }\r\n return null;\r\n }\r\n\r\n addToConversation(conversationKey: string, contactPhoneNumber: string, clientPhoneNumber: string, message: string, smsActivityId: number, direction: number) {\r\n (this.openDialogs[conversationKey]).addToConversation(contactPhoneNumber, clientPhoneNumber, message, smsActivityId, direction);\r\n }\r\n\r\n async openFromPage(contactId: number, firstName: string, lastName: string, contactPhoneNumber: string, clientPhoneNumber: string, smsPermission: string, smsClientId: number = null, placeholderText = null, leadStatus: number = null) {\r\n if (this.checklistService.disableSms) {\r\n return;\r\n }\r\n\r\n if(!this.IsValidPhoneNumber(contactPhoneNumber)) {\r\n this.notify.error(\"Error: Invalid Contact Phone Number\");\r\n return;\r\n }\r\n\r\n let defaultShortCode: string = \"89000\";\r\n try {\r\n defaultShortCode = await this.GetDefaultShortCodeAsync(smsClientId);\r\n }\r\n catch (ex) {\r\n console.error(\"Error getting default short code: \", ex);\r\n }\r\n\r\n if (clientPhoneNumber == defaultShortCode) {\r\n return;\r\n }\r\n\r\n //console.log(\"THIS IS IT: \", contactId, firstName, lastName, contactPhoneNumber, clientPhoneNumber, smsPermission);\r\n let conversationKey = `${contactPhoneNumber}${clientPhoneNumber}`.replace(/\\+/g, '');\r\n //console.log(conversationKey);\r\n if (this.openDialogs[conversationKey] !== undefined && this.openDialogs[conversationKey] !== null) {\r\n console.log(this.openDialogs[conversationKey]);\r\n return;\r\n }\r\n\r\n let componentFactory = this.componentFactoryResolver.resolveComponentFactory(TwoWayComponent);\r\n let viewContainerRef = this.dialogHost.viewContainerRef;\r\n\r\n let componentRef = viewContainerRef.createComponent(componentFactory);\r\n let dialogRef = (componentRef.instance);\r\n dialogRef.contactId = contactId;\r\n dialogRef.contactFirstName = firstName;\r\n dialogRef.contactLastName = lastName;\r\n dialogRef.smsPermission = smsPermission;\r\n dialogRef.phoneNumber = contactPhoneNumber;\r\n dialogRef.clientPhoneNumber = clientPhoneNumber;\r\n dialogRef.conversationKey = conversationKey;\r\n dialogRef.leadStatus = leadStatus;\r\n dialogRef.smsClientId = smsClientId;\r\n dialogRef.placeholderText = placeholderText;\r\n dialogRef.onClose.subscribe(() => {\r\n componentRef.destroy();\r\n this.openDialogs[conversationKey] = null;\r\n })\r\n\r\n this.openDialogs[conversationKey] = dialogRef;\r\n return dialogRef;\r\n }\r\n\r\n private GetDefaultShortCodeAsync(clientId: number): Promise {\r\n return new Promise((resolve, reject) => {\r\n this.clientService.GetDefaultShortCode(clientId).subscribe(resp => {\r\n resolve(resp);\r\n }, err => {\r\n reject(err);\r\n })\r\n })\r\n }\r\n\r\n private IsValidPhoneNumber(phoneNumber:string): boolean {\r\n if(!phoneNumber || phoneNumber === \"\"){\r\n return false;\r\n }\r\n\r\n let phoneNumberDigits: string = phoneNumber.replace(/\\D/g, '');\r\n\r\n if (phoneNumberDigits.length == 10 || (phoneNumberDigits.startsWith(\"1\") && phoneNumberDigits.length == 11)) // Added the OR statement so that if the number starts with 1 it should be 11 characters long\r\n return true;\r\n else\r\n return false;\r\n }\r\n\r\n playNotificationSound() {\r\n let audio = new Audio();\r\n audio.src = \"https://advantage.overthetop.com/assets/js/ion.sound-3.0.7/sounds/door_bell.mp3\"\r\n audio.load();\r\n audio.play();\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/sms-conversation.service.ts","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/Observable';\r\n//import { Subscription } from 'rxjs/Subscription';\r\nimport { Contact } from '../models/contact';\r\nimport { DatePipe } from '@angular/common'\r\nimport {map, publishReplay, refCount} from 'rxjs/operators';\r\nimport * as moment from 'moment';\r\nimport { ClientService } from './client.service';\r\nimport { of } from 'rxjs/observable/of';\r\n\r\n// TODO: Document these types and move them to models/*.ts\r\ntype AllConversationsWithPagingResponse = any;\r\ninterface AllConversationsResponse { chat: any; phone: any; sms: any; }\r\n\r\nconst transformPhoneFromWithPagingToOldInterface = (\r\n withPagingResponse: AllConversationsWithPagingResponse['data']\r\n): AllConversationsResponse['phone'] => {\r\n const modified: AllConversationsResponse['phone'] = { ...withPagingResponse };\r\n\r\n modified.touchedByName = withPagingResponse.handledBy;\r\n delete modified.handledBy;\r\n\r\n modified.touchedDate = withPagingResponse.handledDate;\r\n delete modified.handledDate;\r\n\r\n modified.touchedById = withPagingResponse.handledById;\r\n delete modified.handledById;\r\n\r\n return modified;\r\n};\r\n\r\nconst generateTransformSmsFromWithPagingToOldInterface = ((clientId: number) => (\r\n withPagingResponse: AllConversationsWithPagingResponse['data']\r\n): AllConversationsResponse['sms'] => {\r\n const modified: AllConversationsResponse['sms'] = { ...withPagingResponse };\r\n\r\n modified.clientId = clientId;\r\n\r\n return modified;\r\n})\r\n\r\n\r\n@Injectable()\r\nexport class SmsService {\r\n private _smsNumber: Observable = null;\r\n unreadConversationCount: number = 0;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') private baseUrl: string, @Inject('API_KEY') private apiKey: string, private clientService: ClientService) {\r\n\r\n }\r\n\r\n SendSMSVerification(contactId: number, clientId: number, clientUserId: number): Observable {\r\n return this.http.post(this.baseUrl + `api/sms/sendsmsverification?apikey=${this.apiKey}&contactId=${contactId}&clientId=${clientId}&clientUserId=${clientUserId}`, {});\r\n }\r\n\r\n SendVCard(contactId: number, clientId: number, clientUserId: number): Observable {\r\n return this.http.get(this.baseUrl + `api/sms/sendvcard?apikey=${this.apiKey}&contactId=${contactId}&clientId=${clientId}&clientUserId=${clientUserId}`);\r\n }\r\n\r\n SendAffiliateCard(mobilePhone: string, keyword: string, clientId: number, clientUserId: number): Observable {\r\n return this.http.get(this.baseUrl + `api/sms/sendaffiliatecard?apikey=${this.apiKey}&mobilePhone=${mobilePhone}&keyword=${keyword}&clientId=${clientId}&clientUserId=${clientUserId}`);\r\n }\r\n\r\n SendFeedbackRequest(clientId: number, phoneNumbers: string, contactGuid: string, clientUserId: number, feedbackType: string): Observable {\r\n var splitStr = phoneNumbers.trim().split(/[\\s,]+/);\r\n var uniqueNums = splitStr.filter(this.OnlyUnique);\r\n\r\n return this.http.post(this.baseUrl + `api/sms/sendfeedbackrequest?apikey=${this.apiKey}&clientId=${clientId}&contactGuid=${contactGuid}&clientUserId=${clientUserId}&feedbackType=${feedbackType}`, uniqueNums);\r\n }\r\n\r\n SendFeedbackRequestWithDelay(clientId: number, phoneNumbers: string, contactGuid: string, clientUserId: number, feedbackType: string): Observable {\r\n var splitStr = phoneNumbers.trim().split(/[\\s,]+/);\r\n var uniqueNums = splitStr.filter(this.OnlyUnique);\r\n\r\n return this.http.post(this.baseUrl + `api/sms/sendfeedbackrequestwithdelay?apikey=${this.apiKey}&clientId=${clientId}&contactGuid=${contactGuid}&clientUserId=${clientUserId}&feedbackType=${feedbackType}`, uniqueNums);\r\n }\r\n\r\n SendFeedbackRequestWithHourDelay(clientId: number, phoneNumbers: string, contactGuid: string, clientUserId: number, feedbackType: string): Observable {\r\n var splitStr = phoneNumbers.trim().split(/[\\s,]+/);\r\n var uniqueNums = splitStr.filter(this.OnlyUnique);\r\n\r\n return this.http.post(this.baseUrl + `api/sms/sendfeedbackrequestwithhourdelay?apikey=${this.apiKey}&clientId=${clientId}&contactGuid=${contactGuid}&clientUserId=${clientUserId}&feedbackType=${feedbackType}`, uniqueNums);\r\n }\r\n\r\n SendDirectFeedbackRequest(clientId: number, contactGuid: string, clientUserId: number): Observable {\r\n return this.http.post(this.baseUrl + `api/sms/senddirectfeedback?apikey=${this.apiKey}&clientId=${clientId}&contactGuid=${contactGuid}&clientUserId=${clientUserId}`, null);\r\n }\r\n\r\n SendBulkSMSVerification(contacts: Contact[], clientUserId: number): Observable{\r\n return this.http.post(this.baseUrl + `api/sms/sendbulksmsverification?apikey=${this.apiKey}&clientUserId=${clientUserId}`, contacts);\r\n };\r\n\r\n SendBulkFeedbackRequest(contactIds: number[], clientId: number, clientUserId: number): Observable {\r\n return this.http.post(this.baseUrl + `api/sms/sendbulkfeedbackrequest?apikey=${this.apiKey}&clientId=${clientId}&clientUserId=${clientUserId}`, contactIds);\r\n }\r\n\r\n OnlyUnique(value, index, self) {\r\n return self.indexOf(value) === index;\r\n }\r\n\r\n GetSMSNumber(clientId: number): Observable {\r\n if (!this._smsNumber) {\r\n this._smsNumber = this.http.get(this.baseUrl + `api/sms/smsNumber?apiKey=${this.apiKey}&clientId=${clientId}`)\r\n .pipe(\r\n publishReplay(1),\r\n refCount()\r\n )\r\n }\r\n\r\n return this._smsNumber;\r\n }\r\n\r\n GetTwoWayConversation(start: Date, end: Date, from: string, to: string, clientId: number): Observable {\r\n let datePipe = new DatePipe('en-US');\r\n let startStr = datePipe.transform(start, 'MM-dd-yyyy');\r\n let endStr = datePipe.transform(end, 'MM-dd-yyyy');\r\n return this.http.get(this.baseUrl + `api/sms/Conversation?apikey=${this.apiKey}&start=${startStr}&end=${endStr}&from=${from}&to=${to}&clientId=${clientId}`);\r\n }\r\n\r\n GetAllConversationsForOneNumber(start: Date, end: Date, to: string, clientId: number): Observable {\r\n let datePipe = new DatePipe('en-US');\r\n let startStr = datePipe.transform(start, 'MM-dd-yyyy');\r\n let endStr = datePipe.transform(end, 'MM-dd-yyyy');\r\n return this.http.get(this.baseUrl + `api/sms/ConversationsForOneNumber?apikey=${this.apiKey}&start=${startStr}&end=${endStr}&to=${to}&clientId=${clientId}`);\r\n }\r\n\r\n SendMessage(smsParameters: any): Observable {\r\n return this.http.post(this.baseUrl + `api/sms/send?apikey=${this.apiKey}`, smsParameters);\r\n }\r\n\r\n //ignore smsPermissions\r\n SendMessageImpolitely(\r\n smsParameters: any,\r\n isImpoliteSend: boolean = false,\r\n isImpoliteSendConfirmed: boolean = false\r\n ): Observable {\r\n return this.http.post(this.baseUrl + `api/sms/sendimpolitely?apikey=${this.apiKey}&isImpoliteSend=${isImpoliteSend}&isImpoliteSendConfirmed=${isImpoliteSendConfirmed}`, smsParameters);\r\n }\r\n\r\n SendMMS(\r\n smsParameters: any, \r\n fileList: File[], \r\n templateUrls: any[],\r\n isImpoliteSend: boolean = false,\r\n isImpoliteSendConfirmed: boolean = false\r\n ): Observable {\r\n let formData = this.convertFilesToFormData(fileList);\r\n formData.append(\"smsParameters\", JSON.stringify(smsParameters));\r\n formData.append(\"templateUrls\", JSON.stringify(templateUrls));\r\n\r\n return this.http.post(this.baseUrl + `api/sms/sendMms?apiKey=${this.apiKey}&isImpoliteSend=${isImpoliteSend}&isImpoliteSendConfirmed=${isImpoliteSendConfirmed}`, formData);\r\n }\r\n\r\n GetSmsDashboard(start: Date, end: Date, clientId: number): Observable {\r\n let datePipe = new DatePipe('en-US');\r\n let startStr = datePipe.transform(start, 'MM-dd-yyyy');\r\n let endStr = datePipe.transform(end, 'MM-dd-yyyy');\r\n return this.http.get(this.baseUrl + `api/sms/conversations?apikey=${this.apiKey}&start=${startStr}&end=${endStr}&clientid=${clientId}`);\r\n }\r\n\r\n MarkAsRead(smsActivityUpdateParameters): Observable {\r\n return this.http.put(this.baseUrl + `api/sms/conversation?apikey=${this.apiKey}`, smsActivityUpdateParameters);\r\n }\r\n\r\n GetTrackableLink(clientId: number, name: string, targetUrl: string, clientTypeId: number, shortCodelength: number, campaignId: number, utmCampaign: string, utmSource: string, utmMedium: string, cg: string, tg: string, createdById: number): Observable {\r\n let encodedTargetUrl = encodeURIComponent(targetUrl);\r\n\r\n let requestUrl = this.baseUrl + `api/clicktrack/track?apikey=${this.apiKey}`;\r\n\r\n requestUrl += `&clientId=${clientId}&name=${name}&targetUrl=${encodedTargetUrl}&clientTypeId=${clientTypeId}&shortCodelength=${shortCodelength}&campaignId=${campaignId}&cg=${cg}&createdById=${createdById}`;\r\n\r\n //Nullable Parameters\r\n // Added null check so \"null\" doesn't get sent to the api instead\r\n if(utmCampaign !== null) {\r\n requestUrl += `&utmCampaign=${utmCampaign}`;\r\n }\r\n if(utmSource !== null) {\r\n requestUrl += `&utmSource=${utmSource}`;\r\n }\r\n if(utmMedium !== null) {\r\n requestUrl += `&utmMedium=${utmMedium}`;\r\n }\r\n if(tg !== null) {\r\n requestUrl += `&tg=${tg}`;\r\n }\r\n\r\n\r\n return this.http.get(requestUrl);\r\n //return this.http.get(this.baseUrl + `api/clicktrack/track?apikey=${this.apiKey}&clientId=${clientId}&name=${name}&targetUrl=${targetUrl}&clientTypeId=${clientTypeId}&shortCodelength=${shortCodelength}&campaignId=${campaignId}&utmCampaign=${utmCampaign}&utmSource=${utmSource}&utmMedium=${utmMedium}&cg=${cg}&tg=${tg}&createdById=${createdById}`);\r\n }\r\n\r\n GetAllConversations(start: Date, end: Date, clientId: number, openStatus: number): Observable {\r\n let datePipe = new DatePipe('en-US');\r\n let startStr = datePipe.transform(start, 'MM-dd-yyyy');\r\n let endStr = datePipe.transform(end, 'MM-dd-yyyy');\r\n /*\r\n * We used to use /api/sms/allconversations but there were some API-side performance problems.\r\n * Now we're using an endpoint developed for Carbon V2 which has better performance characteristics.\r\n * It's designed for pagination and sorting which the old one wasn't, so we'll call it\r\n * and ask for one HUGE unsorted page, to maintain Carbon V1's current client-side paging.\r\n * It also returns the data in a slightly different format/wrapper, so we'll modify the response client-side.\r\n */\r\n const HUGE_PAGE_SIZE = '15000'; // API refuses to respond with more data.\r\n return this.http.get(this.baseUrl + `api/sms/allconversationswithpaging?apikey=${\r\n this.apiKey\r\n }&start=${\r\n startStr\r\n }&end=${\r\n endStr\r\n }&clientid=${\r\n clientId\r\n }&openStatus=${\r\n openStatus\r\n }&pageSize=${\r\n HUGE_PAGE_SIZE\r\n }&pageIndex=0`).pipe(\r\n map((response) => {\r\n const conversations = response?.data || [];\r\n return {\r\n chat: [], // Chat doesn't exist right now. It'd probably be 3 -- but no sense iterating until then.\r\n phone: conversations.filter(datum => datum.conversationTypeId === 2)\r\n .map(transformPhoneFromWithPagingToOldInterface),\r\n sms: conversations.filter(datum => datum.conversationTypeId === 1)\r\n .map(generateTransformSmsFromWithPagingToOldInterface(clientId)),\r\n };\r\n })\r\n );\r\n }\r\n\r\n GetAllSmsActivity(contactId: number, mobilePhone: string, clientId: number): Observable {\r\n return this.http.get(this.baseUrl + `api/sms/allSmsActivity?apiKey=${this.apiKey}&contactId=${contactId}&mobilePhone=${mobilePhone}&clientId=${clientId}`);\r\n }\r\n\r\n clearCache(): void {\r\n this._smsNumber = null;\r\n }\r\n\r\n GetKeywordDetails(clientId: number): Observable {\r\n return this.http.get(this.baseUrl + `api/sms/keywordDetails?apiKey=${this.apiKey}&clientId=${clientId}`);\r\n }\r\n\r\n CreateSmsKeyword(clientId: number): Observable {\r\n return this.http.get(this.baseUrl + `api/sms/createSmsKeyword?apiKey=${this.apiKey}&clientId=${clientId}`);\r\n }\r\n\r\n CreateKeywordDetails(data: any): Observable {\r\n return this.http.post(this.baseUrl + `api/sms/createKeywordDetails?apiKey=${this.apiKey}`, data);\r\n }\r\n\r\n EditKeywordDetails(keyword: any): Observable {\r\n return this.http.post(this.baseUrl + `api/sms/editKeywordDetails?apiKey=${this.apiKey}`, keyword);\r\n }\r\n\r\n MarkKeywordDeleted(keywordId: number): Observable {\r\n return this.http.get(this.baseUrl + `api/sms/markKeywordDeleted?apiKey=${this.apiKey}&keywordId=${keywordId}`);\r\n }\r\n\r\n MarkKeywordActive(keywordId: number): Observable {\r\n return this.http.get(this.baseUrl + `api/sms/markKeywordActive?apiKey=${this.apiKey}&keywordId=${keywordId}`);\r\n }\r\n\r\n AddKeywordAction(keywordId: number, actionType: number, actionText: string): Observable {\r\n return this.http.get(this.baseUrl + `api/sms/addKeywordAction?apiKey=${this.apiKey}&keywordId=${keywordId}&actionType=${actionType}&actionText=${actionText}`);\r\n }\r\n\r\n GetKeywordAndOffers(clientId: number): Observable{\r\n return this.http.get(this.baseUrl + `api/sms/keywordsAndOffers?apiKey=${this.apiKey}&clientId=${clientId}`);\r\n }\r\n\r\n SearchKeywords(clientId: number, searchParameter: string): Observable {\r\n return this.http.get(this.baseUrl + `api/sms/searchKeywords?apiKey=${this.apiKey}&clientId=${clientId}&searchParameter=${searchParameter}`);\r\n }\r\n\r\n GetBulkConversations(start: Date, end: Date, clientId: number): Observable {\r\n let startStr = moment(start).format(\"MM-DD-YYYY\");\r\n let endStr = moment(end).format(\"MM-DD-YYYY\");\r\n return this.http.get(this.baseUrl + `api/sms/bulkConversations?apiKey=${this.apiKey}&start=${startStr}&end=${endStr}&clientId=${clientId}`)\r\n }\r\n\r\n GetSmsConversations(start: Date, end: Date, clientId: number): Observable {\r\n let startStr = moment(start).format(\"MM-DD-YYYY\");\r\n let endStr = moment(end).format(\"MM-DD-YYYY\");\r\n return this.http.get(this.baseUrl + `api/sms/customerSmsConversations?apiKey=${this.apiKey}&start=${startStr}&end=${endStr}&clientId=${clientId}`);\r\n }\r\n\r\n CloseSmsConversation(smsActivityId: number, clientUserId: number): Observable {\r\n return this.http.get(this.baseUrl + `api/sms/closeSmsConversation?apiKey=${this.apiKey}&smsActivityId=${smsActivityId}&clientUserId=${clientUserId}`);\r\n }\r\n\r\n ReopenConversation(smsActivityId: number, clientUserId: number): Observable {\r\n return this.http.get(this.baseUrl + `api/sms/reopenConversation?apiKey=${this.apiKey}&smsActivityId=${smsActivityId}&clientUserId=${clientUserId}`);\r\n }\r\n\r\n GetSmsResponseTemplates(clientId: number): Observable {\r\n return this.http.get(this.baseUrl + `api/DripCampaign/getTemplatesByClientId?apiKey=${this.apiKey}&clientId=${clientId}`);\r\n }\r\n\r\n GetSmsResponseTemplatesByClientIdOrClientTypeId(clientId: number, clientTypeId: number): Observable {\r\n return this.http.get(this.baseUrl + `api/DripCampaign/getTemplatesByClientIdOrClientType?apiKey=${this.apiKey}&clientId=${clientId}&clientTypeId=${clientTypeId}`);\r\n }\r\n\r\n private createMediumTemplate(clientId: number, name: string, body: string): any {\r\n let mediumTemplate = {\r\n TemplateType: 3,\r\n ClientTypeId: 0,\r\n ExclusiveToClientId: clientId,\r\n Name: name,\r\n Subject: name,\r\n Body: body,\r\n MediumUrl: null,\r\n EmailFromDoctor1: 0,\r\n UsedBy: 2,\r\n TaskTypeId: 0,\r\n TaskPriority: 5\r\n }\r\n\r\n return mediumTemplate;\r\n }\r\n\r\n CreateSmsResponseTemplate(clientId: number, name: string, body: string): Observable {\r\n let mediumTemplate = {\r\n TemplateType: 3,\r\n ClientTypeId: 0,\r\n ExclusiveToClientId: clientId,\r\n Name: name,\r\n Subject: name,\r\n Body: body,\r\n MediumUrl: null,\r\n EmailFromDoctor1: 0,\r\n UsedBy: 2,\r\n TaskTypeId: 0,\r\n TaskPriority: 5\r\n }\r\n\r\n return this.http.post(this.baseUrl + `api/DripCampaign/addTemplate?apiKey=${this.apiKey}`, mediumTemplate);\r\n }\r\n\r\n CreateSmsResponseTemplateWithFiles(clientId: number, name: string, body: string, images: File[]): Observable {\r\n let formData = this.convertFilesToFormData(images);\r\n let mediumTemplate = this.createMediumTemplate(clientId, name, body)\r\n formData.append(\"mediumTemplate\", JSON.stringify(mediumTemplate));\r\n return this.http.post(this.baseUrl + `api/DripCampaign/addTemplateWithFiles?apiKey=${this.apiKey}`, formData);\r\n }\r\n\r\n UpdateSmsResponseTemplate(templateId: number, clientId: number, name: string, body: string): Observable {\r\n let mediumTemplate = {\r\n TemplateType: 3,\r\n ClientTypeId: 0,\r\n ExclusiveToClientId: clientId,\r\n Name: name,\r\n Subject: name,\r\n Body: body,\r\n MediumUrl: null,\r\n EmailFromDoctor1: 0,\r\n UsedBy: 2,\r\n TaskTypeId: 0,\r\n TaskPriority: 5\r\n }\r\n\r\n return this.http.put(this.baseUrl + `api/DripCampaign/updateTemplate?apiKey=${this.apiKey}&templateId=${templateId}`, mediumTemplate);\r\n }\r\n\r\n UpdateSmsResponseTemplateWithFiles(templateId: number, clientId: number, name: string, body: string, fileList: File[]): Observable {\r\n let formData = this.convertFilesToFormData(fileList);\r\n let mediumTemplate = this.createMediumTemplate(clientId, name, body);\r\n formData.append(\"mediumTemplate\", JSON.stringify(mediumTemplate));\r\n return this.http.put(this.baseUrl + `api/DripCampaign/updateTemplateWithFiles?apiKey=${this.apiKey}&templateId=${templateId}`, formData);\r\n }\r\n\r\n DeleteSmsResponseTemplate(templateId: number): Observable {\r\n return this.http.get(this.baseUrl + `api/DripCampaign/deleteTemplate?apiKey=${this.apiKey}&templateId=${templateId}`);\r\n }\r\n\r\n IsAutomatedSms(sms: any): Observable {\r\n if (sms.smsActivityId == null || sms.smsActivityId == undefined) {\r\n //Not an sms\r\n return of(false);\r\n }\r\n\r\n return this.clientService.GetDefaultShortCode(sms.clientId).map(resp => {\r\n return sms.callerId == \"89000\" || sms.called == \"89000\" || sms.callerId == resp || sms.called == resp;\r\n })\r\n }\r\n\r\n private convertFilesToFormData(fileList: File[]): FormData {\r\n let formData: FormData = new FormData();\r\n\r\n for(let i = 0; i < fileList.length; i++) {\r\n try {\r\n var file = fileList[i];\r\n formData.append(\"files\", file, file.name);\r\n }\r\n catch(exp) {\r\n console.error(\"Error adding file: \", exp);\r\n }\r\n }\r\n\r\n return formData;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/sms.service.ts","import { Injectable } from '@angular/core';\r\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\nimport { SpinnerOverlayComponent } from '../spinner-overlay/spinner-overlay.component';\r\n\r\n@Injectable()\r\nexport class SpinnerOverlayService {\r\n\r\n private overlayRef: OverlayRef = null;\r\n openSpinners: number = 0;\r\n\r\n constructor(private overlay: Overlay) { }\r\n\r\n open() {\r\n setTimeout(() => {\r\n if (!this.overlayRef) {\r\n this.overlayRef = this.overlay.create();\r\n }\r\n const SpinnerPortal = new ComponentPortal(SpinnerOverlayComponent);\r\n if (this.openSpinners === 0) {\r\n\r\n this.overlayRef.attach(SpinnerPortal);\r\n }\r\n this.openSpinners++;\r\n })\r\n }\r\n\r\n close() {\r\n setTimeout(() => {\r\n if (!!this.overlayRef) {\r\n if (this.openSpinners === 1) {\r\n this.overlayRef.detach();\r\n }\r\n this.openSpinners--;\r\n if (this.openSpinners < 0) {\r\n this.openSpinners = 0;\r\n }\r\n }\r\n })\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/spinner-overlay.service.ts","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport * as moment from 'moment';\r\n\r\n@Injectable()\r\nexport class SurveyService {\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') private baseUrl: string, @Inject('API_KEY') private apiKey: string) {\r\n\r\n }\r\n\r\n getSurveyResponses(clientId: number, surveyId: number, startDateISO: string, endDateISO: string): Observable {\r\n return this.http.get(this.baseUrl + `api/survey/responses?apikey=${this.apiKey}&clientId=${clientId}&surveyId=${surveyId}&fromDate=${startDateISO}&endDate=${endDateISO}`);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/survey.service.ts","import { Injectable, ComponentFactoryResolver, Type, ComponentRef } from '@angular/core';\r\nimport { TopBarHostDirective } from '../nav-menu/top-bar-host.directive';\r\n\r\n@Injectable()\r\nexport class TopBarService {\r\n host: TopBarHostDirective;\r\n componentRef: ComponentRef;\r\n\r\n constructor(private componentFactoryResolver: ComponentFactoryResolver) {\r\n\r\n }\r\n\r\n setTopBar(type: Type) {\r\n if (this.host != null) {\r\n let componentFactory = this.componentFactoryResolver.resolveComponentFactory(type);\r\n let viewContainerRef = this.host.viewContainerRef;\r\n\r\n this.componentRef = viewContainerRef.createComponent(componentFactory);\r\n\r\n let instanceRef = (this.componentRef.instance);\r\n \r\n return instanceRef;\r\n }\r\n return null;\r\n }\r\n\r\n removeTopBar() {\r\n this.componentRef.destroy();\r\n this.componentRef = null;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/top-bar.service.ts","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class UserSettingsService {\r\n icnEnabled: boolean = true;\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/user-settings.service.ts","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable, ComponentFactoryResolver } from '@angular/core';\r\nimport 'rxjs/add/observable/of';\r\nimport 'rxjs/add/operator/map';\r\nimport 'rxjs/add/operator/mergeMap';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { map, mergeMap, catchError } from 'rxjs/operators';\r\n//import { ClientPickerService } from './client-picker.service';\r\nimport { Router } from '@angular/router';\r\nimport { InactiveModalComponent } from '../login/inactive-modal/inactive-modal.component';\r\nimport { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\r\nimport { Location, DatePipe } from '@angular/common';\r\nimport { publishReplay, refCount } from 'rxjs/operators';\r\nimport { DevWarningComponent } from '../dev-warning/dev-warning.component';\r\nimport { DialogHostDirective } from '../dialog-host.directive';\r\nimport { BlinkService } from './blink.service';\r\n\r\n@Injectable()\r\nexport class UserService {\r\n public clientUserId: number = 0;\r\n public clientUserEmail: string = \"\";\r\n private loggedIn: boolean = false;\r\n private authUrl: string = \"https://dev.auth.overthetop.com\";\r\n //private localAuthUrl: string = \"http://localhost:5000\";\r\n public roles: any = null;\r\n private logoutTimer: any = null;\r\n private inactiveTimer: any = null;\r\n public currentTime: number = 0;\r\n private timer: any = null;\r\n private modalRef: NgbModalRef = null;\r\n public mainClientId: number = 0;\r\n public isOTTUser: boolean = false;\r\n public dialogHost: DialogHostDirective = null;\r\n\r\n private _cached: any = {\r\n currentUser: null,\r\n roles: null,\r\n authValid: null\r\n }\r\n private nextCheckTime: number = null;\r\n\r\n constructor(private http: HttpClient,\r\n @Inject('BASE_URL') private baseUrl: string,\r\n @Inject('API_KEY') private apiKey: string,\r\n //private clientPickerService: ClientPickerService,\r\n private blinkService: BlinkService,\r\n private router: Router,\r\n private location: Location,\r\n private modalService: NgbModal,\r\n private componentFactoryResolver: ComponentFactoryResolver)\r\n {\r\n try {\r\n if (!location.path().includes('/login') && !location.path().includes('/star-feedback')) {\r\n //this.isLoggedIn().subscribe(isLoggedIn => {\r\n // this.loggedIn = isLoggedIn;\r\n //})\r\n //this.loggedIn = !!localStorage.getItem('auth_token');\r\n this.clientUserId = Number(localStorage.getItem('client_user_id'));\r\n this.roles = String(localStorage.getItem('roles'));\r\n if (this.clientUserId !== 0) {\r\n this.getCurrentUser().subscribe(currentUser => {\r\n this.mainClientId = currentUser.clientId;\r\n this.isOTTUser = currentUser.clientId == 10;\r\n })\r\n }\r\n }\r\n else {\r\n this.loggedIn = false;\r\n this.clientUserId = 0;\r\n this.roles = null;\r\n }\r\n\r\n } catch (ex) {\r\n this.loggedIn = false;\r\n this.clientUserId = 0;\r\n this.roles = null;\r\n }\r\n }\r\n\r\n login(email: string, password: string): Observable {\r\n return this.http.post(`${this.authUrl}/api/auth/login`, { username: email, password: password })\r\n .pipe(\r\n mergeMap((response: any) => {\r\n try {\r\n localStorage.setItem('auth_token', response.auth_token);\r\n } catch (ex) { }\r\n this.setLogoutTimer(response.expires_in)\r\n return this.getClientUserId(email);\r\n }),\r\n map((clientUser: any) => {\r\n this.clientUserId = clientUser.clientUserId;\r\n this.clientUserEmail = clientUser.email;\r\n this.mainClientId = clientUser.clientId;\r\n this.isOTTUser = clientUser.clientId == 10;\r\n console.log(this.clientUserEmail);\r\n //gets roles\r\n this.getRoles(this.clientUserEmail).subscribe(\r\n response => {\r\n this.roles = response;\r\n //console.log(\"this.roles: \", this.roles);\r\n try {\r\n localStorage.setItem('roles', response);\r\n } catch (ex) { }\r\n }\r\n );\r\n //this.roles = roles;\r\n try {\r\n localStorage.setItem('client_user_id', clientUser.clientUserId);\r\n } catch (ex) { }\r\n this.loggedIn = true;\r\n return true;\r\n })\r\n );\r\n }\r\n\r\n getClientUserId(email: string): Observable {\r\n return this.http.get(`${this.baseUrl}api/clientusers/byemail?apikey=${this.apiKey}&email=${encodeURIComponent(email)}`)\r\n }\r\n\r\n logout(): void {\r\n try {\r\n window['Appcues'].track('v1_logout');\r\n\r\n this.blinkService.Stop().subscribe();\r\n localStorage.removeItem('auth_token');\r\n localStorage.removeItem('client_user_id');\r\n localStorage.removeItem('selected_client_id');\r\n localStorage.removeItem('roles');\r\n //this.clientPickerService.selectedClientId = 0;\r\n localStorage.removeItem('firstName');\r\n localStorage.removeItem('lastName');\r\n localStorage.removeItem('email');\r\n localStorage.removeItem('brand');\r\n this.clearTimers();\r\n this.currentTime = 0;\r\n\r\n if (this.modalRef != null) {\r\n this.modalRef.close('logging out');\r\n }\r\n location.reload();\r\n\r\n } catch (ex) { }\r\n this.loggedIn = false;\r\n }\r\n\r\n isLoggedIn(): Observable {\r\n //return this.loggedIn;\r\n if (!!localStorage.getItem('auth_token')) {\r\n return this.refreshJwt()\r\n }\r\n else {\r\n return Observable.of(false);\r\n }\r\n }\r\n\r\n refreshJwt(): Observable {\r\n let authToken = \"\";\r\n try {\r\n authToken = localStorage.getItem('auth_token');\r\n } catch (ex) { }\r\n\r\n const httpOptions = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${authToken}`\r\n })\r\n };\r\n\r\n const now: number = new Date().getTime();\r\n if (!this._cached.authValid || this.nextCheckTime < now) {\r\n this._cached.authValid = this.http.get(`${this.authUrl}/api/auth/checkTokenExpired`, httpOptions)\r\n .pipe(\r\n map((response: string) => JSON.parse(response)),\r\n map((newJwt) => {\r\n try {\r\n localStorage.setItem('auth_token', newJwt.auth_token);\r\n } catch (ex) { }\r\n //this.setLogoutTimer(60);\r\n this.nextCheckTime = new Date().getTime() + ((newJwt.expires_in * 1000) / 2);\r\n this.setLogoutTimer(newJwt.expires_in);\r\n return true;\r\n }),\r\n catchError((error) => {\r\n this.logout();\r\n return Observable.of(false);\r\n }),\r\n publishReplay(1),\r\n refCount()\r\n )\r\n }\r\n\r\n return this._cached.authValid\r\n\r\n }\r\n\r\n staySignedIn(): Observable {\r\n let authToken = \"\";\r\n try {\r\n authToken = localStorage.getItem('auth_token');\r\n } catch (ex) { }\r\n\r\n if (authToken != \"\") {\r\n this.clearTimers();\r\n\r\n const httpOptions = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${authToken}`\r\n })\r\n };\r\n\r\n return this.http.get(`${this.authUrl}/api/auth/forceTokenRefresh`, httpOptions)\r\n .pipe(\r\n map((response: string) => JSON.parse(response)),\r\n map((newJwt) => {\r\n try {\r\n localStorage.setItem('auth_token', newJwt.auth_token);\r\n } catch (ex) { }\r\n this.setLogoutTimer(newJwt.expires_in);\r\n return true;\r\n }),\r\n catchError((error) => {\r\n return Observable.of(false);\r\n })\r\n )\r\n }\r\n else {\r\n return Observable.of(false);\r\n }\r\n }\r\n\r\n private clearTimers() {\r\n if (this.logoutTimer != null) {\r\n clearTimeout(this.logoutTimer);\r\n }\r\n if (this.inactiveTimer != null) {\r\n clearTimeout(this.inactiveTimer);\r\n }\r\n if (this.timer != null) {\r\n clearInterval(this.timer);\r\n }\r\n }\r\n\r\n private setLogoutTimer(time: number) {\r\n this.clearTimers();\r\n\r\n this.logoutTimer = setTimeout(() => {\r\n this.logout();\r\n this.router.navigate(['login']);\r\n }, time * 1000)\r\n\r\n this.inactiveTimer = setTimeout(() => {\r\n this.openInactiveModal();\r\n //}, 30 * 1000);\r\n }, (time * 1000) - 60000)\r\n\r\n this.currentTime = time;\r\n this.timer = setInterval(() => {\r\n this.currentTime -= 1;\r\n }, 1000)\r\n }\r\n\r\n private openInactiveModal() {\r\n this.modalRef = this.modalService.open(InactiveModalComponent);\r\n this.modalRef.componentInstance.userService = this;\r\n this.modalRef.result.then(reason => {\r\n this.modalRef = null;\r\n })\r\n }\r\n\r\n getCurrentUser(): Observable {\r\n if (!this._cached.currentUser) {\r\n this._cached.currentUser = this.http.get(`${this.baseUrl}api/clientusers/byClientUserId?apikey=${this.apiKey}&clientUserId=${this.clientUserId}`)\r\n .pipe(\r\n publishReplay(1),\r\n refCount()\r\n );\r\n }\r\n return this._cached.currentUser;\r\n }\r\n\r\n getSurvey(surveyId: number): Observable {\r\n return this.http.get(`${this.baseUrl}api/Survey/survey?apikey=${this.apiKey}&surveyId=${surveyId}`)\r\n }\r\n\r\n getSurveyQuestions(surveyId: number): Observable {\r\n return this.http.get(`${this.baseUrl}api/Survey/questions?apikey=${this.apiKey}&surveyId=${surveyId}`)\r\n }\r\n\r\n submitSurveyResponse(surveyId: number, clientId: number, contactId: number, totalScore: number) {\r\n return this.http.get(`${this.baseUrl}api/Survey/response?apikey=${this.apiKey}&surveyId=${surveyId}&clientId=${clientId}&contactId=${contactId}&totalScore=${totalScore}&clientUserId=0&createdById=0`)\r\n }\r\n\r\n submitAnswers(surveyQuestionId: number, surveyResponseId: number, answerInt: number) {\r\n return this.http.get(`${this.baseUrl}api/Survey/answer?apikey=${this.apiKey}&surveyQuestionId=${surveyQuestionId}&surveyResponseId=${surveyResponseId}&answerInt=${answerInt}&answerScore=${answerInt}&createdById=0`)\r\n }\r\n\r\n getSurveyData(clientId: number, contactId: number): Observable {\r\n return this.http.get(`${this.baseUrl}api/Survey/get?apikey=${this.apiKey}&clientId=${clientId}&contactId=${contactId}`)\r\n }\r\n\r\n getSurveyAnswers(surveyResponseId: number, surveyId: number): Observable {\r\n //return this.http.get(`${this.baseUrl}api/Survey/getAnswers?apikey=${this.apiKey}&surveyResponseId=${surveyResponseId}&surveyId=${surveyId}`)\r\n return this.http.get(`${this.baseUrl}api/Survey/answersById?apikey=${this.apiKey}&surveyResponseId=${surveyResponseId}`)\r\n }\r\n\r\n getRoles(email: string): Observable {\r\n let encodedEmail = encodeURIComponent(email);\r\n\r\n //return Observable.of(['User']);\r\n if (!this._cached.roles) {\r\n this._cached.roles = this.http.get(`${this.baseUrl}api/accounts/getRoles?apikey=${this.apiKey}&email=${encodedEmail}`)\r\n .pipe(\r\n publishReplay(1),\r\n refCount()\r\n );\r\n }\r\n return this._cached.roles;\r\n }\r\n\r\n getCarbonProspectClients(clientUserId: number): Observable {\r\n return this.http.get(`${this.baseUrl}api/clientusers/carbonProspectClients?apikey=${this.apiKey}&clientUserId=${clientUserId}`)\r\n }\r\n\r\n addCarbonPackage(clientId: number, clientServiceId: number, cost: number, beginDate: Date): Observable {\r\n let datePipe = new DatePipe('en-US');\r\n let beginDateStr = datePipe.transform(beginDate, 'MM-dd-yyyy');\r\n\r\n console.log(clientId, clientServiceId, cost, beginDateStr);\r\n return this.http.post(`${this.baseUrl}api/client/addService?apikey=${this.apiKey}&clientId=${clientId}&clientServiceId=${clientServiceId}&cost=${cost}&beginDate=${beginDateStr}`, {});\r\n }\r\n\r\n clearCache(): void {\r\n this._cached = {\r\n currentUser: null,\r\n roles: null,\r\n authValid: null\r\n }\r\n }\r\n\r\n OpenDialog() {\r\n\r\n if (this.dialogHost !== null) {\r\n let componentFactory = this.componentFactoryResolver.resolveComponentFactory(DevWarningComponent);\r\n let viewContainerRef = this.dialogHost.viewContainerRef;\r\n\r\n let componentRef = viewContainerRef.createComponent(componentFactory);\r\n let dialogRef = (componentRef.instance);\r\n\r\n dialogRef.onClose.subscribe(() => {\r\n componentRef.destroy();\r\n })\r\n\r\n return dialogRef;\r\n }\r\n else {\r\n console.error(\"Error: No dialog host set when trying to open a dev warning dialog\");\r\n }\r\n return null;\r\n }\r\n\r\n addActivity(clientId: number, activityType: string, activityDescription: string): Observable {\r\n const activityData = {\r\n clientUserId: this.clientUserId,\r\n asClientId: clientId,\r\n activityType: activityType,\r\n activityDescription: activityDescription\r\n }\r\n return this.http.post(`${this.baseUrl}api/clientUsers/activity?apikey=${this.apiKey}`, activityData);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/user.service.ts","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/Observable';\r\n\r\n@Injectable()\r\nexport class VoiceService {\r\n constructor(private http: HttpClient, @Inject('BASE_URL') private baseUrl: string, @Inject('API_KEY') private apiKey: string) {\r\n \r\n }\r\n\r\n GetVoiceToken(): Observable {\r\n return this.http.get(this.baseUrl + `api/twiliovoice/token?apikey=${this.apiKey}`);\r\n }\r\n\r\n GetVoiceMailUrl(contactStatusId: number, clientId: number, clientTypeId: number): Observable {\r\n return this.http.get(this.baseUrl + `api/twiliovoice/getUrl?apikey=${this.apiKey}&contactStatusId=${contactStatusId}&clientId=${clientId}&clientTypeId=${clientTypeId}`);\r\n }\r\n\r\n redirect(callSid: string, clientId: number): Observable {\r\n return this.http.get(this.baseUrl + `api/twiliovoice/redirecttomessage?apikey=${this.apiKey}&callSid=${callSid}&clientId=${clientId}`)\r\n }\r\n\r\n redirectFromTable(callSid: string, contactStatusId: number, clientId: number, clientTypeId: number): Observable {\r\n return this.http.get(this.baseUrl + `api/twiliovoice/redirectToMessageFromTable?apikey=${this.apiKey}&callSid=${callSid}&contactStatusId=${contactStatusId}&clientId=${clientId}&clientTypeId=${clientTypeId}`)\r\n }\r\n\r\n leaveRinglessVoicemail(clientId: number, contactId: number, method: number = 1): Observable {\r\n return this.http.get(this.baseUrl + `api/twiliovoice/ringlessVoicemail${method}?apikey=${this.apiKey}&clientId=${clientId}&contactId=${contactId}`)\r\n }\r\n\r\n leaveRinglessVoicemail_adj(clientId: number, contactId: number, sleepTime: number): Observable {\r\n return this.http.get(this.baseUrl + `api/twiliovoice/ringlessVoicemail5?apikey=${this.apiKey}&clientId=${clientId}&contactId=${contactId}&sleepTime=${sleepTime}`)\r\n }\r\n\r\n addOutboundPhoneNumberActivity(partialActivity: any): Observable {\r\n return this.http.post(this.baseUrl + `api/phonenumberactivity/addOutboundActivity?apikey=${this.apiKey}`, partialActivity)\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/voice.service.ts","module.exports = \"blockquote.popbq {\\r\\n margin: 0 15px;\\r\\n font-family: monospace;\\r\\n}\\r\\n\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/settings/settings-first-time/settings-first-time.component.css\n// module id = ./src/app/settings/settings-first-time/settings-first-time.component.css\n// module chunks = main","module.exports = \"
\\r\\n

First Time Setup

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/settings/settings-first-time/settings-first-time.component.html\n// module id = ./src/app/settings/settings-first-time/settings-first-time.component.html\n// module chunks = main","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ConfigService } from '../../services/config.service';\r\nimport { ClientPickerService } from '../../services/client-picker.service';\r\n\r\n@Component({\r\n selector: 'settings-first-time',\r\n templateUrl: './settings-first-time.component.html',\r\n styleUrls: ['./settings-first-time.component.css'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class SettingsFirstTimeComponent implements OnInit {\r\n setupText: string = \"\";\r\n\r\n constructor(private activeModal: NgbActiveModal, private configService: ConfigService, private clientPickerService: ClientPickerService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.clientPickerService.$clientRequestFinished.subscribe(() => {\r\n this.getSetupText();\r\n })\r\n }\r\n\r\n getSetupText() {\r\n this.configService.getConfig(\"Carbon.FirstTimeSetupText\", this.clientPickerService.selectedClientId).subscribe(text => {\r\n this.setupText = text;\r\n })\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/settings/settings-first-time/settings-first-time.component.ts","module.exports = \".input-group-text {\\r\\n cursor: pointer;\\r\\n background-color: rgba(0,0,0,.87);\\r\\n}\\r\\n\\r\\n.bg-light {\\r\\n background-color: rgba(250,250,250,1) !important;\\r\\n}\\r\\n\\r\\nbutton {\\r\\n background-color: rgba(0,0,0,.87);\\r\\n color: white;\\r\\n}\\r\\n\\r\\nbody {\\r\\n font-family: Arial, Helvetica, sans-serif;\\r\\n}\\r\\n\\r\\n* {\\r\\n -webkit-box-sizing: border-box;\\r\\n box-sizing: border-box;\\r\\n}\\r\\n\\r\\n.input-container {\\r\\n display: -ms-flexbox; /* IE10 */\\r\\n display: -webkit-box;\\r\\n display: flex;\\r\\n width: 100%;\\r\\n margin-bottom: 15px;\\r\\n}\\r\\n\\r\\n.icon {\\r\\n padding: 10px;\\r\\n background: dodgerblue;\\r\\n color: white;\\r\\n min-width: 50px;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.input-field {\\r\\n width: 100%;\\r\\n padding: 10px;\\r\\n outline: none;\\r\\n}\\r\\n\\r\\n.input-field:focus {\\r\\n border: 2px solid dodgerblue;\\r\\n }\\r\\n\\r\\n.templateToken{\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.templateToken:hover{\\r\\n background-color: lightgrey;\\r\\n}\\r\\n\\r\\n.helpLink {\\r\\n color: #0e5ba5;\\r\\n cursor: pointer;\\r\\n margin-left: 10px;\\r\\n font-size: 18px;\\r\\n}\\r\\n\\r\\n/*Set a style for the submit button \\r\\n.btn {\\r\\n background-color: dodgerblue;\\r\\n color: white;\\r\\n padding: 15px 20px;\\r\\n border: none;\\r\\n cursor: pointer;\\r\\n width: 100%;\\r\\n opacity: 0.9;\\r\\n}\\r\\n\\r\\n .btn:hover {\\r\\n opacity: 1;\\r\\n }*/\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/settings/settings.component.css\n// module id = ./src/app/settings/settings.component.css\n// module chunks = main","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

You can send your negative review details to multiple emails (separate email addresses with commas).

\\r\\n

*Ex) matt@example.com,jason@example.com

\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n

The email cannot be blank.

\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n

Follow-up Notifications

\\r\\n
\\r\\n
\\r\\n
    \\r\\n \\r\\n
  • \\r\\n Second Call Back\\r\\n \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n Third Call Back\\r\\n \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n Fourth Call Back\\r\\n \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n Fifth Call Back\\r\\n \\r\\n \\r\\n
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

SMS Template Responses

\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Name \\r\\n {{template.name}} \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Body \\r\\n {{template.bodyShort}}... \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Date Created \\r\\n {{template.dateCreated + 'Z' | date:'MMM d, y h:mm a'}} \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n

Please provide the name and title of the person that your review requests will reference.

\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n

Review Request Preview

*The [!Tokens!] will be replaced when the message is sent.

\\r\\n
\\r\\n

{{display}}

\\r\\n

Click Here: [!FeedbackURL!]

\\r\\n

Your opinion matters to me!\\\"

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n

*Message will be sent by both email and text if checkbox is selected.

\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n

Add Template Response

\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Tokens

\\r\\n
\\r\\n
\\r\\n

[!Contacts.FirstName!]

\\r\\n
\\r\\n
\\r\\n

[!Contacts.Email!]

\\r\\n
\\r\\n
\\r\\n

[!Contacts.MobilePhone!]

\\r\\n
\\r\\n
\\r\\n

Test Recipient:

\\r\\n \\r\\n

*Note: Test text will include tokens.
Real text will replace tokens with correct values.

\\r\\n

*Test recipient cannot be empty.

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

*Name and Body cannot be empty.

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n

Edit Template Response

\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Tokens

\\r\\n
\\r\\n
\\r\\n

[!Contacts.FirstName!]

\\r\\n
\\r\\n
\\r\\n

[!Contacts.Email!]

\\r\\n
\\r\\n
\\r\\n

[!Contacts.MobilePhone!]

\\r\\n
\\r\\n
\\r\\n

Test Recipient:

\\r\\n \\r\\n

*Note: Test text will include tokens.
Real text will replace tokens with correct values.

\\r\\n

*Test recipient cannot be empty.

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

*Name and Body cannot be empty.

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n

Delete Template Response

\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n

Are you sure you want to delete the template {{templateDeleteData.name}}?

\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/settings/settings.component.html\n// module id = ./src/app/settings/settings.component.html\n// module chunks = main","import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core';\r\nimport { UserService } from '../services/user.service';\r\nimport { ClientService } from '../services/client.service';\r\nimport { Subscription } from 'rxjs/Subscription';\r\nimport { ClientPickerService } from '../services/client-picker.service';\r\nimport { NotifyService } from '../services/notify.service';\r\nimport { Router } from '@angular/router';\r\nimport { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\r\nimport { SettingsFirstTimeComponent } from './settings-first-time/settings-first-time.component';\r\nimport { ClientSubscribedServices } from '../models/client-subscribed-services';\r\nimport { Observable } from 'rxjs';\r\nimport { SmsConversationService } from '../services/sms-conversation.service';\r\nimport { SmsService } from '../services/sms.service';\r\nimport { SpinnerOverlayService } from '../services/spinner-overlay.service';\r\nimport { ClientTypes } from '../models/client-types';\r\nimport { HelpDialogService } from '../services/help-dialog.service';\r\nimport { FileInputComponent } from '../file-input/file-input.component';\r\n\r\n@Component({\r\n selector: 'app-settings',\r\n templateUrl: './settings.component.html',\r\n styleUrls: ['./settings.component.css']\r\n})\r\nexport class SettingsComponent implements OnInit, OnDestroy{\r\n constructor(\r\n private router: Router,\r\n private notify: NotifyService,\r\n private userService: UserService,\r\n private clientService: ClientService,\r\n private clientPickerService: ClientPickerService,\r\n private modalService: NgbModal,\r\n private smsService: SmsService,\r\n private spinner: SpinnerOverlayService,\r\n private helpDialogService: HelpDialogService\r\n ) { }\r\n\r\n clientId: number = 0;\r\n clientTypeId: number = 0;\r\n clientUser: any = {};\r\n clientName: string = \"\";\r\n ownerEmail: string = \"\";\r\n validEmail: boolean = false;\r\n\r\n //input fields to customize text\r\n name: string = \"\";\r\n userType: any = \"\";\r\n introString: string = \"\";\r\n display: string = \"\";\r\n\r\n sendReviewConfig: boolean = false;\r\n hasReviewConfig: boolean = false;\r\n hasConfigEmail: boolean = false;\r\n hasConfigFeedback: boolean = false;\r\n configNotificationList: string = \"\";\r\n disabled: boolean = true;\r\n sendFacebookReviews: boolean = false;\r\n hasFacebookReviewConfig: boolean = false;\r\n\r\n subscription: Subscription;\r\n configNameEmail: string = 'Carbon.EmailNotificationList';\r\n configNameReview: string = 'Carbon.SendReviewRequestEmail';\r\n configFacebookReview: string = 'Carbon.UseFacebookReviews';\r\n configNameFeedback: string = 'Carbon.Custom';\r\n configNameFollowUp: string = 'Carbon.FollowUp';\r\n hasLeadService: boolean = false;\r\n hasInstantReviewsService: boolean = false;\r\n\r\n modalRef: NgbModalRef = null;\r\n\r\n smsResponseTemplates: any = null;\r\n displayedSmsTemplateColumns: any = ['name', 'body', 'dateCreated', 'delete'];\r\n templateEditData: any;\r\n templateDeleteData: any;\r\n addTemplateName: string = \"\";\r\n addTemplateBody: string = \"\";\r\n showAddTemplateValidation: boolean = false;\r\n editTemplateName: string = \"\";\r\n editTemplateBody: string = \"\";\r\n showEditTemplateValidation: boolean = false;\r\n sentTest: boolean = false;\r\n testRecipient: string = \"\";\r\n showRecipientValidation: boolean = false;\r\n\r\n fileList: File[] = [];\r\n editTemplateUrls: any[] = [];\r\n\r\n ngOnInit() {\r\n //this.router.navigate([{ outlets: { topbar: null } }]);\r\n this.subscription = this.clientPickerService.$clientId.subscribe(\r\n (clientId: number) => {\r\n if (clientId == 0) {\r\n return;\r\n }\r\n this.clientId = clientId;\r\n window['Appcues'].track('v1_settings');\r\n //this.GetOwnerEmail();\r\n this.GetCurrentUser();\r\n this.GetNotificationList();\r\n this.GetReviewRequestConfig();\r\n this.GetFollowUpConfig();\r\n this.PerformFirstTimeSetup(clientId);\r\n this.GetFacebookConfig();\r\n this.GetSmsResponseTemplates(clientId);\r\n }\r\n )\r\n this.clientPickerService.$clientRequestFinished.subscribe(\r\n (isDone: boolean) => {\r\n this.GetCustomFeedbackInputs();\r\n this.clientName = this.clientPickerService.selectedClient.name;\r\n this.clientTypeId = this.clientPickerService.selectedClient.clientTypeId;\r\n this.display = \"Hi [!Contacts.FirstName!] this is \" + this.clientName + \". How is my team doing?\";\r\n this.clientService.GetSubscribedServices(this.clientId).subscribe((services: number[]) => {\r\n this.hasLeadService = services.includes(ClientSubscribedServices.Leads);\r\n this.hasInstantReviewsService = services.includes(ClientSubscribedServices.InstantReviews);\r\n });\r\n }\r\n )\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n if (this.modalRef != null) {\r\n this.modalRef.close('ngOnDestroy');\r\n }\r\n }\r\n\r\n PerformFirstTimeSetup(clientId: number) {\r\n this.clientService.GetClientConfigs(\"Carbon.WentToSettings\", clientId).subscribe(response => {\r\n if (response != \"true\") {\r\n this.modalRef = this.modalService.open(SettingsFirstTimeComponent, { backdrop: 'static' });\r\n this.modalRef.result.then(reason => {\r\n this.modalRef = null;\r\n this.userService.getCurrentUser().subscribe(currentUser => {\r\n if (currentUser.clientId != 10) {\r\n this.SetClientWentToSettings(clientId, response == \"\");\r\n }\r\n })\r\n })\r\n }\r\n })\r\n }\r\n\r\n SetClientWentToSettings(clientId: number, addNewConfig: boolean) {\r\n if (addNewConfig) {\r\n this.clientService.AddClientConfig(\"true\", \"Carbon.WentToSettings\", clientId).subscribe(response => {\r\n console.log(\"Client went to settings\");\r\n })\r\n }\r\n else {\r\n let body = {\r\n clientId: clientId,\r\n name: \"Carbon.WentToSettings\",\r\n value: true,\r\n description: \"\"\r\n }\r\n this.clientService.UpdateClientConfig(body).subscribe(response => {\r\n console.log(\"Updated settings config\");\r\n })\r\n }\r\n }\r\n\r\n GetCurrentUser() {\r\n this.userService.getCurrentUser()\r\n .subscribe(response => {\r\n this.clientUser = response;\r\n //console.log(this.clientUser);\r\n })\r\n }\r\n\r\n GetOwnerEmail() {\r\n this.clientService.GetOwner(this.clientId)\r\n .subscribe(response => {\r\n //console.log(response);\r\n if (response) {\r\n this.ownerEmail = response.email;\r\n this.configNotificationList = response.email;\r\n }\r\n //console.log(\"notificationlist: \" + this.configNotificationList);\r\n //console.log(this.ownerEmail);\r\n }, error => {\r\n console.error(error);\r\n })\r\n }\r\n\r\n GetNotificationList() {\r\n this.clientService.GetClientConfigs(this.configNameEmail, this.clientId)\r\n .subscribe(response => {\r\n //console.log(\"get clientconfigs response: \" + response);\r\n if (response) {\r\n this.hasConfigEmail = true;\r\n this.configNotificationList = response;\r\n //console.log(this.configNotificationList);\r\n }\r\n //console.log(\"hasConfigEmail: \" + this.hasConfigEmail);\r\n }, error => {\r\n console.error(error);\r\n });\r\n }\r\n\r\n GetReviewRequestConfig() {\r\n this.clientService.GetClientConfigs(this.configNameReview, this.clientId)\r\n .subscribe(response => {\r\n console.log(\"get GetReviewRequestConfig response: \" + response);\r\n if (!response || response == 'true') {\r\n this.sendReviewConfig = true;\r\n if (!response) {\r\n console.log(\"no config\");\r\n } else {\r\n console.log(\"config == true\");\r\n this.hasReviewConfig = true;\r\n }\r\n }\r\n else {\r\n console.log(response);\r\n console.log(\"config == false\");\r\n this.hasReviewConfig = true;\r\n }\r\n }, error => {\r\n console.error(error);\r\n });\r\n }\r\n\r\n GetFacebookConfig() {\r\n this.clientService.GetClientConfigs(this.configFacebookReview, this.clientId)\r\n .subscribe(response => {\r\n if (response == 'true') {\r\n this.sendFacebookReviews = true;\r\n this.hasFacebookReviewConfig = true;\r\n }\r\n else {\r\n this.sendFacebookReviews = false;\r\n if (response) {\r\n //config is false\r\n this.hasFacebookReviewConfig = true;\r\n }\r\n }\r\n })\r\n }\r\n\r\n GetCustomFeedbackInputs() {\r\n this.clientService.GetClientConfigs(this.configNameFeedback, this.clientId, true)\r\n .subscribe(response => {\r\n //console.log(response);\r\n if (response) {\r\n let firstLine = response.split('\\n')[0];\r\n\r\n //Removes the front and back of the string\r\n let middle = firstLine.replace(\"Hi [!Contacts.FirstName!] this is \", \"\").replace(\". How is my team doing?\", \"\");\r\n //Removes the client name\r\n let nameAndType = middle.replace('of', \"\").replace(this.clientName, \"\");\r\n\r\n //Both\r\n if (nameAndType.split(',').length > 1) {\r\n let split = nameAndType.split(',');\r\n this.name = split[0].trim();\r\n this.userType = split[1].trim();\r\n }\r\n //UserType\r\n else if (nameAndType.startsWith(\"the\") && this.validUserType(nameAndType.replace('the ', ''))) {\r\n this.userType = nameAndType.replace('the ', '').trim();\r\n }\r\n //Name\r\n else if (nameAndType !== \"\"){\r\n this.name = nameAndType;\r\n }\r\n\r\n this.ddlChanged();\r\n\r\n this.hasConfigFeedback = true;\r\n //console.log(\"feedbackConfig: \" + response);\r\n this.introString = response;\r\n //console.log(this.configNotificationList);\r\n }\r\n }, error => {\r\n console.error(error);\r\n });\r\n }\r\n\r\n validUserType(userType) {\r\n let isValid: boolean;\r\n\r\n switch (userType.trim()) {\r\n case \"Owner\":\r\n case \"Manager\":\r\n case \"Asst Mgr\":\r\n case \"Developer\":\r\n case \"Franchisee\": isValid = true;\r\n break;\r\n case \"Senior DC\": isValid = this.clientTypeId == 4;\r\n break;\r\n default: isValid = false;\r\n }\r\n\r\n return isValid;\r\n }\r\n\r\n EnableInput() {\r\n this.disabled = false;\r\n }\r\n //email settings\r\n AddOrUpdateEmailConfig() {\r\n console.log(this.hasConfigEmail);\r\n console.log(this.configNotificationList);\r\n\r\n if (this.hasConfigEmail) {\r\n this.UpdateCarbonEmailNotificationConfig();\r\n }\r\n else {\r\n this.AddCarbonEmailNotificationConfig();\r\n }\r\n this.disabled = true;\r\n }\r\n\r\n AddCarbonEmailNotificationConfig() {\r\n if (this.configNotificationList == null || this.configNotificationList.trim() == \"\") {\r\n //cannot be blank\r\n this.validEmail = true;\r\n return;\r\n //default to owner email \r\n //this.configNotificationList = this.ownerEmail;\r\n }\r\n\r\n this.clientService.AddClientConfig(this.configNotificationList, this.configNameEmail, this.clientId)\r\n .subscribe(response => {\r\n //console.log(response);\r\n this.hasConfigEmail = true;\r\n this.validEmail = false;\r\n this.notify.success(\"Notification List Updated Successfully!\");\r\n }, error => {\r\n console.error(error);\r\n this.notify.error(\"Could Not Update Email List.\");\r\n });\r\n }\r\n\r\n UpdateCarbonEmailNotificationConfig() {\r\n\r\n let body = {\r\n clientId: this.clientId,\r\n name: this.configNameEmail,\r\n value: this.configNotificationList,\r\n description: \"\"\r\n }\r\n\r\n if (this.configNotificationList == null || this.configNotificationList.trim() == \"\") {\r\n //cannot be blank\r\n this.validEmail = true;\r\n return;\r\n //default to owner email \r\n //this.configNotificationList = this.ownerEmail;\r\n }\r\n\r\n this.clientService.UpdateClientConfig(body)\r\n .subscribe(response => {\r\n //console.log(response);\r\n this.notify.success(\"Notification List Updated Successfully!\");\r\n this.validEmail = false;\r\n }, error => {\r\n console.error(error);\r\n this.notify.error(\"Could Not Update Email List.\");\r\n });\r\n }\r\n\r\n ddlChanged() {\r\n this.name = this.name.trim();\r\n //this.display = \"Hi [!Contacts.FirstName!] this is \" + this.clientName + \". How is my team doing?\"\r\n this.display = \"Hi [!Contacts.FirstName!] this is \" + this.name + \", \" + this.userType + \" of \" + this.clientName + \". How is my team doing?\"\r\n if (this.name == \"\" && this.userType == \"\") {\r\n this.display = \"Hi [!Contacts.FirstName!] this is \" + this.clientName + \". How is my team doing?\"\r\n }\r\n\r\n else if (this.name == \"\") {\r\n this.display = \"Hi [!Contacts.FirstName!] this is the \" + this.userType + \" of \" + this.clientName + \". How is my team doing?\"\r\n }\r\n\r\n else if (this.userType == \"\") {\r\n this.display = \"Hi [!Contacts.FirstName!] this is \" + this.name + \" of \" + this.clientName + \". How is my team doing?\"\r\n }\r\n\r\n //console.log(this.display);\r\n this.introString = this.display + \"\\n\\nClick Here: [!FeedbackURL!]\\n\\nYour opinion matters to me!\";\r\n //console.log(this.introString);\r\n }\r\n\r\n newCallBackNumber: number = 0;\r\n newCallBackDuration: string = \"days\";\r\n secondCallBackNumber: number = 1;\r\n secondCallBackDuration: string = \"days\";\r\n thirdCallBackNumber: number = 3;\r\n thirdCallBackDuration: string = \"days\";\r\n fourthCallBackNumber: number = 4;\r\n fourthCallBackDuration: string = \"days\";\r\n fifthCallBackNumber: number = 7;\r\n fifthCallBackDuration: string = \"days\";\r\n followUpConfigString: string = \"new:0 days,second:1 days,third:3 days,fourth:4 days,fifth:7 days\";\r\n hasFollowUpConfig: boolean = false;\r\n\r\n GetFollowUpConfig() {\r\n this.clientService.GetClientConfigs(this.configNameFollowUp, this.clientId)\r\n .subscribe(resp => {\r\n if (resp) {\r\n this.hasFollowUpConfig = true;\r\n this.followUpConfigString = resp;\r\n //console.log(this.followUpConfigString);\r\n let callBacks = this.followUpConfigString.split(\",\");\r\n //console.log(\"callBacks: \", callBacks);\r\n for (let i = 0; i < callBacks.length; i++) {\r\n let each = callBacks[i].split(\":\")[1];\r\n //console.log(\"each: \", each);\r\n let count = each.split(\" \")[0];\r\n //console.log(\"count:\", count);\r\n let duration = each.split(\" \")[1];\r\n //console.log(\"duration:\", duration);\r\n\r\n if (i == 0) {\r\n this.newCallBackNumber = parseInt(count);\r\n this.newCallBackDuration = duration;\r\n }\r\n else if (i == 1) {\r\n this.secondCallBackNumber = parseInt(count);\r\n this.secondCallBackDuration = duration;\r\n }\r\n else if (i == 2) {\r\n this.thirdCallBackNumber = parseInt(count);\r\n this.thirdCallBackDuration = duration;\r\n }\r\n else if (i == 3) {\r\n this.fourthCallBackNumber = parseInt(count);\r\n this.fourthCallBackDuration = duration;\r\n }\r\n else if (i == 4) {\r\n this.fifthCallBackNumber = parseInt(count);\r\n this.fifthCallBackDuration = duration;\r\n }\r\n }\r\n }\r\n }, err => {\r\n console.error(\"Could not get follow up configs\");\r\n })\r\n }\r\n\r\n followUpDurationChanged() {\r\n console.log(\"new hours or days?: \", this.newCallBackDuration);\r\n console.log(\"second hours or days?: \", this.secondCallBackDuration);\r\n console.log(\"third hours or days?: \", this.thirdCallBackDuration);\r\n console.log(\"fourth hours or days?: \", this.fourthCallBackDuration);\r\n console.log(\"fifth hours or days?: \", this.fifthCallBackDuration);\r\n console.log(\"---------------------------------\");\r\n }\r\n\r\n followUpNumberChanged(value: any) {\r\n //console.log(\"number: \", value);\r\n console.log(\"new: \", this.newCallBackNumber);\r\n console.log(\"second: \", this.secondCallBackNumber);\r\n console.log(\"third: \", this.thirdCallBackNumber);\r\n console.log(\"fourth: \", this.fourthCallBackNumber);\r\n console.log(\"fifth: \", this.fifthCallBackNumber);\r\n console.log(\"---------------------------------\");\r\n }\r\n\r\n AddOrUpdateFollowUp() {\r\n this.followUpConfigString = \"new:\" + this.newCallBackNumber + \" \" + this.newCallBackDuration + \",\"\r\n + \"second:\" + this.secondCallBackNumber + \" \" + this.secondCallBackDuration + \",\"\r\n + \"third:\" + this.thirdCallBackNumber + \" \" + this.thirdCallBackDuration + \",\"\r\n + \"fourth:\" + this.fourthCallBackNumber + \" \" + this.fourthCallBackDuration + \",\"\r\n + \"fifth:\" + this.fifthCallBackNumber + \" \" + this.fifthCallBackDuration;\r\n\r\n console.log(this.followUpConfigString);\r\n\r\n if (this.hasFollowUpConfig) {\r\n this.UpdateFollowUpConfig();\r\n }\r\n else {\r\n this.AddFollowUpConfig();\r\n }\r\n }\r\n\r\n AddFollowUpConfig() {\r\n this.clientService.AddClientConfig(this.followUpConfigString, this.configNameFollowUp, this.clientId)\r\n .subscribe(response => {\r\n console.log(response);\r\n this.hasFollowUpConfig = true;\r\n this.notify.success(\"Follow-Up Notifications Settings Added Successfully!\");\r\n }, error => {\r\n console.error(error);\r\n this.notify.error(\"Could Not Update Follow-Up Notifications Settings.\");\r\n });\r\n }\r\n\r\n UpdateFollowUpConfig() {\r\n let body = {\r\n clientId: this.clientId,\r\n name: this.configNameFollowUp,\r\n value: this.followUpConfigString,\r\n description: \"\"\r\n }\r\n\r\n this.clientService.UpdateClientConfig(body)\r\n .subscribe(response => {\r\n //console.log(response);\r\n this.notify.success(\"Follow-Up Notifications Settings Updated Successfully!\");\r\n }, error => {\r\n console.error(error);\r\n this.notify.error(\"Could Not Update Follow-Up Notifications Settings.\");\r\n });\r\n }\r\n\r\n RestoreNotifications() {\r\n //RESET\r\n this.newCallBackNumber = 0;\r\n this.newCallBackDuration = \"days\";\r\n this.secondCallBackNumber = 1;\r\n this.secondCallBackDuration = \"days\";\r\n this.thirdCallBackNumber = 3;\r\n this.thirdCallBackDuration = \"days\";\r\n this.fourthCallBackNumber = 4;\r\n this.fourthCallBackDuration = \"days\";\r\n this.fifthCallBackNumber = 7;\r\n this.fifthCallBackDuration = \"days\";\r\n\r\n console.log(\"new: \", this.newCallBackNumber + \" \" + this.newCallBackDuration);\r\n console.log(\"second: \", this.secondCallBackNumber + \" \" + this.secondCallBackDuration);\r\n console.log(\"third: \", this.thirdCallBackNumber + \" \" + this.thirdCallBackDuration);\r\n console.log(\"fourth: \", this.fourthCallBackNumber + \" \" + this.fourthCallBackDuration);\r\n console.log(\"fifth: \", this.fifthCallBackNumber + \" \" + this.fifthCallBackDuration);\r\n }\r\n\r\n //custom feedback text\r\n AddOrUpdateFeedbackText() {\r\n //console.log(this.hasConfigFeedback);\r\n //console.log(this.configNotificationList);\r\n\r\n if (this.hasConfigFeedback) {\r\n this.UpdateCustomFeedbackTextConfig();\r\n }\r\n else {\r\n this.AddCustomFeedbackTextConfig();\r\n }\r\n this.disabled = true;\r\n }\r\n\r\n AddCustomFeedbackTextConfig() {\r\n //console.log(\"adding config\");\r\n this.clientService.AddClientConfig(this.introString, this.configNameFeedback, this.clientId)\r\n .subscribe(response => {\r\n //console.log(response);\r\n this.hasConfigFeedback = true;\r\n this.notify.success(\"Feedback Request Settings Updated Successfully!\");\r\n }, error => {\r\n console.error(error);\r\n this.notify.error(\"Could Not Update Feedback Request Settings.\");\r\n });\r\n }\r\n\r\n UpdateCustomFeedbackTextConfig() {\r\n\r\n let body = {\r\n clientId: this.clientId,\r\n name: this.configNameFeedback,\r\n value: this.introString,\r\n description: \"\"\r\n }\r\n\r\n this.clientService.UpdateClientConfig(body)\r\n .subscribe(response => {\r\n //console.log(response);\r\n this.notify.success(\"Feedback Request Settings Updated Successfully!\");\r\n }, error => {\r\n console.error(error);\r\n this.notify.error(\"Could Not Update Feedback Request Settings.\");\r\n });\r\n }\r\n\r\n AddOrUpdateReviewRequestConfig() {\r\n if (this.hasReviewConfig) {\r\n this.UpdateReviewRequestConfig();\r\n }\r\n else {\r\n this.AddReviewRequestConfig();\r\n }\r\n //this.disabled = true;\r\n }\r\n\r\n AddReviewRequestConfig() {\r\n this.clientService.AddClientConfig((this.sendReviewConfig).toString(), this.configNameReview, this.clientId)\r\n .subscribe(response => {\r\n console.log(response);\r\n this.hasReviewConfig = true;\r\n this.notify.success(\"Feedback Request Email Settings Updated Successfully!\");\r\n }, error => {\r\n console.error(error);\r\n this.notify.error(\"Could Not Update Feedback Request Email Settings.\");\r\n });\r\n }\r\n\r\n UpdateReviewRequestConfig() {\r\n let body = {\r\n clientId: this.clientId,\r\n name: this.configNameReview,\r\n value: this.sendReviewConfig,\r\n description: \"\"\r\n }\r\n\r\n this.clientService.UpdateClientConfig(body)\r\n .subscribe(response => {\r\n //console.log(response);\r\n this.notify.success(\"Feedback Request Email Settings Updated Successfully!\");\r\n }, error => {\r\n console.error(error);\r\n this.notify.error(\"Could Not Update Feedback Request Email Settings.\");\r\n });\r\n }\r\n\r\n AddOrUpdateFacebookReviews() {\r\n let addOrUpdateObservable: Observable = null;\r\n\r\n if (this.hasFacebookReviewConfig) {\r\n console.log(\"Updating Facebook Review Config: \", this.sendFacebookReviews);\r\n let body = {\r\n clientId: this.clientId,\r\n name: this.configFacebookReview,\r\n value: this.sendFacebookReviews,\r\n description: \"\"\r\n }\r\n\r\n addOrUpdateObservable = this.clientService.UpdateClientConfig(body);\r\n }\r\n else {\r\n console.log(\"Adding Facebook Review Config: \", this.sendFacebookReviews);\r\n addOrUpdateObservable = this.clientService.AddClientConfig(this.sendFacebookReviews.toString(), this.configFacebookReview, this.clientId);\r\n }\r\n\r\n if (addOrUpdateObservable !== null) {\r\n addOrUpdateObservable.subscribe(response => {\r\n console.log(\"Added/Updated Facebook Review Config: \", response);\r\n this.hasFacebookReviewConfig = true;\r\n this.notify.success(\"Facebook review settings updated successfully!\");\r\n }, error => {\r\n console.error(error);\r\n this.notify.error(\"Could Not Update Facebook Review Settings.\");\r\n });\r\n }\r\n }\r\n\r\n OpenAddTemplateModal = (content) => {\r\n this.testRecipient = this.clientUser.mobile;\r\n this.sentTest = false;\r\n this.editTemplateUrls = [];\r\n this.modalRef = this.modalService.open(content, { size: 'lg', backdrop: 'static' });\r\n }\r\n\r\n OpenEditTemplateModal = (content, data) => {\r\n this.testRecipient = this.clientUser.mobile;\r\n this.sentTest = false;\r\n this.templateEditData = data;\r\n //default input fields\r\n this.editTemplateName = data.name;\r\n this.editTemplateBody = data.body;\r\n this.editTemplateUrls = data.dripCampaignMediumTemplateUrls;\r\n this.modalRef = this.modalService.open(content, { size: 'lg', backdrop: 'static' });\r\n }\r\n\r\n OpenDeleteTemplateModal = (content, data) => {\r\n this.templateDeleteData = data;\r\n this.modalRef = this.modalService.open(content, { size: 'lg', backdrop: 'static' });\r\n }\r\n\r\n AddTokenToBody = (tokenText) => {\r\n this.addTemplateBody += (\" \" + tokenText);\r\n }\r\n\r\n AddTokenToEditBody = (tokenText) => {\r\n this.editTemplateBody += (\" \" + tokenText);\r\n }\r\n\r\n GetSmsResponseTemplates(clientId) {\r\n this.smsService.GetSmsResponseTemplates(clientId)\r\n .subscribe(response => {\r\n console.log(response);\r\n this.smsResponseTemplates = response;\r\n\r\n this.smsResponseTemplates = this.smsResponseTemplates.map(each => {\r\n each.bodyShort = each.body.substring(0, 20);\r\n return each;\r\n })\r\n }, error => {\r\n console.error(error);\r\n this.notify.error(\"Error Getting Sms Templates.\");\r\n });\r\n }\r\n\r\n CreateSmsResponseTemplate() {\r\n let clientId = this.clientId;\r\n let templateName = this.addTemplateName;\r\n let body = this.addTemplateBody;\r\n\r\n if (templateName.trim() == \"\" || body.trim() == \"\") {\r\n this.showAddTemplateValidation = true;\r\n return;\r\n }\r\n else {\r\n this.showAddTemplateValidation = false;\r\n }\r\n\r\n this.spinner.open();\r\n //this.smsService.CreateSmsResponseTemplate(clientId, templateName, body)\r\n this.smsService.CreateSmsResponseTemplateWithFiles(clientId, templateName, body, this.fileList)\r\n .subscribe(response => {\r\n this.spinner.close();\r\n this.notify.success(\"Sms Template Settings Updated Successfully!\");\r\n this.modalRef.close();\r\n //clear input fields\r\n this.addTemplateName = \"\";\r\n this.addTemplateBody = \"\";\r\n this.fileList = [];\r\n this.editTemplateUrls = [];\r\n //reload table\r\n this.GetSmsResponseTemplates(this.clientId);\r\n }, error => {\r\n this.spinner.close();\r\n console.error(error);\r\n this.notify.error(\"Could Not Add Sms Template Settings.\");\r\n this.modalRef.close();\r\n });\r\n }\r\n\r\n DeleteSmsTemplate(templateId) {\r\n this.spinner.open();\r\n this.smsService.DeleteSmsResponseTemplate(templateId)\r\n .subscribe(response => {\r\n this.spinner.close();\r\n this.notify.success(\"Sms Template Deleted Successfully!\");\r\n this.modalRef.close();\r\n //reload table\r\n this.GetSmsResponseTemplates(this.clientId);\r\n }, error => {\r\n this.spinner.close();\r\n console.error(error);\r\n this.notify.error(\"Could Not Delete Sms Template.\");\r\n this.modalRef.close();\r\n });\r\n }\r\n\r\n UpdateSmsResponseTemplate(templateId) {\r\n let clientId = this.clientId;\r\n let templateName = this.editTemplateName;\r\n let templateBody = this.editTemplateBody;\r\n\r\n if (templateName.trim() == \"\" || templateBody.trim() == \"\") {\r\n this.showEditTemplateValidation = true;\r\n return;\r\n }\r\n else {\r\n this.showEditTemplateValidation = false;\r\n }\r\n\r\n\r\n this.spinner.open();\r\n this.smsService.UpdateSmsResponseTemplateWithFiles(templateId, clientId, templateName, templateBody, this.fileList)\r\n .subscribe(response => {\r\n this.spinner.close();\r\n this.notify.success(\"Sms Template Settings Updated Successfully!\");\r\n this.modalRef.close();\r\n this.fileList = [];\r\n this.editTemplateUrls = [];\r\n //reload table\r\n this.GetSmsResponseTemplates(this.clientId);\r\n }, error => {\r\n this.spinner.close();\r\n console.error(error);\r\n this.notify.error(\"Could Not Update Sms Template Settings.\");\r\n });\r\n }\r\n\r\n SendSmsTest(action) {\r\n let clientId = this.clientId;\r\n\r\n let templateName = \"\";\r\n let body = \"\";\r\n\r\n if (action == \"add\") {\r\n templateName = this.addTemplateName;\r\n body = this.addTemplateBody;\r\n\r\n if (templateName.trim() == \"\" || body.trim() == \"\") {\r\n this.showAddTemplateValidation = true;\r\n return;\r\n }\r\n else if (this.testRecipient.trim() == \"\") {\r\n this.showRecipientValidation = true;\r\n return;\r\n }\r\n else {\r\n this.showRecipientValidation = false;\r\n this.showAddTemplateValidation = false;\r\n }\r\n }\r\n else if(action == \"edit\"){\r\n templateName = this.editTemplateName;\r\n body = this.editTemplateBody;\r\n\r\n if (templateName.trim() == \"\" || body.trim() == \"\") {\r\n this.showEditTemplateValidation = true;\r\n return;\r\n }\r\n else if (this.testRecipient.trim() == \"\") {\r\n this.showRecipientValidation = true;\r\n return;\r\n }\r\n else {\r\n this.showRecipientValidation = false;\r\n this.showEditTemplateValidation = false;\r\n }\r\n }\r\n\r\n let contactActivity = {\r\n contactId: 0,\r\n activityType: \"Carbon.OutboundSms\",\r\n activityDescription: body,\r\n clientUserId: this.userService.clientUserId\r\n }\r\n\r\n let smsParameters = {\r\n from: this.clientPickerService.clientPhoneNumber,\r\n to: this.testRecipient,\r\n body: body,\r\n clientId: clientId,\r\n contactActivity: contactActivity,\r\n createdById: this.userService.clientUserId\r\n }\r\n\r\n this.spinner.open();\r\n // this.smsService.SendMessageImpolitely(smsParameters)\r\n this.smsService.SendMMS(smsParameters, this.fileList, this.editTemplateUrls)\r\n .subscribe(response => {\r\n this.spinner.close();\r\n this.notify.success(\"Sms Template Test Sent Successfully!\");\r\n this.sentTest = true;\r\n },error => {\r\n this.spinner.close();\r\n console.error(error);\r\n })\r\n }\r\n\r\n SaveSettings() {\r\n if (this.hasInstantReviewsService == true) {\r\n this.AddOrUpdateEmailConfig();\r\n if (this.clientTypeId != ClientTypes.ModernAcupuncture) {\r\n if (this.introString.trim() != \"\") {\r\n this.AddOrUpdateFeedbackText();\r\n }\r\n }\r\n this.AddOrUpdateReviewRequestConfig();\r\n this.AddOrUpdateFacebookReviews();\r\n }\r\n else {\r\n console.log(\"no instant reviews service, will not update email config, feedback text, review request config, or facebook reviews\");\r\n }\r\n this.AddOrUpdateFollowUp();\r\n }\r\n\r\n openHelpLink() {\r\n this.helpDialogService.openDialog(\"Carbon Settings\");\r\n }\r\n\r\n addFile(file: File) {\r\n this.fileList.push(file);\r\n }\r\n\r\n removeFile(file: File) {\r\n this.fileList = this.fileList.filter(f => f.name !== file.name);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/settings/settings.component.ts","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/sms/sms-top/sms-top.component.css\n// module id = ./src/app/sms/sms-top/sms-top.component.css\n// module chunks = main","module.exports = \"\\r\\n {{ !checked ? 'Offline' : 'Online' }}\\r\\n\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/sms/sms-top/sms-top.component.html\n// module id = ./src/app/sms/sms-top/sms-top.component.html\n// module chunks = main","import { Component, EventEmitter } from '@angular/core';\r\nimport { NotifyService } from '../../services/notify.service';\r\nimport { ClientPickerService } from '../../services/client-picker.service';\r\nimport { environment } from '../../../environments/environment';\r\nimport { UserService } from '../../services/user.service';\r\nimport { ChatService } from '../../services/chat.service';\r\nimport { ClientService } from '../../services/client.service';\r\nimport { ClientSubscribedServices } from '../../models/client-subscribed-services';\r\nimport { Subscription } from 'rxjs/Subscription';\r\nimport * as Pubnub from \"pubnub\";\r\nimport {CryptoModule} from \"pubnub\";\r\n\r\n\r\n@Component({\r\n selector: 'app-sms-top',\r\n templateUrl: './sms-top.component.html',\r\n styleUrls: ['./sms-top.component.css']\r\n})\r\n\r\nexport class SmsTopComponent {\r\n currentUser: any;\r\n subscription: Subscription;\r\n hasChatService: boolean = false;\r\n clientId: number = 0;\r\n\r\n constructor(\r\n private userService: UserService,\r\n private notify: NotifyService,\r\n private clientPickerService: ClientPickerService,\r\n private chatService: ChatService,\r\n private clientService: ClientService\r\n ) {\r\n this.pubnubInstance = new Pubnub({\r\n publishKey: environment.pubnubPublishKey,\r\n subscribeKey: environment.pubnubSubscribeKey,\r\n cryptoModule: CryptoModule.aesCbcCryptoModule({\r\n cipherKey: environment.pubnubCipherKey,\r\n }),\r\n userId: `clientUserId_${this.userService.clientUserId}`,\r\n ssl: true\r\n });\r\n //get clientuser (guid)\r\n this.userService.getCurrentUser()\r\n .subscribe(response => {\r\n this.currentUser = response;\r\n //console.log(response);\r\n }, error => {\r\n console.error(error);\r\n });\r\n }\r\n checked: boolean = this.chatService.checked;\r\n status: string = \"\";\r\n pubnubInstance: Pubnub;\r\n //defaultInstance: any;\r\n\r\n ngOnInit() {\r\n //console.log(\"sms top initializing\");\r\n this.subscription = this.clientPickerService.$clientId.subscribe(\r\n (clientId: number) => {\r\n this.clientId = clientId;\r\n }\r\n )\r\n this.clientService.GetSubscribedServices(this.clientId).subscribe((services: number[]) => {\r\n this.hasChatService = services.includes(ClientSubscribedServices.WebChat);\r\n });\r\n }\r\n\r\n Toggled(event) {\r\n this.checked = event.checked;\r\n this.chatService.checked = this.checked;\r\n //console.log(this.checked);\r\n\r\n this.status = this.checked ? \"Online\" : \"Offline\";\r\n this.chatService.onlineStatus = this.checked ? \"Online\" : \"Offline\";\r\n console.log(this.status);\r\n\r\n //console.log(\"Setting up chat pubnub\");\r\n let chat_channel = \"chat_\" + this.clientPickerService.selectedClient.clientGuid;\r\n\r\n //publish to chat channel\r\n this.pubnubInstance.publish({\r\n message: {\r\n status: this.status,\r\n sender: this.currentUser.guid\r\n },\r\n channel: chat_channel\r\n },\r\n (status, response) => {\r\n if (status.error) {\r\n console.error(\"Pubnub Error: \", status);\r\n }\r\n else {\r\n console.log(\"Message Published w/ timetoken\", response.timetoken);\r\n }\r\n }\r\n );\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/sms/sms-top/sms-top.component.ts","module.exports = \"/*mobile-responsive*/\\r\\n.table-responsive {\\r\\n display: -webkit-box;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -webkit-box-orient: vertical;\\r\\n -webkit-box-direction: normal;\\r\\n -ms-flex-direction: column;\\r\\n flex-direction: column;\\r\\n /*max-height: 500px;*/\\r\\n min-width: 300px;\\r\\n}\\r\\n.mat-table {\\r\\n /*overflow: auto;*/\\r\\n /*max-height: 500px;*/\\r\\n margin-bottom: 10px;\\r\\n}\\r\\n.mobile-label {\\r\\n display: none;\\r\\n}\\r\\n.mat-cell {\\r\\n cursor: pointer;\\r\\n}\\r\\n.mat-cell.voiceCell {\\r\\n cursor: initial;\\r\\n}\\r\\n.mat-cell.automated{\\r\\n cursor: initial;\\r\\n}\\r\\n.conversationPreview {\\r\\n padding-left: 50px;\\r\\n display: inline-block\\r\\n}\\r\\n.callRecordingIcons {\\r\\n display: inline-block;\\r\\n min-width: 50px;\\r\\n}\\r\\n.callRecordingText {\\r\\n display: inline-block;\\r\\n}\\r\\n.nonContactPhoneNumber {\\r\\n color: #007bff;\\r\\n cursor: pointer;\\r\\n}\\r\\n.nonContactPhoneNumber:hover{\\r\\n text-decoration:underline;\\r\\n}\\r\\n@media(max-width: 600px) {\\r\\n .mobile-label {\\r\\n width: 80px;\\r\\n display: inline-block;\\r\\n font-weight: bold;\\r\\n }\\r\\n\\r\\n .mat-header-row {\\r\\n display: none;\\r\\n }\\r\\n\\r\\n .mat-row {\\r\\n -webkit-box-orient: vertical;\\r\\n -webkit-box-direction: normal;\\r\\n -ms-flex-direction: column;\\r\\n flex-direction: column;\\r\\n -webkit-box-align: center;\\r\\n -ms-flex-align: center;\\r\\n align-items: center;\\r\\n padding-top: 8px;\\r\\n padding-bottom: 8px;\\r\\n }\\r\\n\\r\\n .mat-header-row::after, .mat-row::after {\\r\\n content: none;\\r\\n }\\r\\n\\r\\n #reviewsCard {\\r\\n padding-top: 0px !important;\\r\\n }\\r\\n\\r\\n .conversationPreview {\\r\\n padding-left: initial;\\r\\n display: initial;\\r\\n }\\r\\n\\r\\n .callRecordingIcons {\\r\\n display: -webkit-box;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n width: 100%;\\r\\n -webkit-box-pack: center;\\r\\n -ms-flex-pack: center;\\r\\n justify-content: center;\\r\\n }\\r\\n .callRecordingText {\\r\\n text-align: center;\\r\\n }\\r\\n}\\r\\n.card {\\r\\n margin-top: 20px !important;\\r\\n margin-bottom: 70px !important;\\r\\n}\\r\\ni.phone {\\r\\n font-size: 24px;\\r\\n}\\r\\n.chat{\\r\\n color: blue;\\r\\n font-size: 24px;\\r\\n}\\r\\n.sms{\\r\\n color: green;\\r\\n font-size: 30px;\\r\\n}\\r\\n.callImg {\\r\\n height: 30px;\\r\\n width: 30px;\\r\\n cursor: pointer;\\r\\n}\\r\\n.flag-negative {\\r\\n color: red;\\r\\n cursor: pointer;\\r\\n}\\r\\n.flag-positive {\\r\\n color: green;\\r\\n cursor: pointer;\\r\\n}\\r\\n.automated {\\r\\n cursor: pointer !important;\\r\\n}\\r\\n.message {\\r\\n white-space: nowrap;\\r\\n -webkit-box-flex: 3;\\r\\n -ms-flex: 3;\\r\\n flex: 3;\\r\\n margin-right: 5px;\\r\\n}\\r\\n.sms-status {\\r\\n margin-left: -1.25em;\\r\\n margin-right: 0.25em;\\r\\n}\\r\\ni.fa-ellipsis-v::after {\\r\\n border: none;\\r\\n}\\r\\n.actions {\\r\\n -webkit-box-flex: 0.3;\\r\\n -ms-flex: 0.3;\\r\\n flex: 0.3;\\r\\n}\\r\\n.helpLink {\\r\\n color: #0e5ba5;\\r\\n cursor: pointer;\\r\\n /*vertical-align: super;*/\\r\\n margin-left: 10px;\\r\\n font-size: 18px;\\r\\n}\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/sms/sms.component.css\n// module id = ./src/app/sms/sms.component.css\n// module chunks = main","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Conversation With \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n {{conversation.conversationWith}} \\r\\n {{conversation.conversationWith}} \\r\\n {{conversation.conversationWith}}\\r\\n {{conversation.conversationWith}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Message \\r\\n \\r\\n
\\r\\n {{conversation.preview}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n Called: {{conversation.called}}\\r\\n \\r\\n 0\\\">({{conversation.minutes}} minutes)\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n Sent On \\r\\n \\r\\n \\r\\n {{conversation.dateCreated | date:'MMM d, y h:mm a'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Status \\r\\n \\r\\n \\r\\n \\r\\n {{conversation.membershipStatus}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Status \\r\\n \\r\\n {{conversation.activePlan}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Handled By\\r\\n \\r\\n {{conversation.handledBy}}
{{(conversation.handledDate ? conversation.handledDate + 'Z' : \\\"\\\") | date:'MMM d, y h:mm a'}}
\\r\\n {{conversation.touchedByName}}
{{(conversation.touchedDate ? conversation.touchedDate + 'Z' : \\\"\\\") | date:'MMM d, y h:mm a'}}
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n Actions \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/sms/sms.component.html\n// module id = ./src/app/sms/sms.component.html\n// module chunks = main","import { OnInit, Component, OnDestroy, ChangeDetectorRef, AfterViewInit, ViewChild } from '@angular/core';\r\nimport { Subscription } from 'rxjs/Subscription';\r\nimport { ClientPickerService } from '../services/client-picker.service';\r\nimport { SmsService } from '../services/sms.service';\r\nimport { SmsConversationService } from '../services/sms-conversation.service';\r\nimport { SmsActivity } from '../models/sms-activity';\r\nimport { Message } from '../models/message';\r\nimport { Router } from '@angular/router';\r\nimport { UserService } from '../services/user.service';\r\nimport { ChatService } from '../services/chat.service';\r\nimport { ChatMessageService } from '../services/chat-message.service';\r\nimport { CallRecordingService } from '../services/call-recording.service';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { CallRecordingComponent } from '../call-recording/call-recording.component';\r\nimport { SpinnerOverlayService } from '../services/spinner-overlay.service';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { forkJoin } from 'rxjs/observable/forkJoin';\r\nimport { TopBarService } from '../services/top-bar.service';\r\nimport { SmsTopComponent } from './sms-top/sms-top.component';\r\nimport { ConfigService } from '../services/config.service';\r\nimport { NotifyService } from '../services/notify.service';\r\nimport { MatPaginator, MatTableDataSource } from '@angular/material';\r\nimport { ClientService } from '../services/client.service';\r\nimport { HelpDialogService } from '../services/help-dialog.service';\r\nimport { ClientTypes } from '../models/client-types';\r\nimport { ClientSubscribedServices } from '../models/client-subscribed-services';\r\n\r\n\r\n@Component({\r\n selector: 'app-sms',\r\n templateUrl: './sms.component.html',\r\n styleUrls: ['./sms.component.css']\r\n})\r\nexport class SmsComponent implements OnInit, AfterViewInit, OnDestroy {\r\n @ViewChild(MatPaginator) paginator: MatPaginator\r\n constructor(\r\n private configService: ConfigService,\r\n private router: Router,\r\n private clientPickerService: ClientPickerService,\r\n private smsService: SmsService,\r\n private smsConversationService: SmsConversationService,\r\n private userService: UserService,\r\n private chatService: ChatService,\r\n private chatMessageService: ChatMessageService,\r\n private callRecordingService: CallRecordingService,\r\n private modalService: NgbModal,\r\n private changeDetectorRefs: ChangeDetectorRef,\r\n private spinnerService: SpinnerOverlayService,\r\n private topBarService: TopBarService,\r\n private notify: NotifyService,\r\n private clientService: ClientService,\r\n private helpDialogService: HelpDialogService,\r\n ) {\r\n }\r\n\r\n FilterValues = {\r\n Open: 0,\r\n All: 1,\r\n Closed: 2,\r\n Bulk: 3,\r\n SMS: 4,\r\n MissedCalls: 5\r\n }\r\n\r\n subscription: Subscription;\r\n conversationSubscription: Subscription;\r\n chatSubscription: Subscription;\r\n smsTable = [];\r\n chatTable = [];\r\n conversationTable = [];\r\n filteredConversationTable:any;// = [];\r\n filterValue = this.FilterValues.Open;\r\n displayConversationColumns = ['activePlan', 'conversationWith', 'message', 'sentOn', 'actions'];\r\n today: any = new Date();\r\n defaultShortCode: string;\r\n\r\n //smsTable parameters\r\n clientId: number = 0;\r\n clientTypeId: number = 0;\r\n isCarbonLite: boolean = false;\r\n endDate: any = new Date().setDate(this.today.getDate() + 2);\r\n startDate: any;\r\n\r\n ngOnInit() {\r\n this.subscription = this.clientPickerService.$clientRequestFinished.subscribe(\r\n (isDone: boolean) => {\r\n let clientTypeId = this.clientPickerService.selectedClient.clientTypeId;\r\n this.CheckIfCarbonLite(clientTypeId);\r\n this.subscription = this.clientPickerService.$clientId.subscribe(\r\n async (clientId: number) => {\r\n this.clientId = clientId;\r\n window['Appcues'].track('v1_conversations');\r\n this.clientService.GetDefaultShortCode(clientId).subscribe(resp => {\r\n //console.log(\"Default Short Code: \", resp);\r\n this.defaultShortCode = resp;\r\n })\r\n this.clientTypeId = this.clientPickerService.selectedClient.clientTypeId;\r\n console.log(this.clientTypeId);\r\n if (this.clientTypeId == ClientTypes.ALS || this.clientTypeId == ClientTypes.ModernAcupuncture) {\r\n this.displayConversationColumns = [/*'membership',*/ 'status', 'conversationWith', 'message', 'sentOn', 'actions'];\r\n }\r\n await this.GetCarbonStartDate(clientId);\r\n this.GetAllConversations(this.startDate, this.endDate, this.clientId, 0);\r\n }\r\n )\r\n }\r\n )\r\n this.conversationSubscription = this.smsConversationService.$conversation.subscribe((smsActivity: SmsActivity) => {\r\n let conversationKey: string;\r\n if (smsActivity.direction == 0) {\r\n conversationKey = `${smsActivity.callerId}${smsActivity.called}`\r\n }\r\n else {\r\n conversationKey = `${smsActivity.called}${smsActivity.callerId}`\r\n }\r\n //this.GetConversationData(this.startDate, this.endDate, this.clientId, conversationKey);\r\n this.GetSmsObservable(this.startDate, this.endDate, this.clientId, conversationKey).subscribe(smsTable => {\r\n let newSms = smsTable.filter(sms => sms.smsActivityId === smsActivity.smsActivityId)[0];\r\n let valueChanged = false;\r\n this.conversationTable = this.conversationTable.map(conversation => {\r\n if ((!conversation.isChat && !conversation.isVoice) && conversation.chatId === newSms.smsActivityId) {\r\n conversation = newSms;\r\n valueChanged = true;\r\n }\r\n return conversation;\r\n })\r\n if (!valueChanged) {\r\n this.conversationTable.push(newSms);\r\n }\r\n\r\n this.conversationTable.sort((a, b) => b.dateCreated.localeCompare(a.dateCreated));\r\n\r\n this.changeDetectorRefs.detectChanges();\r\n\r\n })\r\n })\r\n this.chatSubscription = this.chatService.$conversation.subscribe((message: Message) => {\r\n //this.GetConversationData(this.startDate, this.endDate, this.clientId);\r\n this.GetChatObservable(this.startDate, this.endDate, this.clientId).subscribe(chatTable => {\r\n let newChat = chatTable.filter(chat => chat.chatId === message.chatId)[0];\r\n let valueChanged = false;\r\n this.conversationTable = this.conversationTable.map(conversation => {\r\n if (conversation.isChat && conversation.chatId === newChat.chatId) {\r\n conversation = newChat;\r\n valueChanged = true;\r\n }\r\n return conversation;\r\n })\r\n if (!valueChanged) {\r\n this.conversationTable.push(newChat);\r\n }\r\n\r\n this.conversationTable.sort((a, b) => b.dateCreated.localeCompare(a.dateCreated));\r\n\r\n this.changeDetectorRefs.detectChanges();\r\n })\r\n })\r\n }\r\n\r\n ngAfterViewInit() {\r\n //let topBar = this.topBarService.setTopBar(SmsTopComponent);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n this.conversationSubscription.unsubscribe();\r\n this.chatSubscription.unsubscribe();\r\n //this.topBarService.removeTopBar();\r\n }\r\n\r\n CheckIfCarbonLite(clientTypeId) {\r\n this.spinnerService.open();\r\n this.configService.getClientTypeConfig(\"Carbon.Lite\", clientTypeId)\r\n .subscribe(response => {\r\n if (response) {\r\n this.isCarbonLite = (response.toLowerCase() == \"true\");;\r\n }\r\n this.spinnerService.close();\r\n }, error => {\r\n this.spinnerService.close();\r\n console.error(error);\r\n })\r\n }\r\n\r\n GetCarbonStartDate(clientId) {\r\n return new Promise((resolve, reject) => {\r\n this.clientService.GetCarbonServiceStartDate(clientId, ClientSubscribedServices.CarbonBase) //85 is the base carbon service\r\n .subscribe(response => {\r\n if (response == null) {\r\n return;\r\n }\r\n let beginDate = new Date(response.beginDate);\r\n //beginDate.setDate(beginDate.getDate() - 30); // 30 days before opening\r\n beginDate.setDate(beginDate.getDate()); // service start date\r\n this.startDate = beginDate;\r\n \r\n resolve(this.startDate);\r\n }, error => {\r\n console.error(error);\r\n reject(error);\r\n })\r\n })\r\n }\r\n\r\n ToIcn(calledIdwithoutPlus, phoneNumberId) {\r\n window.open(\"/incoming-call-notifier?phone=\" + calledIdwithoutPlus + \"&phoneNumberId=\" + phoneNumberId, \"_blank\", \"width=1000, height=750\");\r\n }\r\n\r\n FilterChange() {\r\n const value = this.filterValue;\r\n\r\n if (value === this.FilterValues.Open) {\r\n this.displayConversationColumns = ['activePlan', 'conversationWith', 'message', 'sentOn', 'actions'];\r\n if (this.clientTypeId == ClientTypes.ALS || this.clientTypeId == ClientTypes.ModernAcupuncture) {\r\n this.displayConversationColumns = [/*'membership',*/ 'status', 'conversationWith', 'message', 'sentOn', 'actions'];\r\n }\r\n }\r\n else {\r\n this.displayConversationColumns = ['activePlan','conversationWith', 'message', 'sentOn', 'handledBy', 'actions'];\r\n if (this.clientTypeId == ClientTypes.ALS || this.clientTypeId == ClientTypes.ModernAcupuncture) {\r\n this.displayConversationColumns = [/*'membership',*/'status', 'conversationWith', 'message', 'sentOn', 'handledBy', 'actions'];\r\n }\r\n }\r\n\r\n switch (value) {\r\n case this.FilterValues.Open:\r\n this.GetAllConversations(this.startDate, this.endDate, this.clientId, 0);\r\n break;\r\n case this.FilterValues.All:\r\n this.GetAllConversations(this.startDate, this.endDate, this.clientId, 1);\r\n break;\r\n case this.FilterValues.Closed:\r\n this.GetAllConversations(this.startDate, this.endDate, this.clientId, 2);\r\n break;\r\n case this.FilterValues.Bulk:\r\n this.GetBulkConversations();\r\n break;\r\n case this.FilterValues.SMS:\r\n this.GetSmsConversations();\r\n break;\r\n case this.FilterValues.MissedCalls:\r\n this.GetMissedCalls();\r\n break;\r\n default:\r\n console.error(`DDL Value not implemented: ${value}`);\r\n break;\r\n }\r\n //console.log(this.filteredConversationTable);\r\n }\r\n\r\n GetConversationData(start, end, clientId, smsConversationKey = \"\") {\r\n this.spinnerService.open();\r\n forkJoin(\r\n this.GetSmsObservable(start, end, clientId, smsConversationKey),\r\n this.GetChatObservable(start, end, clientId),\r\n this.GetPhoneActivityObservable(start, end, clientId)\r\n ).subscribe(merged => {\r\n var mergedTables = [].concat.apply([], merged).sort((a, b) => b.dateCreated.localeCompare(a.dateCreated));\r\n this.conversationTable = mergedTables;\r\n this.spinnerService.close();\r\n })\r\n }\r\n\r\n GetAllConversations(start: Date, end: Date, clientId: number, openStatus: number) {\r\n this.spinnerService.open();\r\n this.smsService.GetAllConversations(start, end, clientId, openStatus).subscribe(response => {\r\n let smsTable = response.sms.filter(sms => {\r\n // return (sms.called == this.clientPickerService.clientPhoneNumber || sms.callerId == this.clientPickerService.clientPhoneNumber) && sms.message != \"\";\r\n return sms.message != \"\";\r\n }).map(sms => {\r\n sms.preview = this.shortenMessage(sms.message);\r\n if (sms.membershipStatus == null || sms.membershipStatus.trim() == \"\") {\r\n sms.membershipStatus = \"Prospect\";\r\n }\r\n return sms;\r\n })\r\n\r\n let chatTable = response.chat.map(chat => {\r\n chat.isChat = true;\r\n chat.preview = this.shortenMessage(chat.message);\r\n return chat;\r\n })\r\n\r\n let phoneTable = response.phone.map(pna => {\r\n pna.isVoice = true;\r\n pna.preview = \"\";\r\n if (pna.membershipStatus == null || pna.membershipStatus.trim() == \"\") {\r\n pna.membershipStatus = \"Prospect\";\r\n }\r\n return pna;\r\n })\r\n\r\n var mergedTables = smsTable.concat(chatTable, phoneTable).sort((a, b) => b.dateCreated.localeCompare(a.dateCreated));\r\n this.conversationTable = mergedTables;\r\n //this.filteredConversationTable = mergedTables;\r\n this.filteredConversationTable = new MatTableDataSource(mergedTables);\r\n this.paginator.firstPage();\r\n this.filteredConversationTable.paginator = this.paginator;\r\n this.spinnerService.close();\r\n console.log(mergedTables);\r\n }, error => {\r\n this.spinnerService.close();\r\n console.error(\"Error getting conversations: \", error);\r\n this.notify.error(\"Error getting conversations\");\r\n })\r\n }\r\n\r\n GetBulkConversations() {\r\n this.spinnerService.open();\r\n this.smsService.GetBulkConversations(this.startDate, this.endDate, this.clientId).subscribe(response => {\r\n //console.log(\"Bulk Conversations: \", response);\r\n let smsList = response.filter(sms => sms.message != \"\").map(sms => {\r\n sms.preview = this.shortenMessage(sms.message);\r\n return sms;\r\n });\r\n //this.filteredConversationTable = smsList;\r\n this.filteredConversationTable = new MatTableDataSource(smsList);\r\n this.paginator.firstPage();\r\n this.filteredConversationTable.paginator = this.paginator;\r\n this.spinnerService.close();\r\n }, error => {\r\n this.spinnerService.close();\r\n console.error(\"Error getting bulk conversations: \", error);\r\n this.notify.error(\"Error getting conversations\");\r\n })\r\n }\r\n\r\n GetSmsConversations() {\r\n this.spinnerService.open();\r\n this.smsService.GetSmsConversations(this.startDate, this.endDate, this.clientId).subscribe(response => {\r\n //console.log(\"Sms Conversations Response: \", response);\r\n let smsList = response.filter(sms => sms.message != \"\").map(sms => {\r\n sms.preview = this.shortenMessage(sms.message);\r\n return sms;\r\n });\r\n //this.filteredConversationTable = smsList;\r\n this.filteredConversationTable = new MatTableDataSource(smsList);\r\n this.paginator.firstPage();\r\n this.filteredConversationTable.paginator = this.paginator;\r\n this.spinnerService.close();\r\n }, error => {\r\n this.spinnerService.close();\r\n console.error(\"Error getting sms conversations: \", error);\r\n this.notify.error(\"Error getting conversations\");\r\n\r\n })\r\n }\r\n\r\n GetMissedCalls() {\r\n this.spinnerService.open();\r\n this.callRecordingService.GetMissedCalls(this.startDate, this.clientId).subscribe(response => {\r\n //console.log(\"Missed Calls Response: \", response);\r\n let missedCalls = response.map(pna => {\r\n pna.isVoice = true;\r\n pna.preview = \"\";\r\n return pna;\r\n });\r\n //this.filteredConversationTable = missedCalls;\r\n this.filteredConversationTable = new MatTableDataSource(missedCalls);\r\n this.paginator.firstPage();\r\n this.filteredConversationTable.paginator = this.paginator;\r\n this.spinnerService.close();\r\n }, error => {\r\n this.spinnerService.close();\r\n console.error(\"Error getting missed calls: \", error);\r\n this.notify.error(\"Error getting conversations\");\r\n })\r\n }\r\n\r\n shortenMessage(message: string, maxLength: number = 100): string {\r\n if (message) {\r\n if (message.length > maxLength) {\r\n return message.substring(0, maxLength) + \"...\";\r\n }\r\n else {\r\n return message\r\n }\r\n }\r\n return \"\";\r\n }\r\n\r\n GetSmsObservable(start, end, clientId, conversationKey = \"\"): Observable {\r\n return this.smsService.GetSmsDashboard(start, end, clientId)\r\n .map(response => {\r\n let smsTable = response.filter(sms => {\r\n return (sms.called == this.clientPickerService.clientPhoneNumber || sms.callerId == this.clientPickerService.clientPhoneNumber) && sms.message != \"\"\r\n });\r\n\r\n smsTable = smsTable.map(sms => {\r\n if (sms.message) {\r\n if (sms.message.length > 100) {\r\n sms.preview = sms.message.substring(0, 100) + \"...\";\r\n }\r\n else {\r\n sms.preview = sms.message;\r\n }\r\n }\r\n\r\n if (conversationKey !== \"\" && sms.conversationKey === conversationKey) {\r\n sms.read = 1;\r\n }\r\n\r\n return sms;\r\n })\r\n\r\n return smsTable;\r\n },\r\n error => {\r\n console.error(\"Error getting sms data: \", error);\r\n })\r\n }\r\n\r\n GetChatObservable(start, end, clientId): Observable {\r\n return this.chatService.GetChatDashboard(start, end, clientId)\r\n .map(response => {\r\n let chatTable = response.map(chat => {\r\n chat.isChat = true;\r\n if (chat.message) {\r\n if (chat.message.length > 100) {\r\n chat.preview = chat.message.substring(0, 100) + \"...\";\r\n }\r\n else {\r\n chat.preview = chat.message;\r\n }\r\n }\r\n return chat;\r\n });\r\n\r\n return chatTable;\r\n },\r\n error => {\r\n console.error(\"Error getting chat data: \", error);\r\n })\r\n }\r\n\r\n GetPhoneActivityObservable(start, end, clientId): Observable {\r\n return this.callRecordingService.GetPhoneActivityDashboard(start, end, clientId)\r\n .map(response => {\r\n let phoneTable = response.map(pna => {\r\n pna.isVoice = true;\r\n pna.preview = \"\";\r\n return pna;\r\n });\r\n\r\n return phoneTable;\r\n }, error => {\r\n console.error(\"Error getting phone activity: \", error);\r\n })\r\n }\r\n\r\n /*\r\n GetSmsData = (start, end, clientId, conversationKey = \"\") => {\r\n this.smsService.GetSmsDashboard(start, end, clientId)\r\n .subscribe(response => {\r\n response = response.filter(sms => sms.called == this.clientPickerService.clientPhoneNumber || sms.callerId == this.clientPickerService.clientPhoneNumber);\r\n //console.log(\"smsData: \", response);\r\n this.smsTable = response.filter(function (data) {\r\n\r\n return data.message != \"\";\r\n });\r\n \r\n for (var i = 0; i < this.smsTable.length; i++) {\r\n if (this.smsTable[i].message) {\r\n if (this.smsTable[i].message.length > 100) {\r\n this.smsTable[i].preview = this.smsTable[i].message.substring(0, 100) + \"...\";\r\n }\r\n else {\r\n this.smsTable[i].preview = this.smsTable[i].message;\r\n }\r\n }\r\n\r\n if (conversationKey !== \"\" && this.smsTable[i].conversationKey === conversationKey) {\r\n this.smsTable[i].read = 1;\r\n }\r\n }\r\n this.GetChatData(this.startDate, this.endDate, this.clientId, this.smsTable);\r\n },\r\n error => {\r\n console.error(error);\r\n })\r\n }\r\n\r\n GetChatData = (start, end, clientId, smsTable) => {\r\n //console.log(\"getting chat data\");\r\n this.chatService.GetChatDashboard(start, end, clientId)\r\n .subscribe(response => {\r\n //console.log(\"chatData:\", response);\r\n //console.log(smsTable);\r\n this.chatTable = response;\r\n let convoTable = smsTable;\r\n for (var i = 0; i < response.length; i++) {\r\n response[i].isChat = true;\r\n convoTable.push(response[i]);\r\n }\r\n convoTable.sort((a, b) => b.dateCreated.localeCompare(a.dateCreated));\r\n //console.log(this.conversationTable);\r\n\r\n for (var i = 0; i < convoTable.length; i++) {\r\n if (convoTable[i].message) {\r\n if (convoTable[i].message.length > 100) {\r\n convoTable[i].preview = convoTable[i].message.substring(0, 100) + \"...\";\r\n }\r\n else {\r\n convoTable[i].preview = convoTable[i].message;\r\n }\r\n }\r\n }\r\n\r\n this.GetPhoneActivityData(this.startDate, this.endDate, this.clientId, convoTable);\r\n },\r\n error => {\r\n console.error(error);\r\n })\r\n }\r\n\r\n GetPhoneActivityData(start, end, clientId, convoTable) {\r\n this.callRecordingService.GetPhoneActivityDashboard(start, end, clientId)\r\n .subscribe(response => {\r\n //console.log(response);\r\n this.conversationTable = convoTable\r\n for (let i = 0; i < response.length; i++) {\r\n response[i].isVoice = true;\r\n response[i].preview = \"\";\r\n this.conversationTable.push(response[i]);\r\n }\r\n this.conversationTable.sort((a, b) => b.dateCreated.localeCompare(a.dateCreated));\r\n \r\n }, error => {\r\n console.error(\"Error getting phone activity: \", error);\r\n })\r\n }\r\n */\r\n\r\n async OpenConversationDialog(sms) {\r\n if (sms.hasOwnProperty(\"isVoice\")) {\r\n return;\r\n }\r\n if (!this.userService.isOTTUser) {\r\n sms.read = 1;\r\n //this.smsService.unreadSmsCount -= 1;\r\n //this.smsService.unreadConversationCount -= 1;\r\n }\r\n\r\n //console.log(\"clicked this sms: \", sms);\r\n if (sms.hasOwnProperty(\"isChat\")) {\r\n //console.log(\"has property isChat\");\r\n //get channel of clicked sms\r\n //get contact guid and clientguid\r\n let clientGuid = this.clientPickerService.selectedClient.clientGuid;\r\n let contactGuid = sms.contactGuid;\r\n //let channelName = contactGuid + \"|\" + clientGuid;\r\n let channelName = \"chat_\" + sms.chatId;\r\n //console.log(\"channelName: \", channelName);\r\n let channels = [];\r\n\r\n this.chatMessageService.GetChannelByName(channelName)\r\n .subscribe(re => {\r\n //get channel by name\r\n //console.log(re);\r\n if (re) {\r\n channels = this.chatMessageService.channels.filter(function (data) {\r\n return data.friendlyName == re.friendly_name;\r\n })\r\n //console.log(\"got channel from service array: \", channels[0].channel);\r\n }\r\n else {\r\n //no channel\r\n channels = null;\r\n }\r\n //get chat conversation\r\n this.chatService.GetConversation(sms.chatId)\r\n .subscribe(response => {\r\n console.log(response);\r\n //update chat messages (read) where chatid = above chatid\r\n if (!this.userService.isOTTUser) {\r\n this.chatService.UpdateChatToRead(sms.chatId)\r\n .subscribe(resp => {\r\n console.log(resp);\r\n if (channels) {\r\n if (channels.length > 0) {\r\n this.chatService.OpenDialog(sms, response, channels[0].channel)\r\n }\r\n else {\r\n this.chatService.OpenDialog(sms, response, null)\r\n }\r\n }\r\n else {\r\n this.chatService.OpenDialog(sms, response, null)\r\n }\r\n },\r\n error => {\r\n console.error(error);\r\n })\r\n }\r\n else {\r\n console.log(\"channels: \", channels);\r\n if (channels) {\r\n if (channels.length > 0) {\r\n this.chatService.OpenDialog(sms, response, channels[0].channel)\r\n }\r\n else {\r\n this.chatService.OpenDialog(sms, response, null)\r\n }\r\n }\r\n else {\r\n this.chatService.OpenDialog(sms, response, null)\r\n }\r\n }\r\n },\r\n error => {\r\n console.error(error);\r\n })\r\n\r\n }, error => {\r\n console.error(error);\r\n });\r\n }\r\n else {\r\n //this.smsService.GetSMSNumber(this.clientPickerService.selectedClientId)\r\n // .subscribe(response => {\r\n // let clientPhoneNumber = response;\r\n //console.log(sms);\r\n if (sms.called === this.defaultShortCode || sms.callerId === this.defaultShortCode) {\r\n if (!this.userService.isOTTUser) {\r\n let updateParameters = {\r\n readByClientUserId: this.userService.clientUserId,\r\n smsActivityIds: [sms.smsActivityId]\r\n }\r\n //console.log(updateParameters);\r\n this.smsService.MarkAsRead(updateParameters)\r\n .subscribe(response => {\r\n //console.log(response);\r\n }, error => {\r\n console.error(error);\r\n })\r\n }\r\n\r\n if (sms.contactGuid !== null && sms.contactGuid.trim() !== \"\") {\r\n this.router.navigate(['/contacts'], { queryParams: { contactGuid: sms.contactGuid } });\r\n }\r\n else {\r\n var contactPhone = sms.direction == 0 ? sms.callerId : sms.called;\r\n var phoneId = sms.direction == 0 ? sms.pPhoneNumberId : sms.p2PhoneNumberId;\r\n this.ToIcn(contactPhone, phoneId);\r\n }\r\n }\r\n var dialogRef = await this.smsConversationService.openFromPage(sms.cContactId, sms.conversationWith, \"\", sms.direction == 0 ? sms.callerId : sms.called, sms.direction == 0 ? sms.called : sms.callerId, sms.smSpermission, sms.clientId);\r\n if (dialogRef != undefined) {\r\n dialogRef.onClose.subscribe(reason => {\r\n console.log(\"Dialog On Close in sms.component.ts: \", reason);\r\n if (reason == \"Conversation Closed\") {\r\n this.FilterChange();\r\n this.smsService.unreadConversationCount -= 1;\r\n }\r\n if (reason == \"Conversation Reopened\") {\r\n this.FilterChange();\r\n this.smsService.unreadConversationCount += 1;\r\n }\r\n })\r\n }\r\n }\r\n }\r\n\r\n closeConversation(conversation) {\r\n const clientUserId = this.userService.clientUserId;\r\n let conversationClose = null;\r\n\r\n // if phone\r\n if (conversation.isVoice) {\r\n conversationClose = this.callRecordingService.CloseConversation(conversation.phoneNumberActivityId, clientUserId)\r\n }\r\n // if sms\r\n else if (!conversation.isChat) {\r\n conversationClose = this.smsService.CloseSmsConversation(conversation.smsActivityId, clientUserId)\r\n }\r\n\r\n if (conversationClose !== null) {\r\n conversationClose.subscribe(response => {\r\n this.FilterChange();\r\n this.smsService.unreadConversationCount -= 1;\r\n })\r\n }\r\n }\r\n\r\n reopenConversation(conversation) {\r\n const clientUserId = this.userService.clientUserId;\r\n let conversationReopen = null;\r\n\r\n // if phone\r\n if (conversation.isVoice) {\r\n conversationReopen = this.callRecordingService.ReopenConversation(conversation.phoneNumberActivityId, clientUserId)\r\n }\r\n // if sms\r\n else if (!conversation.isChat) {\r\n conversationReopen = this.smsService.ReopenConversation(conversation.smsActivityId, clientUserId)\r\n }\r\n\r\n if (conversationReopen !== null) {\r\n conversationReopen.subscribe(response => {\r\n this.FilterChange();\r\n this.smsService.unreadConversationCount += 1;\r\n })\r\n }\r\n }\r\n\r\n toggleDropdown(dropdown) {\r\n dropdown.toggle();\r\n }\r\n \r\n openAudio(recordingUrl, title, phoneNumberActivity) {\r\n const modalRef = this.modalService.open(CallRecordingComponent);\r\n const componentInstance = modalRef.componentInstance;\r\n componentInstance.recordingUrl = recordingUrl;\r\n componentInstance.title = title;\r\n componentInstance.phoneNumberActivityId = phoneNumberActivity.phoneNumberActivityId;\r\n componentInstance.flaggedCall = phoneNumberActivity.flaggedCall;\r\n componentInstance.callFlagged.subscribe((flaggedCall) => {\r\n this.conversationTable = this.conversationTable.map(conversation => {\r\n if (conversation.isVoice && conversation.phoneNumberActivityId === flaggedCall.phoneNumberActivityId) {\r\n conversation.flaggedCall = flaggedCall;\r\n }\r\n\r\n return conversation;\r\n })\r\n \r\n this.changeDetectorRefs.detectChanges();\r\n });\r\n componentInstance.callUnflagged.subscribe(pnaId => {\r\n this.conversationTable = this.conversationTable.map(conversation => {\r\n if (conversation.isVoice && conversation.phoneNumberActivityId === pnaId) {\r\n conversation.flaggedBy = null;\r\n conversation.flaggedCall = null;\r\n conversation.flaggedCalls = [];\r\n }\r\n\r\n return conversation;\r\n })\r\n this.changeDetectorRefs.detectChanges();\r\n })\r\n return componentInstance;\r\n }\r\n\r\n openFlag(conversation) {\r\n let title = \"\";\r\n let recordingUrl = \"\";\r\n\r\n if (conversation.recordingUrl) {\r\n title = \"Voicemail\";\r\n recordingUrl = conversation.recordingUrl;\r\n }\r\n else if (conversation.callRecordingUrl) {\r\n title = \"Call Recording\";\r\n recordingUrl = conversation.callRecordingUrl;\r\n }\r\n\r\n var audioModal = this.openAudio(recordingUrl, title, conversation);\r\n audioModal.openFlagCallModal();\r\n\r\n }\r\n\r\n getCallDuration(phoneNumberActivity): string {\r\n let minutes = (phoneNumberActivity.recordingDuration / 60).toFixed(0);\r\n let seconds = phoneNumberActivity.recordingDuration % 60;\r\n let recordingDurationString = minutes + \":\" + (seconds < 10 ? '0' + seconds : seconds);\r\n \r\n if (phoneNumberActivity.recordingUrl) {\r\n return `Recording Duration: ${recordingDurationString}`;\r\n }\r\n else if (phoneNumberActivity.callRecordingUrl && !phoneNumberActivity.recordingUrl) {\r\n return `Call Recording Duration: ${recordingDurationString}`;\r\n }\r\n else if (!phoneNumberActivity.callRecordingUrl && !phoneNumberActivity.recordingUrl) {\r\n if (phoneNumberActivity.minutes + phoneNumberActivity.seconds > 0) {\r\n return \"Call Duration: \" + phoneNumberActivity.minutes + ':' + (phoneNumberActivity.seconds < 10 ? '0' + phoneNumberActivity.seconds : phoneNumberActivity.seconds);\r\n }\r\n }\r\n }\r\n\r\n openHelpLink() {\r\n //window.open('https://advantage.overthetop.com/support/?helptopic=Updated%20Conversations%20View', '_blank');\r\n this.helpDialogService.openDialog(\"Carbon Conversations\");\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/sms/sms.component.ts","module.exports = \".modelessDialog {\\r\\n position: fixed;\\r\\n -webkit-transform: translate(-50%, -50%);\\r\\n transform: translate(-50%, -50%);\\r\\n z-index: 9999 !important;\\r\\n background: rgba(255, 255, 255, 1);\\r\\n pointer-events: auto;\\r\\n -webkit-box-shadow: 10px 10px 15px -3px rgba(0,0,0,0.75);\\r\\n box-shadow: 10px 10px 15px -3px rgba(0,0,0,0.75);\\r\\n max-width: 262.4px;\\r\\n /* max-height: 380px; */\\r\\n /* max-height: 75%; */\\r\\n}\\r\\n\\r\\n.dialog-backdrop {\\r\\n position: fixed;\\r\\n top: 0;\\r\\n left: 0;\\r\\n width: 100%;\\r\\n height: 100%;\\r\\n pointer-events: none;\\r\\n z-index: 2;\\r\\n}\\r\\n\\r\\ni {\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.inherit-cursor {\\r\\n cursor: inherit;\\r\\n}\\r\\n\\r\\nbutton:hover{\\r\\n background-color: black;\\r\\n color: white;\\r\\n}\\r\\n\\r\\ntextarea {\\r\\n resize: none;\\r\\n border-radius: 5px;\\r\\n}\\r\\n\\r\\nblockquote {\\r\\n margin: 0px 20px 0px 20px; /*top right bottom left*/\\r\\n max-width: 100%;\\r\\n}\\r\\n\\r\\n.modal-header{\\r\\n background-color: black;\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.modal-body {\\r\\n overflow: scroll;\\r\\n font-size: 0.8em;\\r\\n width: auto;\\r\\n height: auto;\\r\\n /* min-height: 100px; */\\r\\n /* max-height: 460px; */\\r\\n /* max-height: 150px; */\\r\\n max-height: 300px;\\r\\n /*scrollbar*/\\r\\n\\r\\n}\\r\\n\\r\\n.modal-footer {\\r\\n -webkit-box-pack: start !important;\\r\\n -ms-flex-pack: start !important;\\r\\n justify-content: flex-start !important;\\r\\n}\\r\\n\\r\\np.us, p.them, .us, .them {\\r\\n margin: 0 -20px 0.5em;\\r\\n border-radius: 1em;\\r\\n padding: 0.5em 1em;\\r\\n background: #e5e5ea;\\r\\n max-width: 75%;\\r\\n clear: both;\\r\\n position: relative;\\r\\n overflow-wrap: break-word;\\r\\n}\\r\\n\\r\\np.them, .them {\\r\\n float: left;\\r\\n}\\r\\n\\r\\np.them::after, .them::after {\\r\\n content: \\\"\\\";\\r\\n position: absolute;\\r\\n left: -0.05em;\\r\\n bottom: 0;\\r\\n width: 0.5em;\\r\\n height: 1em;\\r\\n border-right: 0.5em solid #e5e5ea;\\r\\n border-bottom-right-radius: 1em 0.5em;\\r\\n }\\r\\n\\r\\np.us, .us {\\r\\n float: right;\\r\\n background-color: #1289fe;\\r\\n color: white;\\r\\n}\\r\\n\\r\\np.us::after, .us::after {\\r\\n content: \\\"\\\";\\r\\n position: absolute;\\r\\n right: -0.05em;\\r\\n bottom: 0;\\r\\n width: 0.5em;\\r\\n height: 1em;\\r\\n border-left: 0.5em solid #1289fe;\\r\\n border-bottom-left-radius: 1em 0.5em;\\r\\n }\\r\\n\\r\\np.usDetails, .usMeta {\\r\\n font-size: .7em;\\r\\n float: right;\\r\\n clear: both;\\r\\n margin-bottom: 0;\\r\\n margin-right: -20px\\r\\n}\\r\\n\\r\\np.themDetails, .themMeta {\\r\\n font-size: .7em;\\r\\n float: left;\\r\\n clear: both;\\r\\n margin-bottom: 0;\\r\\n margin-left: -20px\\r\\n}\\r\\n\\r\\n.closedByInfo {\\r\\n font-size: .7em;\\r\\n clear: both;\\r\\n margin-bottom: 0;\\r\\n text-align: center;\\r\\n color: red;\\r\\n border-top: 1px solid red;\\r\\n}\\r\\n\\r\\np.smsStatus {\\r\\n font-size: .85em;\\r\\n}\\r\\n\\r\\n.sid-container {\\r\\n text-align: center;\\r\\n font-size: 1.25em;\\r\\n overflow: auto;\\r\\n padding-top: 2em;\\r\\n}\\r\\n\\r\\n.messageTextarea {\\r\\n min-height: 2em;\\r\\n max-height: 5em;\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\nimg {\\r\\n max-width: 100%;\\r\\n}\\r\\n\\r\\n.attachmentLink {\\r\\n color: white;\\r\\n}\\r\\n\\r\\n#fileInput {\\r\\n border: 0;\\r\\n clip: rect(0, 0, 0, 0);\\r\\n height: 1px;\\r\\n overflow: hidden;\\r\\n padding: 0;\\r\\n position: absolute !important;\\r\\n white-space: nowrap;\\r\\n width: 1px;\\r\\n}\\r\\n\\r\\n.helpLink {\\r\\n color: #0e5ba5;\\r\\n cursor: pointer;\\r\\n margin-left: 10px;\\r\\n font-size: 18px;\\r\\n}\\r\\n\\r\\n.characterCount {\\r\\n display: -webkit-box;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -webkit-box-pack: end;\\r\\n -ms-flex-pack: end;\\r\\n justify-content: flex-end;\\r\\n font-size: 0.8em;\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/sms/two-way/two-way.component.css\n// module id = ./src/app/sms/two-way/two-way.component.css\n// module chunks = main","module.exports = \"
\\r\\n
\\r\\n
\\r\\n

\\r\\n \\r\\n {{contactFirstName}} {{contactLastName}}\\r\\n \\r\\n \\r\\n {{phoneNumber}}\\r\\n \\r\\n

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

{{message.dateCreated | date:'MMM d, y h:mm a'}}

\\r\\n

{{message.message}}

\\r\\n

\\r\\n {{message.status | smsStatus}}\\r\\n

\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n

Closed by {{message.smsActivityHandled.clientUser.firstName}} {{message.smsActivityHandled.clientUser.lastName}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n via Text\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n

Message SID

\\r\\n \\r\\n
\\r\\n
\\r\\n

{{selectedSid}}

\\r\\n
\\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/sms/two-way/two-way.component.html\n// module id = ./src/app/sms/two-way/two-way.component.html\n// module chunks = main","import { Input, Component, Output, EventEmitter, ViewChild, ElementRef } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ClientPickerService } from '../../services/client-picker.service';\r\nimport { Subscription } from 'rxjs/Subscription';\r\nimport { SmsService } from '../../services/sms.service';\r\nimport { UserService } from '../../services/user.service';\r\nimport { ContactService } from '../../services/contact.service';\r\nimport { ConfigService } from '../../services/config.service';\r\nimport { SpinnerOverlayService } from '../../services/spinner-overlay.service';\r\nimport { LeadActivityTypes } from '../../models/lead-activity-types';\r\nimport { ClientService } from '../../services/client.service';\r\nimport { ClientSubscribedServices } from '../../models/client-subscribed-services';\r\nimport { HelpDialogService } from '../../services/help-dialog.service';\r\nimport { NotifyService } from '../../services/notify.service';\r\nimport { SmsPermissionStatus } from '../../models/permission-statuses';\r\n\r\n@Component({\r\n selector: 'app-two-way',\r\n templateUrl: './two-way.component.html',\r\n styleUrls: ['./two-way.component.css']\r\n})\r\nexport class TwoWayComponent {\r\n @Input() contactId: number;\r\n @Input() contactFirstName: string;\r\n @Input() contactLastName: string;\r\n @Input() phoneNumber: string;\r\n @Input() clientPhoneNumber: string;\r\n @Input() smsPermission: string;\r\n @Input() smsActivityId: number;\r\n @Input() conversationKey: string;\r\n @Input() leadStatus: number ;\r\n @Input() smsClientId: number = null;\r\n @Input() placeholderText: string = null;\r\n @Output() onClose = new EventEmitter();\r\n\r\n @ViewChild(\"messageTextarea\") messageTextarea: ElementRef;\r\n @ViewChild(\"mmsUpload\") mmsUpload: ElementRef;\r\n\r\n textareaMaxLength: number = 300;\r\n mmsInput: any;\r\n\r\n elementX = '50%';\r\n elementY = '50%';\r\n \r\n constructor(\r\n private contactService: ContactService,\r\n private modalService: NgbModal,\r\n private clientPickerService: ClientPickerService,\r\n private smsService: SmsService,\r\n private userService: UserService,\r\n private configService: ConfigService,\r\n private spinnerService: SpinnerOverlayService,\r\n private clientService: ClientService,\r\n private helpDialogService: HelpDialogService,\r\n private notify: NotifyService\r\n ) {\r\n }\r\n subscription: Subscription;\r\n modalRef: any = null;\r\n today: any = new Date();\r\n contactGuid: any;\r\n\r\n isCarbonLite: boolean = false;\r\n\r\n //conversation parameters\r\n clientId: number = 0;\r\n //clientPhoneNumber: string = \"\";\r\n endDate: any = new Date().setDate(this.today.getDate() + 2);\r\n startDate: any = new Date().setDate(this.today.getDate() - 365);\r\n\r\n conversation: any = [];\r\n messageReply: string = \"\";\r\n clientUserId: number = this.userService.clientUserId;\r\n selectedSid: string = \"\";\r\n\r\n eligibleToReply: boolean = true;\r\n\r\n smsResponseTemplates: any = null;\r\n templateValue: any = 0;\r\n\r\n hasMmsService: boolean = false;\r\n\r\n fileList: File[] = [];\r\n dripCampaignUrls: any[] = [];\r\n\r\n ngOnInit() {\r\n this.subscription = this.clientPickerService.$clientId.subscribe(\r\n (clientId: number) => {\r\n if (this.smsClientId == null) {\r\n this.clientId = clientId;\r\n }\r\n else {\r\n this.clientId = this.smsClientId;\r\n }\r\n let clientTypeId = this.clientPickerService.selectedClient.clientTypeId;\r\n this.CheckIfCarbonLite(clientTypeId);\r\n\r\n //this.GetClientPhoneNumber(this.clientId);\r\n //this.MyProp.nativeElement.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\r\n this.getContactGuid();\r\n this.GetConversation();\r\n this.GetSmsResponseTemplates(clientId, clientTypeId);\r\n\r\n if (this.placeholderText) {\r\n this.messageReply = this.placeholderText;\r\n }\r\n\r\n this.clientService.GetSubscribedServices(this.clientId).subscribe(resp => {\r\n console.log(\"Subscribed Services: \", resp);\r\n this.hasMmsService = resp.includes(ClientSubscribedServices.CarbonMms);\r\n console.log(\"Has MMS Service: \", this.hasMmsService);\r\n })\r\n })\r\n\r\n }\r\n\r\n ngAfterContentInit() {\r\n setTimeout(() => {\r\n this.autoGrow(this.messageTextarea.nativeElement);\r\n }, 1)\r\n }\r\n\r\n getContactGuid() {\r\n this.contactService.GetContactByContactId(this.contactId)\r\n .subscribe(response => {\r\n //console.log(response);\r\n if (response !== null) {\r\n this.contactGuid = response.contactGuid;\r\n }\r\n },\r\n error => {\r\n console.error(error);\r\n })\r\n }\r\n\r\n closeDialog(reason = null) {\r\n this.onClose.emit(reason);\r\n }\r\n\r\n addToConversation(called: string, callerId: string, message: string, smsActivityId: number, direction: number) {\r\n let today = new Date();\r\n let utcString = `${today.getUTCFullYear()}-0${today.getUTCMonth()}-${today.getUTCDate()}T${today.getUTCHours()}:${today.getUTCMinutes()}:${today.getUTCSeconds()}`\r\n let utcTimestamp = Date.UTC(today.getUTCFullYear(), today.getUTCMonth(), today.getUTCDate(), today.getUTCHours(), today.getUTCMinutes(), today.getUTCSeconds());\r\n let dateCreated = new Date(utcTimestamp).toUTCString();\r\n\r\n\r\n\r\n this.conversation.push({\r\n called: called,\r\n callerId: callerId,\r\n clientId: this.clientPickerService.selectedClientId,\r\n message: message,\r\n smsActivityId: smsActivityId,\r\n direction: direction,\r\n dateCreated: new Date()\r\n });\r\n this.scrollToBottom(\"endChat\");\r\n }\r\n\r\n CheckIfCarbonLite(clientTypeId) {\r\n this.spinnerService.open();\r\n this.configService.getClientTypeConfig(\"Carbon.Lite\", clientTypeId)\r\n .subscribe(response => {\r\n if (response) {\r\n this.isCarbonLite = (response.toLowerCase() == \"true\");;\r\n }\r\n this.spinnerService.close();\r\n }, error => {\r\n this.spinnerService.close();\r\n console.error(error);\r\n })\r\n }\r\n\r\n GetSmsResponseTemplates(clientId, clientTypeId) {\r\n this.smsService.GetSmsResponseTemplatesByClientIdOrClientTypeId(clientId, clientTypeId)\r\n .subscribe(response => {\r\n console.log(response);\r\n this.smsResponseTemplates = response;\r\n }, error => {\r\n console.error(error);\r\n })\r\n }\r\n\r\n TemplateSelected(value, event) {\r\n //console.log(value);\r\n let templateId = parseInt(value);\r\n\r\n let selected = this.smsResponseTemplates.filter(template => template.dripCampaignMediumTemplateId === templateId)[0];\r\n if(selected) {\r\n this.messageReply = selected.body;\r\n this.dripCampaignUrls = selected.dripCampaignMediumTemplateUrls;\r\n }\r\n else {\r\n this.messageReply = \"\";\r\n this.dripCampaignUrls = [];\r\n }\r\n\r\n // this.messageReply = value;\r\n }\r\n\r\n //OpenModal = (content) => {\r\n // this.modalRef = this.modalService.open(content);\r\n // //use passed in contactId to get convo\r\n // this.GetConversation();\r\n //}\r\n\r\n //GetClientPhoneNumber = (clientId) => {\r\n // this.smsService.GetSMSNumber(clientId)\r\n // .subscribe(response => {\r\n // this.clientPhoneNumber = response;\r\n // },\r\n // error => {\r\n // console.error(error);\r\n // })\r\n //}\r\n\r\n GetConversation = () => {\r\n //console.log(\"startDate: \" + this.startDate);\r\n //console.log(\"endDate: \" + this.endDate);\r\n //console.log(\"phoneNumber: \" + this.phoneNumber);\r\n //console.log(\"clientPhoneNumber: \" + this.clientPhoneNumber);\r\n //console.log(\"clientId: \" + this.clientId);\r\n\r\n //this.smsService.GetTwoWayConversation(this.startDate, this.endDate, this.phoneNumber, this.clientPhoneNumber, this.clientId)\r\n this.smsService.GetAllConversationsForOneNumber(this.startDate, this.endDate, this.phoneNumber, this.clientId)\r\n .subscribe(response => {\r\n //console.log(\"whole convo: \", response);\r\n this.conversation = response.filter(function (data) {\r\n return data.message != \"\" || (data.smsActivityUrls && data.smsActivityUrls.length > 0);\r\n });\r\n\r\n this.conversation = this.conversation.map(data => {\r\n data.dateCreated += 'Z';\r\n\r\n if (data.direction == 0) {\r\n if (data.optOutRequest == 1) {\r\n this.eligibleToReply = false;\r\n }\r\n else if (this.eligibleToReply == false && data.optOutRequest == 0) {\r\n this.eligibleToReply = true;\r\n }\r\n //console.log(data);\r\n this.clientPhoneNumber = data.called;\r\n //console.log(\"looped: \", this.clientPhoneNumber);\r\n }\r\n return data;\r\n })\r\n\r\n //update \"read\" column\r\n if (!this.userService.isOTTUser) {\r\n let smsActivityIds = this.conversation.map(x => x.smsActivityId);\r\n this.UpdateAsRead(smsActivityIds);\r\n }\r\n\r\n //go to tag\r\n this.scrollToBottom(\"endChat\");\r\n \r\n },\r\n error => {\r\n console.error(error);\r\n })\r\n }\r\n\r\n UpdateAsRead = (smsActivityIds) => {\r\n let updateParameters = {\r\n readByClientUserId: this.clientUserId,\r\n smsActivityIds: smsActivityIds\r\n }\r\n //console.log(updateParameters);\r\n this.smsService.MarkAsRead(updateParameters)\r\n .subscribe(response => {\r\n //console.log(response);\r\n },\r\n error => {\r\n console.error(error);\r\n })\r\n }\r\n\r\n div: any;\r\n\r\n scrollToBottom = (id) => {\r\n this.div = document.getElementById(id);//.scrollIntoView();\r\n //console.log(this.div);\r\n setTimeout(() => {\r\n this.div.scrollIntoView({\r\n behavior: \"smooth\",\r\n block: \"end\"\r\n });\r\n }, 100);\r\n }\r\n\r\n AddFiles(file: File) {\r\n this.fileList.push(file);\r\n }\r\n\r\n removeFile(file: File) {\r\n this.fileList = this.fileList.filter(f => f.name !== file.name);\r\n }\r\n\r\n convertFilesToFormData(): FormData {\r\n let formData: FormData = new FormData();\r\n\r\n for(let i = 0; i < this.fileList.length; i++) {\r\n try {\r\n var file = this.fileList[i];\r\n formData.append(\"files\", file, file.name);\r\n }\r\n catch(exp) {\r\n console.error(\"Error adding file: \", exp);\r\n }\r\n }\r\n\r\n return formData;\r\n }\r\n\r\n SendMessage = () => {\r\n\r\n if(this.messageReply.trim() === \"\") {\r\n this.notify.error(\"Error: Body is Required\");\r\n return false;\r\n }\r\n\r\n let descriptionAddOns = JSON.stringify({\r\n contactId: this.contactId,\r\n firstName: this.contactFirstName,\r\n lastName: this.contactLastName,\r\n contactPhoneNumber: this.phoneNumber,\r\n clientPhoneNumber: this.clientPhoneNumber,\r\n smsPermission: this.smsPermission\r\n });\r\n\r\n let contactActivity = null;\r\n if (this.contactId !== null) {\r\n contactActivity = {\r\n contactId: this.contactId,\r\n activityType: \"Carbon.OutboundSms\",\r\n activityDescription: this.messageReply + \"|\" + descriptionAddOns,\r\n clientUserId: this.userService.clientUserId\r\n }\r\n }\r\n\r\n let smsParameters = {\r\n from: this.clientPhoneNumber,\r\n to: this.phoneNumber,\r\n body: this.messageReply,\r\n clientId: this.clientId,\r\n contactActivity: contactActivity\r\n }\r\n //console.log(smsParameters);\r\n //this.modalRef.close();\r\n\r\n this.smsService.SendMessage(smsParameters)\r\n .subscribe(response => {\r\n console.log(response);\r\n response.dateCreated += \"Z\";\r\n this.messageReply = \"\";\r\n this.templateValue = 0;\r\n this.conversation.push(response);\r\n this.scrollToBottom(\"endChat\");\r\n },\r\n error => {\r\n console.error(error);\r\n this.messageReply = \"\";\r\n })\r\n }\r\n\r\n SendMessageImpolitely = () => {\r\n\r\n if(this.messageReply === \"\") {\r\n this.notify.error(\"Error: Body is Required\");\r\n return false;\r\n }\r\n\r\n let descriptionAddOns = JSON.stringify({\r\n contactId: this.contactId,\r\n firstName: this.contactFirstName,\r\n lastName: this.contactLastName,\r\n contactPhoneNumber: this.phoneNumber,\r\n clientPhoneNumber: this.clientPhoneNumber,\r\n smsPermission: this.smsPermission\r\n });\r\n\r\n let contactActivity = null;\r\n if (this.contactId !== null) {\r\n contactActivity = {\r\n contactId: this.contactId,\r\n activityType: \"Carbon.OutboundSms\",\r\n activityDescription: this.messageReply + \"|\" + descriptionAddOns,\r\n clientUserId: this.userService.clientUserId\r\n }\r\n }\r\n\r\n let isImpoliteSend: boolean = parseInt(this.smsPermission, 10) === SmsPermissionStatus.OptedOut;\r\n let isImpoliteSendConfirmed: boolean = isImpoliteSend && confirm(\r\n \"Warning:\\n\\nYou're messaging a contact who has opted-out of receiving communications.\\n\\nBy clicking 'OK', you acknowledge this and accept full responsibility. Ignoring opt-out preferences may break company policies and laws.\",\r\n );\r\n\r\n if (isImpoliteSend && !isImpoliteSendConfirmed) {\r\n console.log('Canceled Impolite Send');\r\n return;\r\n }\r\n\r\n let smsParameters = {\r\n from: this.clientPhoneNumber,\r\n to: this.phoneNumber,\r\n body: this.messageReply,\r\n clientId: this.clientId,\r\n contactActivity: contactActivity,\r\n createdById: this.userService.clientUserId\r\n }\r\n //console.log(smsParameters);\r\n //this.modalRef.close();\r\n\r\n let formData = this.convertFilesToFormData();\r\n \r\n formData.append(\"smsParameters\", JSON.stringify(smsParameters));\r\n \r\n console.log(\"Sms Parameters: \", JSON.stringify(smsParameters));\r\n //this.smsService.SendMessageImpolitely(smsParameters)\r\n this.smsService.SendMMS(smsParameters, this.fileList, this.dripCampaignUrls, isImpoliteSend, isImpoliteSendConfirmed)\r\n .subscribe(response => {\r\n console.log(response);\r\n if (response !== null) {\r\n response.dateCreated += \"Z\";\r\n this.messageReply = \"\";\r\n this.templateValue = 0;\r\n this.fileList = [];\r\n this.conversation.push(response);\r\n this.scrollToBottom(\"endChat\");\r\n }\r\n else {\r\n console.error(\"Null Sms Activity Recieved\");\r\n }\r\n },\r\n error => {\r\n this.notify.error(\"Error sending message\");\r\n console.error(error);\r\n this.messageReply = \"\";\r\n })\r\n }\r\n\r\n receiveSms = () => {\r\n if (this.leadStatus == LeadActivityTypes.NeverWasALead || this.leadStatus == LeadActivityTypes.NoLongerInterested) {\r\n return false;\r\n }\r\n else if(this.smsPermission == \"2\") {\r\n if (this.eligibleToReply == true) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n\r\n // Drag Event Methods\r\n dragStart(event) {\r\n event.dataTransfer.dropEffect = \"move\";\r\n }\r\n\r\n drop(event) {\r\n //console.log(\"dropped\");\r\n let heightOffset = (document.getElementById(this.conversationKey).clientHeight)/2;\r\n event.preventDefault();\r\n\r\n this.elementX = `${event.clientX}px`;\r\n this.elementY = `${event.clientY + heightOffset - 50}px`;\r\n }\r\n\r\n dragover(event) {\r\n let heightOffset = (document.getElementById(this.conversationKey).clientHeight)/2;\r\n\r\n event.preventDefault();\r\n this.elementX = `${event.clientX}px`;\r\n this.elementY = `${event.clientY + heightOffset - 50}px`;\r\n }\r\n\r\n showSid(message, modalContent) {\r\n if(this.userService.isOTTUser) {\r\n //console.log(message.sid);\r\n this.selectedSid = message.sid;\r\n this.modalService.open(modalContent);\r\n }\r\n }\r\n\r\n copyToClipboard(sid: string, tooltip: any) {\r\n let nav: any = window.navigator;\r\n\r\n nav.clipboard.writeText(sid)\r\n .then(() => {\r\n console.log(\"Copied To Clipboard!\");\r\n tooltip.open();\r\n setTimeout(() => {\r\n tooltip.close();\r\n }, 1000)\r\n })\r\n .catch(error => {\r\n console.error(\"Error copying to clipboard: \", error);\r\n })\r\n }\r\n\r\n autoGrow(element) {\r\n element.style.height = (element.scrollHeight) + \"px\";\r\n }\r\n\r\n closeConversation() {\r\n let lastMessage = this.conversation[this.conversation.length - 1];\r\n let lastSmsActivityId = lastMessage.smsActivityId;\r\n if (lastSmsActivityId > 0) {\r\n this.smsService.CloseSmsConversation(lastSmsActivityId, this.clientUserId).subscribe(response => {\r\n //console.log(\"smsService.CloseSmsConversation response: \", response);\r\n this.closeDialog(\"Conversation Closed\");\r\n });\r\n }\r\n else {\r\n console.log(`no lastSmsActivityId: ${lastSmsActivityId}`);\r\n }\r\n }\r\n\r\n reopenConversation() {\r\n let lastMessage = this.conversation[this.conversation.length - 1];\r\n let lastSmsActivityId = lastMessage.smsActivityId;\r\n if (lastSmsActivityId > 0 && lastMessage.smsActivityHandled !== null) {\r\n this.smsService.ReopenConversation(lastSmsActivityId, this.clientUserId).subscribe(response => {\r\n //console.log(\"smsService.ReopenSmsConversation response: \", response);\r\n this.closeDialog(\"Conversation Reopened\");\r\n lastMessage.smsActivityHandled = null;\r\n });\r\n }\r\n else {\r\n console.log(\"Not reopening conversation, no sms activity or not handled: \");\r\n console.log(\"lastSmsActivityId: \", lastSmsActivityId);\r\n console.log(\"smsActivityHandled: \", lastMessage.smsActivityHandled);\r\n }\r\n }\r\n\r\n openHelpLink() {\r\n this.helpDialogService.openDialog(\"Carbon 2-Way SMS\");\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/sms/two-way/two-way.component.ts","module.exports = \".cdk-overlay-pane {\\r\\n position: fixed;\\r\\n width: 100%;\\r\\n height: 100%;\\r\\n display: -webkit-box;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -webkit-box-pack: center;\\r\\n -ms-flex-pack: center;\\r\\n justify-content: center;\\r\\n -webkit-box-align: center;\\r\\n -ms-flex-align: center;\\r\\n align-items: center;\\r\\n top: 0;\\r\\n left: 0;\\r\\n background-color: rgba(255, 255, 255, 0.5);\\r\\n z-index: 998;\\r\\n}\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/spinner-overlay/spinner-overlay.component.css\n// module id = ./src/app/spinner-overlay/spinner-overlay.component.css\n// module chunks = main","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/spinner-overlay/spinner-overlay.component.html\n// module id = ./src/app/spinner-overlay/spinner-overlay.component.html\n// module chunks = main","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-spinner-overlay',\r\n templateUrl: './spinner-overlay.component.html',\r\n styleUrls: ['./spinner-overlay.component.css']\r\n})\r\n\r\nexport class SpinnerOverlayComponent implements OnInit {\r\n constructor() { }\r\n\r\n public ngOnInit() {}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/spinner-overlay/spinner-overlay.component.ts","module.exports = \"#feedbackContainer {\\r\\n position: absolute;\\r\\n top: 0;\\r\\n left: 0;\\r\\n right: 0;\\r\\n height: 100%;\\r\\n}\\r\\n\\r\\ntextarea{\\r\\n resize: none;\\r\\n}\\r\\n\\r\\n.feedbackNegative {\\r\\n background-color: #e69138 !important;\\r\\n color: white !important;\\r\\n height: 75px !important;\\r\\n width: 100% !important;\\r\\n font-size: 20px !important;\\r\\n}\\r\\n\\r\\n.brand-img {\\r\\n /*display: flex;*//*MJG to fix logo sizing*/\\r\\n display: -webkit-box;\\r\\n -webkit-box-pack: center;\\r\\n -ms-flex-pack: center;\\r\\n justify-content: center;\\r\\n margin-top: 30px;\\r\\n}\\r\\n\\r\\ndiv.row.brand-img img {\\r\\n width: 95%;\\r\\n}\\r\\n\\r\\n#starRating {\\r\\n display: -webkit-box;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -ms-flex-wrap: nowrap;\\r\\n flex-wrap: nowrap;\\r\\n -webkit-box-pack: justify;\\r\\n -ms-flex-pack: justify;\\r\\n justify-content: space-between;\\r\\n -ms-flex-line-pack: center;\\r\\n align-content: center;\\r\\n -webkit-box-align: center;\\r\\n -ms-flex-align: center;\\r\\n align-items: center;\\r\\n}\\r\\n\\r\\n.fa-star{\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n/*slider style*/\\r\\n\\r\\n.slidecontainer {\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n.slider {\\r\\n -webkit-appearance: none;\\r\\n width: 100%;\\r\\n height: 15px;\\r\\n border-radius: 5px;\\r\\n background: #d3d3d3;\\r\\n outline: none;\\r\\n opacity: 0.7;\\r\\n -webkit-transition: .2s;\\r\\n -webkit-transition: opacity .2s;\\r\\n transition: opacity .2s;\\r\\n}\\r\\n\\r\\n.slider:hover {\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n.slider::-webkit-slider-thumb {\\r\\n -webkit-appearance: none;\\r\\n appearance: none;\\r\\n width: 25px;\\r\\n height: 25px;\\r\\n border-radius: 50%;\\r\\n background: #000000;\\r\\n cursor: pointer;\\r\\n }\\r\\n\\r\\n.slider::-moz-range-thumb {\\r\\n width: 25px;\\r\\n height: 25px;\\r\\n border-radius: 50%;\\r\\n background: #000000;\\r\\n cursor: pointer;\\r\\n }\\r\\n\\r\\n/*THE JOINT*/\\r\\n\\r\\n.jointIntroText {\\r\\n color: #00ACBC;\\r\\n font-size: 16px;\\r\\n font-weight: bold;\\r\\n}\\r\\n\\r\\n.jointSubmitButton{\\r\\n color: #FFFFFF;\\r\\n background-color: #00ACBC;\\r\\n width: 100%;\\r\\n height: 60px;\\r\\n}\\r\\n\\r\\n\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/star-feedback/star-feedback.component.css\n// module id = ./src/app/star-feedback/star-feedback.component.css\n// module chunks = main","module.exports = \"
\\r\\n\\r\\n \\r\\n
0 && clientTypeId != 4\\\">\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n

How Do We Rate?

\\r\\n

Please Rate Your Experience Now

\\r\\n

\\r\\n We care about your experience and want to hear about it. Please take a moment and rate how we're doing!
\\r\\n Click on the star to indicate your rating.\\r\\n

\\r\\n
\\r\\n
\\r\\n starRating, 'fas': number <= starRating}\\\" style=\\\"font-size:60px; color:white; text-align:center\\\" *ngFor=\\\"let number of [1,2,3,4,5]\\\" title=\\\"{{number}}\\\" (click)=\\\"StarClicked(number, $event)\\\" >\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n

Tell Us More!

\\r\\n

You're being redirected!

\\r\\n \\r\\n
\\r\\n
\\r\\n

Please leave comments and then click \\\"Post\\\"!

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n

Tell us how we can make your future experience positive:

\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n

Thank you. Your feedback has been submitted.

\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/star-feedback/star-feedback.component.html\n// module id = ./src/app/star-feedback/star-feedback.component.html\n// module chunks = main"," import { Component, OnInit } from '@angular/core';\r\nimport { ContactService } from '../services/contact.service';\r\nimport { ClientService } from '../services/client.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { SpinnerOverlayService } from '../services/spinner-overlay.service';\r\nimport { EmailService } from '../services/email.service';\r\nimport { UserService } from '../services/user.service';\r\nimport { ClientTypes } from '../models/client-types';\r\nimport { Meta } from '@angular/platform-browser';\r\n//import { ClientPickerService } from '../services/client-picker.service';\r\n\r\nenum FeedbackStages {\r\n Stars = 0,\r\n Redirect = 1,\r\n CommentOrSurvey = 2,\r\n ThankYou = 3\r\n}\r\n\r\n@Component({\r\n selector: 'app-star-feedback',\r\n templateUrl: './star-feedback.component.html',\r\n styleUrls: ['./star-feedback.component.css']\r\n})\r\n\r\nexport class StarFeedbackComponent implements OnInit {\r\n FeedbackStages = FeedbackStages;\r\n currentStage: FeedbackStages = FeedbackStages.Stars;\r\n\r\n constructor(\r\n private contactService: ContactService,\r\n private clientService: ClientService,\r\n private route: ActivatedRoute,\r\n private spinner: SpinnerOverlayService,\r\n private emailService: EmailService,\r\n private userService: UserService,\r\n private meta: Meta\r\n //private clientPickerService: ClientPickerService\r\n ) {\r\n this.route.queryParams.subscribe(params => {\r\n this.contactGuid = params[\"contactGuid\"];\r\n this.clientId = params[\"id\"];\r\n this.referrer = params[\"referrer\"];\r\n //console.log(this.referrer);\r\n })\r\n }\r\n //for ngIf\r\n starSubmitted: any = false;\r\n feedbackProvided: any = true;\r\n feedbackSubmitted: any = true;\r\n thankYouPage: any = false;\r\n\r\n //user input\r\n contactFeedback: any;\r\n feedbackComments: string;\r\n starRating: number = 0;\r\n\r\n referrer: string = \"\";\r\n contactGuid: string = \"\";\r\n clientId: number = 0;\r\n clientTypeId: number = 0;\r\n clientName: string = \"\";\r\n ownerEmail: string = \"\";\r\n ownerEmailList: any = [];\r\n starClass: string = \"\";\r\n\r\n contactActivity: any = {\r\n contactId: 0,\r\n clientId: 0,\r\n clientUserId: 0,\r\n activityType: \"\",\r\n activityDescription: \"\"\r\n }\r\n\r\n clientUser: any = {};\r\n\r\n //email fields - contact info\r\n messageBody: string = \"\";\r\n email: any = {};\r\n emailList: any = [];\r\n phoneNumber: string = \"\";\r\n emailAddress: string = \"\";\r\n firstName: string = \"\";\r\n lastName: string = \"\";\r\n\r\n timeout: any;\r\n googlePlaceId: string = \"\";\r\n clientLogo: string = \"\";\r\n\r\n //surveyFields\r\n surveyId: number = 0;\r\n survey: any = null;\r\n surveyQuestions: any = null;\r\n totalScore: number = 0;\r\n surveyResponseId: any;\r\n scorePercent: string = \"\";\r\n\r\n\r\n ngOnInit() {\r\n if (this.clientId != undefined) {\r\n this.GetClientById();\r\n this.GetContactByGuid();\r\n //this.userService.getCurrentUser()\r\n // .subscribe(response => {\r\n // this.clientUser = response;\r\n // }, error => {\r\n // console.error(error);\r\n // })\r\n this.GetClientLogo(this.clientId);\r\n this.GetOtherEmails();\r\n }\r\n }\r\n\r\n GetContactByGuid() {\r\n //console.log(this.clientId);\r\n this.contactService.GetContactByContactGuid(this.contactGuid, this.clientId)\r\n .subscribe(response => {\r\n console.log(response);\r\n this.contactActivity.contactId = response.contact.contactId;\r\n this.contactActivity.clientId = this.clientId;\r\n //set info to be sent in email\r\n this.phoneNumber = response.contact.mobilePhone;\r\n this.emailAddress = response.contact.email;\r\n this.firstName = response.contact.firstName;\r\n this.lastName = response.contact.lastName;\r\n //get googleplaceid\r\n //this.GetClientById();\r\n this.PageVisitedContactActivity();\r\n }, error => {\r\n console.error(error);\r\n });\r\n }\r\n\r\n GetOwner() {\r\n this.clientService.GetOwner(this.clientId)\r\n .subscribe(response => {\r\n console.log(response);\r\n if (response) {\r\n this.ownerEmail = response.email;\r\n this.ownerEmailList.push(this.ownerEmail);\r\n }\r\n //console.log(this.ownerEmail);\r\n }, error => {\r\n console.error(error);\r\n })\r\n }\r\n\r\n GetClientById() {\r\n this.clientService.GetClientById(this.clientId)\r\n .subscribe(response => {\r\n this.googlePlaceId = response.googlePlaceId;\r\n this.clientTypeId = response.clientTypeId;\r\n this.clientName = response.name;\r\n //console.log(this.googlePlaceId);\r\n console.log(\"clientTypeId: \" + this.clientTypeId);\r\n\r\n //this.meta.addTags([\r\n // { property: \"og:image\", content: \"\" }\r\n //])\r\n }, error => {\r\n console.error(error);\r\n });\r\n }\r\n\r\n getColor(number) {\r\n //console.log(number);\r\n if (number <= this.starRating) {\r\n switch (this.clientTypeId) {\r\n case ClientTypes.ModernAcupuncture:\r\n return '#efbd10';\r\n case ClientTypes.ALS:\r\n return '#ed1556';\r\n case ClientTypes.TheJoint:\r\n return '#00B1BC';\r\n default: return '#89cff0';\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n getSurveyId() {\r\n switch (this.clientTypeId) {\r\n case ClientTypes.ModernAcupuncture:\r\n return 0;\r\n case ClientTypes.ALS:\r\n return 0;\r\n case ClientTypes.TheJoint:\r\n return 45;\r\n default: return 0; //has no clientType\r\n }\r\n }\r\n\r\n //sliderRelease() {\r\n // //console.log(\"released!\")\r\n // this.StarClicked(this.starRating);\r\n //}\r\n\r\n GetClientLogo(clientId) {\r\n this.clientService.GetLogoUrl(clientId)\r\n .subscribe(response => {\r\n // console.log(\"Client Logo: \", response);\r\n this.clientLogo = response;\r\n\r\n this.meta.addTags([\r\n { property: \"og:image\", content: response }\r\n ])\r\n\r\n }, error => {\r\n console.error(error);\r\n })\r\n }\r\n\r\n GetOtherEmails() {\r\n this.clientService.GetClientConfigs('Carbon.EmailNotificationList', this.clientId)\r\n .subscribe(response => {\r\n console.log(\"other emails\" + response);\r\n if (response) {\r\n let emails = response.split(',');\r\n for (let i = 0; i < emails.length; i++) {\r\n this.ownerEmailList.push(emails[i]);\r\n }\r\n }\r\n //if there are no client config emails, use owner email\r\n if (this.ownerEmailList.length == 0) {\r\n //currently dont want to default to owner\r\n //this.GetOwner();\r\n }\r\n }, error => {\r\n console.error(error);\r\n });\r\n }\r\n\r\n PageVisitedContactActivity() {\r\n //add page visited to contact activity\r\n\r\n if (this.referrer != undefined) {\r\n this.contactActivity.activityDescription = \"Contact navigated to their URL\";\r\n decodeURIComponent(this.referrer);\r\n this.contactActivity.activityType = \"Carbon.Feedback.OpenedFromWebsite\";\r\n }\r\n else {\r\n this.contactActivity.activityDescription = \"Contact visited feedback page\";\r\n this.contactActivity.activityType = \"Carbon.Feedback.Opened\";\r\n }\r\n\r\n this.contactService.CreateContactActivity(this.contactActivity)\r\n .subscribe(response => {\r\n }, error => {\r\n console.error(error);\r\n });\r\n }\r\n\r\n\r\n StarClicked(num, event) {\r\n \r\n this.starRating = num;\r\n //console.log(this.starRating);\r\n if (this.starRating >= 4) {\r\n this.SubmitStarRating();\r\n }\r\n //create modal to confirm submit\r\n //this.SubmitStarRating();\r\n }\r\n\r\n SubmitStarRating() {\r\n if (this.starRating == 0) {\r\n return;\r\n }\r\n\r\n //add starRating to contact activity\r\n this.currentStage = FeedbackStages.Redirect;\r\n this.starSubmitted = true;\r\n this.feedbackProvided = false;\r\n\r\n //add starRating to contact activity\r\n this.contactActivity.activityDescription = this.starRating.toString();\r\n this.contactActivity.activityType = \"Carbon.Rating\";\r\n this.contactService.CreateContactActivity(this.contactActivity)\r\n .subscribe(response => {\r\n //console.log(response);\r\n }, error => {\r\n console.error(error);\r\n });\r\n\r\n if (this.starRating <= 3) {\r\n //send email to client owner, including the contact name, email, phone number, rating\r\n //this.messageBody = \"Name: \" + this.firstName + \" \" + this.lastName\r\n // + \"
Email: \" + this.emailAddress + \"
Phone Number: \" + this.phoneNumber\r\n // + \"
Star Rating: \" + this.contactActivity.activityDescription;\r\n this.messageBody = `Your location, ${this.clientName}, has just recieved a star rating of ${this.contactActivity.activityDescription}.

` +\r\n 'Reviewed By:
' +\r\n ` ${this.firstName} ${this.lastName}
` +\r\n ` Email: ${this.emailAddress}
` +\r\n ` Mobile Phone: ${this.phoneNumber}
`;\r\n\r\n for (var i = 0; i < this.ownerEmailList.length; i++) {\r\n var email = {\r\n toAddress: this.ownerEmailList[i],\r\n //toAddress: 'jasonm@overthetop.com',\r\n fromAddress: \"no-reply@overthetop.com\",\r\n subject: `Carbon Feedback Update For ${this.clientName}`,\r\n msgBody: this.messageBody,\r\n fromName: \"Carbon\"\r\n }\r\n this.emailList.push(email);\r\n }\r\n console.log(this.emailList);\r\n if (this.emailList[0] != \"\") {\r\n this.emailService.SendEmailList(this.emailList)\r\n .subscribe(response => {\r\n //console.log(response);\r\n }, error => {\r\n console.error(error);\r\n });\r\n }\r\n this.timeout = setTimeout(this.SendToGoogle, 30000)\r\n }\r\n else {\r\n this.timeout = setTimeout(this.SendToGoogle, 2000)\r\n }\r\n }\r\n\r\n ProvideFeedback() {\r\n //add to contact activity\r\n if (this.clientTypeId == 4) {\r\n this.contactActivity.activityDescription = \"Contact was sent to survey\";\r\n this.contactActivity.activityType = \"Carbon.SendToSurvey\";\r\n }\r\n else {\r\n this.contactActivity.activityDescription = \"Contact was sent to comment\";\r\n this.contactActivity.activityType = \"Carbon.SendToComment\";\r\n }\r\n\r\n this.contactService.CreateContactActivity(this.contactActivity)\r\n .subscribe(response => {\r\n //console.log(response);\r\n }, error => {\r\n console.error(error);\r\n });\r\n\r\n //get the survey\r\n this.surveyId = this.getSurveyId(); //uses clientTypeId\r\n //console.log(this.surveyId);\r\n if (this.surveyId != 0) {\r\n //console.log(\"getting survey\");\r\n this.spinner.open();\r\n this.userService.getSurvey(this.surveyId) //45\r\n .subscribe(response => {\r\n this.spinner.close();\r\n //console.log(response[0]);\r\n response[0].confirmationText = response[0].confirmationText.replace(\"[!Contact.FirstName!]\", this.firstName);\r\n this.survey = response[0];\r\n }, error => {\r\n console.error(error);\r\n });\r\n this.userService.getSurveyQuestions(this.surveyId)\r\n .subscribe(response => {\r\n //console.log(response);\r\n this.spinner.close();\r\n //response = response.map(r => { r.answer = \"5\"; return r });\r\n this.surveyQuestions = response;\r\n }, error => {\r\n console.error(error);\r\n });\r\n }\r\n this.currentStage = FeedbackStages.CommentOrSurvey;\r\n this.feedbackProvided = true;\r\n this.feedbackSubmitted = false;\r\n\r\n clearTimeout(this.timeout);\r\n }\r\n\r\n SubmitFeedback() {\r\n //add feedback to contact activity\r\n this.contactFeedback = \"Contact left comment: \" + this.feedbackComments;\r\n this.contactActivity.activityDescription = this.contactFeedback;\r\n this.contactActivity.activityType = \"Carbon.Feedback\";\r\n console.log(this.feedbackComments.trim());\r\n if (this.feedbackComments.trim() != \"\") {\r\n this.spinner.open()\r\n this.contactService.CreateContactActivity(this.contactActivity)\r\n .subscribe(response => {\r\n this.spinner.close();\r\n this.emailList = [];\r\n //send email to client owner, including the contact name, email, phone number, feedback\r\n //this.messageBody = \"Name: \" + this.firstName + \" \" + this.lastName\r\n // + \"
Email: \" + this.emailAddress + \"
Phone Number: \" + this.phoneNumber\r\n // + \"
\" + this.contactActivity.activityDescription;\r\n this.messageBody = `Your location, ${this.clientName}, has just recieved some feedback.

` +\r\n 'Reviewed By:
' +\r\n ` ${this.firstName} ${this.lastName}
` +\r\n ` Email: ${this.emailAddress}
` +\r\n ` Mobile Phone: ${this.phoneNumber}
` +\r\n ` ${this.contactActivity.activityDescription}`;\r\n\r\n for (var i = 0; i < this.ownerEmailList.length; i++) {\r\n var email = {\r\n toAddress: this.ownerEmailList[i],\r\n //toAddress: 'jasonm@overthetop.com',\r\n fromAddress: \"no-reply@overthetop.com\",\r\n subject: `Carbon Feedback Update For ${this.clientName}`,\r\n msgBody: this.messageBody,\r\n fromName: \"Carbon\"\r\n }\r\n this.emailList.push(email);\r\n }\r\n //console.log(this.emailList);\r\n\r\n //send email to each email in list\r\n this.emailService.SendEmailList(this.emailList)\r\n .subscribe(response => {\r\n //console.log(response);\r\n }, error => {\r\n console.error(error);\r\n });\r\n\r\n //show thank you page div\r\n this.currentStage = FeedbackStages.ThankYou;\r\n this.feedbackSubmitted = true;\r\n this.thankYouPage = true;\r\n\r\n }, error => {\r\n this.spinner.close();\r\n console.error(error);\r\n });\r\n }\r\n }\r\n\r\n SubmitSurvey = () => {\r\n for (var x = 0; x < this.surveyQuestions.length; x++) {\r\n this.totalScore += parseInt(this.surveyQuestions[x].answer);\r\n if (!this.surveyQuestions[x].answer) {\r\n return;\r\n }\r\n }\r\n this.userService.submitSurveyResponse(this.surveyId, this.clientId, this.contactActivity.contactId, this.totalScore)\r\n .subscribe(response => {\r\n //console.log(response);\r\n this.surveyResponseId = response;\r\n //console.log(this.surveyQuestions);\r\n if (this.surveyResponseId > 0) {\r\n this.GetCarbonSurveyData();\r\n for (var i = 0; i < this.surveyQuestions.length; i++) {\r\n this.userService.submitAnswers(this.surveyQuestions[i].surveyQuestionId, this.surveyResponseId, this.surveyQuestions[i].answer)\r\n .subscribe(response => {\r\n // console.log(response);\r\n }, error => {\r\n console.error(error);\r\n });\r\n }\r\n }\r\n\r\n //show thank you page div\r\n this.currentStage = FeedbackStages.ThankYou;\r\n this.feedbackSubmitted = true;\r\n this.thankYouPage = true;\r\n\r\n //redirect to thejoint.com after 30 seconds\r\n this.timeout = setTimeout(this.SendToJoint, 30000);\r\n\r\n }, error => {\r\n console.error(error);\r\n });\r\n }\r\n\r\n GetCarbonSurveyData = () => {\r\n this.userService.getSurveyData(this.clientId, this.contactActivity.contactId)\r\n .subscribe(response => {\r\n this.scorePercent = (response[0].per * 100).toFixed(2);\r\n console.log(this.surveyResponseId);\r\n //create contactActivity record matching the survey values\r\n this.contactFeedback = \"Survey Score: \" + this.scorePercent + \"%|\" + this.surveyResponseId;\r\n this.contactActivity.activityDescription = this.contactFeedback;\r\n this.contactActivity.activityType = \"Carbon.Feedback\";\r\n this.contactService.CreateContactActivity(this.contactActivity)\r\n .subscribe(response => {\r\n //console.log(response);\r\n this.emailList = [];\r\n //send email to client owner, including the contact name, email, phone number, feedback\r\n //this.messageBody = \"Name: \" + this.firstName + \" \" + this.lastName\r\n // + \"
Email: \" + this.emailAddress + \"
Phone Number: \" + this.phoneNumber\r\n // + \"
\" + this.contactActivity.activityDescription;\r\n this.messageBody = `Your location, ${this.clientName}, has just recieved a survey response.

` +\r\n 'Reviewed By:
' +\r\n ` ${this.firstName} ${this.lastName}
` +\r\n ` Email: ${this.emailAddress}
` +\r\n ` Mobile Phone: ${this.phoneNumber}
` +\r\n ` Survey Score: ${this.scorePercent}%`;\r\n if (this.ownerEmailList) {\r\n for (var i = 0; i < this.ownerEmailList.length; i++) {\r\n var email = {\r\n toAddress: this.ownerEmailList[i],\r\n //toAddress: 'jasonm@overthetop.com',\r\n fromAddress: \"no-reply@overthetop.com\",\r\n subject: `Carbon Feedback Update For ${this.clientName}`,\r\n msgBody: this.messageBody,\r\n fromName: \"Carbon\"\r\n }\r\n this.emailList.push(email);\r\n }\r\n //console.log(this.emailList);\r\n\r\n //send email to each email in list\r\n if (this.emailList[0] != \"\") {\r\n this.emailService.SendEmailList(this.emailList)\r\n .subscribe(response => {\r\n //console.log(response);\r\n }, error => {\r\n console.error(error);\r\n });\r\n }\r\n }\r\n }, error => {\r\n console.error(error);\r\n });\r\n }, error => {\r\n console.error(error);\r\n });\r\n }\r\n\r\n SendToGoogle = () => {\r\n //create a contactactivity record saying \"sent to google\"\r\n this.contactActivity.activityDescription = \"Contact was sent to Google\";\r\n this.contactActivity.activityType = \"Carbon.SentToGoogle\";\r\n\r\n this.contactService.CreateContactActivity(this.contactActivity)\r\n .subscribe(response => {\r\n //console.log(response);\r\n window.location.href = \"https://search.google.com/local/writereview?placeid=\" + this.googlePlaceId;\r\n }, error => {\r\n console.error(error);\r\n });\r\n }\r\n\r\n SendToJoint = () => {\r\n window.location.href = \"https://www.thejoint.com/\";\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/star-feedback/star-feedback.component.ts","module.exports = \"@font-face {\\r\\n font-family: museo-slab;\\r\\n src: url(https://images.overthetop.com/images/uploads/TJ-Corp/Fonts/Museo_Slab_500.ttf)\\r\\n}\\r\\n\\r\\n@font-face {\\r\\n font-family: museo-slab;\\r\\n src: url(https://images.overthetop.com/images/uploads/TJ-Corp/Fonts/Museo_Slab_500Italic.ttf);\\r\\n font-style: italic;\\r\\n}\\r\\n\\r\\n@font-face {\\r\\n font-family: museo-slab-700;\\r\\n src: url(https://images.overthetop.com/images/uploads/TJ-Corp/Fonts/Museo_Slab_700.ttf)\\r\\n}\\r\\n\\r\\n@font-face {\\r\\n font-family: museo-slab-700;\\r\\n src: url(https://images.overthetop.com/images/uploads/TJ-Corp/Fonts/Museo_Slab_700Italic.ttf);\\r\\n font-style: italic;\\r\\n}\\r\\n\\r\\n@font-face {\\r\\n font-family: proxima-nova;\\r\\n src: url(https://images.overthetop.com/images/uploads/TJ-Corp/Fonts/ProximaNova-Regular.ttf);\\r\\n}\\r\\n\\r\\n@font-face {\\r\\n font-family: proxima-nova;\\r\\n src: url(https://images.overthetop.com/images/uploads/TJ-Corp/Fonts/ProximaNova-RegularIt.ttf);\\r\\n font-style: italic;\\r\\n}\\r\\n\\r\\n@font-face {\\r\\n font-family: proxima-nova-bold;\\r\\n src: url(https://images.overthetop.com/images/uploads/TJ-Corp/Fonts/ProximaNova-Bold.ttf);\\r\\n}\\r\\n\\r\\n@font-face {\\r\\n font-family: proxima-nova-bold;\\r\\n src: url(https://images.overthetop.com/images/uploads/TJ-Corp/Fonts/ProximaNova-BoldIt.ttf);\\r\\n font-style: italic;\\r\\n}\\r\\n\\r\\nbody {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n#wrapper {\\r\\n margin: 0 auto;\\r\\n max-width: 600px;\\r\\n}\\r\\n\\r\\n.header {\\r\\n background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 111, 129, 0.70)), to(rgba(255,255,255,1.00))), url(\\\"https://images.overthetop.com/images/uploads/TJ-Corp/ManWithPhone.png\\\");\\r\\n background-image: linear-gradient(rgba(0, 111, 129, 0.70), rgba(255,255,255,1.00) 100%), url(\\\"https://images.overthetop.com/images/uploads/TJ-Corp/ManWithPhone.png\\\");\\r\\n opacity: 0.6;\\r\\n /* background-size: 180%; */\\r\\n background-position: 0;\\r\\n background-size: cover;\\r\\n background-repeat: repeat;\\r\\n min-height: 400px;\\r\\n}\\r\\n\\r\\n#logo-container {\\r\\n width: 100%;\\r\\n text-align: center;\\r\\n position: absolute;\\r\\n top: 0;\\r\\n left: 0;\\r\\n}\\r\\n\\r\\n#logo {\\r\\n width: 50%;\\r\\n max-width: 350px;\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\nh1 {\\r\\n margin: -150px 25px 0 25px;\\r\\n font: 700 35px \\\"museo-slab-700\\\",serif;\\r\\n z-index: 999;\\r\\n}\\r\\n\\r\\nh2 {\\r\\n margin: 0 25px;\\r\\n font: 500 24px \\\"museo-slab\\\",serif;\\r\\n color: #00AEBE;\\r\\n background-color: #ffffff;\\r\\n z-index: 999;\\r\\n}\\r\\n\\r\\np {\\r\\n font-family: \\\"proxima-nova\\\",sans-serif;\\r\\n margin: 25px 80px 25px 25px;\\r\\n line-height: 21px;\\r\\n font-size: 14px;\\r\\n padding-top: 10px;\\r\\n}\\r\\n\\r\\n#btn-container {\\r\\n width: 100%;\\r\\n text-align: center;\\r\\n margin-top: 50px;\\r\\n}\\r\\n\\r\\na#redirect-link {\\r\\n color: #fff;\\r\\n text-align: center;\\r\\n background-color: #F27439;\\r\\n padding: 20px;\\r\\n font-family: \\\"proxima-nova\\\",sans-serif;\\r\\n text-decoration: none;\\r\\n cursor: pointer;\\r\\n font-size: 18px;\\r\\n}\\r\\n\\r\\na#redirect-link:hover {\\r\\n text-decoration: underline;\\r\\n }\\r\\n\\r\\n.smallprint {\\r\\n font-size: .6em;\\r\\n color: #ddd;\\r\\n margin: 50px 25px 25px 25px;\\r\\n}\\r\\n\\r\\nfooter {\\r\\n font-size: .6em;\\r\\n color: #ddd;\\r\\n margin: 50px 25px 25px 25px;\\r\\n font-family: arial, sans-serif;\\r\\n}\\r\\n\\r\\n.copyright {\\r\\n float: left;\\r\\n}\\r\\n\\r\\n.footerlinks {\\r\\n float: right;\\r\\n font-size: 1.0em;\\r\\n}\\r\\n\\r\\n.footerlinks a, .footerlinks a:visited {\\r\\n text-decoration: none;\\r\\n color: #ddd;\\r\\n }\\r\\n\\r\\n.footerlinks a:hover {\\r\\n text-decoration: none;\\r\\n color: #000;\\r\\n }\\r\\n\\r\\n@media (max-width: 370px) {\\r\\n .header {\\r\\n background-position: -120px;\\r\\n }\\r\\n}\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/star-feedback/the-joint/joint-redirect/joint-redirect.component.css\n// module id = ./src/app/star-feedback/the-joint/joint-redirect/joint-redirect.component.css\n// module chunks = main","module.exports = \"
\\r\\n
\\r\\n
\\\"The
\\r\\n

Please tell us more!

\\r\\n

You're being redirected.

\\r\\n

Had a great experience? Upon redirect, please leave comments and click \\\"Post\\\"!

\\r\\n\\r\\n \\r\\n\\r\\n

The Joint Corp. is a franchisor of clinics and and operation of clinics in certain states. In Arkansas, California, Colorado, District of Columbia, Florida, Illinios, Kansas, Kentucky, Mayrland, Massachusetts, Michigan, Minnesota, New Jersey, New York, North Carolina, Oregon, Pennsylvania, Rhode Island, South Dakota, Tennessee, Washington, West Virginia, and Wyonming. The Joint Corp. and its franchisees provide management services to affiliated professional chiropractic practices.

\\r\\n \\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/star-feedback/the-joint/joint-redirect/joint-redirect.component.html\n// module id = ./src/app/star-feedback/the-joint/joint-redirect/joint-redirect.component.html\n// module chunks = main","import { Component, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'joint-redirect',\r\n templateUrl: './joint-redirect.component.html',\r\n styleUrls: ['./joint-redirect.component.css']\r\n})\r\nexport class JointRedirectComponent {\r\n //@Output() onClick = new EventEmitter();\r\n @Output() onButtonClicked = new EventEmitter();\r\n \r\n constructor() {\r\n\r\n }\r\n\r\n buttonClick() {\r\n //this.onClick.emit();\r\n this.onButtonClicked.emit();\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/star-feedback/the-joint/joint-redirect/joint-redirect.component.ts","module.exports = \"@font-face {\\r\\n font-family: museo-slab;\\r\\n src: url(https://images.overthetop.com/images/uploads/TJ-Corp/Fonts/Museo_Slab_500.ttf)\\r\\n}\\r\\n\\r\\n@font-face {\\r\\n font-family: museo-slab;\\r\\n src: url(https://images.overthetop.com/images/uploads/TJ-Corp/Fonts/Museo_Slab_500Italic.ttf);\\r\\n font-style: italic;\\r\\n}\\r\\n\\r\\n@font-face {\\r\\n font-family: museo-slab-700;\\r\\n src: url(https://images.overthetop.com/images/uploads/TJ-Corp/Fonts/Museo_Slab_700.ttf)\\r\\n}\\r\\n\\r\\n@font-face {\\r\\n font-family: museo-slab-700;\\r\\n src: url(https://images.overthetop.com/images/uploads/TJ-Corp/Fonts/Museo_Slab_700Italic.ttf);\\r\\n font-style: italic;\\r\\n}\\r\\n\\r\\n@font-face {\\r\\n font-family: proxima-nova;\\r\\n src: url(https://images.overthetop.com/images/uploads/TJ-Corp/Fonts/ProximaNova-Regular.ttf);\\r\\n}\\r\\n\\r\\n@font-face {\\r\\n font-family: proxima-nova;\\r\\n src: url(https://images.overthetop.com/images/uploads/TJ-Corp/Fonts/ProximaNova-RegularIt.ttf);\\r\\n font-style: italic;\\r\\n}\\r\\n\\r\\n@font-face {\\r\\n font-family: proxima-nova-bold;\\r\\n src: url(https://images.overthetop.com/images/uploads/TJ-Corp/Fonts/ProximaNova-Bold.ttf);\\r\\n}\\r\\n\\r\\n@font-face {\\r\\n font-family: proxima-nova-bold;\\r\\n src: url(https://images.overthetop.com/images/uploads/TJ-Corp/Fonts/ProximaNova-BoldIt.ttf);\\r\\n font-style: italic;\\r\\n}\\r\\n\\r\\nbody {\\r\\n margin: 0;\\r\\n font-family: \\\"proxima-nova\\\",sans-serif;\\r\\n}\\r\\n\\r\\n.wrapper {\\r\\n margin: 0 auto;\\r\\n padding: 0;\\r\\n max-width: 980px;\\r\\n}\\r\\n\\r\\n#header {\\r\\n background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 111, 129, 0.70)), to(rgba(255,255,255,1.00))), url(\\\"https://images.overthetop.com/images/uploads/TJ-Corp/ManWithPhone.png\\\");\\r\\n background-image: linear-gradient(rgba(0, 111, 129, 0.70), rgba(255,255,255,1.00) 100%), url(\\\"https://images.overthetop.com/images/uploads/TJ-Corp/ManWithPhone.png\\\");\\r\\n opacity: 0.6;\\r\\n /* background-size: 180%; */\\r\\n background-position: -40px;\\r\\n background-size: cover;\\r\\n background-repeat: repeat;\\r\\n min-height: 400px;\\r\\n}\\r\\n\\r\\n#logo-container {\\r\\n width: 100%;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n#logo {\\r\\n max-width: 50%;\\r\\n margin-top: 10px;\\r\\n}\\r\\n\\r\\nh1 {\\r\\n margin-top: 55px;\\r\\n margin-left: 25px;\\r\\n font: 33px \\\"museo-slab-700\\\",serif;\\r\\n}\\r\\n\\r\\nh2 {\\r\\n margin-left: 25px;\\r\\n font: 25px \\\"museo-slab\\\",serif;\\r\\n color: #00AEBE;\\r\\n}\\r\\n\\r\\np {\\r\\n margin: -100px 80px 25px 25px;\\r\\n line-height: 21px;\\r\\n font-size: 14px;\\r\\n}\\r\\n\\r\\n#rating-blocks {\\r\\n width: 90%;\\r\\n margin: 0 auto;\\r\\n}\\r\\n\\r\\n#rating-blocks td {\\r\\n width: 20%;\\r\\n text-align: center;\\r\\n }\\r\\n\\r\\n.worst {\\r\\n float: left;\\r\\n color: #CCEFF1;\\r\\n font-size: 1.3em;\\r\\n font-family: \\\"proxima-nova\\\",sans-serif;\\r\\n margin: 0 0 15px 30px;\\r\\n}\\r\\n\\r\\n.best {\\r\\n float: right;\\r\\n color: #00AFBE;\\r\\n font-size: 1.3em;\\r\\n font-family: \\\"proxima-nova\\\",sans-serif;\\r\\n margin-right: 38px;\\r\\n}\\r\\n\\r\\n.block {\\r\\n margin: 0 auto;\\r\\n font-size: 1.5em;\\r\\n font-family: \\\"proxima-nova\\\",sans-serif;\\r\\n padding: 15px;\\r\\n color: #fff;\\r\\n}\\r\\n\\r\\n.block1 {\\r\\n /*background-color: #CCEFF1;*/\\r\\n border: 1px solid #CCEFF1;\\r\\n /*border: 1px solid #00AEBE;*/\\r\\n color: black;\\r\\n}\\r\\n\\r\\n.block1.selectedRating {\\r\\n border: none;\\r\\n background-color: #CCEFF1;\\r\\n color: white;\\r\\n }\\r\\n\\r\\n.block2 {\\r\\n /*background-color: #9ADFE6;*/\\r\\n border: 1px solid #9ADFE6;\\r\\n /*border: 1px solid #00AEBE;*/\\r\\n color: black;\\r\\n}\\r\\n\\r\\n.block2.selectedRating {\\r\\n border: none;\\r\\n background-color: #9ADFE6;\\r\\n color: white;\\r\\n }\\r\\n\\r\\n.block3 {\\r\\n /*background-color: #65CEDB;*/\\r\\n border: 1px solid #65CEDB;\\r\\n /*border: 1px solid #00AEBE;*/\\r\\n color: black;\\r\\n}\\r\\n\\r\\n.block3.selectedRating {\\r\\n border: none;\\r\\n background-color: #65CEDB;\\r\\n color: white;\\r\\n }\\r\\n\\r\\n.block4 {\\r\\n /*background-color: #35BECB;*/\\r\\n border: 1px solid #35BECB;\\r\\n /*border: 1px solid #00AEBE;*/\\r\\n color: black;\\r\\n}\\r\\n\\r\\n.block4.selectedRating {\\r\\n border: none;\\r\\n background-color: #35BECB;\\r\\n color: white;\\r\\n }\\r\\n\\r\\n.block5 {\\r\\n /*background-color: #00AEBE;*/\\r\\n border: 1px solid #00AEBE;\\r\\n color: black;\\r\\n}\\r\\n\\r\\n.block5.selectedRating {\\r\\n border: none;\\r\\n background-color: #00AEBE;\\r\\n color: white;\\r\\n }\\r\\n\\r\\n.smallprint {\\r\\n font-size: .6em;\\r\\n color: #ddd;\\r\\n margin-top: 100px;\\r\\n}\\r\\n\\r\\nfooter {\\r\\n font-size: .6em;\\r\\n color: #ddd;\\r\\n margin: 50px 25px 25px 25px;\\r\\n font-family: arial, sans-serif;\\r\\n}\\r\\n\\r\\n.copyright {\\r\\n float: left;\\r\\n}\\r\\n\\r\\n.footerlinks {\\r\\n float: right;\\r\\n font-size: 1.0em;\\r\\n}\\r\\n\\r\\n.footerlinks a, .footerlinks a:visited {\\r\\n text-decoration: none;\\r\\n color: #ddd;\\r\\n }\\r\\n\\r\\n.footerlinks a:hover {\\r\\n text-decoration: none;\\r\\n color: #000;\\r\\n }\\r\\n\\r\\n@media (max-width: 370px) {\\r\\n #header {\\r\\n background-position: -120px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*.selectedRating {\\r\\n -webkit-box-shadow: 0px 0px 86px 8px rgba(255,215,0,1);\\r\\n -moz-box-shadow: 0px 0px 86px 8px rgba(255,215,0,1);\\r\\n box-shadow: 0px 0px 86px 8px rgba(255,215,0,1);\\r\\n}*/\\r\\n\\r\\nbutton {\\r\\n width: 100px;\\r\\n margin: 30px -45px;\\r\\n position: relative;\\r\\n top: 50%;\\r\\n left: 50%;\\r\\n}\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/star-feedback/the-joint/joint-stars/joint-stars.component.css\n// module id = ./src/app/star-feedback/the-joint/joint-stars/joint-stars.component.css\n// module chunks = main","module.exports = \"
\\r\\n
\\r\\n
\\\"The
\\r\\n

Your opinion counts.

\\r\\n

Please rate your latest experience now.

\\r\\n
\\r\\n

Thank you for choosing The Joint Chiropractic! We care about your experience and want to hear about it. Please take a moment and let us know how we are doing, by clicking the box that best indicates your rating.

\\r\\n Worst\\r\\n Best\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
= 1}\\\" (click)=\\\"StarClicked(1)\\\">1= 2}\\\"(click)=\\\"StarClicked(2)\\\">2= 3}\\\"(click)=\\\"StarClicked(3)\\\">3= 4}\\\"(click)=\\\"StarClicked(4)\\\">4= 5}\\\"(click)=\\\"StarClicked(5)\\\">5
\\r\\n \\r\\n
\\r\\n
\\r\\n

The Joint Corp. is a franchisor of clinics and and operation of clinics in certain states. In Arkansas, California, Colorado, District of Columbia, Florida, Illinios, Kansas, Kentucky, Mayrland, Massachusetts, Michigan, Minnesota, New Jersey, New York, North Carolina, Oregon, Pennsylvania, Rhode Island, South Dakota, Tennessee, Washington, West Virginia, and Wyonming. The Joint Corp. and its franchisees provide management services to affiliated professional chiropractic practices.

\\r\\n \\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/star-feedback/the-joint/joint-stars/joint-stars.component.html\n// module id = ./src/app/star-feedback/the-joint/joint-stars/joint-stars.component.html\n// module chunks = main","import { Component, Output, EventEmitter, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'joint-stars',\r\n templateUrl: './joint-stars.component.html',\r\n styleUrls: ['./joint-stars.component.css']\r\n})\r\nexport class JointStarsComponent{\r\n @Output() onStarClicked = new EventEmitter();\r\n @Output() onSubmitClicked = new EventEmitter();\r\n @Input() starRating: number;\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n StarClicked(rating: number) {\r\n this.onStarClicked.emit(rating);\r\n }\r\n\r\n SubmitStarRating() {\r\n this.onSubmitClicked.emit();\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/star-feedback/the-joint/joint-stars/joint-stars.component.ts","module.exports = \"@font-face {\\r\\n font-family: museo-slab;\\r\\n src: url(https://images.overthetop.com/images/uploads/TJ-Corp/Fonts/Museo_Slab_500.ttf)\\r\\n}\\r\\n\\r\\n@font-face {\\r\\n font-family: museo-slab;\\r\\n src: url(https://images.overthetop.com/images/uploads/TJ-Corp/Fonts/Museo_Slab_500Italic.ttf);\\r\\n font-style: italic;\\r\\n}\\r\\n\\r\\n@font-face {\\r\\n font-family: museo-slab-700;\\r\\n src: url(https://images.overthetop.com/images/uploads/TJ-Corp/Fonts/Museo_Slab_700.ttf)\\r\\n}\\r\\n\\r\\n@font-face {\\r\\n font-family: museo-slab-700;\\r\\n src: url(https://images.overthetop.com/images/uploads/TJ-Corp/Fonts/Museo_Slab_700Italic.ttf);\\r\\n font-style: italic;\\r\\n}\\r\\n\\r\\n@font-face {\\r\\n font-family: proxima-nova;\\r\\n src: url(https://images.overthetop.com/images/uploads/TJ-Corp/Fonts/ProximaNova-Regular.ttf);\\r\\n}\\r\\n\\r\\n@font-face {\\r\\n font-family: proxima-nova;\\r\\n src: url(https://images.overthetop.com/images/uploads/TJ-Corp/Fonts/ProximaNova-RegularIt.ttf);\\r\\n font-style: italic;\\r\\n}\\r\\n\\r\\n@font-face {\\r\\n font-family: proxima-nova-bold;\\r\\n src: url(https://images.overthetop.com/images/uploads/TJ-Corp/Fonts/ProximaNova-Bold.ttf);\\r\\n}\\r\\n\\r\\n@font-face {\\r\\n font-family: proxima-nova-bold;\\r\\n src: url(https://images.overthetop.com/images/uploads/TJ-Corp/Fonts/ProximaNova-Bold.ttf);\\r\\n font-style: italic;\\r\\n}\\r\\n\\r\\nbody {\\r\\n margin: 0;\\r\\n font-family: \\\"proxima-nova\\\",sans-serif;\\r\\n}\\r\\n\\r\\n#logo-container {\\r\\n padding: 15px;\\r\\n color: #fff;\\r\\n background-color: #00AEBE;\\r\\n width: 100%;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n#logo {\\r\\n max-width: 350px;\\r\\n margin-top: 15px;\\r\\n width: 50%;\\r\\n}\\r\\n\\r\\nh1 {\\r\\n margin: 25px 0 0 0;\\r\\n font: 700 30px \\\"museo-slab-700\\\",serif;\\r\\n}\\r\\n\\r\\nh2 {\\r\\n margin: 25px 0 25px 0;\\r\\n font: 500 24px \\\"museo-slab\\\",serif;\\r\\n color: #00AEBE;\\r\\n background-color: #ffffff;\\r\\n z-index: 999;\\r\\n}\\r\\n\\r\\np {\\r\\n margin: 0;\\r\\n line-height: 21px;\\r\\n font-size: 14px;\\r\\n}\\r\\n\\r\\n#wrapper {\\r\\n margin: 0 auto;\\r\\n max-width: 900px;\\r\\n padding: 0 25px 0 25px;\\r\\n}\\r\\n\\r\\np.label {\\r\\n font-family: \\\"proxima-nova-bold\\\";\\r\\n font-size: 18px;\\r\\n display: block;\\r\\n margin: 10px 0 5px 0;\\r\\n}\\r\\n\\r\\ninput[type=\\\"radio\\\"] {\\r\\n display: inline-block;\\r\\n}\\r\\n\\r\\nlabel {\\r\\n font-size: 18px;\\r\\n display: inline;\\r\\n padding-bottom: 10px;\\r\\n line-height: 28px;\\r\\n}\\r\\n\\r\\nlabel::after {\\r\\n content: \\\"\\\\A\\\";\\r\\n white-space: pre;\\r\\n }\\r\\n\\r\\n#btn-container {\\r\\n width: 100%;\\r\\n text-align: center;\\r\\n margin-top: 50px;\\r\\n}\\r\\n\\r\\na#submit-feedback {\\r\\n color: #fff;\\r\\n text-align: center;\\r\\n background-color: #00AEBE;\\r\\n padding: 20px;\\r\\n font-family: \\\"proxima-nova\\\",sans-serif;\\r\\n text-decoration: none;\\r\\n cursor: pointer;\\r\\n font-size: 18px;\\r\\n}\\r\\n\\r\\na#submit-feedback:hover {\\r\\n text-decoration: underline;\\r\\n }\\r\\n\\r\\n.smallprint {\\r\\n font-size: .6em;\\r\\n color: #ddd;\\r\\n margin-top: 50px;\\r\\n}\\r\\n\\r\\nfooter {\\r\\n font-size: .6em;\\r\\n color: #ddd;\\r\\n margin: 25px 0;\\r\\n font-family: arial, sans-serif;\\r\\n}\\r\\n\\r\\n.copyright {\\r\\n float: left;\\r\\n}\\r\\n\\r\\n.footerlinks {\\r\\n float: right;\\r\\n font-size: 1.0em;\\r\\n}\\r\\n\\r\\n.footerlinks a, .footerlinks a:visited {\\r\\n text-decoration: none;\\r\\n color: #ddd;\\r\\n }\\r\\n\\r\\n.footerlinks a:hover {\\r\\n text-decoration: none;\\r\\n color: #000;\\r\\n }\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/star-feedback/the-joint/joint-survey/joint-survey.component.css\n// module id = ./src/app/star-feedback/the-joint/joint-survey/joint-survey.component.css\n// module chunks = main","module.exports = \"
\\\"The
\\r\\n
\\r\\n
\\r\\n \\r\\n

Your opinion matters!

\\r\\n

{{survey.introText}}

\\r\\n
\\r\\n
\\r\\n

{{question.question}}

\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

The Joint Corp. is a franchisor of clinics and and operation of clinics in certain states. In Arkansas, California, Colorado, District of Columbia, Florida, Illinios, Kansas, Kentucky, Mayrland, Massachusetts, Michigan, Minnesota, New Jersey, New York, North Carolina, Oregon, Pennsylvania, Rhode Island, South Dakota, Tennessee, Washington, West Virginia, and Wyonming. The Joint Corp. and its franchisees provide management services to affiliated professional chiropractic practices.

\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/star-feedback/the-joint/joint-survey/joint-survey.component.html\n// module id = ./src/app/star-feedback/the-joint/joint-survey/joint-survey.component.html\n// module chunks = main","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-joint-survey',\r\n templateUrl: './joint-survey.component.html',\r\n styleUrls: ['./joint-survey.component.css']\r\n})\r\nexport class JointSurveyComponent {\r\n constructor() {\r\n\r\n }\r\n\r\n @Input() survey;\r\n @Input() surveyQuestions;\r\n @Output() onSurveySubmit = new EventEmitter();\r\n\r\n SubmitSurvey() {\r\n this.onSurveySubmit.emit();\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/star-feedback/the-joint/joint-survey/joint-survey.component.ts","module.exports = \"@font-face {\\r\\n font-family: museo-slab;\\r\\n src: url(https://images.overthetop.com/images/uploads/TJ-Corp/Fonts/Museo_Slab_500.ttf)\\r\\n}\\r\\n\\r\\n@font-face {\\r\\n font-family: museo-slab;\\r\\n src: url(https://images.overthetop.com/images/uploads/TJ-Corp/Fonts/Museo_Slab_500Italic.ttf);\\r\\n font-style: italic;\\r\\n}\\r\\n\\r\\n@font-face {\\r\\n font-family: museo-slab-700;\\r\\n src: url(https://images.overthetop.com/images/uploads/TJ-Corp/Fonts/Museo_Slab_700.ttf)\\r\\n}\\r\\n\\r\\n@font-face {\\r\\n font-family: museo-slab-700;\\r\\n src: url(https://images.overthetop.com/images/uploads/TJ-Corp/Fonts/Museo_Slab_700Italic.ttf);\\r\\n font-style: italic;\\r\\n}\\r\\n\\r\\n@font-face {\\r\\n font-family: proxima-nova;\\r\\n src: url(https://images.overthetop.com/images/uploads/TJ-Corp/Fonts/ProximaNova-Regular.ttf);\\r\\n}\\r\\n\\r\\n@font-face {\\r\\n font-family: proxima-nova;\\r\\n src: url(https://images.overthetop.com/images/uploads/TJ-Corp/Fonts/ProximaNova-RegularIt.ttf);\\r\\n font-style: italic;\\r\\n}\\r\\n\\r\\n@font-face {\\r\\n font-family: proxima-nova-bold;\\r\\n src: url(https://images.overthetop.com/images/uploads/TJ-Corp/Fonts/ProximaNova-Bold.ttf);\\r\\n}\\r\\n\\r\\n@font-face {\\r\\n font-family: proxima-nova-bold;\\r\\n src: url(https://images.overthetop.com/images/uploads/TJ-Corp/Fonts/ProximaNova-Bold.ttf);\\r\\n font-style: italic;\\r\\n}\\r\\n\\r\\nbody {\\r\\n margin: 0;\\r\\n font-family: \\\"proxima-nova\\\",sans-serif;\\r\\n}\\r\\n\\r\\n#logo-container {\\r\\n padding: 15px;\\r\\n color: #fff;\\r\\n background-color: #00AEBE;\\r\\n width: 100%;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n#logo {\\r\\n max-width: 350px;\\r\\n margin-top: 15px;\\r\\n width: 50%;\\r\\n}\\r\\n\\r\\nh1 {\\r\\n margin: 25px 0 0 0;\\r\\n font: 700 30px \\\"museo-slab-700\\\",serif;\\r\\n}\\r\\n\\r\\nh2 {\\r\\n margin: 25px 0 25px 0;\\r\\n font: 500 24px \\\"museo-slab\\\",serif;\\r\\n color: #00AEBE;\\r\\n background-color: #ffffff;\\r\\n z-index: 999;\\r\\n}\\r\\n\\r\\np {\\r\\n margin: 0;\\r\\n line-height: 21px;\\r\\n font-size: 14px;\\r\\n}\\r\\n\\r\\n#wrapper {\\r\\n margin: 0 auto;\\r\\n max-width: 900px;\\r\\n padding: 0 25px 0 25px;\\r\\n}\\r\\n\\r\\np.label {\\r\\n font-family: \\\"proxima-nova-bold\\\";\\r\\n font-size: 18px;\\r\\n display: block;\\r\\n margin: 10px 0 5px 0;\\r\\n}\\r\\n\\r\\ninput[type=\\\"radio\\\"] {\\r\\n display: inline-block;\\r\\n}\\r\\n\\r\\nlabel {\\r\\n font-size: 18px;\\r\\n display: inline;\\r\\n padding-bottom: 10px;\\r\\n line-height: 28px;\\r\\n}\\r\\n\\r\\nlabel::after {\\r\\n content: \\\"\\\\A\\\";\\r\\n white-space: pre;\\r\\n }\\r\\n\\r\\n#btn-container {\\r\\n width: 100%;\\r\\n text-align: center;\\r\\n margin-top: 50px;\\r\\n}\\r\\n\\r\\na#go-to-thejoint {\\r\\n color: #fff;\\r\\n text-align: center;\\r\\n background-color: #00AEBE;\\r\\n padding: 20px;\\r\\n font-family: \\\"proxima-nova\\\",sans-serif;\\r\\n text-decoration: none;\\r\\n cursor: pointer;\\r\\n font-size: 17px;\\r\\n}\\r\\n\\r\\na#go-to-thejoint:hover {\\r\\n text-decoration: underline;\\r\\n }\\r\\n\\r\\n.smallprint {\\r\\n font-size: .6em;\\r\\n color: #ddd;\\r\\n margin-top: 50px;\\r\\n}\\r\\n\\r\\nfooter {\\r\\n font-size: .6em;\\r\\n color: #ddd;\\r\\n margin: 25px 0;\\r\\n font-family: arial, sans-serif;\\r\\n}\\r\\n\\r\\n.copyright {\\r\\n float: left;\\r\\n}\\r\\n\\r\\n.footerlinks {\\r\\n float: right;\\r\\n font-size: 1.0em;\\r\\n}\\r\\n\\r\\n.footerlinks a, .footerlinks a:visited {\\r\\n text-decoration: none;\\r\\n color: #ddd;\\r\\n }\\r\\n\\r\\n.footerlinks a:hover {\\r\\n text-decoration: none;\\r\\n color: #000;\\r\\n }\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/star-feedback/the-joint/joint-thank-you/joint-thank-you.component.css\n// module id = ./src/app/star-feedback/the-joint/joint-thank-you/joint-thank-you.component.css\n// module chunks = main","module.exports = \"
\\\"The
\\r\\n
\\r\\n

Success.

\\r\\n

Thank you {{contact}},
we love our patients dearly and your feedback is priceless.

\\r\\n\\r\\n

Shortly you will be redirected to thejoint.com. To direct immediately, click the button below.

\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n

The Joint Corp. is a franchisor of clinics and and operation of clinics in certain states. In Arkansas, California, Colorado, District of Columbia, Florida, Illinios, Kansas, Kentucky, Mayrland, Massachusetts, Michigan, Minnesota, New Jersey, New York, North Carolina, Oregon, Pennsylvania, Rhode Island, South Dakota, Tennessee, Washington, West Virginia, and Wyonming. The Joint Corp. and its franchisees provide management services to affiliated professional chiropractic practices.

\\r\\n \\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/star-feedback/the-joint/joint-thank-you/joint-thank-you.component.html\n// module id = ./src/app/star-feedback/the-joint/joint-thank-you/joint-thank-you.component.html\n// module chunks = main","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-joint-thank-you',\r\n templateUrl: './joint-thank-you.component.html',\r\n styleUrls: ['./joint-thank-you.component.css']\r\n})\r\nexport class JointThankYouComponent {\r\n constructor() {\r\n\r\n }\r\n @Input() contact;\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/star-feedback/the-joint/joint-thank-you/joint-thank-you.component.ts","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot } from '@angular/router';\r\nimport 'rxjs/add/operator/map';\r\nimport 'rxjs/add/operator/mergeMap';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { map, mergeMap } from 'rxjs/operators';\r\nimport { ClientPickerService } from './services/client-picker.service';\r\nimport { ClientService } from './services/client.service';\r\nimport { NotifyService } from './services/notify.service';\r\nimport { ClientSubscribedServices } from './models/client-subscribed-services';\r\n\r\n@Injectable()\r\nexport class SubscribedServiceGuard implements CanActivate {\r\n constructor(private clientService: ClientService, private clientPickerService: ClientPickerService, private router: Router, private notify: NotifyService) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable {\r\n return this.clientPickerService.$clientId.pipe(\r\n mergeMap((clientId: number) => {\r\n console.log(this.clientService.GetSubscribedServices(clientId));\r\n return this.clientService.GetSubscribedServices(clientId);\r\n }),\r\n map((services: number[]) => {\r\n let hasService: boolean = services.includes(route.data.neededService);\r\n if (!hasService) {\r\n if (route.data.neededService == ClientSubscribedServices.Leads) {\r\n this.notify.error(\"You do not have the correct service for this page\");\r\n this.router.navigate(['/dashboard']);\r\n }\r\n else {\r\n this.notify.error(\"You do not have the instant review service for this page\");\r\n this.router.navigate(['/contacts']);\r\n }\r\n }\r\n return hasService;\r\n })\r\n );\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/subscribed-service.guard.ts","module.exports = \"\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/users/home/home.component.css\n// module id = ./src/app/users/home/home.component.css\n// module chunks = main","module.exports = \"
home Component
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/users/home/home.component.html\n// module id = ./src/app/users/home/home.component.html\n// module chunks = main","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-home',\r\n templateUrl: './home.component.html',\r\n styleUrls: ['./home.component.css']\r\n})\r\n/** home component*/\r\nexport class HomeComponent {\r\n /** home ctor */\r\n constructor() {\r\n\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/users/home/home.component.ts","module.exports = \"\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/users/root/root.component.css\n// module id = ./src/app/users/root/root.component.css\n// module chunks = main","module.exports = \"
root Component
\\r\\n
    \\r\\n
  • Home
  • \\r\\n
  • Test
  • \\r\\n
  • \\r\\n
\\r\\n\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/users/root/root.component.html\n// module id = ./src/app/users/root/root.component.html\n// module chunks = main","import { Component } from '@angular/core';\r\nimport { UserService } from '../../services/user.service';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './root.component.html',\r\n styleUrls: ['./root.component.css']\r\n})\r\n/** root component*/\r\nexport class RootComponent {\r\n /** root ctor */\r\n constructor(private userService: UserService, private router: Router) {\r\n\r\n }\r\n\r\n handleLogout() {\r\n console.log(\"Logging Out\");\r\n this.userService.logout();\r\n this.router.navigate([\"login\"]);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/users/root/root.component.ts","module.exports = \"\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/users/test/test.component.css\n// module id = ./src/app/users/test/test.component.css\n// module chunks = main","module.exports = \"
test Component
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/users/test/test.component.html\n// module id = ./src/app/users/test/test.component.html\n// module chunks = main","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-test',\r\n templateUrl: './test.component.html',\r\n styleUrls: ['./test.component.css']\r\n})\r\n/** test component*/\r\nexport class TestComponent {\r\n /** test ctor */\r\n constructor() {\r\n\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/users/test/test.component.ts","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { routing } from './users.routing';\r\nimport { RootComponent } from './root/root.component';\r\nimport { HomeComponent } from './home/home.component';\r\nimport { TestComponent } from './test/test.component';\r\n\r\nimport { AuthGuard } from '../auth.guard';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n routing\r\n ],\r\n declarations: [\r\n RootComponent,\r\n HomeComponent,\r\n TestComponent\r\n ],\r\n exports: [],\r\n providers: [\r\n AuthGuard\r\n ]\r\n})\r\nexport class UsersModule {\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/users/users.module.ts","import { ModuleWithProviders } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\n\r\nimport { RootComponent } from './root/root.component';\r\nimport { HomeComponent } from './home/home.component';\r\nimport { TestComponent } from './test/test.component';\r\n\r\nimport { AuthGuard } from '../auth.guard';\r\n\r\nexport const routing: ModuleWithProviders = RouterModule.forChild([\r\n {\r\n path: 'users',\r\n component: RootComponent, canActivate: [AuthGuard],\r\n\r\n children: [\r\n { path: 'home', component: HomeComponent },\r\n { path: 'test', component: TestComponent }\r\n ]\r\n }\r\n])\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/users/users.routing.ts","export const environment = {\r\n production: true,\r\n API_URL: \"https://api-int.ott.gg/\",\r\n API_KEY: \"3b3240ee-719e-4866-bf3a-2968881a42c8\",\r\n pubnubCipherKey: '7784c230-193d-4f8e-82b3-0eacfb137b15',\r\n pubnubSubscribeKey: \"sub-c-68bec6c4-fe81-11e4-aa11-02ee2ddab7fe\",\r\n pubnubPublishKey: \"pub-c-577cb60c-9540-4427-845c-7c7f7a052988\"\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/environments/environment.ts","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nexport function getBaseUrl() {\r\n //return document.getElementsByTagName('base')[0].href;\r\n return environment.API_URL;\r\n}\r\n\r\nexport function getAPIKey() {\r\n return environment.API_KEY;\r\n}\r\n\r\nconst providers = [\r\n { provide: 'BASE_URL', useFactory: getBaseUrl, deps: [] },\r\n { provide: 'API_KEY', useFactory: getAPIKey, deps: [] }\r\n];\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic(providers).bootstrapModule(AppModule)\r\n .catch(err => console.log(err));\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.ts","/* (ignored) */\n\n\n//////////////////\n// WEBPACK FOOTER\n// ws (ignored)\n// module id = 1\n// module chunks = main","/* (ignored) */\n\n\n//////////////////\n// WEBPACK FOOTER\n// ws (ignored)\n// module id = 2\n// module chunks = main","/* (ignored) */\n\n\n//////////////////\n// WEBPACK FOOTER\n// xmlhttprequest (ignored)\n// module id = 3\n// module chunks = main"],"sourceRoot":"webpack:///"}