{"version":3,"file":"js/app.b1887c05.js","mappings":"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","sources":["webpack://client-web/./src/components/bank-balance-over-time.vue","webpack://client-web/./src/components/bank-balance-over-time.vue?1f20","webpack://client-web/./src/components/bank-balance-over-time.vue?b1e8","webpack://client-web/./src/components/bank-balance-over-time.vue?b2f3","webpack://client-web/./src/components/bank-balance.vue","webpack://client-web/./src/components/bank-balance.vue?4210","webpack://client-web/./src/components/bank-balance.vue?5a7e","webpack://client-web/./src/components/bank-balance.vue?1de3","webpack://client-web/./src/components/client-calendar.vue","webpack://client-web/./src/components/client-calendar.vue?0a07","webpack://client-web/./src/components/client-calendar.vue?3741","webpack://client-web/./src/components/client-calendar.vue?b993","webpack://client-web/./src/components/column-pie-toggle.vue","webpack://client-web/./src/components/column-pie-toggle.vue?78a2","webpack://client-web/./src/components/column-pie-toggle.vue?a2c7","webpack://client-web/./src/components/column-pie-toggle.vue?6b31","webpack://client-web/./src/components/complaints.vue","webpack://client-web/./src/components/complaints.vue?ff0b","webpack://client-web/./src/components/complaints.vue?ddba","webpack://client-web/./src/components/complaints.vue?75ae","webpack://client-web/./src/components/completed-jobs-rag.vue","webpack://client-web/./src/components/completed-jobs-rag.vue?2335","webpack://client-web/./src/components/completed-jobs-rag.vue?d737","webpack://client-web/./src/components/completed-jobs-rag.vue?a2f9","webpack://client-web/./src/components/completed-jobs-sla.vue","webpack://client-web/./src/components/completed-jobs-sla.vue?8665","webpack://client-web/./src/components/completed-jobs-sla.vue?262d","webpack://client-web/./src/components/completed-jobs-sla.vue?63b7","webpack://client-web/./src/components/completed-jobs.vue","webpack://client-web/./src/components/completed-jobs.vue?5744","webpack://client-web/./src/components/completed-jobs.vue?e458","webpack://client-web/./src/components/completed-jobs.vue?55f7","webpack://client-web/./src/components/completed-pie-sla.vue","webpack://client-web/./src/components/completed-pie-sla.vue?34be","webpack://client-web/./src/components/completed-pie-sla.vue?26f9","webpack://client-web/./src/components/completed-pie-sla.vue?e35d","webpack://client-web/./src/components/completed-pie.vue","webpack://client-web/./src/components/completed-pie.vue?4c8e","webpack://client-web/./src/components/completed-pie.vue?754f","webpack://client-web/./src/components/completed-pie.vue?0563","webpack://client-web/./src/components/contact-tile.vue","webpack://client-web/./src/components/contact-tile.vue?93b7","webpack://client-web/./src/components/contact-tile.vue?2190","webpack://client-web/./src/components/contact-tile.vue?4a98","webpack://client-web/./src/components/correspondence-views-by-status-pie.vue","webpack://client-web/./src/components/correspondence-views-by-status-pie.vue?cf49","webpack://client-web/./src/components/correspondence-views-by-status-pie.vue?5d7a","webpack://client-web/./src/components/correspondence-views-by-status-pie.vue?d81f","webpack://client-web/./src/components/correspondence-views-by-status.vue","webpack://client-web/./src/components/correspondence-views-by-status.vue?2cf6","webpack://client-web/./src/components/correspondence-views-by-status.vue?d5e1","webpack://client-web/./src/components/correspondence-views-by-status.vue?da10","webpack://client-web/./src/components/data-scores.vue","webpack://client-web/./src/components/data-scores.vue?2045","webpack://client-web/./src/components/data-scores.vue?fe06","webpack://client-web/./src/components/data-scores.vue?ed8e","webpack://client-web/./src/components/data-updates-by-age-pie.vue","webpack://client-web/./src/components/data-updates-by-age-pie.vue?91fe","webpack://client-web/./src/components/data-updates-by-age-pie.vue?c009","webpack://client-web/./src/components/data-updates-by-age-pie.vue?fe53","webpack://client-web/./src/components/data-updates-by-age.vue","webpack://client-web/./src/components/data-updates-by-age.vue?70a3","webpack://client-web/./src/components/data-updates-by-age.vue?a993","webpack://client-web/./src/components/data-updates-by-age.vue?bf9a","webpack://client-web/./src/components/data-updates-by-datatype-pie.vue","webpack://client-web/./src/components/data-updates-by-datatype-pie.vue?23b7","webpack://client-web/./src/components/data-updates-by-datatype-pie.vue?99c7","webpack://client-web/./src/components/data-updates-by-datatype-pie.vue?d695","webpack://client-web/./src/components/data-updates-by-datatype.vue","webpack://client-web/./src/components/data-updates-by-datatype.vue?4e15","webpack://client-web/./src/components/data-updates-by-datatype.vue?a306","webpack://client-web/./src/components/data-updates-by-datatype.vue?23d9","webpack://client-web/./src/components/data-updates-by-status-pie.vue","webpack://client-web/./src/components/data-updates-by-status-pie.vue?a325","webpack://client-web/./src/components/data-updates-by-status-pie.vue?6464","webpack://client-web/./src/components/data-updates-by-status-pie.vue?9365","webpack://client-web/./src/components/data-updates-by-status.vue","webpack://client-web/./src/components/data-updates-by-status.vue?c704","webpack://client-web/./src/components/data-updates-by-status.vue?9f7b","webpack://client-web/./src/components/data-updates-by-status.vue?917a","webpack://client-web/./src/components/date-selector.vue","webpack://client-web/./src/components/date-selector.vue?4a75","webpack://client-web/./src/components/date-selector.vue?e95d","webpack://client-web/./src/components/date-selector.vue?0f5f","webpack://client-web/./src/components/demographics.vue","webpack://client-web/./src/components/demographics.vue?f14d","webpack://client-web/./src/components/demographics.vue?6ae5","webpack://client-web/./src/components/demographics.vue?b8db","webpack://client-web/./src/components/document-search.vue","webpack://client-web/./src/components/document-search.vue?2725","webpack://client-web/./src/components/document-search.vue?b8b8","webpack://client-web/./src/components/document-search.vue?0f1e","webpack://client-web/./src/components/document-views-by-status-pie.vue","webpack://client-web/./src/components/document-views-by-status-pie.vue?53fd","webpack://client-web/./src/components/document-views-by-status-pie.vue?2517","webpack://client-web/./src/components/document-views-by-status-pie.vue?f910","webpack://client-web/./src/components/document-views-by-status.vue","webpack://client-web/./src/components/document-views-by-status.vue?580b","webpack://client-web/./src/components/document-views-by-status.vue?bca3","webpack://client-web/./src/components/document-views-by-status.vue?25ab","webpack://client-web/./src/components/errors.vue","webpack://client-web/./src/components/errors.vue?0385","webpack://client-web/./src/components/errors.vue?59c3","webpack://client-web/./src/components/errors.vue?c63d","webpack://client-web/./src/components/feedback-quarterly-score.vue","webpack://client-web/./src/components/feedback-quarterly-score.vue?db9f","webpack://client-web/./src/components/feedback-quarterly-score.vue?57d6","webpack://client-web/./src/components/feedback-quarterly-score.vue?0578","webpack://client-web/./src/components/feedback-score.vue","webpack://client-web/./src/components/feedback-score.vue?7238","webpack://client-web/./src/components/feedback-score.vue?8115","webpack://client-web/./src/components/feedback-score.vue?4d8a","webpack://client-web/./src/components/header-bar.vue","webpack://client-web/./src/components/header-bar.vue?49c2","webpack://client-web/./src/components/header-bar.vue?8f0c","webpack://client-web/./src/components/header-bar.vue?9b54","webpack://client-web/./src/components/income-expenditure-table.vue","webpack://client-web/./src/components/income-expenditure-table.vue?1758","webpack://client-web/./src/components/income-expenditure-table.vue?71b5","webpack://client-web/./src/components/income-expenditure-table.vue?c215","webpack://client-web/./src/components/income-expenditure.vue","webpack://client-web/./src/components/income-expenditure.vue?e4ef","webpack://client-web/./src/components/income-expenditure.vue?e037","webpack://client-web/./src/components/income-expenditure.vue?61a1","webpack://client-web/./src/components/info.vue","webpack://client-web/./src/components/info.vue?cbd5","webpack://client-web/./src/components/info.vue?ea32","webpack://client-web/./src/components/info.vue?68a5","webpack://client-web/./src/components/inprogress-jobs.vue","webpack://client-web/./src/components/inprogress-jobs.vue?fba1","webpack://client-web/./src/components/inprogress-jobs.vue?6e5e","webpack://client-web/./src/components/inprogress-jobs.vue?c40b","webpack://client-web/./src/components/inprogress-pie.vue","webpack://client-web/./src/components/inprogress-pie.vue?487b","webpack://client-web/./src/components/inprogress-pie.vue?3ccf","webpack://client-web/./src/components/inprogress-pie.vue?5dd7","webpack://client-web/./src/components/member-correspondence-views-totals.vue","webpack://client-web/./src/components/member-correspondence-views-totals.vue?b216","webpack://client-web/./src/components/member-correspondence-views-totals.vue?156a","webpack://client-web/./src/components/member-correspondence-views-totals.vue?0bbc","webpack://client-web/./src/components/member-correspondence-views.vue","webpack://client-web/./src/components/member-correspondence-views.vue?da23","webpack://client-web/./src/components/member-correspondence-views.vue?b9b7","webpack://client-web/./src/components/member-correspondence-views.vue?fc90","webpack://client-web/./src/components/member-interactions-pie.vue","webpack://client-web/./src/components/member-interactions-pie.vue?14b3","webpack://client-web/./src/components/member-interactions-pie.vue?753c","webpack://client-web/./src/components/member-interactions-pie.vue?fb8e","webpack://client-web/./src/components/member-interactions.vue","webpack://client-web/./src/components/member-interactions.vue?336f","webpack://client-web/./src/components/member-interactions.vue?d498","webpack://client-web/./src/components/member-interactions.vue?2be7","webpack://client-web/./src/components/member-logins-by-age-pie.vue","webpack://client-web/./src/components/member-logins-by-age-pie.vue?fe70","webpack://client-web/./src/components/member-logins-by-age-pie.vue?9ce7","webpack://client-web/./src/components/member-logins-by-age-pie.vue?8585","webpack://client-web/./src/components/member-logins-by-age.vue","webpack://client-web/./src/components/member-logins-by-age.vue?b6f5","webpack://client-web/./src/components/member-logins-by-age.vue?415e","webpack://client-web/./src/components/member-logins-by-age.vue?73d8","webpack://client-web/./src/components/member-logins-by-status-pie.vue","webpack://client-web/./src/components/member-logins-by-status-pie.vue?c256","webpack://client-web/./src/components/member-logins-by-status-pie.vue?44ab","webpack://client-web/./src/components/member-logins-by-status-pie.vue?0758","webpack://client-web/./src/components/member-logins-by-status.vue","webpack://client-web/./src/components/member-logins-by-status.vue?84c3","webpack://client-web/./src/components/member-logins-by-status.vue?889c","webpack://client-web/./src/components/member-logins-by-status.vue?a7c7","webpack://client-web/./src/components/member-logins-pie.vue","webpack://client-web/./src/components/member-logins-pie.vue?c624","webpack://client-web/./src/components/member-logins-pie.vue?8bbe","webpack://client-web/./src/components/member-logins-pie.vue?8fad","webpack://client-web/./src/components/member-logins.vue","webpack://client-web/./src/components/member-logins.vue?b0b0","webpack://client-web/./src/components/member-logins.vue?cc59","webpack://client-web/./src/components/member-logins.vue?f654","webpack://client-web/./src/components/member-movements.vue","webpack://client-web/./src/components/member-movements.vue?94b2","webpack://client-web/./src/components/member-movements.vue?0b35","webpack://client-web/./src/components/member-movements.vue?5293","webpack://client-web/./src/components/member-registrations-by-age-pie.vue","webpack://client-web/./src/components/member-registrations-by-age-pie.vue?055c","webpack://client-web/./src/components/member-registrations-by-age-pie.vue?8ce7","webpack://client-web/./src/components/member-registrations-by-age-pie.vue?0b01","webpack://client-web/./src/components/member-registrations-by-location.vue","webpack://client-web/./src/components/member-registrations-by-location.vue?5d3c","webpack://client-web/./src/components/member-registrations-by-location.vue?9c99","webpack://client-web/./src/components/member-registrations-by-location.vue?7a28","webpack://client-web/./src/components/member-registrations-by-status.vue","webpack://client-web/./src/components/member-registrations-by-status.vue?573c","webpack://client-web/./src/components/member-registrations-by-status.vue?e7ff","webpack://client-web/./src/components/member-registrations-by-status.vue?5412","webpack://client-web/./src/components/member-search.vue","webpack://client-web/./src/components/member-search.vue?4826","webpack://client-web/./src/components/member-search.vue?57b4","webpack://client-web/./src/components/member-search.vue?a9e1","webpack://client-web/./src/components/member-statistics-tile.vue","webpack://client-web/./src/components/member-statistics-tile.vue?ae20","webpack://client-web/./src/components/member-statistics-tile.vue?58db","webpack://client-web/./src/components/member-statistics-tile.vue?98a7","webpack://client-web/./src/components/memberDataTypes/a-v-c.vue","webpack://client-web/./src/components/memberDataTypes/a-v-c.vue?ea97","webpack://client-web/./src/components/memberDataTypes/a-v-c.vue?8046","webpack://client-web/./src/components/memberDataTypes/a-v-c.vue?05c4","webpack://client-web/./src/components/memberDataTypes/active-ceased-accrual-collections.vue","webpack://client-web/./src/components/memberDataTypes/active-ceased-accrual-collections.vue?2a16","webpack://client-web/./src/components/memberDataTypes/active-ceased-accrual-collections.vue?2e4c","webpack://client-web/./src/components/memberDataTypes/active-ceased-accrual-collections.vue?ac42","webpack://client-web/./src/components/memberDataTypes/add-def-info.vue","webpack://client-web/./src/components/memberDataTypes/add-def-info.vue?efc2","webpack://client-web/./src/components/memberDataTypes/add-def-info.vue?9a9d","webpack://client-web/./src/components/memberDataTypes/add-def-info.vue?dc5a","webpack://client-web/./src/components/memberDataTypes/b-c-e.vue","webpack://client-web/./src/components/memberDataTypes/b-c-e.vue?9dae","webpack://client-web/./src/components/memberDataTypes/b-c-e.vue?a4fc","webpack://client-web/./src/components/memberDataTypes/b-c-e.vue?94af","webpack://client-web/./src/components/memberDataTypes/basic-info.vue","webpack://client-web/./src/components/memberDataTypes/basic-info.vue?d9ea","webpack://client-web/./src/components/memberDataTypes/basic-info.vue?e137","webpack://client-web/./src/components/memberDataTypes/basic-info.vue?c693","webpack://client-web/./src/components/memberDataTypes/categories.vue","webpack://client-web/./src/components/memberDataTypes/categories.vue?1cc0","webpack://client-web/./src/components/memberDataTypes/categories.vue?e6fd","webpack://client-web/./src/components/memberDataTypes/categories.vue?b0f3","webpack://client-web/./src/components/memberDataTypes/contactInfo.vue","webpack://client-web/./src/components/memberDataTypes/contactInfo.vue?fda3","webpack://client-web/./src/components/memberDataTypes/contactInfo.vue?b382","webpack://client-web/./src/components/memberDataTypes/contactInfo.vue?0647","webpack://client-web/./src/components/memberDataTypes/contributions.vue","webpack://client-web/./src/components/memberDataTypes/contributions.vue?098e","webpack://client-web/./src/components/memberDataTypes/contributions.vue?4f60","webpack://client-web/./src/components/memberDataTypes/contributions.vue?68d6","webpack://client-web/./src/components/memberDataTypes/current-address.vue","webpack://client-web/./src/components/memberDataTypes/current-address.vue?f621","webpack://client-web/./src/components/memberDataTypes/current-address.vue?0f7b","webpack://client-web/./src/components/memberDataTypes/current-address.vue?de20","webpack://client-web/./src/components/memberDataTypes/d-c-funds.vue","webpack://client-web/./src/components/memberDataTypes/d-c-funds.vue?b830","webpack://client-web/./src/components/memberDataTypes/d-c-funds.vue?4e7b","webpack://client-web/./src/components/memberDataTypes/d-c-funds.vue?d092","webpack://client-web/./src/components/memberDataTypes/deferred-data-history.vue","webpack://client-web/./src/components/memberDataTypes/deferred-data-history.vue?4452","webpack://client-web/./src/components/memberDataTypes/deferred-data-history.vue?7e04","webpack://client-web/./src/components/memberDataTypes/deferred-data-history.vue?be19","webpack://client-web/./src/components/memberDataTypes/deferreddatabycollections.vue","webpack://client-web/./src/components/memberDataTypes/deferreddatabycollections.vue?2b4f","webpack://client-web/./src/components/memberDataTypes/deferreddatabycollections.vue?f238","webpack://client-web/./src/components/memberDataTypes/deferreddatabycollections.vue?2785","webpack://client-web/./src/components/memberDataTypes/depSetup.vue","webpack://client-web/./src/components/memberDataTypes/depSetup.vue?1460","webpack://client-web/./src/components/memberDataTypes/depSetup.vue?35cb","webpack://client-web/./src/components/memberDataTypes/depSetup.vue?878a","webpack://client-web/./src/components/memberDataTypes/earmarkingCollections.vue","webpack://client-web/./src/components/memberDataTypes/earmarkingCollections.vue?8001","webpack://client-web/./src/components/memberDataTypes/earmarkingCollections.vue?5331","webpack://client-web/./src/components/memberDataTypes/earmarkingCollections.vue?22b7","webpack://client-web/./src/components/memberDataTypes/earnings.vue","webpack://client-web/./src/components/memberDataTypes/earnings.vue?5b98","webpack://client-web/./src/components/memberDataTypes/earnings.vue?f00c","webpack://client-web/./src/components/memberDataTypes/earnings.vue?6877","webpack://client-web/./src/components/memberDataTypes/keyServicePeriodDates.vue","webpack://client-web/./src/components/memberDataTypes/keyServicePeriodDates.vue?9f68","webpack://client-web/./src/components/memberDataTypes/keyServicePeriodDates.vue?23bf","webpack://client-web/./src/components/memberDataTypes/keyServicePeriodDates.vue?6567","webpack://client-web/./src/components/memberDataTypes/marital-constructor.vue","webpack://client-web/./src/components/memberDataTypes/marital-constructor.vue?926b","webpack://client-web/./src/components/memberDataTypes/marital-constructor.vue?4b9a","webpack://client-web/./src/components/memberDataTypes/marital-constructor.vue?a167","webpack://client-web/./src/components/memberDataTypes/memberhsipHistory.vue","webpack://client-web/./src/components/memberDataTypes/memberhsipHistory.vue?6644","webpack://client-web/./src/components/memberDataTypes/memberhsipHistory.vue?b5c7","webpack://client-web/./src/components/memberDataTypes/memberhsipHistory.vue?8eb6","webpack://client-web/./src/components/memberDataTypes/n-i-earnings.vue","webpack://client-web/./src/components/memberDataTypes/n-i-earnings.vue?15e4","webpack://client-web/./src/components/memberDataTypes/n-i-earnings.vue?7c29","webpack://client-web/./src/components/memberDataTypes/n-i-earnings.vue?08ec","webpack://client-web/./src/components/memberDataTypes/penSuspensions.vue","webpack://client-web/./src/components/memberDataTypes/penSuspensions.vue?d75a","webpack://client-web/./src/components/memberDataTypes/penSuspensions.vue?f1f1","webpack://client-web/./src/components/memberDataTypes/penSuspensions.vue?1fa0","webpack://client-web/./src/components/memberDataTypes/pension-history.vue","webpack://client-web/./src/components/memberDataTypes/pension-history.vue?2cdd","webpack://client-web/./src/components/memberDataTypes/pension-history.vue?1c84","webpack://client-web/./src/components/memberDataTypes/pension-history.vue?41c7","webpack://client-web/./src/components/memberDataTypes/pensionSharingCollections.vue","webpack://client-web/./src/components/memberDataTypes/pensionSharingCollections.vue?b376","webpack://client-web/./src/components/memberDataTypes/pensionSharingCollections.vue?bf65","webpack://client-web/./src/components/memberDataTypes/pensionSharingCollections.vue?1f7d","webpack://client-web/./src/components/memberDataTypes/protection-certs.vue","webpack://client-web/./src/components/memberDataTypes/protection-certs.vue?2458","webpack://client-web/./src/components/memberDataTypes/protection-certs.vue?8999","webpack://client-web/./src/components/memberDataTypes/protection-certs.vue?e128","webpack://client-web/./src/components/memberDataTypes/refund.vue","webpack://client-web/./src/components/memberDataTypes/refund.vue?26f3","webpack://client-web/./src/components/memberDataTypes/refund.vue?df2f","webpack://client-web/./src/components/memberDataTypes/refund.vue?55d8","webpack://client-web/./src/components/memberDataTypes/retirement-event.vue","webpack://client-web/./src/components/memberDataTypes/retirement-event.vue?553b","webpack://client-web/./src/components/memberDataTypes/retirement-event.vue?38d0","webpack://client-web/./src/components/memberDataTypes/retirement-event.vue?88c6","webpack://client-web/./src/components/memberDataTypes/scheme-pays.vue","webpack://client-web/./src/components/memberDataTypes/scheme-pays.vue?3200","webpack://client-web/./src/components/memberDataTypes/scheme-pays.vue?ccb1","webpack://client-web/./src/components/memberDataTypes/scheme-pays.vue?2c27","webpack://client-web/./src/components/memberDataTypes/single-payments.vue","webpack://client-web/./src/components/memberDataTypes/single-payments.vue?6bba","webpack://client-web/./src/components/memberDataTypes/single-payments.vue?1e64","webpack://client-web/./src/components/memberDataTypes/single-payments.vue?ceb6","webpack://client-web/./src/components/memberDataTypes/status-history.vue","webpack://client-web/./src/components/memberDataTypes/status-history.vue?1776","webpack://client-web/./src/components/memberDataTypes/status-history.vue?275e","webpack://client-web/./src/components/memberDataTypes/status-history.vue?496f","webpack://client-web/./src/components/memberDataTypes/t-v-out.vue","webpack://client-web/./src/components/memberDataTypes/t-v-out.vue?1162","webpack://client-web/./src/components/memberDataTypes/t-v-out.vue?70ae","webpack://client-web/./src/components/memberDataTypes/t-v-out.vue?e639","webpack://client-web/./src/components/memberDataTypes/t-v-quotes.vue","webpack://client-web/./src/components/memberDataTypes/t-v-quotes.vue?342d","webpack://client-web/./src/components/memberDataTypes/t-v-quotes.vue?ce10","webpack://client-web/./src/components/memberDataTypes/t-v-quotes.vue?83ed","webpack://client-web/./src/components/memberDataTypes/transfersIn.vue","webpack://client-web/./src/components/memberDataTypes/transfersIn.vue?0eea","webpack://client-web/./src/components/memberDataTypes/transfersIn.vue?2c60","webpack://client-web/./src/components/memberDataTypes/transfersIn.vue?bd8d","webpack://client-web/./src/components/modeller-interactions-by-age-pie.vue","webpack://client-web/./src/components/modeller-interactions-by-age-pie.vue?c995","webpack://client-web/./src/components/modeller-interactions-by-age-pie.vue?0b42","webpack://client-web/./src/components/modeller-interactions-by-age-pie.vue?7455","webpack://client-web/./src/components/modeller-interactions-by-age.vue","webpack://client-web/./src/components/modeller-interactions-by-age.vue?1742","webpack://client-web/./src/components/modeller-interactions-by-age.vue?fdf0","webpack://client-web/./src/components/modeller-interactions-by-age.vue?400c","webpack://client-web/./src/components/modeller-times-by-age-pie.vue","webpack://client-web/./src/components/modeller-times-by-age-pie.vue?d1a0","webpack://client-web/./src/components/modeller-times-by-age-pie.vue?84f5","webpack://client-web/./src/components/modeller-times-by-age-pie.vue?2409","webpack://client-web/./src/components/modeller-times-by-age.vue","webpack://client-web/./src/components/modeller-times-by-age.vue?bb8d","webpack://client-web/./src/components/modeller-times-by-age.vue?6edb","webpack://client-web/./src/components/modeller-times-by-age.vue?eba2","webpack://client-web/./src/components/modeller-visits-by-age-pie.vue","webpack://client-web/./src/components/modeller-visits-by-age-pie.vue?e146","webpack://client-web/./src/components/modeller-visits-by-age-pie.vue?12c1","webpack://client-web/./src/components/modeller-visits-by-age-pie.vue?6e34","webpack://client-web/./src/components/modeller-visits-by-age.vue","webpack://client-web/./src/components/modeller-visits-by-age.vue?3ab8","webpack://client-web/./src/components/modeller-visits-by-age.vue?cd53","webpack://client-web/./src/components/modeller-visits-by-age.vue?0b73","webpack://client-web/./src/components/navbar.vue","webpack://client-web/./src/components/navbar.vue?186e","webpack://client-web/./src/components/navbar.vue?e81e","webpack://client-web/./src/components/navbar.vue?684c","webpack://client-web/./src/components/news-items.vue","webpack://client-web/./src/components/news-items.vue?da29","webpack://client-web/./src/components/news-items.vue?2ee3","webpack://client-web/./src/components/news-items.vue?8153","webpack://client-web/./src/components/page-visits-table.vue","webpack://client-web/./src/components/page-visits-table.vue?7633","webpack://client-web/./src/components/page-visits-table.vue?b929","webpack://client-web/./src/components/page-visits-table.vue?e6e5","webpack://client-web/./src/components/page-visits.vue","webpack://client-web/./src/components/page-visits.vue?0942","webpack://client-web/./src/components/page-visits.vue?9602","webpack://client-web/./src/components/page-visits.vue?5055","webpack://client-web/./src/components/payslip-views-by-status-pie.vue","webpack://client-web/./src/components/payslip-views-by-status-pie.vue?5a15","webpack://client-web/./src/components/payslip-views-by-status-pie.vue?19fe","webpack://client-web/./src/components/payslip-views-by-status-pie.vue?fdec","webpack://client-web/./src/components/payslip-views-by-status.vue","webpack://client-web/./src/components/payslip-views-by-status.vue?6c2e","webpack://client-web/./src/components/payslip-views-by-status.vue?e4da","webpack://client-web/./src/components/payslip-views-by-status.vue?2a72","webpack://client-web/./src/components/print-preview.vue","webpack://client-web/./src/components/print-preview.vue?5a44","webpack://client-web/./src/components/print-preview.vue?5d00","webpack://client-web/./src/components/print-preview.vue?6cbb","webpack://client-web/./src/components/terms-wording.vue","webpack://client-web/./src/components/terms-wording.vue?9953","webpack://client-web/./src/components/terms-wording.vue?b24e","webpack://client-web/./src/components/terms-wording.vue?2762","webpack://client-web/./src/components/transfers.vue","webpack://client-web/./src/components/transfers.vue?0e51","webpack://client-web/./src/components/transfers.vue?2b9c","webpack://client-web/./src/components/transfers.vue?80b8","webpack://client-web/./src/components/user-photo.vue","webpack://client-web/src/components/user-photo.vue","webpack://client-web/./src/components/user-photo.vue?6cd5","webpack://client-web/./src/components/user-photo.vue?4aaa","webpack://client-web/./src/components/web-form-views-by-status-pie.vue","webpack://client-web/./src/components/web-form-views-by-status-pie.vue?c424","webpack://client-web/./src/components/web-form-views-by-status-pie.vue?a1b2","webpack://client-web/./src/components/web-form-views-by-status-pie.vue?d5e2","webpack://client-web/./src/components/web-form-views-by-status.vue","webpack://client-web/./src/components/web-form-views-by-status.vue?e9e6","webpack://client-web/./src/components/web-form-views-by-status.vue?5b32","webpack://client-web/./src/components/web-form-views-by-status.vue?2764","webpack://client-web/./src/components/web-registrations-gauge.vue","webpack://client-web/./src/components/web-registrations-gauge.vue?f549","webpack://client-web/./src/components/web-registrations-gauge.vue?fc55","webpack://client-web/./src/components/web-registrations-gauge.vue?2de0","webpack://client-web/./src/components/web-registrations-pie.vue","webpack://client-web/./src/components/web-registrations-pie.vue?ec5b","webpack://client-web/./src/components/web-registrations-pie.vue?8adc","webpack://client-web/./src/components/web-registrations-pie.vue?017a","webpack://client-web/./src/components/web-registrations.vue","webpack://client-web/./src/components/web-registrations.vue?d304","webpack://client-web/./src/components/web-registrations.vue?f36f","webpack://client-web/./src/components/web-registrations.vue?1836","webpack://client-web/../../Shared/FrontEnd/src/components/addressComponent.vue","webpack://client-web/../../Shared/FrontEnd/src/models/address.ts","webpack://client-web/../../Shared/FrontEnd/src/models/addressResponse.ts","webpack://client-web/../../Shared/FrontEnd/src/components/addressComponent.vue?9db7","webpack://client-web/../../Shared/FrontEnd/src/components/addressComponent.vue?5b29","webpack://client-web/../../Shared/FrontEnd/src/components/addressComponent.vue?e130","webpack://client-web/../../Shared/FrontEnd/src/components/batch-jobs.vue","webpack://client-web/../../Shared/FrontEnd/src/models/batchJobSummary.ts","webpack://client-web/../../Shared/FrontEnd/src/api/batchJobsApi.ts","webpack://client-web/../../Shared/FrontEnd/src/components/batch-jobs.vue?7a50","webpack://client-web/../../Shared/FrontEnd/src/components/batch-jobs.vue?b5eb","webpack://client-web/../../Shared/FrontEnd/src/components/batch-jobs.vue?99d7","webpack://client-web/../../Shared/FrontEnd/src/components/btn.vue","webpack://client-web/../../Shared/FrontEnd/src/components/btn.vue?6062","webpack://client-web/../../Shared/FrontEnd/src/components/btn.vue?fe08","webpack://client-web/../../Shared/FrontEnd/src/components/client-telephone-conversation.vue","webpack://client-web/../../Shared/FrontEnd/src/components/client-telephone-conversation.vue?2b04","webpack://client-web/../../Shared/FrontEnd/src/components/client-telephone-conversation.vue?84b9","webpack://client-web/../../Shared/FrontEnd/src/components/client-telephone-conversation.vue?db74","webpack://client-web/../../Shared/FrontEnd/src/components/copy-link-button.vue","webpack://client-web/../../Shared/FrontEnd/src/components/copy-link-button.vue?b607","webpack://client-web/../../Shared/FrontEnd/src/components/copy-link-button.vue?4e7a","webpack://client-web/../../Shared/FrontEnd/src/components/copy-link-button.vue?0780","webpack://client-web/../../Shared/FrontEnd/src/components/correspondence-job.vue","webpack://client-web/../../Shared/FrontEnd/src/components/correspondence-job.vue?1b9e","webpack://client-web/../../Shared/FrontEnd/src/components/correspondence-job.vue?b4d2","webpack://client-web/../../Shared/FrontEnd/src/components/correspondence-job.vue?085b","webpack://client-web/../../Shared/FrontEnd/src/components/death-notification-form.vue","webpack://client-web/../../Shared/FrontEnd/src/models/deathFutureCorrespondenceContactDetails.ts","webpack://client-web/../../Shared/FrontEnd/src/models/deathSpouseOrCivilPartnerContactDetails.ts","webpack://client-web/../../Shared/FrontEnd/src/components/death-notification-form.vue?f000","webpack://client-web/../../Shared/FrontEnd/src/components/death-notification-form.vue?cd03","webpack://client-web/../../Shared/FrontEnd/src/components/death-notification-form.vue?63e6","webpack://client-web/../../Shared/FrontEnd/src/components/death-notification-futurecorrespondence-contact-details.vue","webpack://client-web/../../Shared/FrontEnd/src/components/death-notification-futurecorrespondence-contact-details.vue?3a2e","webpack://client-web/../../Shared/FrontEnd/src/components/death-notification-futurecorrespondence-contact-details.vue?9bb6","webpack://client-web/../../Shared/FrontEnd/src/components/death-notification-futurecorrespondence-contact-details.vue?203d","webpack://client-web/../../Shared/FrontEnd/src/components/death-notification-informant-contact-details.vue","webpack://client-web/../../Shared/FrontEnd/src/components/death-notification-informant-contact-details.vue?82c3","webpack://client-web/../../Shared/FrontEnd/src/components/death-notification-informant-contact-details.vue?60d1","webpack://client-web/../../Shared/FrontEnd/src/components/death-notification-informant-contact-details.vue?58be","webpack://client-web/../../Shared/FrontEnd/src/components/death-notification-spouseorcivilpartner-contact-details.vue","webpack://client-web/../../Shared/FrontEnd/src/components/death-notification-spouseorcivilpartner-contact-details.vue?49a7","webpack://client-web/../../Shared/FrontEnd/src/components/death-notification-spouseorcivilpartner-contact-details.vue?e47a","webpack://client-web/../../Shared/FrontEnd/src/components/death-notification-spouseorcivilpartner-contact-details.vue?4b41","webpack://client-web/../../Shared/FrontEnd/src/components/document-edit.vue","webpack://client-web/../../Shared/FrontEnd/src/models/correspondence/document.ts","webpack://client-web/../../Shared/FrontEnd/src/models/mergeDocument/createDocumentResponse.ts","webpack://client-web/../../Shared/FrontEnd/src/api/documentsApi.ts","webpack://client-web/../../Shared/FrontEnd/src/components/document-edit.vue?8175","webpack://client-web/../../Shared/FrontEnd/src/components/document-edit.vue?28ad","webpack://client-web/../../Shared/FrontEnd/src/components/document-edit.vue?8ec0","webpack://client-web/../../Shared/FrontEnd/src/components/email-viewer.vue","webpack://client-web/../../Shared/FrontEnd/src/models/correspondence/emailAttachment.ts","webpack://client-web/../../Shared/FrontEnd/src/components/email-viewer.vue?acbc","webpack://client-web/../../Shared/FrontEnd/src/components/email-viewer.vue?17dc","webpack://client-web/../../Shared/FrontEnd/src/components/email-viewer.vue?ead4","webpack://client-web/../../Shared/FrontEnd/src/components/grid-paging.vue","webpack://client-web/../../Shared/FrontEnd/src/components/grid-paging.vue?d0eb","webpack://client-web/../../Shared/FrontEnd/src/components/grid-paging.vue?cfa5","webpack://client-web/../../Shared/FrontEnd/src/components/grid-paging.vue?8bee","webpack://client-web/../../Shared/FrontEnd/src/components/header-bar.vue","webpack://client-web/../../Shared/FrontEnd/src/components/header-bar.vue?4023","webpack://client-web/../../Shared/FrontEnd/src/components/header-bar.vue?f1ea","webpack://client-web/../../Shared/FrontEnd/src/components/header-nav.vue","webpack://client-web/../../Shared/FrontEnd/src/components/header-nav.vue?eeca","webpack://client-web/../../Shared/FrontEnd/src/components/header-nav.vue?bca4","webpack://client-web/../../Shared/FrontEnd/src/components/job-selector-pulse.vue","webpack://client-web/../../Shared/FrontEnd/src/components/job-selector-pulse.vue?2611","webpack://client-web/../../Shared/FrontEnd/src/components/job-selector-pulse.vue?3318","webpack://client-web/../../Shared/FrontEnd/src/components/job-selector-pulse.vue?8f4d","webpack://client-web/../../Shared/FrontEnd/src/components/last-refreshed.vue","webpack://client-web/../../Shared/FrontEnd/src/components/last-refreshed.vue?a7f9","webpack://client-web/../../Shared/FrontEnd/src/components/last-refreshed.vue?cc7a","webpack://client-web/../../Shared/FrontEnd/src/components/last-refreshed.vue?a767","webpack://client-web/../../Shared/FrontEnd/src/components/loading.vue","webpack://client-web/../../Shared/FrontEnd/src/components/loading.vue?9d4e","webpack://client-web/../../Shared/FrontEnd/src/components/loading.vue?46b5","webpack://client-web/../../Shared/FrontEnd/src/components/login-page.vue","webpack://client-web/../../Shared/FrontEnd/src/components/login-page.vue?110a","webpack://client-web/../../Shared/FrontEnd/src/components/login-page.vue?0f6d","webpack://client-web/../../Shared/FrontEnd/src/components/member-advanced-search.vue","webpack://client-web/../../Shared/FrontEnd/src/components/member-advanced-search.vue?d130","webpack://client-web/../../Shared/FrontEnd/src/components/member-advanced-search.vue?9fcf","webpack://client-web/../../Shared/FrontEnd/src/components/member-advanced-search.vue?7646","webpack://client-web/../../Shared/FrontEnd/src/components/member-button.vue","webpack://client-web/../../Shared/FrontEnd/src/components/member-button.vue?3fed","webpack://client-web/../../Shared/FrontEnd/src/components/member-button.vue?ff21","webpack://client-web/../../Shared/FrontEnd/src/components/member-button.vue?73d5","webpack://client-web/../../Shared/FrontEnd/src/components/member-telephone-conversation.vue","webpack://client-web/../../Shared/FrontEnd/src/mixins/confirmLeaveDialog.ts","webpack://client-web/../../Shared/FrontEnd/src/components/member-telephone-conversation.vue?3270","webpack://client-web/../../Shared/FrontEnd/src/components/member-telephone-conversation.vue?7e64","webpack://client-web/../../Shared/FrontEnd/src/components/member-telephone-conversation.vue?7cc2","webpack://client-web/../../Shared/FrontEnd/src/components/members-dropdown.vue","webpack://client-web/../../Shared/FrontEnd/src/components/members-dropdown.vue?e699","webpack://client-web/../../Shared/FrontEnd/src/components/members-dropdown.vue?53d5","webpack://client-web/../../Shared/FrontEnd/src/components/messages.vue","webpack://client-web/../../Shared/FrontEnd/src/components/messages.vue?41c5","webpack://client-web/../../Shared/FrontEnd/src/components/messages.vue?ac94","webpack://client-web/../../Shared/FrontEnd/src/components/modal.vue","webpack://client-web/../../Shared/FrontEnd/src/components/modal.vue?31d8","webpack://client-web/../../Shared/FrontEnd/src/components/modal.vue?ef60","webpack://client-web/../../Shared/FrontEnd/src/components/phone-viewer.vue","webpack://client-web/../../Shared/FrontEnd/src/components/phone-viewer.vue?39eb","webpack://client-web/../../Shared/FrontEnd/src/components/phone-viewer.vue?bbee","webpack://client-web/../../Shared/FrontEnd/src/components/phone-viewer.vue?0133","webpack://client-web/../../Shared/FrontEnd/src/components/profile-photo-old.vue","webpack://client-web/../../Shared/FrontEnd/src/components/profile-photo-old.vue?0541","webpack://client-web/../../Shared/FrontEnd/src/components/profile-photo-old.vue?e0ab","webpack://client-web/../../Shared/FrontEnd/src/components/profile-photo.vue","webpack://client-web/../../Shared/FrontEnd/src/components/profile-photo.vue?20a0","webpack://client-web/../../Shared/FrontEnd/src/components/profile-photo.vue?72cd","webpack://client-web/../../Shared/FrontEnd/src/components/profile-photo.vue?ef95","webpack://client-web/../../Shared/FrontEnd/src/components/scheduler.vue","webpack://client-web/../../Shared/FrontEnd/src/components/scheduler.vue?ce2d","webpack://client-web/../../Shared/FrontEnd/src/components/scheduler.vue?6363","webpack://client-web/../../Shared/FrontEnd/src/components/scheduler.vue?7e92","webpack://client-web/../../Shared/FrontEnd/src/components/tab.vue","webpack://client-web/../../Shared/FrontEnd/src/components/tab.vue?d6ca","webpack://client-web/../../Shared/FrontEnd/src/components/tab.vue?07ff","webpack://client-web/../../Shared/FrontEnd/src/components/tabs.vue","webpack://client-web/../../Shared/FrontEnd/src/components/tabs.vue?3de2","webpack://client-web/../../Shared/FrontEnd/src/components/tabs.vue?70ee","webpack://client-web/../../Shared/FrontEnd/src/components/tiff-viewer.vue","webpack://client-web/../../Shared/FrontEnd/src/components/tiff-viewer.vue?dc8d","webpack://client-web/../../Shared/FrontEnd/src/components/tiff-viewer.vue?0539","webpack://client-web/../../Shared/FrontEnd/src/components/tiff-viewer.vue?a009","webpack://client-web/../../Shared/FrontEnd/src/components/toggle-switch.vue","webpack://client-web/../../Shared/FrontEnd/src/components/toggle-switch.vue?e5db","webpack://client-web/../../Shared/FrontEnd/src/components/toggle-switch.vue?c8ca","webpack://client-web/../../Shared/FrontEnd/src/components/users-dropdown.vue","webpack://client-web/../../Shared/FrontEnd/src/components/users-dropdown.vue?a086","webpack://client-web/../../Shared/FrontEnd/src/components/users-dropdown.vue?d5ab","webpack://client-web/../../Shared/FrontEnd/src/components/webQuery-viewer.vue","webpack://client-web/../../Shared/FrontEnd/src/components/webQuery-viewer.vue?d19f","webpack://client-web/../../Shared/FrontEnd/src/components/webQuery-viewer.vue?2913","webpack://client-web/../../Shared/FrontEnd/src/components/webQuery-viewer.vue?8959","webpack://client-web/./node_modules/moment/locale/ sync ^\\.\\/.*$","webpack://client-web/./src/models/clientCalendar.ts","webpack://client-web/./src/models/clientContext.ts","webpack://client-web/./src/models/clientMemberStats.ts","webpack://client-web/./src/models/dataUpdateStats.ts","webpack://client-web/./src/models/memberDocumentStats.ts","webpack://client-web/./src/models/financialData.ts","webpack://client-web/./src/models/governanceInformation.ts","webpack://client-web/./src/models/jobDateStats.ts","webpack://client-web/./src/models/memberDemographics.ts","webpack://client-web/./src/models/memberFeedbackScores.ts","webpack://client-web/./src/models/memberInteractions.ts","webpack://client-web/./src/models/memberLogins.ts","webpack://client-web/./src/models/memberMovements.ts","webpack://client-web/./src/models/memberRegistrations.ts","webpack://client-web/./src/models/modellerStats.ts","webpack://client-web/./src/models/pageVisits.ts","webpack://client-web/./src/models/transferStats.ts","webpack://client-web/./src/models/webRegistrations.ts","webpack://client-web/./src/api/clientApi.ts","webpack://client-web/./src/models/memberSearchResult.ts","webpack://client-web/./src/api/memberApi.ts","webpack://client-web/../../Shared/FrontEnd/src/util/auth/externalAuthenticationService.ts","webpack://client-web/./src/config.ts","webpack://client-web/./src/App.vue","webpack://client-web/./src/views/LoginPage.vue","webpack://client-web/src/views/LoginPage.vue","webpack://client-web/./src/views/LoginPage.vue?8932","webpack://client-web/./src/views/LoginPage.vue?8c34","webpack://client-web/./src/App.vue?38a5","webpack://client-web/./src/App.vue?4922","webpack://client-web/./src/App.vue?0e40","webpack://client-web/./src/views/Home.vue","webpack://client-web/./src/views/Home.vue?17f1","webpack://client-web/./src/views/Home.vue?dc4e","webpack://client-web/./src/views/Home.vue?8611","webpack://client-web/./src/views/MemberActivity.vue","webpack://client-web/./src/views/MemberActivity.vue?0ae2","webpack://client-web/./src/views/MemberActivity.vue?1b4f","webpack://client-web/./src/views/MemberActivity.vue?16b5","webpack://client-web/./src/views/Membership.vue","webpack://client-web/./src/views/Membership.vue?9373","webpack://client-web/./src/views/Membership.vue?c2b3","webpack://client-web/./src/views/Membership.vue?3ae7","webpack://client-web/./src/views/SchemeGovernance.vue","webpack://client-web/./src/views/SchemeGovernance.vue?de8b","webpack://client-web/./src/views/SchemeGovernance.vue?2917","webpack://client-web/./src/views/SchemeGovernance.vue?374e","webpack://client-web/./src/views/Finance.vue","webpack://client-web/./src/views/Finance.vue?9523","webpack://client-web/./src/views/Finance.vue?4df6","webpack://client-web/./src/views/Finance.vue?3e84","webpack://client-web/./src/views/News.vue","webpack://client-web/./src/views/News.vue?46ac","webpack://client-web/./src/views/News.vue?f707","webpack://client-web/./src/views/News.vue?c751","webpack://client-web/./src/views/Documents.vue","webpack://client-web/./src/views/Documents.vue?634f","webpack://client-web/./src/views/Documents.vue?2190","webpack://client-web/./src/views/Documents.vue?ef06","webpack://client-web/./src/views/ClientList.vue","webpack://client-web/./src/views/ClientList.vue?9603","webpack://client-web/./src/views/ClientList.vue?d876","webpack://client-web/./src/views/ClientList.vue?8592","webpack://client-web/./src/views/MemberWebsite.vue","webpack://client-web/./src/views/MemberWebsite.vue?de4b","webpack://client-web/./src/views/MemberWebsite.vue?dbbf","webpack://client-web/./src/views/MemberWebsite.vue?8100","webpack://client-web/./src/views/Terms.vue","webpack://client-web/./src/views/Terms.vue?e67d","webpack://client-web/./src/views/Terms.vue?72d0","webpack://client-web/./src/views/Terms.vue?86ef","webpack://client-web/./src/views/MemberSearch.vue","webpack://client-web/./src/views/MemberSearch.vue?d1e0","webpack://client-web/./src/views/MemberSearch.vue?e849","webpack://client-web/./src/views/MemberSearch.vue?6c45","webpack://client-web/./src/views/MemberData.vue","webpack://client-web/./src/views/MemberData.vue?9d7a","webpack://client-web/./src/views/MemberData.vue?1c8f","webpack://client-web/./src/views/MemberData.vue?6ee0","webpack://client-web/./src/router/index.ts","webpack://client-web/../../Shared/FrontEnd/src/components/_globals.ts","webpack://client-web/./src/util/camelCase.ts","webpack://client-web/./src/util/upperFirst.ts","webpack://client-web/./src/components/_global.ts","webpack://client-web/./src/components/memberDataTypes/_global.ts","webpack://client-web/./src/main.ts","webpack://client-web/./src/services/clientNameService.ts","webpack://client-web/./src/services/colourService.ts","webpack://client-web/./src/services/pieLegendService.ts","webpack://client-web/./src/store/index.ts","webpack://client-web/./src/models/memberSearchOptions.ts","webpack://client-web/./src/store/modules/clientContext.ts","webpack://client-web/./src/store/modules/clientStatistics.ts","webpack://client-web/./src/store/modules/index.ts","webpack://client-web/../../Shared/FrontEnd/src/api/interceptor.ts","webpack://client-web/../../Shared/FrontEnd/src/models/apiOptions.ts","webpack://client-web/../../Shared/FrontEnd/src/api/apiHelper.ts","webpack://client-web/../../Shared/FrontEnd/src/models/unverifiedDataSummary.ts","webpack://client-web/../../Shared/FrontEnd/src/models/correspondence/correspondenceSummary.ts","webpack://client-web/../../Shared/FrontEnd/src/models/clientHistory.ts","webpack://client-web/../../Shared/FrontEnd/src/models/memberValidations/memberValidationAuditHistory.ts","webpack://client-web/../../Shared/FrontEnd/src/models/insurerReceiptUploadQuery.ts","webpack://client-web/../../Shared/FrontEnd/src/models/memberDataType.ts","webpack://client-web/../../Shared/FrontEnd/src/api/clientsApi.ts","webpack://client-web/../../Shared/FrontEnd/src/api/inboxApi.ts","webpack://client-web/../../Shared/FrontEnd/src/models/jobSummary.ts","webpack://client-web/../../Shared/FrontEnd/src/models/job.ts","webpack://client-web/../../Shared/FrontEnd/src/models/jobBilling.ts","webpack://client-web/../../Shared/FrontEnd/src/api/jobApi.ts","webpack://client-web/../../Shared/FrontEnd/src/models/dataTypes/dataTypeSummary.ts","webpack://client-web/../../Shared/FrontEnd/src/models/dataTypes/dataType.ts","webpack://client-web/../../Shared/FrontEnd/src/models/dataTypes/memberDataTypeRequestResponse.ts","webpack://client-web/../../Shared/FrontEnd/src/models/dataTypes/dataTypeReview.ts","webpack://client-web/../../Shared/FrontEnd/src/models/dataTypes/dataValidation.ts","webpack://client-web/../../Shared/FrontEnd/src/models/dataTypes/memberHistoryItem.ts","webpack://client-web/../../Shared/FrontEnd/src/models/deletedMember.ts","webpack://client-web/../../Shared/FrontEnd/src/models/memberVerificationSummary.ts","webpack://client-web/../../Shared/FrontEnd/src/models/basicMemberVerification.ts","webpack://client-web/../../Shared/FrontEnd/src/models/unverifiedMemberDataSummary.ts","webpack://client-web/../../Shared/FrontEnd/src/api/member.ts","webpack://client-web/../../Shared/FrontEnd/src/models/client.ts","webpack://client-web/../../Shared/FrontEnd/src/models/correspondence/documentCategory.ts","webpack://client-web/../../Shared/FrontEnd/src/models/deathEnums.ts","webpack://client-web/../../Shared/FrontEnd/src/models/memberSummary.ts","webpack://client-web/../../Shared/FrontEnd/src/models/user.ts","webpack://client-web/../../Shared/FrontEnd/src/models/yearlyQuarterlyFeedback.ts","webpack://client-web/../../Shared/FrontEnd/src/util/auth/authenticationService.ts","webpack://client-web/../../Shared/FrontEnd/src/store/modules/auth.ts","webpack://client-web/../../Shared/FrontEnd/src/models/calculations/manualCalculationDefinition.ts","webpack://client-web/../../Shared/FrontEnd/src/api/calculationsApi.ts","webpack://client-web/../../Shared/FrontEnd/src/store/modules/calculations.ts","webpack://client-web/../../Shared/FrontEnd/src/models/teamSummary.ts","webpack://client-web/../../Shared/FrontEnd/src/api/teamsApi.ts","webpack://client-web/../../Shared/FrontEnd/src/store/modules/client.ts","webpack://client-web/../../Shared/FrontEnd/src/models/systemList.ts","webpack://client-web/../../Shared/FrontEnd/src/api/systemListApi.ts","webpack://client-web/../../Shared/FrontEnd/src/store/modules/common.ts","webpack://client-web/../../Shared/FrontEnd/src/models/configuration.ts","webpack://client-web/../../Shared/FrontEnd/src/models/clientWebConfiguration.ts","webpack://client-web/../../Shared/FrontEnd/src/models/clientConfigurationSummary.ts","webpack://client-web/../../Shared/FrontEnd/src/models/clientConfigurationDetails.ts","webpack://client-web/../../Shared/FrontEnd/src/models/ClientConfigurationSummaryResponse.ts","webpack://client-web/../../Shared/FrontEnd/src/api/configurationApi.ts","webpack://client-web/../../Shared/FrontEnd/src/store/modules/configuration.ts","webpack://client-web/../../Shared/FrontEnd/src/store/modules/correspondence.ts","webpack://client-web/../../Shared/FrontEnd/src/store/modules/index.ts","webpack://client-web/../../Shared/FrontEnd/src/store/modules/jobs.ts","webpack://client-web/../../Shared/FrontEnd/src/store/modules/messages.ts","webpack://client-web/../../Shared/FrontEnd/src/models/permissions/userRole.ts","webpack://client-web/../../Shared/FrontEnd/src/models/userDetails.ts","webpack://client-web/../../Shared/FrontEnd/src/models/userTeamAssignment.ts","webpack://client-web/../../Shared/FrontEnd/src/api/usersApi.ts","webpack://client-web/../../Shared/FrontEnd/src/store/modules/users.ts","webpack://client-web/../../Shared/FrontEnd/src/store/modules/validations.ts","webpack://client-web/../../Shared/FrontEnd/src/store/modules/verifications.ts","webpack://client-web/../../Shared/FrontEnd/src/api/webformsApi.ts","webpack://client-web/../../Shared/FrontEnd/src/store/modules/webforms.ts","webpack://client-web/../../Shared/FrontEnd/src/store/storepaths.ts","webpack://client-web/../../Shared/FrontEnd/src/util/base64Image.ts","webpack://client-web/../../Shared/FrontEnd/src/util/camelCase.ts","webpack://client-web/../../Shared/FrontEnd/src/util/cloneDeep.ts","webpack://client-web/../../Shared/FrontEnd/src/util/emailHelper.ts","webpack://client-web/../../Shared/FrontEnd/src/util/guid.ts","webpack://client-web/../../Shared/FrontEnd/src/util/pulseStatusEnum.ts","webpack://client-web/../../Shared/FrontEnd/src/util/timezones.ts","webpack://client-web/./src/components/memberDataTypes/ sync nonrecursive [\\w-]+\\.vue$","webpack://client-web/./src/components/ sync nonrecursive [\\w-]+\\.vue$","webpack://client-web/./src/store/modules/ sync ^((","webpack://client-web/../../Shared/FrontEnd/src/components/ sync nonrecursive [\\w-]+\\.vue$","webpack://client-web/../../Shared/FrontEnd/src/store/modules/ sync ^((","webpack://client-web/webpack/bootstrap","webpack://client-web/webpack/runtime/chunk loaded","webpack://client-web/webpack/runtime/compat get default export","webpack://client-web/webpack/runtime/define property getters","webpack://client-web/webpack/runtime/global","webpack://client-web/webpack/runtime/hasOwnProperty shorthand","webpack://client-web/webpack/runtime/make namespace object","webpack://client-web/webpack/runtime/node module decorator","webpack://client-web/webpack/runtime/publicPath","webpack://client-web/webpack/runtime/jsonp chunk loading","webpack://client-web/webpack/startup"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title darkblue\"},[_vm._v(\" Bank balance \")]),_c('info',{attrs:{\"tooltip\":\"Bank balance over the period\"}}),_c('div',{staticClass:\"tile-content\"},[_c('highcharts',{attrs:{\"options\":_vm.chartOptions}}),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport Guid from 'common/util/guid';\r\nimport dayjs from 'dayjs';\r\nimport ColourService from '@/services/colourService';\r\nimport Highcharts, { SeriesOptionsType } from 'highcharts';\r\nimport FinancialData from '@/models/financialData';\r\n\r\n@Component\r\nexport default class Transfers extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        filter!: string | null;\r\n\r\n    @Prop()\r\n        printing!: boolean | null;\r\n\r\n    get loading () {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'financials') || false as boolean;\r\n    }\r\n\r\n    get transferStats (): FinancialData {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'financials');\r\n    }\r\n\r\n    get transferStatsTranformed () {\r\n        if (!this.transferStats) return null;\r\n\r\n        return [{\r\n            name: 'Bank balance',\r\n            color: ColourService.getSeriesColour('balance', 'balance'),\r\n            type: 'line',\r\n            data: this.transferStats.periods.map((a) => a.endBalance),\r\n        }] as Array<SeriesOptionsType>;\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                type: 'line',\r\n            },\r\n            xAxis: {\r\n                categories: this.transferStats?.periods.map((a) => dayjs(a.fromDate).format('DD MMM YYYY')),\r\n                labels: {\r\n                    formatter: (that) => dayjs(that.value).format('DD MMM'),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            tooltip: {\r\n                pointFormat: '{series.name}: <b>£{point.y}</b><br/>',\r\n            },\r\n            yAxis: {\r\n                allowDecimals: false,\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n                labels: {\r\n                    formatter () {\r\n                        const label = this.value;\r\n                        return `£${label.toLocaleString('en')}`;\r\n                    },\r\n                },\r\n\r\n            },\r\n            legend: {\r\n                enabled: true,\r\n                itemStyle: {\r\n                    fontSize: '0.9rem',\r\n                    fontFamily: 'Montserrat, sans-serif',\r\n                    fontWeight: '400',\r\n                },\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            plotOptions: {\r\n                column: {\r\n                    stacking: 'normal',\r\n                },\r\n            },\r\n            series: this.transferStatsTranformed || [],\r\n        };\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./bank-balance-over-time.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./bank-balance-over-time.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./bank-balance-over-time.vue?vue&type=template&id=1b818415&scoped=true&\"\nimport script from \"./bank-balance-over-time.vue?vue&type=script&lang=ts&\"\nexport * from \"./bank-balance-over-time.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./bank-balance-over-time.vue?vue&type=style&index=0&id=1b818415&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"1b818415\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile small\"},[_c('h3',{staticClass:\"tile-title darkblue\"},[_vm._v(\"Bank balance summary\")]),_c('div',{staticClass:\"tile-content\"},[_c('div',{staticClass:\"balance\"},[_c('span',[_c('font-awesome-icon',{staticClass:\"icon\",attrs:{\"icon\":\"pound-sign\"}}),_vm._v(\" \"+_vm._s(_vm.formatNumber(_vm.previousBalance))+\" \")],1),_c('h4',[_vm._v(\"Balance at \"),_c('i',[_vm._v(_vm._s(_vm.formatDate(_vm.startDate)))])])]),_c('div',{staticClass:\"balance\"},[_c('span',[_c('font-awesome-icon',{staticClass:\"icon\",attrs:{\"icon\":\"pound-sign\"}}),_vm._v(\" \"+_vm._s(_vm.formatNumber(_vm.latestBalance))+\" \")],1),_c('h4',[_vm._v(\"Balance at \"),_c('i',[_vm._v(_vm._s(_vm.formatDate(_vm.endDate)))])])]),_c('div',{staticClass:\"balance\"},[_c('span',[(_vm.balanceChange > 0)?_c('font-awesome-icon',{staticClass:\"icon\",attrs:{\"icon\":\"arrow-up\"}}):(_vm.balanceChange < 0)?_c('font-awesome-icon',{staticClass:\"icon down\",attrs:{\"icon\":\"arrow-down\"}}):_vm._e(),_vm._v(\" \"+_vm._s(_vm.formatNumber(_vm.balanceChange))+\"% \")],1),_c('h4',[_vm._v(\"Change since the start of the period\")])])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport FinancialData from '@/models/financialData';\r\nimport Guid from 'common/util/guid';\r\nimport dayjs from 'dayjs';\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class FeedbackScore extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    get loading () {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'financials') || false as boolean;\r\n    }\r\n\r\n    get financeStats (): FinancialData {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'financials');\r\n    }\r\n\r\n    get latestBalance (): number {\r\n        return this.financeStats?.endBalance;\r\n    }\r\n\r\n    get previousBalance (): number {\r\n        return this.financeStats?.startBalance;\r\n    }\r\n\r\n    get balanceChange (): number {\r\n        if (this.previousBalance === 0) return 100;\r\n        return ((this.latestBalance / this.previousBalance) - 1) * 100;\r\n    }\r\n\r\n    get startDate () {\r\n        return this.financeStats?.periods?.[0].fromDate ?? '';\r\n    }\r\n\r\n    get endDate () {\r\n        return this.financeStats?.periods?.[this.financeStats.periods.length - 1].toDate ?? '';\r\n    }\r\n\r\n    formatDate (date: string) {\r\n        return dayjs(date).format('DD MMM YYYY');\r\n    }\r\n\r\n    formatNumber (val?: number) {\r\n        if (!val) return 0;\r\n        return Math.round(val).toLocaleString('en');\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./bank-balance.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./bank-balance.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./bank-balance.vue?vue&type=template&id=216aae4a&scoped=true&\"\nimport script from \"./bank-balance.vue?vue&type=script&lang=ts&\"\nexport * from \"./bank-balance.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./bank-balance.vue?vue&type=style&index=0&id=216aae4a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"216aae4a\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title blue\"},[_vm._v(\" Events calendar \")]),_c('info',{attrs:{\"tooltip\":\"Latest position with annual events\"}}),_c('div',{staticClass:\"tile-content\",class:{ printing: _vm.printing }},[_vm._m(0),_c('ul',{staticClass:\"months\"},_vm._l((_vm.clientEvents),function(events,date){return _c('li',{key:date},[_c('span',{staticClass:\"date\"},[_vm._v(_vm._s(date))]),_vm._l((events),function(event){return _c('ul',{key:event.name,staticClass:\"events\"},[_c('li',{attrs:{\"title\":_vm.formatDate(event.date)}},[_c('span',{staticClass:\"name\"},[_vm._v(_vm._s(event.name))]),_c('div',{staticClass:\"status\",class:[event.status.toLowerCase()]})])])})],2)}),0),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"key\"},[_c('div',{staticClass:\"status-key\"},[_c('span',[_vm._v(\"Upcoming\")]),_c('div',{staticClass:\"status upcoming\"})]),_c('div',{staticClass:\"status-key\"},[_c('span',[_vm._v(\"In progress\")]),_c('div',{staticClass:\"status inprogress\"})]),_c('div',{staticClass:\"status-key\"},[_c('span',[_vm._v(\"Complete\")]),_c('div',{staticClass:\"status complete\"})])])\n}]\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue, Watch,\r\n} from 'vue-property-decorator';\r\nimport ClientsApi from '@/api/clientApi';\r\nimport Guid from 'common/util/guid';\r\nimport ClientCalendar from '@/models/clientCalendar';\r\nimport dayjs from 'dayjs';\r\n\r\n@Component\r\nexport default class CompletedJobs extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        printing!: boolean;\r\n\r\n    clientCalendar: ClientCalendar | null = null;\r\n\r\n    loading = false;\r\n\r\n    get fromDate () {\r\n        return this.$store.getters['clientContext/fromDate'](this.clientId) as string;\r\n    }\r\n\r\n    get toDate () {\r\n        return this.$store.getters['clientContext/toDate'](this.clientId) as string;\r\n    }\r\n\r\n    formatDate (date: string) {\r\n        return dayjs(date).format('DD/MM/YYYY');\r\n    }\r\n\r\n    @Watch('fromDate', { immediate: true })\r\n    @Watch('toDate')\r\n    async datesChanged () {\r\n        this.clientCalendar = await ClientsApi.getClientCalendar(this.clientId);\r\n    }\r\n\r\n    get clientEvents () {\r\n        const months: { [key: string ]: Array<{ date: string; name: string; status: string }>} = {};\r\n        if (!this.clientCalendar?.events) return months;\r\n        this.clientCalendar.events.sort((a, b) => (a.date > b.date ? 1 : -1)).filter((a, i) => i < 50).forEach(((a) => {\r\n            let key = dayjs(a.date).format('MMMM');\r\n            if (dayjs(a.date).year() !== dayjs(new Date()).year()) {\r\n                key += ` ${dayjs(a.date).format('YYYY')}`;\r\n            }\r\n            if (!months[key]) months[key] = [];\r\n            months[key].push(a);\r\n        }));\r\n        return months;\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./client-calendar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./client-calendar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./client-calendar.vue?vue&type=template&id=96097d04&scoped=true&\"\nimport script from \"./client-calendar.vue?vue&type=script&lang=ts&\"\nexport * from \"./client-calendar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./client-calendar.vue?vue&type=style&index=0&id=96097d04&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"96097d04\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('toggle-switch',{staticClass:\"toggle\",attrs:{\"name\":\"View over period\"},model:{value:(_vm.viewOverPeriod),callback:function ($$v) {_vm.viewOverPeriod=$$v},expression:\"viewOverPeriod\"}}),(_vm.viewOverPeriod)?_c('div',{staticClass:\"column\"},[_vm._t(\"column\")],2):_vm._t(\"pie\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport Guid from 'common/util/guid';\r\n\r\n@Component\r\nexport default class MemberLoginsChart extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    viewOverPeriod = false;\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./column-pie-toggle.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./column-pie-toggle.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./column-pie-toggle.vue?vue&type=template&id=d57330d6&scoped=true&\"\nimport script from \"./column-pie-toggle.vue?vue&type=script&lang=ts&\"\nexport * from \"./column-pie-toggle.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./column-pie-toggle.vue?vue&type=style&index=0&id=d57330d6&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"d57330d6\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile small\"},[_c('h3',{staticClass:\"tile-title blue\"},[_vm._v(\"Complaints\")]),_c('div',{staticClass:\"tile-content\"},[_c('div',{staticClass:\"stat\"},[_c('span',{staticClass:\"value\"},[_vm._v(\" 2 \")]),_vm._v(\" complaints over this period \"),_c('font-awesome-icon',{attrs:{\"icon\":\"angry\"}})],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Guid from 'common/util/guid';\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class Complaints extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    loading = false;\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./complaints.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./complaints.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./complaints.vue?vue&type=template&id=221291da&scoped=true&\"\nimport script from \"./complaints.vue?vue&type=script&lang=ts&\"\nexport * from \"./complaints.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./complaints.vue?vue&type=style&index=0&id=221291da&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"221291da\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title\"},[_vm._v(\" Completed cases by calendar year \")]),_c('div',{staticClass:\"tile-content\"},[_c('highcharts',{ref:\"chart\",attrs:{\"options\":_vm.chartOptions}}),(_vm.loading)?_c('loading'):_vm._e(),_c('div',{staticClass:\"info\"},[_c('span',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.averageCompletionTime))]),_vm._v(\" days on average to complete a case \")])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport Guid from 'common/util/guid';\r\nimport dayjs from 'dayjs';\r\nimport JobDateStats from '@/models/jobDateStats';\r\nimport Highcharts from 'highcharts';\r\n\r\n@Component\r\nexport default class CompletedJobs extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        filter!: string | null;\r\n\r\n    get fromDate () {\r\n        return this.$store.getters['clientContext/minDate'](this.clientId) as string;\r\n    }\r\n\r\n    get toDate () {\r\n        return dayjs(new Date()).format('YYYY-MM-DD');\r\n    }\r\n\r\n    navigateTo () {\r\n        this.$router.push({\r\n            name: 'MemberActivity',\r\n            params: { row: 'completed-jobs' },\r\n        });\r\n    }\r\n\r\n    get loading (): boolean {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'dashboardCompletedCases');\r\n    }\r\n\r\n    get completedJobStats (): JobDateStats | null {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'dashboardCompletedCases');\r\n    }\r\n\r\n    get averageCompletionTime () {\r\n        return Math.floor((this.completedJobStats?.averageCompletionTime || 0) * 10) / 10;\r\n    }\r\n\r\n    get completedJobStatsTranformed (): Array<{ type: 'line'; data: Array<number>; name: string}> {\r\n        if (!this.completedJobStats?.dataByDate) {\r\n            return [{\r\n                name: 'Cases',\r\n                data: [],\r\n                type: 'line',\r\n\r\n            }];\r\n        }\r\n        return [\r\n            {\r\n                data: this.completedJobStats.dataByDate.map((date) => Object.values(date.counts).reduce((a, b) => a + b, 0)),\r\n                type: 'line',\r\n                name: 'Cases',\r\n            },\r\n        ];\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                type: 'areaspline',\r\n\r\n            },\r\n            xAxis: {\r\n                categories: this.completedJobStats?.dataByDate.map((a) => dayjs(a.startDate).format('DD MMM YYYY')),\r\n                labels: {\r\n                    formatter: ((that) => dayjs(that.value).format('DD MMM')),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            yAxis: {\r\n                allowDecimals: false,\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n                min: 0,\r\n            },\r\n            legend: {\r\n                enabled: false,\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            plotOptions: {\r\n                line: {\r\n                    color: {\r\n                        linearGradient: {\r\n                            x1: 0,\r\n                            y1: 0,\r\n                            x2: 0,\r\n                            y2: 1,\r\n                        },\r\n                        stops: [\r\n                            [0.1, '#f27174'],\r\n                            [0.5, '#faa743'],\r\n                            [1, '#b7d878'],\r\n                        ],\r\n                    },\r\n                    marker: {\r\n                        enabled: false,\r\n                        fillColor: '#fff',\r\n                        radius: 2,\r\n                    },\r\n                    lineWidth: 4,\r\n\r\n                    states: {\r\n                        hover: {\r\n                            lineWidth: 2,\r\n                        },\r\n                    },\r\n                    threshold: null,\r\n                },\r\n                area: {\r\n                    opacity: 0.2,\r\n                    color: {\r\n                        linearGradient: {\r\n                            x1: 0,\r\n                            y1: 0,\r\n                            x2: 0,\r\n                            y2: 1,\r\n                        },\r\n                        stops: [\r\n                            [0.1, '#f27174'],\r\n                            [0.5, '#faa743'],\r\n                            [1, 'rgba(107, 189, 107, 1)'],\r\n                        ],\r\n                    },\r\n                    marker: {\r\n                        enabled: false,\r\n                    },\r\n                    lineWidth: 5,\r\n\r\n                    states: {\r\n                        hover: {\r\n                            lineWidth: 6,\r\n                        },\r\n                    },\r\n                    threshold: null,\r\n                },\r\n            },\r\n            series: this.completedJobStatsTranformed,\r\n        };\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./completed-jobs-rag.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./completed-jobs-rag.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./completed-jobs-rag.vue?vue&type=template&id=fd8dfe76&scoped=true&\"\nimport script from \"./completed-jobs-rag.vue?vue&type=script&lang=ts&\"\nexport * from \"./completed-jobs-rag.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./completed-jobs-rag.vue?vue&type=style&index=0&id=fd8dfe76&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"fd8dfe76\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title\"},[_vm._v(\" Cases completed within target \")]),_c('info',{attrs:{\"tooltip\":\"Number of cases completed in target over the period\"}}),_c('div',{staticClass:\"tile-content\"},[_c('highcharts',{ref:\"chart\",attrs:{\"options\":_vm.chartOptions}}),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport Guid from 'common/util/guid';\r\nimport dayjs from 'dayjs';\r\nimport JobDateStats from '@/models/jobDateStats';\r\nimport ColourService from '@/services/colourService';\r\nimport Highcharts, { SeriesOptionsType } from 'highcharts';\r\n\r\n@Component\r\nexport default class CompletedJobs extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        filter!: string | null;\r\n\r\n    @Prop()\r\n        viewByCase!: string | null;\r\n\r\n    get loading () {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'completedCases') || false as boolean;\r\n    }\r\n\r\n    get completedJobStats (): JobDateStats {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'completedCases');\r\n    }\r\n\r\n    get completedJobStatsTranformed () {\r\n        if (!this.completedJobStats) return null;\r\n        const slas: { [sla: string]: { [date: string]: number }} = {};\r\n        this.completedJobStats.dataByDate.forEach((date) => {\r\n            if (!date.countsBySla) return;\r\n            Object.values(date.countsBySla).forEach((type) => {\r\n                Object.keys(type).forEach((sla) => {\r\n                    if (!slas[sla]) slas[sla] = {};\r\n                    if (!slas[sla][date.startDate.toString()]) slas[sla][date.startDate.toString()] = 0;\r\n                    if (!this.filter || this.filter === sla) {\r\n                        slas[sla][date.startDate.toString()] += type[sla];\r\n                    }\r\n                });\r\n            });\r\n        });\r\n\r\n        const orderedKeys = [...new Set(['Beyond statutory', 'Beyond target', 'Within target', ...Object.keys(slas)])];\r\n        return orderedKeys.map((sla) => ({\r\n            name: sla,\r\n            color: ColourService.getSeriesColour('jobs-sla', sla),\r\n            type: 'column',\r\n            data: this.completedJobStats.dataByDate\r\n                .map((a) => (slas[sla] ? slas[sla][a.startDate.toString()] : 0) || 0),\r\n        })) as Array<SeriesOptionsType>;\r\n    }\r\n\r\n    get caseTypes () {\r\n        const arr: Array<string> = [];\r\n        if (!this.completedJobStats) return [];\r\n        this.completedJobStats.dataByDate.forEach(((a) => {\r\n            arr.push(...Object.keys(a.counts));\r\n        }));\r\n        return [...new Set(arr)];\r\n    }\r\n\r\n    get completedJobStatsTransformedByCase () {\r\n        if (!this.completedJobStats) return null;\r\n        const vals: Array<SeriesOptionsType> = [];\r\n        const data: { [key: string]: Array<number>} = {\r\n            'Within target': [],\r\n            'Beyond target': [],\r\n            'Beyond statutory': [],\r\n        };\r\n        this.caseTypes.forEach((key, i) => {\r\n            Object.values(this.completedJobStats.dataByDate).forEach((date) => {\r\n                if (!date.countsBySla) return;\r\n                if (!data['Within target'][i]) data['Within target'][i] = 0;\r\n                if (!data['Beyond target'][i]) data['Beyond target'][i] = 0;\r\n                if (!data['Beyond statutory'][i]) data['Beyond statutory'][i] = 0;\r\n                Object.keys(date.countsBySla[key] || {}).forEach((type) => {\r\n                    data[type][i] += (date.countsBySla![key][type]) || 0;\r\n                });\r\n            });\r\n        });\r\n\r\n        Object.keys(data).forEach((key) => {\r\n            if (this.filter && this.filter !== key) return;\r\n            vals.push({\r\n                name: key,\r\n                color: ColourService.getSeriesColour('jobs-sla', key),\r\n                type: 'column',\r\n                data: data[key],\r\n            });\r\n        });\r\n\r\n        return vals;\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                type: 'column',\r\n                backgroundColor: 'transparent',\r\n            },\r\n            // eslint-disable-next-line @typescript-eslint/ban-ts-comment\r\n            // @ts-ignore\r\n            xAxis: {\r\n                categories:\r\n                    this.viewByCase\r\n                        ? this.caseTypes\r\n                        : this.completedJobStats?.dataByDate.map((a) => dayjs(a.startDate).format('DD MMM YYYY')),\r\n                labels: {\r\n                    formatter: ((that) => (this.viewByCase ? that.value : dayjs(that.value).format('DD MMM'))),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                        // whiteSpace: 'nowrap',\r\n                    },\r\n                    overflow: 'none',\r\n                },\r\n\r\n            },\r\n            yAxis: {\r\n                allowDecimals: false,\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            legend: {\r\n                enabled: true,\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            plotOptions: {\r\n                column: {\r\n                    stacking: 'normal',\r\n                },\r\n            },\r\n            series: this.viewByCase ? this.completedJobStatsTransformedByCase || [] : this.completedJobStatsTranformed || [],\r\n        };\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./completed-jobs-sla.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./completed-jobs-sla.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./completed-jobs-sla.vue?vue&type=template&id=285b52dc&scoped=true&\"\nimport script from \"./completed-jobs-sla.vue?vue&type=script&lang=ts&\"\nexport * from \"./completed-jobs-sla.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./completed-jobs-sla.vue?vue&type=style&index=0&id=285b52dc&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"285b52dc\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title\"},[_vm._v(\" Completed cases \")]),_c('info',{attrs:{\"tooltip\":\"Number of completed cases over the period\"}}),_c('div',{staticClass:\"tile-content\"},[_c('highcharts',{attrs:{\"options\":_vm.chartOptions}}),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport Guid from 'common/util/guid';\r\nimport dayjs from 'dayjs';\r\nimport JobDateStats from '@/models/jobDateStats';\r\nimport ColourService from '@/services/colourService';\r\nimport Highcharts, { SeriesOptionsType } from 'highcharts';\r\n\r\n@Component\r\nexport default class CompletedJobs extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        filter!: string | null;\r\n\r\n    get loading () {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'completedCases') || false as boolean;\r\n    }\r\n\r\n    get completedJobStats (): JobDateStats {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'completedCases');\r\n    }\r\n\r\n    get averagePerDay () {\r\n        const vals = this.completedJobStats?.dataByDate\r\n            .map((a) => Object.keys(a.counts)\r\n                .filter((b) => !this.filter || b === this.filter)\r\n                .map((b) => a.counts[b])\r\n                .reduce((sum, b) => sum + b, 0)) || [];\r\n        if (!vals.length) return 0;\r\n        const total = vals.reduce((sum, a) => sum + a, 0);\r\n        return Math.round(((total / Object.keys(this.completedJobStats!.dataByDate).length) * 10)) / 10;\r\n    }\r\n\r\n    get completedJobStatsTranformed () {\r\n        if (!this.completedJobStats) return null;\r\n        const types = new Set<string>(this.completedJobStats.dataByDate.map((a) => Object.keys(a.counts)).flat(1));\r\n        const vals: Array<SeriesOptionsType> = [];\r\n        vals.push({\r\n            name: 'Average',\r\n            color: '#999',\r\n            data: this.completedJobStats!.dataByDate.map(() => this.averagePerDay),\r\n            type: 'line',\r\n            dashStyle: 'Dash',\r\n            allowPointSelect: false,\r\n            marker: {\r\n                enabled: false,\r\n            },\r\n            opacity: 0.5,\r\n        });\r\n        [...types].sort((a, b) => (a > b ? 1 : -1)).forEach((type) => {\r\n            if (this.filter && this.filter !== type) return;\r\n            vals.push({\r\n                name: type,\r\n                color: ColourService.getSeriesColour('jobs', type),\r\n                type: 'column',\r\n                data: this.completedJobStats!.dataByDate.map((a) => a.counts[type] || 0),\r\n            });\r\n        });\r\n        return vals;\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                type: 'column',\r\n                backgroundColor: 'transparent',\r\n            },\r\n            xAxis: {\r\n                categories: this.completedJobStats?.dataByDate.map((a) => dayjs(a.startDate).format('DD MMM YYYY')),\r\n                labels: {\r\n                    formatter: ((that) => dayjs(that.value).format('DD MMM')),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            yAxis: {\r\n                allowDecimals: false,\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            legend: {\r\n                enabled: true,\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            plotOptions: {\r\n                column: {\r\n                    stacking: 'normal',\r\n                },\r\n            },\r\n            series: this.completedJobStatsTranformed || [],\r\n        };\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./completed-jobs.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./completed-jobs.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./completed-jobs.vue?vue&type=template&id=48e04f89&scoped=true&\"\nimport script from \"./completed-jobs.vue?vue&type=script&lang=ts&\"\nexport * from \"./completed-jobs.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./completed-jobs.vue?vue&type=style&index=0&id=48e04f89&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"48e04f89\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile pie-sla\"},[_c('h3',{staticClass:\"tile-title\"},[_vm._v(\" \"+_vm._s(_vm.chartTitle || 'Cases completed within target')+\" \")]),_c('info',{attrs:{\"tooltip\":\"Percentage of cases completed in target within the period\"}}),_c('div',{staticClass:\"tile-content\",class:[{ filtered: _vm.selectedPoint }, `colour-${_vm.selectedColourIndex}`]},[(!_vm.printing)?_c('toggle-switch',{attrs:{\"name\":\"View by case type\"},on:{\"click\":function($event){return _vm.$emit('viewByCase', _vm.viewByCase)}},model:{value:(_vm.viewByCase),callback:function ($$v) {_vm.viewByCase=$$v},expression:\"viewByCase\"}}):_vm._e(),(!_vm.viewByCase && !_vm.showTable)?_c('highcharts',{ref:\"chart\",attrs:{\"options\":_vm.chartOptions}}):_vm._e(),(!_vm.viewByCase && !_vm.showTable)?_c('div',{staticClass:\"total\",class:{ 'has-legend': _vm.showLegend },style:(_vm.centerPos),on:{\"click\":_vm.clearFilter}},[_vm._v(\" \"+_vm._s(_vm.totalJobs)+\" \"),_c('span',{staticClass:\"filter\"},[_vm._v(_vm._s(_vm.selectedPoint || 'Within target'))]),(_vm.selectedPoint)?_c('div',{staticClass:\"return\",on:{\"click\":_vm.clearFilter}},[_c('font-awesome-icon',{attrs:{\"icon\":\"times\"}})],1):_vm._e()]):_vm._e(),(_vm.loading)?_c('loading'):_vm._e(),(_vm.viewByCase || _vm.showTable)?_c('div',{staticClass:\"table\"},[_c('table',[_vm._m(0),_c('tbody',[_vm._l((_vm.completedJobStatsTransformedByCase),function(row){return _c('tr',{key:row.page},[_c('td',[_vm._v(_vm._s(row.page))]),_c('td',[_c('span',{staticClass:\"number\"},[_vm._v(_vm._s(row.total || '-'))])]),_c('td',[_c('span',{staticClass:\"number\"},[_vm._v(_vm._s(row.total ? ((row.total || 0) - (row.within || 0)) : '-'))])]),_c('td',[_c('span',{staticClass:\"number\"},[_vm._v(_vm._s(row.total ? (row.beyond || 0) : '-'))])]),_c('td',[_c('span',{staticClass:\"number\"},[_vm._v(_vm._s(row.total ? Math.floor(row.within / row.total * 100) : '-')+\"%\")])])])}),_c('tr',[_c('td',{staticClass:\"overall\"},[_vm._v(\"All\")]),_c('td',[_c('span',{staticClass:\"number\"},[_vm._v(_vm._s(_vm.totalCases || '-'))])]),_c('td',[_c('span',{staticClass:\"number\"},[_vm._v(_vm._s(_vm.totalCases ? ((_vm.totalCases || 0) - (_vm.totalWithin || 0)) : '-'))])]),_c('td',[_c('span',{staticClass:\"number\"},[_vm._v(_vm._s(_vm.totalCases ? (_vm.totalBeyond || 0) : '-'))])]),_c('td',[_c('span',{staticClass:\"number\"},[_vm._v(_vm._s(_vm.totalJobs ? _vm.totalJobs : '-'))])])])],2)])]):_vm._e()],1)],1)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('thead',[_c('tr',[_c('th',[_vm._v(\"Case type\")]),_c('th',[_vm._v(\"Cases completed\")]),_c('th',[_vm._v(\"Cases completed beyond target\")]),_c('th',[_vm._v(\"Cases completed beyond statutory\")]),_c('th',[_vm._v(\"Cases completed within target\")])])])\n}]\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport dayjs from 'dayjs';\r\nimport JobDateStats from '@/models/jobDateStats';\r\nimport Guid from 'common/util/guid';\r\nimport Highcharts, { Point } from 'highcharts';\r\nimport ColourService from '@/services/colourService';\r\nimport ToggleSwitch from 'common/components/toggle-switch.vue';\r\nimport PieLegend from '@/services/pieLegendService';\r\n\r\n@Component({ components: { ToggleSwitch } })\r\nexport default class InProgressJobs extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        showLegend!: boolean;\r\n\r\n    @Prop()\r\n        printing!: boolean;\r\n\r\n    @Prop()\r\n        chartTitle!: string;\r\n\r\n    @Prop()\r\n        showTable!: string;\r\n\r\n    selectedPoint: string | null = null;\r\n\r\n    selectedColourIndex: number | null = null;\r\n\r\n    viewByCase = false;\r\n\r\n    chartCenterX = 0;\r\n\r\n    chartCenterY = 0;\r\n\r\n    get loading () {\r\n        if (this.showLegend) return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'completedCases') || false as boolean;\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'dashboardCompletedCases') || false as boolean;\r\n    }\r\n\r\n    get completedJobStats (): JobDateStats {\r\n        if (this.showLegend) return this.$store.getters['clientStatistics/stats'](this.clientId, 'completedCases');\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'dashboardCompletedCases');\r\n    }\r\n\r\n    get caseTypes () {\r\n        const arr: Array<string> = [];\r\n        if (!this.completedJobStats) return [];\r\n        this.completedJobStats.dataByDate.forEach(((a) => {\r\n            arr.push(...Object.keys(a.counts));\r\n        }));\r\n        return [...new Set(arr)];\r\n    }\r\n\r\n    get totalCases () {\r\n        return this.completedJobStatsTransformedByCase?.reduce((a, b) => b.total + a, 0);\r\n    }\r\n\r\n    get totalWithin () {\r\n        return this.completedJobStatsTransformedByCase?.reduce((a, b) => b.within + a, 0);\r\n    }\r\n\r\n    get totalBeyond () {\r\n        return this.completedJobStatsTransformedByCase?.reduce((a, b) => b.beyond + a, 0);\r\n    }\r\n\r\n    get completedJobStatsTransformedByCase () {\r\n        if (!this.completedJobStats) return null;\r\n        const vals: Array<{ page: string; within: number; total: number; beyond: number; color: string }> = [];\r\n        const data: { [key: string]: Array<number>} = {\r\n            'Within target': [],\r\n            'Beyond target': [],\r\n            'Beyond statutory': [],\r\n        };\r\n        this.caseTypes.forEach((key, i) => {\r\n            Object.values(this.completedJobStats.dataByDate).forEach((date) => {\r\n                if (!date.countsBySla) return;\r\n                if (!data['Within target'][i]) data['Within target'][i] = 0;\r\n                if (!data['Beyond target'][i]) data['Beyond target'][i] = 0;\r\n                if (!data['Beyond statutory'][i]) data['Beyond statutory'][i] = 0;\r\n                Object.keys(date.countsBySla[key] || {}).forEach((type) => {\r\n                    data[type][i] += (date.countsBySla![key][type]) || 0;\r\n                });\r\n            });\r\n        });\r\n\r\n        this.caseTypes.forEach((page, i) => {\r\n            vals.push({\r\n                page,\r\n                color: ColourService.getSeriesColour('jobs-sla', page),\r\n                within: data['Within target'][i],\r\n                total: data['Within target'][i] + data['Beyond target'][i] + data['Beyond statutory'][i],\r\n                beyond: data['Beyond statutory'][i],\r\n            });\r\n        });\r\n\r\n        return vals;\r\n    }\r\n\r\n    get totalJobs () {\r\n        if (!this.inprogressJobStatsTranformed || !this.inprogressJobStatsTranformed.length) return 0;\r\n        const inTarget = this.inprogressJobStatsTranformed.find((a) => a.name === 'Within target')?.y || 0;\r\n        const outOfTarget = this.inprogressJobStatsTranformed.find((a) => a.name === 'Beyond target')?.y || 0;\r\n        const beyondStat = this.inprogressJobStatsTranformed.find((a) => a.name === 'Beyond statutory')?.y || 0;\r\n\r\n        let calculatedResult = 0;\r\n\r\n        if (this.selectedPoint === 'Beyond target') {\r\n            calculatedResult = ((outOfTarget / (outOfTarget + inTarget + beyondStat)) * 100);\r\n        } else if (this.selectedPoint === 'Beyond statutory') {\r\n            calculatedResult = ((beyondStat / (outOfTarget + inTarget + beyondStat)) * 100);\r\n        } else {\r\n            calculatedResult = ((inTarget / (outOfTarget + inTarget + beyondStat)) * 100);\r\n        }\r\n\r\n        let formattedResult = 0;\r\n\r\n        if (calculatedResult === 100) {\r\n            formattedResult = 100;\r\n        } else if (calculatedResult > 99) {\r\n            formattedResult = 99;\r\n        } else if (calculatedResult < 99) {\r\n            formattedResult = Math.round(calculatedResult);\r\n        }\r\n\r\n        return `${formattedResult}%`;\r\n    }\r\n\r\n    get inprogressJobStatsTranformed () {\r\n        if (!this.completedJobStats) return null;\r\n        const totals: { [key: string]: number } = {\r\n            'Within target': 0,\r\n            'Beyond target': 0,\r\n            'Beyond statutory': 0,\r\n        };\r\n        this.completedJobStats.dataByDate.forEach((date) => {\r\n            Object.values(date.countsBySla || {}).forEach((jobType) => {\r\n                Object.keys(jobType).forEach((key) => {\r\n                    if (!totals[key]) totals[key] = 0;\r\n                    totals[key] += Number(jobType[key] || 0);\r\n                });\r\n            });\r\n        });\r\n        return Object.keys(totals)\r\n            .map((seriesName) => ({\r\n                name: seriesName,\r\n                y: totals[seriesName],\r\n                color: ColourService.getSeriesColour('jobs-sla', seriesName),\r\n            }));\r\n    }\r\n\r\n    pointClicked (point: Point) {\r\n        this.selectedColourIndex = point.colorIndex;\r\n        this.selectedPoint = point.name === this.selectedPoint ? null : point.name;\r\n        this.$emit('pointSelected', { category: 'completedJobsSla', series: this.selectedPoint });\r\n    }\r\n\r\n    clearFilter () {\r\n        (this.$refs.chart as unknown as { chart: Highcharts.Chart }).chart.series[0].points.forEach((a) => a.select(false));\r\n        this.selectedPoint = null;\r\n        this.$emit('pointSelected', { category: 'completedJobsSla', series: this.selectedPoint });\r\n    }\r\n\r\n    get centerPos () {\r\n        if (window.innerWidth < 700 && this.showLegend) {\r\n            return {\r\n                top: `calc(${this.chartCenterY}px + 6.8rem) !important`,\r\n                left: `calc(${this.chartCenterX}px + 1.5rem) !important`,\r\n            };\r\n        }\r\n        return {\r\n            top: `calc(${this.chartCenterY}px + 2.5rem) !important`,\r\n            left: `calc(${this.chartCenterX}px + 1.5rem) !important`,\r\n        };\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n        // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n        const self = this;\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                type: 'pie',\r\n                backgroundColor: 'transparent',\r\n                events: {\r\n                    load () {\r\n                        const series = this.series[0] as unknown as { center: Array<number> };\r\n                        const x = this.plotLeft + series.center[0];\r\n                        const y = this.plotTop + series.center[1];\r\n                        self.chartCenterX = x;\r\n                        self.chartCenterY = y;\r\n                    },\r\n                    redraw () {\r\n                        const series = this.series[0] as unknown as { center: Array<number> };\r\n                        const x = this.plotLeft + series.center[0];\r\n                        const y = this.plotTop + series.center[1];\r\n                        self.chartCenterX = x;\r\n                        self.chartCenterY = y;\r\n                    },\r\n                },\r\n            },\r\n            xAxis: {\r\n                labels: {\r\n                    formatter: ((that) => dayjs(that.value).format('DD MMM')),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            yAxis: {\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            legend: this.showLegend ? PieLegend.get().legend : {\r\n                enabled: false,\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            plotOptions: {\r\n                pie: {\r\n                    dataLabels: {\r\n                        enabled: false,\r\n                    },\r\n                    allowPointSelect: true,\r\n                    showInLegend: true,\r\n                    borderWidth: 0,\r\n                    point: {\r\n                        events: {\r\n                            legendItemClick: (event) => {\r\n                                event.preventDefault();\r\n                                event.target.select(!event.target.selected);\r\n                                this.pointClicked(event.target);\r\n                            },\r\n                        },\r\n                    },\r\n                },\r\n            },\r\n            series: [{\r\n                type: 'pie',\r\n                name: 'Completed cases',\r\n                innerSize: '70%',\r\n                slicedOffset: 5,\r\n                data: this.inprogressJobStatsTranformed!,\r\n                events: {\r\n                    click: (event) => { this.pointClicked(event.point); },\r\n                },\r\n            }],\r\n        };\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./completed-pie-sla.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./completed-pie-sla.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./completed-pie-sla.vue?vue&type=template&id=560e2e10&scoped=true&\"\nimport script from \"./completed-pie-sla.vue?vue&type=script&lang=ts&\"\nexport * from \"./completed-pie-sla.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./completed-pie-sla.vue?vue&type=style&index=0&id=560e2e10&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"560e2e10\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title\"},[_vm._v(\" Completed cases \")]),_c('info',{attrs:{\"tooltip\":\"Total number of completed cases in the period\"}}),_c('div',{staticClass:\"tile-content\",class:[{ filtered: _vm.selectedPoint }, `colour-${_vm.selectedColourIndex}`]},[_c('highcharts',{ref:\"chart\",attrs:{\"options\":_vm.chartOptions}}),_c('div',{staticClass:\"total\",class:{ 'has-legend': _vm.showLegend },style:(_vm.centerPos),on:{\"click\":_vm.clearFilter}},[_vm._v(\" \"+_vm._s(_vm.totalJobs)+\" \"),_c('span',{staticClass:\"filter\"},[_vm._v(_vm._s(_vm.selectedPoint))]),_c('span',[_vm._v(\"Completed cases\")]),(_vm.selectedPoint)?_c('div',{staticClass:\"return\",on:{\"click\":_vm.clearFilter}},[_c('font-awesome-icon',{attrs:{\"icon\":\"times\"}})],1):_vm._e()]),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport dayjs from 'dayjs';\r\nimport JobDateStats from '@/models/jobDateStats';\r\nimport Guid from 'common/util/guid';\r\nimport Highcharts, { Point } from 'highcharts';\r\nimport ColourService from '@/services/colourService';\r\nimport ToggleSwitch from 'common/components/toggle-switch.vue';\r\nimport PieLegend from '@/services/pieLegendService';\r\n\r\n@Component({ components: { ToggleSwitch } })\r\nexport default class InProgressJobs extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        showLegend!: boolean;\r\n\r\n    selectedPoint: string | null = null;\r\n\r\n    selectedColourIndex: number | null = null;\r\n\r\n    chartCenterX = 0;\r\n\r\n    chartCenterY = 0;\r\n\r\n    get loading () {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'completedCases') || false as boolean;\r\n    }\r\n\r\n    get completedJobStats (): JobDateStats {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'completedCases');\r\n    }\r\n\r\n    get totalJobs () {\r\n        if (!this.inprogressJobStatsTranformed) return 0;\r\n        return this.inprogressJobStatsTranformed.filter((a) => a.name === this.selectedPoint || !this.selectedPoint).map((a) => a.y).reduce((a, b) => b + a, 0);\r\n    }\r\n\r\n    get centerPos () {\r\n        return {\r\n            top: `calc(${this.chartCenterY}px + 1.5rem) !important`,\r\n            left: `calc(${this.chartCenterX}px + 1.5rem) !important`,\r\n        };\r\n    }\r\n\r\n    get inprogressJobStatsTranformed () {\r\n        if (!this.completedJobStats) return null;\r\n        const totals: { [seriesName: string ]: number} = {};\r\n        this.completedJobStats.dataByDate.forEach((date) => {\r\n            Object.keys(date.counts).forEach((seriesName) => {\r\n                if (!totals[seriesName]) totals[seriesName] = 0;\r\n                totals[seriesName] += date.counts[seriesName];\r\n            });\r\n        });\r\n        return Object.keys(totals).sort((a, b) => (a > b ? 1 : -1))\r\n            .map((seriesName) => ({\r\n                name: seriesName,\r\n                y: totals[seriesName],\r\n                color: ColourService.getSeriesColour('jobs', seriesName),\r\n            }));\r\n    }\r\n\r\n    pointClicked (point: Point) {\r\n        this.selectedColourIndex = point.colorIndex;\r\n        this.selectedPoint = point.name === this.selectedPoint ? null : point.name;\r\n        this.$emit('pointSelected', { category: 'completedJobs', series: this.selectedPoint });\r\n    }\r\n\r\n    clearFilter () {\r\n        (this.$refs.chart as unknown as { chart: Highcharts.Chart }).chart.series[0].points.forEach((a) => a.select(false));\r\n        this.selectedPoint = null;\r\n        this.$emit('pointSelected', { category: 'completedJobs', series: this.selectedPoint });\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n        // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n        const self = this;\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                type: 'pie',\r\n                backgroundColor: 'transparent',\r\n                events: {\r\n                    load () {\r\n                        const series = this.series[0] as unknown as { center: Array<number> };\r\n                        const x = this.plotLeft + series.center[0];\r\n                        const y = this.plotTop + series.center[1];\r\n                        self.chartCenterX = x;\r\n                        self.chartCenterY = y;\r\n                    },\r\n                    redraw () {\r\n                        const series = this.series[0] as unknown as { center: Array<number> };\r\n                        const x = this.plotLeft + series.center[0];\r\n                        const y = this.plotTop + series.center[1];\r\n                        self.chartCenterX = x;\r\n                        self.chartCenterY = y;\r\n                    },\r\n                },\r\n            },\r\n            xAxis: {\r\n                labels: {\r\n                    formatter: ((that) => dayjs(that.value).format('DD MMM')),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            yAxis: {\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            legend: this.showLegend ? PieLegend.get().legend : {\r\n                enabled: false,\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            plotOptions: {\r\n                pie: {\r\n                    dataLabels: {\r\n                        enabled: false,\r\n                    },\r\n                    allowPointSelect: true,\r\n                    showInLegend: true,\r\n                    borderWidth: 0,\r\n                    point: {\r\n                        events: {\r\n                            legendItemClick: (event) => {\r\n                                event.preventDefault();\r\n                                event.target.select(!event.target.selected);\r\n                                this.pointClicked(event.target);\r\n                            },\r\n                        },\r\n                    },\r\n                },\r\n            },\r\n            series: [{\r\n                type: 'pie',\r\n                name: 'Completed cases',\r\n                innerSize: '70%',\r\n                slicedOffset: 5,\r\n                data: this.inprogressJobStatsTranformed!,\r\n                events: {\r\n                    click: (event) => { this.pointClicked(event.point); },\r\n                },\r\n            }],\r\n        };\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./completed-pie.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./completed-pie.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./completed-pie.vue?vue&type=template&id=2149c846&scoped=true&\"\nimport script from \"./completed-pie.vue?vue&type=script&lang=ts&\"\nexport * from \"./completed-pie.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./completed-pie.vue?vue&type=style&index=0&id=2149c846&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"2149c846\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title lilac\"},[_vm._v(\"Your team\")]),_c('div',{staticClass:\"tile-content\"},[_c('div',{staticClass:\"profiles\"},_vm._l((_vm.teamMembers),function(teamMember){return _c('div',{key:teamMember.id,staticClass:\"profile\"},[_c('user-photo',{attrs:{\"id\":teamMember.id}}),_c('div',{staticClass:\"name\"},[_vm._v(_vm._s(teamMember.name))]),_c('div',{staticClass:\"jobTitle\"},[_vm._v(_vm._s(teamMember.jobTitle))]),(teamMember.phone && !_vm.printing)?_c('a',{attrs:{\"href\":'tel:' + teamMember.phone}},[_c('font-awesome-icon',{attrs:{\"icon\":\"phone\"}})],1):_vm._e(),(teamMember.email && !_vm.printing)?_c('a',{attrs:{\"href\":'mailTo:' + teamMember.email}},[_c('font-awesome-icon',{attrs:{\"icon\":\"envelope\"}})],1):_vm._e()],1)}),0)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Guid from 'common/util/guid';\r\n\r\nimport {\r\n    Component, Prop, Vue, Watch,\r\n} from 'vue-property-decorator';\r\nimport ClientConfig from '@/models/client';\r\n\r\n@Component\r\nexport default class ContactTile extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        printing!: boolean;\r\n\r\n    loadingUrls: { [id: string]: boolean } = {};\r\n\r\n    get loading () {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'team') || false as boolean;\r\n    }\r\n\r\n    get clientConfig () {\r\n        return this.$store.getters['clientContext/selectedClientConfiguration'](this.clientId) as ClientConfig ?? {};\r\n    }\r\n\r\n    get teamMembers () {\r\n        return this.clientConfig?.teamMembers || [];\r\n    }\r\n\r\n    @Watch('teamMembers', { immediate: true })\r\n    teamMembersChanged () {\r\n        if (this.teamMembers?.length) {\r\n            this.teamMembers.forEach(async (teamMember) => {\r\n                if (this.loadingUrls[teamMember.id.toString()]) return;\r\n                Vue.set(this.loadingUrls, teamMember.id.toString(), true);\r\n            });\r\n        }\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./contact-tile.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./contact-tile.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./contact-tile.vue?vue&type=template&id=c633d348&scoped=true&\"\nimport script from \"./contact-tile.vue?vue&type=script&lang=ts&\"\nexport * from \"./contact-tile.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./contact-tile.vue?vue&type=style&index=0&id=c633d348&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"c633d348\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title aqua\"},[_vm._v(\" Personal correspondence viewed by member status \")]),_c('info',{attrs:{\"tooltip\":\"Total number of correspondence viewed grouped by member status\"}}),_c('div',{staticClass:\"tile-content\",class:[{ filtered: _vm.selectedPoint }, `colour-${_vm.selectedColourIndex}`]},[_c('highcharts',{ref:\"chart\",attrs:{\"options\":_vm.chartOptions}}),_c('div',{staticClass:\"total\",class:{ 'has-legend': _vm.showLegend },style:(_vm.centerPos),on:{\"click\":_vm.clearFilter}},[_vm._v(\" \"+_vm._s(_vm.totalCorrespondenceViewed)+\" \"),_c('span',{staticClass:\"filter\"},[_vm._v(_vm._s(_vm.selectedPoint))]),_c('span',[_vm._v(\"Correspondence viewed\")]),(_vm.selectedPoint)?_c('div',{staticClass:\"return\",on:{\"click\":_vm.clearFilter}},[_c('font-awesome-icon',{attrs:{\"icon\":\"times\"}})],1):_vm._e()]),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport dayjs from 'dayjs';\r\nimport Guid from 'common/util/guid';\r\nimport Highcharts, { Point } from 'highcharts';\r\nimport ColourService from '@/services/colourService';\r\nimport ToggleSwitch from 'common/components/toggle-switch.vue';\r\nimport PieLegend from '@/services/pieLegendService';\r\nimport MemberDocumentStats from '@/models/memberDocumentStats';\r\n\r\n@Component({ components: { ToggleSwitch } })\r\nexport default class PayslipViewsByStatusPie extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        showLegend!: boolean;\r\n\r\n    @Prop()\r\n        printing!: boolean;\r\n\r\n    viewByFileType = false;\r\n\r\n    selectedPoint: string | null = null;\r\n\r\n    selectedColourIndex: number | null = null;\r\n\r\n    chartCenterX = 0;\r\n\r\n    chartCenterY = 0;\r\n\r\n    get loading () {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'memberDocumentsStats') || false as boolean;\r\n    }\r\n\r\n    get documentStats (): Array<MemberDocumentStats> {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'memberDocumentsStats');\r\n    }\r\n\r\n    get centerPos () {\r\n        return {\r\n            top: `calc(${this.chartCenterY}px + 1.5rem) !important`,\r\n            left: `calc(${this.chartCenterX}px + 1.5rem) !important`,\r\n        };\r\n    }\r\n\r\n    get totalCorrespondenceViewed () {\r\n        return this.correspondenceTransformed?.filter((a) => a.name === this.selectedPoint || !this.selectedPoint)?.reduce((a, b) => a + (b.y ?? 0), 0);\r\n    }\r\n\r\n    get correspondenceTransformed () {\r\n        if (!this.documentStats) return null;\r\n        const totals: Record<string, number> = {};\r\n        this.documentStats.forEach((date) => {\r\n            Object.keys(date.correspondenceViewedByStatus).forEach((status) => {\r\n                if (!totals[status]) totals[status] = 0;\r\n                totals[status] += date.correspondenceViewedByStatus[status];\r\n            });\r\n        });\r\n        return Object.keys(totals)\r\n            .map((seriesName) => ({\r\n                name: seriesName,\r\n                y: totals[seriesName],\r\n                color: ColourService.getSeriesColour('status', seriesName),\r\n            }));\r\n    }\r\n\r\n    pointClicked (point: Point) {\r\n        this.selectedColourIndex = point.colorIndex;\r\n        this.selectedPoint = point.name === this.selectedPoint ? null : point.name;\r\n        this.$emit('pointSelected', { category: 'correspondenceByStatus', series: this.selectedPoint });\r\n    }\r\n\r\n    clearFilter () {\r\n        (this.$refs.chart as unknown as { chart: Highcharts.Chart }).chart.series[0].points.forEach((a) => a.select(false));\r\n        this.selectedPoint = null;\r\n        this.$emit('pointSelected', { category: 'correspondenceByStatus', series: this.selectedPoint });\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n        // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n        const self = this;\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                type: 'pie',\r\n                backgroundColor: 'transparent',\r\n                events: {\r\n                    load () {\r\n                        const series = this.series[0] as unknown as { center: Array<number> };\r\n                        const x = this.plotLeft + series.center[0];\r\n                        const y = this.plotTop + series.center[1];\r\n                        self.chartCenterX = x;\r\n                        self.chartCenterY = y;\r\n                    },\r\n                    redraw () {\r\n                        const series = this.series[0] as unknown as { center: Array<number> };\r\n                        const x = this.plotLeft + series.center[0];\r\n                        const y = this.plotTop + series.center[1];\r\n                        self.chartCenterX = x;\r\n                        self.chartCenterY = y;\r\n                    },\r\n                },\r\n            },\r\n            xAxis: {\r\n                labels: {\r\n                    formatter: ((that) => dayjs(that.value).format('DD MMM')),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            yAxis: {\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            legend: this.showLegend ? PieLegend.get().legend : {\r\n                enabled: false,\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            plotOptions: {\r\n                pie: {\r\n                    dataLabels: {\r\n                        enabled: false,\r\n                    },\r\n                    allowPointSelect: true,\r\n                    showInLegend: true,\r\n                    borderWidth: 0,\r\n                    point: {\r\n                        events: {\r\n                            legendItemClick: (event) => {\r\n                                event.preventDefault();\r\n                                event.target.select(!event.target.selected);\r\n                                this.pointClicked(event.target);\r\n                            },\r\n                        },\r\n                    },\r\n                },\r\n            },\r\n            series: [{\r\n                type: 'pie',\r\n                name: 'Documents viewed',\r\n                innerSize: '70%',\r\n                slicedOffset: 5,\r\n                data: this.correspondenceTransformed!,\r\n                events: {\r\n                    click: (event) => { this.pointClicked(event.point); },\r\n                },\r\n            }],\r\n        };\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./correspondence-views-by-status-pie.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./correspondence-views-by-status-pie.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./correspondence-views-by-status-pie.vue?vue&type=template&id=3a47e8a6&scoped=true&\"\nimport script from \"./correspondence-views-by-status-pie.vue?vue&type=script&lang=ts&\"\nexport * from \"./correspondence-views-by-status-pie.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./correspondence-views-by-status-pie.vue?vue&type=style&index=0&id=3a47e8a6&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"3a47e8a6\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title aqua\"},[_vm._v(\" Personal correspondence viewed by member status \")]),_c('info',{attrs:{\"tooltip\":\"Number of correspondence viewed grouped by member status over the period\"}}),_c('div',{staticClass:\"tile-content\"},[_c('highcharts',{attrs:{\"options\":_vm.chartOptions}}),(!_vm.chartOptions.series || !_vm.chartOptions.series.length)?_c('div',{staticClass:\"no-data\"},[_c('strong',[_vm._v(\"0\")]),_vm._v(\" Correspondence viewed\")]):_vm._e(),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport Guid from 'common/util/guid';\r\nimport dayjs from 'dayjs';\r\nimport ColourService from '@/services/colourService';\r\nimport MemberDocumentStats from '@/models/memberDocumentStats';\r\nimport Highcharts from 'highcharts';\r\n\r\n@Component\r\nexport default class PayslipViewsByStatus extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        filter!: string | null;\r\n\r\n    @Prop()\r\n        viewByFileType!: boolean;\r\n\r\n    get loading () {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'memberDocumentsStats') || false as boolean;\r\n    }\r\n\r\n    get documentStats (): Array<MemberDocumentStats> {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'memberDocumentsStats') as Array<MemberDocumentStats>;\r\n    }\r\n\r\n    get categories () {\r\n        if (!this.documentStats) return [];\r\n        const dataTypes: Array<string> = [];\r\n\r\n        this.documentStats.forEach((date) => {\r\n            dataTypes.push(...Object.keys(date.correspondenceViewedByStatus));\r\n        });\r\n        return [...new Set(dataTypes)];\r\n    }\r\n\r\n    get documentStatsTransformed () {\r\n        if (!this.documentStats) return null;\r\n        const vals: Array<{ name: string; data: number[]; type: 'column'; color: string }> = [];\r\n\r\n        this.categories.forEach((status) => {\r\n            const dataTypeData: Array<number> = [];\r\n\r\n            this.documentStats!.forEach((row) => {\r\n                dataTypeData.push(row.correspondenceViewedByStatus[status] ?? 0);\r\n            });\r\n\r\n            if (!this.filter || this.filter === status) {\r\n                vals.push({\r\n                    name: status,\r\n                    type: 'column',\r\n                    data: dataTypeData,\r\n                    color: ColourService.getSeriesColour('status', status),\r\n                });\r\n            }\r\n        });\r\n\r\n        return vals;\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                type: 'column',\r\n                backgroundColor: 'transparent',\r\n            },\r\n            xAxis: {\r\n                categories: this.documentStats?.map((a) => dayjs(a.fromDate).format('DD MMM YYYY')),\r\n                labels: {\r\n                    formatter: ((that) => dayjs(that.value).format('DD MMM')),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            yAxis: {\r\n                allowDecimals: false,\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            legend: {\r\n                enabled: true,\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            plotOptions: {\r\n                column: {\r\n                    stacking: 'normal',\r\n                },\r\n            },\r\n            series: this.documentStatsTransformed || [],\r\n        };\r\n    }\r\n\r\n    formatDocument (document: string) {\r\n        const result = document.replace(/([A-Z])/g, ' $1');\r\n        return result.charAt(0).toUpperCase() + result.slice(1);\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./correspondence-views-by-status.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./correspondence-views-by-status.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./correspondence-views-by-status.vue?vue&type=template&id=56f15894&scoped=true&\"\nimport script from \"./correspondence-views-by-status.vue?vue&type=script&lang=ts&\"\nexport * from \"./correspondence-views-by-status.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./correspondence-views-by-status.vue?vue&type=style&index=0&id=56f15894&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"56f15894\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title blue\"},[_vm._v(_vm._s(_vm.title))]),_c('info',{attrs:{\"tooltip\":\"Data quality scores at the date shown\"}}),_c('div',{staticClass:\"tile-content\"},[_c('div',{staticClass:\"date\"},[_vm._v(_vm._s(_vm.dataDate))]),_c('div',{staticClass:\"score\"},[_c('div',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:('Data common to all schemes by which members are identified, such as name and date of birth'),expression:\"'Data common to all schemes by which members are identified, such as name and date of birth'\"}],staticClass:\"score-title\"},[_vm._v(\"Common data\")]),_c('table',[_c('tbody',_vm._l((_vm.commonData),function(row){return _c('tr',{key:row.rank,class:row.rank},[_c('td',[_c('div',{staticClass:\"bar\",class:row.rank,style:({ maxWidth: (150 - row.value) + '%' })},[_c('span',{staticClass:\"value\"},[_vm._v(_vm._s(row.name))]),_c('span',{staticClass:\"rank\"},[_vm._v(_vm._s(row.rank))])])]),_c('td',[(row.combined)?_c('span',{staticClass:\"percentage\"},[_vm._v(_vm._s(Math.round(row.combined))+\"%\")]):_vm._e()])])}),0)])]),_c('div',{staticClass:\"score\"},[_c('div',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:('Data needed to calculate benefits which is dependent on scheme type, structure and system design'),expression:\"'Data needed to calculate benefits which is dependent on scheme type, structure and system design'\"}],staticClass:\"score-title\"},[_vm._v(\"Scheme-specific data\")]),_c('table',[_c('tbody',_vm._l((_vm.schemeData),function(row){return _c('tr',{key:row.rank,class:row.rank},[_c('td',[_c('div',{staticClass:\"bar\",class:row.rank,style:({ maxWidth: (150 - row.value) + '%' })},[_c('span',{staticClass:\"value\"},[_vm._v(_vm._s(row.name))]),_c('span',{staticClass:\"rank\"},[_vm._v(_vm._s(row.rank))])])]),_c('td',[(row.combined)?_c('span',{staticClass:\"percentage\"},[_vm._v(_vm._s(Math.round(row.combined))+\"%\")]):_vm._e()])])}),0)])])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Client from 'common/models/client';\r\nimport GovernanceInformation from '@/models/governanceInformation';\r\nimport Guid from 'common/util/guid';\r\nimport dayjs from 'dayjs';\r\nimport {\r\n    Component, Prop, Vue, Watch,\r\n} from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class DataScores extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    get loading () {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'governanceInformation') || false as boolean;\r\n    }\r\n\r\n    get clients () {\r\n        return this.$store.getters['clientContext/clients'] as Array<Client>;\r\n    }\r\n\r\n    get clientName () {\r\n        if (this.$route.path.indexOf('/demo') > -1) return 'Demo Scheme';\r\n        if (this.clientId) {\r\n            const name = this.clients.find((a) => a.clientId === this.clientId)?.name;\r\n            if (name === 'Generali Pension Fund') return 'Assicurazioni Generali SpA (UK Branch) Pension Fund';\r\n            if (name === 'Main Fund ICI') return 'ICI Pension Fund';\r\n            if (name === 'BSI') return 'BSI Retirement Benefits Plan';\r\n            return name;\r\n        }\r\n        return '';\r\n    }\r\n\r\n    get governanceInformation (): GovernanceInformation | null {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'governanceInformation');\r\n    }\r\n\r\n    get dataDate () {\r\n        return dayjs(this.governanceInformation?.dataScores.date).format('DD MMM YYYY');\r\n    }\r\n\r\n    get title () {\r\n        return this.clientName === 'ICI Pension Fund' ? 'Data scores for small sections' : 'Data scores';\r\n    }\r\n\r\n    @Watch('governanceInformation', { immediate: true })\r\n    governanceInformationChanged () {\r\n        for (let i = 0; i < this.commonData.length; i += 1) {\r\n            const rank = this.commonData[i];\r\n            if (rank.value <= (this.governanceInformation?.dataScores?.commonScore || 0) || i === this.commonData.length - 1) {\r\n                Vue.set(rank, 'combined', this.governanceInformation?.dataScores?.commonScore!);\r\n                break;\r\n            }\r\n        }\r\n        for (let i = 0; i < this.schemeData.length; i += 1) {\r\n            const rank = this.schemeData[i];\r\n            if (rank.value <= (this.governanceInformation?.dataScores?.specificScore || 0) || i === this.schemeData.length - 1) {\r\n                Vue.set(rank, 'combined', this.governanceInformation?.dataScores?.specificScore!);\r\n                break;\r\n            }\r\n        }\r\n    }\r\n\r\n    commonData: Array<{ value: number; rank: string; pre?: number; combined?: number; post?: number; name: string }> = [\r\n        { value: 95, rank: 'A', name: '> 95%' },\r\n        { value: 90, rank: 'B', name: '90 - 95%' },\r\n        { value: 85, rank: 'C', name: '85 - 90%' },\r\n        { value: 80, rank: 'D', name: '80 - 85%' },\r\n        { value: 75, rank: 'E', name: '75 - 80%' },\r\n        { value: 70, rank: 'F', name: '70 - 75%' },\r\n        { value: 60, rank: 'G', name: '< 70%' },\r\n    ];\r\n\r\n    schemeData: Array<{ value: number; rank: string; pre?: number; combined?: number; post?: number; name: string }> = [\r\n        { value: 95, rank: 'A', name: '> 95%' },\r\n        { value: 90, rank: 'B', name: '90 - 95%' },\r\n        { value: 85, rank: 'C', name: '85 - 90%' },\r\n        { value: 80, rank: 'D', name: '80 - 85%' },\r\n        { value: 75, rank: 'E', name: '75 - 80%' },\r\n        { value: 70, rank: 'F', name: '70 - 75%' },\r\n        { value: 60, rank: 'G', name: '< 70%' },\r\n    ];\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./data-scores.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./data-scores.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./data-scores.vue?vue&type=template&id=6294ebec&scoped=true&\"\nimport script from \"./data-scores.vue?vue&type=script&lang=ts&\"\nexport * from \"./data-scores.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./data-scores.vue?vue&type=style&index=0&id=6294ebec&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"6294ebec\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title aqua\"},[_vm._v(\" Data updates by age \")]),_c('info',{attrs:{\"tooltip\":\"Total number of data updates grouped by age band\"}}),_c('div',{staticClass:\"tile-content\",class:[{ filtered: _vm.selectedPoint }, `colour-${_vm.selectedColourIndex}`]},[_c('highcharts',{ref:\"chart\",attrs:{\"options\":_vm.chartOptions}}),_c('div',{staticClass:\"total\",class:{ 'has-legend': _vm.showLegend },style:(_vm.centerPos),on:{\"click\":_vm.clearFilter}},[_vm._v(\" \"+_vm._s(_vm.formatNumber(_vm.totalDataUpdates))+\" \"),_c('span',{staticClass:\"filter\"},[_vm._v(_vm._s(_vm.selectedPoint))]),_c('span',[_vm._v(\"Updates\")]),(_vm.selectedPoint)?_c('div',{staticClass:\"return\",on:{\"click\":_vm.clearFilter}},[_c('font-awesome-icon',{attrs:{\"icon\":\"times\"}})],1):_vm._e()]),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport dayjs from 'dayjs';\r\nimport Guid from 'common/util/guid';\r\nimport Highcharts, { Point } from 'highcharts';\r\nimport ColourService from '@/services/colourService';\r\nimport ToggleSwitch from 'common/components/toggle-switch.vue';\r\nimport PieLegend from '@/services/pieLegendService';\r\nimport DataUpdateStats from '@/models/dataUpdateStats';\r\n\r\n@Component({ components: { ToggleSwitch } })\r\nexport default class DataUpdatesByAgePie extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        showLegend!: boolean;\r\n\r\n    selectedPoint: string | null = null;\r\n\r\n    selectedColourIndex: number | null = null;\r\n\r\n    chartCenterX = 0;\r\n\r\n    chartCenterY = 0;\r\n\r\n    ageBands = [\r\n        { min: 101, max: 200, label: '> 100' },\r\n        { min: 91, max: 100 },\r\n        { min: 81, max: 90 },\r\n        { min: 71, max: 80 },\r\n        { min: 61, max: 70 },\r\n        { min: 51, max: 60 },\r\n        { min: 41, max: 50 },\r\n        { min: 31, max: 40 },\r\n        { min: 19, max: 30 },\r\n        { min: 0, max: 18, label: '< 19' },\r\n    ];\r\n\r\n    get loading () {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'dataUpdates') || false as boolean;\r\n    }\r\n\r\n    get dataUpdates (): Array<DataUpdateStats> | null {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'dataUpdates');\r\n    }\r\n\r\n    get centerPos () {\r\n        return {\r\n            top: `calc(${this.chartCenterY}px + 1.5rem) !important`,\r\n            left: `calc(${this.chartCenterX}px + 1.5rem) !important`,\r\n        };\r\n    }\r\n\r\n    get totalDataUpdates () {\r\n        return this.dataUpdatesTransformed?.filter((a) => a.name === this.selectedPoint || !this.selectedPoint)?.reduce((a, b) => a + (b.y ?? 0), 0);\r\n    }\r\n\r\n    get dataUpdatesTransformed () {\r\n        if (!this.dataUpdates) return null;\r\n        const totals: Record<string, number> = {};\r\n        this.dataUpdates.forEach((date) => {\r\n            this.ageBands.forEach((ageBand) => {\r\n                const key = ageBand.label ?? `${ageBand.min} - ${ageBand.max}`;\r\n                if (!totals[key]) totals[key] = 0;\r\n                Object.keys(date.dataByAge).forEach((age: string) => {\r\n                    if (Number(age) >= ageBand.min && Number(age) <= ageBand.max) {\r\n                        totals[key] += Number(date.dataByAge[age]);\r\n                    }\r\n                });\r\n            });\r\n        });\r\n        return Object.keys(totals)\r\n            .filter((a) => totals[a])\r\n            .map((seriesName) => ({\r\n                name: seriesName,\r\n                y: totals[seriesName],\r\n                color: ColourService.getSeriesColour('age', seriesName),\r\n            }));\r\n    }\r\n\r\n    formatNumber (number?: string | number) {\r\n        return Math.round(Number(number ?? 0)).toLocaleString('en');\r\n    }\r\n\r\n    pointClicked (point: Point) {\r\n        this.selectedColourIndex = point.colorIndex;\r\n        this.selectedPoint = point.name === this.selectedPoint ? null : point.name;\r\n        this.$emit('pointSelected', { category: 'dataUpdatesByAge', series: this.selectedPoint });\r\n    }\r\n\r\n    clearFilter () {\r\n        (this.$refs.chart as unknown as { chart: Highcharts.Chart }).chart.series[0].points.forEach((a) => a.select(false));\r\n        this.selectedPoint = null;\r\n        this.$emit('pointSelected', { category: 'dataUpdatesByAge', series: this.selectedPoint });\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n        // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n        const self = this;\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                type: 'pie',\r\n                backgroundColor: 'transparent',\r\n                events: {\r\n                    load () {\r\n                        const series = this.series[0] as unknown as { center: Array<number> };\r\n                        const x = this.plotLeft + series.center[0];\r\n                        const y = this.plotTop + series.center[1];\r\n                        self.chartCenterX = x;\r\n                        self.chartCenterY = y;\r\n                    },\r\n                    redraw () {\r\n                        const series = this.series[0] as unknown as { center: Array<number> };\r\n                        const x = this.plotLeft + series.center[0];\r\n                        const y = this.plotTop + series.center[1];\r\n                        self.chartCenterX = x;\r\n                        self.chartCenterY = y;\r\n                    },\r\n                },\r\n            },\r\n            xAxis: {\r\n                labels: {\r\n                    formatter: ((that) => dayjs(that.value).format('DD MMM')),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            yAxis: {\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            legend: this.showLegend ? PieLegend.get().legend : {\r\n                enabled: false,\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            plotOptions: {\r\n                pie: {\r\n                    dataLabels: {\r\n                        enabled: false,\r\n                    },\r\n                    allowPointSelect: true,\r\n                    showInLegend: true,\r\n                    borderWidth: 0,\r\n                    point: {\r\n                        events: {\r\n                            legendItemClick: (event) => {\r\n                                event.preventDefault();\r\n                                event.target.select(!event.target.selected);\r\n                                this.pointClicked(event.target);\r\n                            },\r\n                        },\r\n                    },\r\n                },\r\n            },\r\n            series: [{\r\n                type: 'pie',\r\n                name: 'Data updates',\r\n                innerSize: '70%',\r\n                slicedOffset: 5,\r\n                data: this.dataUpdatesTransformed!,\r\n                events: {\r\n                    click: (event) => { this.pointClicked(event.point); },\r\n                },\r\n            }],\r\n        };\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./data-updates-by-age-pie.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./data-updates-by-age-pie.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./data-updates-by-age-pie.vue?vue&type=template&id=bf3767c0&scoped=true&\"\nimport script from \"./data-updates-by-age-pie.vue?vue&type=script&lang=ts&\"\nexport * from \"./data-updates-by-age-pie.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./data-updates-by-age-pie.vue?vue&type=style&index=0&id=bf3767c0&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"bf3767c0\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title aqua\"},[_vm._v(\" Data updates by age \")]),_c('info',{attrs:{\"tooltip\":\"Number of data updates grouped by age band over the period\"}}),_c('div',{staticClass:\"tile-content\"},[_c('highcharts',{attrs:{\"options\":_vm.chartOptions}}),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport Guid from 'common/util/guid';\r\nimport dayjs from 'dayjs';\r\nimport ColourService from '@/services/colourService';\r\nimport DataUpdateStats from '@/models/dataUpdateStats';\r\nimport Highcharts from 'highcharts';\r\n\r\n@Component\r\nexport default class DataUpdatesByAgeChart extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        filter!: string | null;\r\n\r\n    ageBands = [\r\n        { min: 101, max: 200, label: '> 100' },\r\n        { min: 91, max: 100 },\r\n        { min: 81, max: 90 },\r\n        { min: 71, max: 80 },\r\n        { min: 61, max: 70 },\r\n        { min: 51, max: 60 },\r\n        { min: 41, max: 50 },\r\n        { min: 31, max: 40 },\r\n        { min: 19, max: 30 },\r\n        { min: 0, max: 18, label: '< 19' },\r\n    ];\r\n\r\n    get loading () {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'dataUpdates') || false as boolean;\r\n    }\r\n\r\n    get dataUpdates (): Array<DataUpdateStats> {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'dataUpdates');\r\n    }\r\n\r\n    get dataUpdatesTransformed () {\r\n        if (!this.dataUpdates) return null;\r\n        const vals: Array<{ name: string; data: Array<number | null>; type: 'column'; color: string }> = [];\r\n\r\n        this.ageBands.forEach((ageBand) => {\r\n            const ageBandData: Array<number | null> = [];\r\n            this.dataUpdates!.forEach((row) => {\r\n                let total = 0;\r\n                Object.keys(row.dataByAge).forEach((age) => {\r\n                    if (Number(age) >= ageBand.min && Number(age) <= ageBand.max) {\r\n                        total += row.dataByAge[age];\r\n                    }\r\n                });\r\n                ageBandData.push(total || null);\r\n            });\r\n            if (!ageBandData.every((a) => a === null) && (!this.filter || this.filter === (ageBand.label ?? `${ageBand.min} - ${ageBand.max}`))) {\r\n                vals.push({\r\n                    name: ageBand.label ?? `${ageBand.min} - ${ageBand.max}`,\r\n                    type: 'column',\r\n                    data: ageBandData,\r\n                    color: ColourService.getSeriesColour('age', ageBand.label ?? `${ageBand.min} - ${ageBand.max}`),\r\n                });\r\n            }\r\n        });\r\n\r\n        return vals;\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                type: 'column',\r\n                backgroundColor: 'transparent',\r\n            },\r\n            xAxis: {\r\n                categories: this.dataUpdates?.map((a) => dayjs(a.fromDate).format('DD MMM YYYY')),\r\n                labels: {\r\n                    formatter: ((that) => dayjs(that.value).format('DD MMM')),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            yAxis: {\r\n                allowDecimals: false,\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            legend: {\r\n                enabled: true,\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            plotOptions: {\r\n                column: {\r\n                    stacking: 'normal',\r\n                },\r\n            },\r\n            series: this.dataUpdatesTransformed || [],\r\n        };\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./data-updates-by-age.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./data-updates-by-age.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./data-updates-by-age.vue?vue&type=template&id=ce482f24&scoped=true&\"\nimport script from \"./data-updates-by-age.vue?vue&type=script&lang=ts&\"\nexport * from \"./data-updates-by-age.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./data-updates-by-age.vue?vue&type=style&index=0&id=ce482f24&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"ce482f24\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title aqua\"},[_vm._v(\" Data updates by data type \")]),_c('info',{attrs:{\"tooltip\":\"Total number of data updates grouped by data type\"}}),_c('div',{staticClass:\"tile-content\",class:[{ filtered: _vm.selectedPoint }, `colour-${_vm.selectedColourIndex}`]},[_c('highcharts',{ref:\"chart\",attrs:{\"options\":_vm.chartOptions}}),_c('div',{staticClass:\"total\",class:{ 'has-legend': _vm.showLegend },style:(_vm.centerPos),on:{\"click\":_vm.clearFilter}},[_vm._v(\" \"+_vm._s(_vm.formatNumber(_vm.totalDataUpdates))+\" \"),_c('span',{staticClass:\"filter\"},[_vm._v(_vm._s(_vm.selectedPoint))]),_c('span',[_vm._v(\"Updates\")]),(_vm.selectedPoint)?_c('div',{staticClass:\"return\",on:{\"click\":_vm.clearFilter}},[_c('font-awesome-icon',{attrs:{\"icon\":\"times\"}})],1):_vm._e()]),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport dayjs from 'dayjs';\r\nimport Guid from 'common/util/guid';\r\nimport Highcharts, { Point } from 'highcharts';\r\nimport ColourService from '@/services/colourService';\r\nimport ToggleSwitch from 'common/components/toggle-switch.vue';\r\nimport PieLegend from '@/services/pieLegendService';\r\nimport DataUpdateStats from '@/models/dataUpdateStats';\r\n\r\n@Component({ components: { ToggleSwitch } })\r\nexport default class MemberDataUpdatesByDataTypePie extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        showLegend!: boolean;\r\n\r\n    selectedPoint: string | null = null;\r\n\r\n    selectedColourIndex: number | null = null;\r\n\r\n    chartCenterX = 0;\r\n\r\n    chartCenterY = 0;\r\n\r\n    get loading () {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'dataUpdates') || false as boolean;\r\n    }\r\n\r\n    get dataUpdates (): Array<DataUpdateStats> | null {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'dataUpdates');\r\n    }\r\n\r\n    get centerPos () {\r\n        return {\r\n            top: `calc(${this.chartCenterY}px + 1.5rem) !important`,\r\n            left: `calc(${this.chartCenterX}px + 1.5rem) !important`,\r\n        };\r\n    }\r\n\r\n    get totalDataUpdates () {\r\n        return this.dataUpdatesTransformed?.filter((a) => a.name === this.selectedPoint || !this.selectedPoint)?.reduce((a, b) => a + (b.y ?? 0), 0);\r\n    }\r\n\r\n    get dataUpdatesTransformed () {\r\n        if (!this.dataUpdates) return null;\r\n        const totals: Record<string, number> = {};\r\n        this.dataUpdates.forEach((date) => {\r\n            Object.keys(date.dataByType).forEach((dataType) => {\r\n                if (!totals[dataType]) totals[dataType] = 0;\r\n                totals[dataType] += date.dataByType[dataType];\r\n            });\r\n        });\r\n        return Object.keys(totals)\r\n            .map((seriesName) => ({\r\n                name: this.formatDataType(seriesName),\r\n                y: totals[seriesName],\r\n                color: ColourService.getSeriesColour('dataTypes', seriesName),\r\n            })).sort((a, b) => (a.name > b.name ? 1 : -1));\r\n    }\r\n\r\n    formatDataType (dataType: string) {\r\n        const result = dataType.replace('Update', '').replace(/([A-Z])/g, ' $1');\r\n        return result.charAt(0).toUpperCase() + result.slice(1)\r\n            .replace('Dependants', 'Dependant Details')\r\n            .replace('Status', 'Information')\r\n            .replace('Phone Numbers', 'Contact Details')\r\n            .replace('Email Address', 'Email Details')\r\n            .replace('Communication', 'Contact')\r\n            .replace('Change', '');\r\n    }\r\n\r\n    formatNumber (number?: string | number) {\r\n        return Math.round(Number(number ?? 0)).toLocaleString('en');\r\n    }\r\n\r\n    pointClicked (point: Point) {\r\n        this.selectedColourIndex = point.colorIndex;\r\n        this.selectedPoint = point.name === this.selectedPoint ? null : point.name;\r\n        this.$emit('pointSelected', { category: 'dataUpdatesByDataType', series: this.selectedPoint });\r\n    }\r\n\r\n    clearFilter () {\r\n        (this.$refs.chart as unknown as { chart: Highcharts.Chart }).chart.series[0].points.forEach((a) => a.select(false));\r\n        this.selectedPoint = null;\r\n        this.$emit('pointSelected', { category: 'dataUpdatesByDataType', series: this.selectedPoint });\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n        // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n        const self = this;\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                type: 'pie',\r\n                backgroundColor: 'transparent',\r\n                events: {\r\n                    load () {\r\n                        const series = this.series[0] as unknown as { center: Array<number> };\r\n                        const x = this.plotLeft + series.center[0];\r\n                        const y = this.plotTop + series.center[1];\r\n                        self.chartCenterX = x;\r\n                        self.chartCenterY = y;\r\n                    },\r\n                    redraw () {\r\n                        const series = this.series[0] as unknown as { center: Array<number> };\r\n                        const x = this.plotLeft + series.center[0];\r\n                        const y = this.plotTop + series.center[1];\r\n                        self.chartCenterX = x;\r\n                        self.chartCenterY = y;\r\n                    },\r\n                },\r\n            },\r\n            xAxis: {\r\n                labels: {\r\n                    formatter: ((that) => dayjs(that.value).format('DD MMM')),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            yAxis: {\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            legend: this.showLegend ? PieLegend.get().legend : {\r\n                enabled: false,\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            plotOptions: {\r\n                pie: {\r\n                    dataLabels: {\r\n                        enabled: false,\r\n                    },\r\n                    allowPointSelect: true,\r\n                    showInLegend: true,\r\n                    borderWidth: 0,\r\n                    point: {\r\n                        events: {\r\n                            legendItemClick: (event) => {\r\n                                event.preventDefault();\r\n                                event.target.select(!event.target.selected);\r\n                                this.pointClicked(event.target);\r\n                            },\r\n                        },\r\n                    },\r\n                },\r\n            },\r\n            series: [{\r\n                type: 'pie',\r\n                name: 'Data updates',\r\n                innerSize: '70%',\r\n                slicedOffset: 5,\r\n                data: this.dataUpdatesTransformed!,\r\n                events: {\r\n                    click: (event) => { this.pointClicked(event.point); },\r\n                },\r\n            }],\r\n        };\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./data-updates-by-datatype-pie.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./data-updates-by-datatype-pie.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./data-updates-by-datatype-pie.vue?vue&type=template&id=0aa6b104&scoped=true&\"\nimport script from \"./data-updates-by-datatype-pie.vue?vue&type=script&lang=ts&\"\nexport * from \"./data-updates-by-datatype-pie.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./data-updates-by-datatype-pie.vue?vue&type=style&index=0&id=0aa6b104&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"0aa6b104\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title aqua\"},[_vm._v(\" Data updates by data type \")]),_c('info',{attrs:{\"tooltip\":\"Number of data updates grouped by data type over the period\"}}),_c('div',{staticClass:\"tile-content\"},[_c('highcharts',{attrs:{\"options\":_vm.chartOptions}}),(!_vm.chartOptions.series || !_vm.chartOptions.series.length)?_c('div',{staticClass:\"no-data\"},[_c('strong',[_vm._v(\"0\")]),_vm._v(\" Data updates\")]):_vm._e(),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport Guid from 'common/util/guid';\r\nimport dayjs from 'dayjs';\r\nimport ColourService from '@/services/colourService';\r\nimport DataUpdateStats from '@/models/dataUpdateStats';\r\nimport Highcharts from 'highcharts';\r\n\r\n@Component\r\nexport default class DataUpdatesByDataTypeChart extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        filter!: string | null;\r\n\r\n    get loading () {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'dataUpdates') || false as boolean;\r\n    }\r\n\r\n    get dataUpdates (): Array<DataUpdateStats> {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'dataUpdates');\r\n    }\r\n\r\n    get categories () {\r\n        if (!this.dataUpdates) return [];\r\n        const dataTypes: Array<string> = [];\r\n        this.dataUpdates.forEach((date) => {\r\n            dataTypes.push(...Object.keys(date.dataByType));\r\n        });\r\n        return [...new Set(dataTypes)];\r\n    }\r\n\r\n    get dataUpdatesTransformed () {\r\n        if (!this.dataUpdates) return null;\r\n        const vals: Array<{ name: string; data: number[]; type: 'column'; color: string }> = [];\r\n\r\n        this.categories.forEach((dataType) => {\r\n            const dataTypeData: Array<number> = [];\r\n            this.dataUpdates!.forEach((row) => {\r\n                dataTypeData.push(row.dataByType[dataType] ?? 0);\r\n            });\r\n            if (!this.filter || this.filter === this.formatDataType(dataType)) {\r\n                vals.push({\r\n                    name: this.formatDataType(dataType),\r\n                    type: 'column',\r\n                    data: dataTypeData,\r\n                    color: ColourService.getSeriesColour('dataTypes', dataType),\r\n                });\r\n            }\r\n        });\r\n\r\n        return vals;\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                type: 'column',\r\n                backgroundColor: 'transparent',\r\n            },\r\n            xAxis: {\r\n                categories: this.dataUpdates?.map((a) => dayjs(a.fromDate).format('DD MMM YYYY')),\r\n                labels: {\r\n                    formatter: ((that) => dayjs(that.value).format('DD MMM')),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            yAxis: {\r\n                allowDecimals: false,\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            legend: {\r\n                enabled: true,\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            plotOptions: {\r\n                column: {\r\n                    stacking: 'normal',\r\n                },\r\n            },\r\n            series: this.dataUpdatesTransformed || [],\r\n        };\r\n    }\r\n\r\n    formatDataType (dataType: string) {\r\n        const result = dataType.replace('Update', '').replace(/([A-Z])/g, ' $1');\r\n        return result.charAt(0).toUpperCase() + result.slice(1)\r\n            .replace('Dependants', 'Dependant Details')\r\n            .replace('Status', 'Information')\r\n            .replace('Phone Numbers', 'Contact Details')\r\n            .replace('Email Address', 'Email Details')\r\n            .replace('Communication', 'Contact')\r\n            .replace('Change', '');\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./data-updates-by-datatype.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./data-updates-by-datatype.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./data-updates-by-datatype.vue?vue&type=template&id=32c60e24&scoped=true&\"\nimport script from \"./data-updates-by-datatype.vue?vue&type=script&lang=ts&\"\nexport * from \"./data-updates-by-datatype.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./data-updates-by-datatype.vue?vue&type=style&index=0&id=32c60e24&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"32c60e24\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title aqua\"},[_vm._v(\" Data updates by member status \")]),_c('info',{attrs:{\"tooltip\":\"Total number of data updates grouped by member status\"}}),_c('div',{staticClass:\"tile-content\",class:[{ filtered: _vm.selectedPoint }, `colour-${_vm.selectedColourIndex}`]},[_c('highcharts',{ref:\"chart\",attrs:{\"options\":_vm.chartOptions}}),_c('div',{staticClass:\"total\",class:{ 'has-legend': _vm.showLegend },style:(_vm.centerPos),on:{\"click\":_vm.clearFilter}},[_vm._v(\" \"+_vm._s(_vm.formatNumber(_vm.totalDataUpdates))+\" \"),_c('span',{staticClass:\"filter\"},[_vm._v(_vm._s(_vm.selectedPoint))]),_c('span',[_vm._v(\"Updates\")]),(_vm.selectedPoint)?_c('div',{staticClass:\"return\",on:{\"click\":_vm.clearFilter}},[_c('font-awesome-icon',{attrs:{\"icon\":\"times\"}})],1):_vm._e()]),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport dayjs from 'dayjs';\r\nimport Guid from 'common/util/guid';\r\nimport Highcharts, { Point } from 'highcharts';\r\nimport ColourService from '@/services/colourService';\r\nimport ToggleSwitch from 'common/components/toggle-switch.vue';\r\nimport PieLegend from '@/services/pieLegendService';\r\nimport DataUpdateStats from '@/models/dataUpdateStats';\r\n\r\n@Component({ components: { ToggleSwitch } })\r\nexport default class MemberDataUpdatesByStatusPie extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        showLegend!: boolean;\r\n\r\n    selectedPoint: string | null = null;\r\n\r\n    selectedColourIndex: number | null = null;\r\n\r\n    chartCenterX = 0;\r\n\r\n    chartCenterY = 0;\r\n\r\n    get loading () {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'dataUpdates') || false as boolean;\r\n    }\r\n\r\n    get dataUpdates (): Array<DataUpdateStats> | null {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'dataUpdates');\r\n    }\r\n\r\n    get centerPos () {\r\n        return {\r\n            top: `calc(${this.chartCenterY}px + 1.5rem) !important`,\r\n            left: `calc(${this.chartCenterX}px + 1.5rem) !important`,\r\n        };\r\n    }\r\n\r\n    get totalDataUpdates () {\r\n        return this.dataUpdatesTransformed?.filter((a) => a.name === this.selectedPoint || !this.selectedPoint)?.reduce((a, b) => a + (b.y ?? 0), 0);\r\n    }\r\n\r\n    get dataUpdatesTransformed () {\r\n        if (!this.dataUpdates) return null;\r\n        const totals: Record<string, number> = {};\r\n        this.dataUpdates.forEach((date) => {\r\n            Object.keys(date.dataByStatus).forEach((dataType) => {\r\n                if (!totals[dataType]) totals[dataType] = 0;\r\n                totals[dataType] += date.dataByStatus[dataType];\r\n            });\r\n        });\r\n        return Object.keys(totals)\r\n            .map((seriesName) => ({\r\n                name: seriesName,\r\n                y: totals[seriesName],\r\n                color: ColourService.getSeriesColour('status', seriesName),\r\n            }));\r\n    }\r\n\r\n    pointClicked (point: Point) {\r\n        this.selectedColourIndex = point.colorIndex;\r\n        this.selectedPoint = point.name === this.selectedPoint ? null : point.name;\r\n        this.$emit('pointSelected', { category: 'dataUpdatesByStatus', series: this.selectedPoint });\r\n    }\r\n\r\n    clearFilter () {\r\n        (this.$refs.chart as unknown as { chart: Highcharts.Chart }).chart.series[0].points.forEach((a) => a.select(false));\r\n        this.selectedPoint = null;\r\n        this.$emit('pointSelected', { category: 'dataUpdatesByStatus', series: this.selectedPoint });\r\n    }\r\n\r\n    formatNumber (number?: string | number) {\r\n        return Math.round(Number(number ?? 0)).toLocaleString('en');\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n        // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n        const self = this;\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                type: 'pie',\r\n                backgroundColor: 'transparent',\r\n                events: {\r\n                    load () {\r\n                        const series = this.series[0] as unknown as { center: Array<number> };\r\n                        const x = this.plotLeft + series.center[0];\r\n                        const y = this.plotTop + series.center[1];\r\n                        self.chartCenterX = x;\r\n                        self.chartCenterY = y;\r\n                    },\r\n                    redraw () {\r\n                        const series = this.series[0] as unknown as { center: Array<number> };\r\n                        const x = this.plotLeft + series.center[0];\r\n                        const y = this.plotTop + series.center[1];\r\n                        self.chartCenterX = x;\r\n                        self.chartCenterY = y;\r\n                    },\r\n                },\r\n            },\r\n            xAxis: {\r\n                labels: {\r\n                    formatter: ((that) => dayjs(that.value).format('DD MMM')),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            yAxis: {\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            legend: this.showLegend ? PieLegend.get().legend : {\r\n                enabled: false,\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            plotOptions: {\r\n                pie: {\r\n                    dataLabels: {\r\n                        enabled: false,\r\n                    },\r\n                    allowPointSelect: true,\r\n                    showInLegend: true,\r\n                    borderWidth: 0,\r\n                    point: {\r\n                        events: {\r\n                            legendItemClick: (event) => {\r\n                                event.preventDefault();\r\n                                event.target.select(!event.target.selected);\r\n                                this.pointClicked(event.target);\r\n                            },\r\n                        },\r\n                    },\r\n                },\r\n            },\r\n            series: [{\r\n                type: 'pie',\r\n                name: 'Data updates',\r\n                innerSize: '70%',\r\n                slicedOffset: 5,\r\n                data: this.dataUpdatesTransformed!,\r\n                events: {\r\n                    click: (event) => { this.pointClicked(event.point); },\r\n                },\r\n            }],\r\n        };\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./data-updates-by-status-pie.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./data-updates-by-status-pie.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./data-updates-by-status-pie.vue?vue&type=template&id=7dbb3da9&scoped=true&\"\nimport script from \"./data-updates-by-status-pie.vue?vue&type=script&lang=ts&\"\nexport * from \"./data-updates-by-status-pie.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./data-updates-by-status-pie.vue?vue&type=style&index=0&id=7dbb3da9&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"7dbb3da9\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title aqua\"},[_vm._v(\" Data updates by member status \")]),_c('info',{attrs:{\"tooltip\":\"Number of data updates grouped by member status over the period\"}}),_c('div',{staticClass:\"tile-content\"},[_c('highcharts',{attrs:{\"options\":_vm.chartOptions}}),(!_vm.chartOptions.series || !_vm.chartOptions.series.length)?_c('div',{staticClass:\"no-data\"},[_c('strong',[_vm._v(\"0\")]),_vm._v(\" Data updates\")]):_vm._e(),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport Guid from 'common/util/guid';\r\nimport dayjs from 'dayjs';\r\nimport ColourService from '@/services/colourService';\r\nimport DataUpdateStats from '@/models/dataUpdateStats';\r\nimport Highcharts from 'highcharts';\r\n\r\n@Component\r\nexport default class DataUpdatesByDataTypeChart extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        filter!: string | null;\r\n\r\n    get loading () {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'dataUpdates') || false as boolean;\r\n    }\r\n\r\n    get dataUpdates (): Array<DataUpdateStats> {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'dataUpdates');\r\n    }\r\n\r\n    get categories () {\r\n        if (!this.dataUpdates) return [];\r\n        const dataTypes: Array<string> = [];\r\n        this.dataUpdates.forEach((date) => {\r\n            dataTypes.push(...Object.keys(date.dataByStatus));\r\n        });\r\n        return [...new Set(dataTypes)];\r\n    }\r\n\r\n    get dataUpdatesTransformed () {\r\n        if (!this.dataUpdates) return null;\r\n        const vals: Array<{ name: string; data: number[]; type: 'column'; color: string }> = [];\r\n\r\n        this.categories.forEach((status) => {\r\n            const dataTypeData: Array<number> = [];\r\n            this.dataUpdates!.forEach((row) => {\r\n                dataTypeData.push(row.dataByStatus[status] ?? 0);\r\n            });\r\n            if (!this.filter || this.filter === status) {\r\n                vals.push({\r\n                    name: status,\r\n                    type: 'column',\r\n                    data: dataTypeData,\r\n                    color: ColourService.getSeriesColour('status', status),\r\n                });\r\n            }\r\n        });\r\n\r\n        return vals;\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                type: 'column',\r\n                backgroundColor: 'transparent',\r\n            },\r\n            xAxis: {\r\n                categories: this.dataUpdates?.map((a) => dayjs(a.fromDate).format('DD MMM YYYY')),\r\n                labels: {\r\n                    formatter: ((that) => dayjs(that.value).format('DD MMM')),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            yAxis: {\r\n                allowDecimals: false,\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            legend: {\r\n                enabled: true,\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            plotOptions: {\r\n                column: {\r\n                    stacking: 'normal',\r\n                },\r\n            },\r\n            series: this.dataUpdatesTransformed || [],\r\n        };\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./data-updates-by-status.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./data-updates-by-status.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./data-updates-by-status.vue?vue&type=template&id=3cbe8885&scoped=true&\"\nimport script from \"./data-updates-by-status.vue?vue&type=script&lang=ts&\"\nexport * from \"./data-updates-by-status.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./data-updates-by-status.vue?vue&type=style&index=0&id=3cbe8885&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"3cbe8885\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.clientContext)?_c('div',{staticClass:\"dates\"},[_c('btn',{staticClass:\"mobile-toggle\",on:{\"click\":function($event){_vm.datesToggled = true}}},[_c('font-awesome-icon',{attrs:{\"icon\":\"calendar\"}})],1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.datesToggled),expression:\"datesToggled\"}],staticClass:\"mobile-modal-backdrop\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.datesToggled),expression:\"datesToggled\"}],staticClass:\"mobile-modal\"},[_c('p',[_vm._v(\"Select a date range\")]),_c('dynamic-ui-date',{ref:\"fromDate\",attrs:{\"name\":\"From\",\"exportFormat\":\"YYYY-MM-DD\",\"min\":_vm.minDate,\"max\":_vm.toDate},model:{value:(_vm.fromDate),callback:function ($$v) {_vm.fromDate=$$v},expression:\"fromDate\"}}),_c('dynamic-ui-date',{ref:\"toDate\",attrs:{\"name\":\"To\",\"exportFormat\":\"YYYY-MM-DD\",\"min\":_vm.fromDate,\"max\":_vm.maxDate},model:{value:(_vm.toDate),callback:function ($$v) {_vm.toDate=$$v},expression:\"toDate\"}}),_c('dynamic-ui-enum-dropdown',{attrs:{\"name\":\"Dates\",\"options\":_vm.dateOptions,\"valueKey\":\"name\"},on:{\"input\":_vm.datePresetChanged},model:{value:(_vm.datePreset),callback:function ($$v) {_vm.datePreset=$$v},expression:\"datePreset\"}}),_c('toggle-switch',{attrs:{\"name\":\"Monthly\",\"fromName\":\"Weekly\"},model:{value:(_vm.viewMonthly),callback:function ($$v) {_vm.viewMonthly=$$v},expression:\"viewMonthly\"}}),_c('div',{staticClass:\"controls\"},[_c('btn',{staticClass:\"primary\",attrs:{\"text\":\"Ok\"},on:{\"click\":function($event){_vm.datesToggled = false}}})],1)],1)])],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Watch } from 'vue-property-decorator';\r\nimport { DateComponent, DynamicUiDate, DynamicUiEnumDropdown } from '@lcp/dynamic-ui-typescript';\r\nimport Guid from 'common/util/guid';\r\nimport ClientContext from '@/models/clientContext';\r\nimport Client from 'common/models/client';\r\nimport dayjs from '~/dayjs';\r\n\r\n@Component({\r\n    components: { DynamicUiDate, DynamicUiEnumDropdown },\r\n})\r\nexport default class HeaderBar extends Vue {\r\n    datePreset = 'Custom';\r\n\r\n    datesToggled = false;\r\n\r\n    @Watch('clientContext', { immediate: true })\r\n    clientContextChanged () {\r\n        if (!this.hasLoaded && this.clientContext) this.loadDateData();\r\n    }\r\n\r\n    formatDate (date: string | Date) {\r\n        return dayjs(date).format('YYYY-MM-DD');\r\n    }\r\n\r\n    get viewMonthly () {\r\n        return this.$store.getters['clientContext/viewMonthly'](this.clientId);\r\n    }\r\n\r\n    set viewMonthly (viewMonthly: boolean) {\r\n        this.$store.commit('clientContext/setViewMonthly', { clientId: this.clientId, viewMonthly });\r\n        this.loadDateData();\r\n    }\r\n\r\n    get showDates () {\r\n        return this.$route.meta?.showDates;\r\n    }\r\n\r\n    get clientId () {\r\n        return this.$store.getters['clientContext/selectedClient'] as Guid;\r\n    }\r\n\r\n    get clients () {\r\n        return this.$store.getters['clientContext/clients'] as Array<Client>;\r\n    }\r\n\r\n    get dateOptions () {\r\n        return this.clientContext ? [\r\n            ...this.clientContext.presetDateOptions,\r\n            { name: 'Custom', start: new Date(), end: new Date() }]\r\n            : [{ name: 'Custom', start: new Date(), end: new Date() }];\r\n    }\r\n\r\n    get clientContext () {\r\n        if (this.clientId) {\r\n            return this.$store.getters['clientContext/context'](this.clientId) as ClientContext;\r\n        }\r\n        return null;\r\n    }\r\n\r\n    get minDate () {\r\n        return this.clientContext?.minDate;\r\n    }\r\n\r\n    get maxDate () {\r\n        return this.clientContext?.maxDate;\r\n    }\r\n\r\n    get fromDate () {\r\n        return this.$store.getters['clientContext/fromDate'](this.clientId) as string;\r\n    }\r\n\r\n    set fromDate (val: string | Date) {\r\n        if (val === this.fromDate) return;\r\n        if (this.$refs.fromDate && (this.$refs.fromDate as unknown as { localDefinition: DateComponent}).localDefinition.isValid) {\r\n            this.$store.commit('clientContext/setFromDate', { clientId: this.clientId, date: val });\r\n        }\r\n        this.loadDateData();\r\n        if (val !== this.datePresetObject.start) this.datePreset = 'Custom';\r\n    }\r\n\r\n    get toDate () {\r\n        return this.$store.getters['clientContext/toDate'](this.clientId) as string;\r\n    }\r\n\r\n    set toDate (val: string | Date) {\r\n        if (val === this.toDate) return;\r\n        if (this.$refs.toDate && (this.$refs.toDate as unknown as { localDefinition: DateComponent}).localDefinition.isValid) {\r\n            this.$store.commit('clientContext/setToDate', { clientId: this.clientId, date: val });\r\n        }\r\n        this.loadDateData();\r\n        if (val !== this.datePresetObject.end) this.datePreset = 'Custom';\r\n    }\r\n\r\n    get datePresetObject () {\r\n        const obj = this.dateOptions.find((a) => a.name === this.datePreset)!;\r\n        return {\r\n            ...obj,\r\n            start: this.formatDate(obj.start),\r\n            end: this.formatDate(obj.end),\r\n        };\r\n    }\r\n\r\n    get hasLoaded () {\r\n        return this.clientContext && !!this.$store.getters['clientStatistics/stats'](this.clientId, 'completedCases');\r\n    }\r\n\r\n    datePresetChanged () {\r\n        if (this.datePreset !== 'Custom') {\r\n            this.fromDate = this.datePresetObject.start;\r\n            this.toDate = this.datePresetObject.end;\r\n        }\r\n    }\r\n\r\n    loadDateData () {\r\n        if (this.fromDate && this.toDate && this.clientId) {\r\n            this.$store.dispatch('clientStatistics/loadClientStatsForDates', {\r\n                clientId: this.clientId,\r\n                fromDate: this.fromDate,\r\n                toDate: this.toDate,\r\n                viewMonthly: this.viewMonthly,\r\n            });\r\n        }\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./date-selector.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./date-selector.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./date-selector.vue?vue&type=template&id=200bd214&scoped=true&\"\nimport script from \"./date-selector.vue?vue&type=script&lang=ts&\"\nexport * from \"./date-selector.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./date-selector.vue?vue&type=style&index=0&id=200bd214&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"200bd214\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title grapefruit\"},[_vm._v(\" Current demographics \")]),_c('info',{attrs:{\"tooltip\":\"Current membership age profile by status\"}}),_c('div',{staticClass:\"tile-content\"},[(!_vm.printing)?_c('toggle-switch',{attrs:{\"name\":\"View as table\"},model:{value:(_vm.viewAsTable),callback:function ($$v) {_vm.viewAsTable=$$v},expression:\"viewAsTable\"}}):_vm._e(),(_vm.viewAsTable)?_c('div',{staticClass:\"table-wrapper\"},[_c('table',[_c('thead',[_c('th',[_vm._v(\"Age\")]),_vm._l((_vm.memberTypes),function(type){return _c('th',{key:type},[_vm._v(\" \"+_vm._s(type)+\" \")])})],2),_c('tbody',_vm._l((_vm.tableData),function(age){return _c('tr',{key:age.min},[(age.min === 101)?_c('td',[_vm._v(\"> \"+_vm._s(age.min))]):(age.min === 0)?_c('td',[_vm._v(\"< \"+_vm._s(age.max))]):_c('td',[_vm._v(_vm._s(age.min)+\" - \"+_vm._s(age.max))]),_vm._l((_vm.memberTypes),function(type){return _c('td',{key:type},[(age[type])?_c('span',{class:type},[_vm._v(_vm._s(age[type]))]):_vm._e()])})],2)}),0)])]):_c('highcharts',{attrs:{\"options\":_vm.chartOptions}}),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue, Watch,\r\n} from 'vue-property-decorator';\r\nimport ClientsApi from '@/api/clientApi';\r\nimport Guid from 'common/util/guid';\r\nimport MemberDemographics from '@/models/memberDemographics';\r\nimport ColourService from '@/services/colourService';\r\nimport Highcharts from 'highcharts';\r\n\r\n@Component\r\nexport default class Demographics extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        printing!: boolean;\r\n\r\n    @Prop()\r\n        tableView!: boolean | null;\r\n\r\n    @Watch('tableView', { immediate: true })\r\n    tableViewChanged () {\r\n        this.viewAsTable = !!this.tableView;\r\n    }\r\n\r\n    viewAsTable = false;\r\n\r\n    memberDemographics: MemberDemographics | null = null;\r\n\r\n    loading = false;\r\n\r\n    get fromDate () {\r\n        return this.$store.getters['clientContext/fromDate'](this.clientId) as string;\r\n    }\r\n\r\n    get toDate () {\r\n        return this.$store.getters['clientContext/toDate'](this.clientId) as string;\r\n    }\r\n\r\n    @Watch('fromDate', { immediate: true })\r\n    @Watch('toDate')\r\n    async datesChanged () {\r\n        this.loading = true;\r\n        this.memberDemographics = await ClientsApi.getMemberDemographics(this.clientId);\r\n        this.loading = false;\r\n    }\r\n\r\n    get tableData () {\r\n        const ages: Array<{ min: number; max: number; [type: string]: number }> = [\r\n            { min: 0, max: 18 },\r\n            { min: 19, max: 30 },\r\n            { min: 31, max: 40 },\r\n            { min: 41, max: 50 },\r\n            { min: 51, max: 60 },\r\n            { min: 61, max: 70 },\r\n            { min: 71, max: 80 },\r\n            { min: 81, max: 90 },\r\n            { min: 91, max: 100 },\r\n            { min: 101, max: 200 },\r\n        ];\r\n        if (!this.memberDemographics) return [];\r\n        this.memberTypes.forEach((type) => {\r\n            ages.forEach((age) => {\r\n                this.memberDemographics!.countByStatusAndAge[type].forEach((count) => {\r\n                    if (count.age >= age.min && count.age <= age.max) {\r\n                        if (!age[type]) age[type] = 0;\r\n                        age[type] += count.count;\r\n                    }\r\n                });\r\n            });\r\n        });\r\n        return ages;\r\n    }\r\n\r\n    get memberDemographicsTransformed () {\r\n        if (!this.memberDemographics?.countByStatusAndAge) return null;\r\n        const ages: { [ age: string ]: { [type: string]: number }} = {};\r\n        this.memberTypes.forEach((type) => {\r\n            this.memberDemographics!.countByStatusAndAge[type].forEach((a) => {\r\n                if (!ages[a.age]) ages[a.age] = {};\r\n                ages[a.age][type] = a.count;\r\n            });\r\n        });\r\n        const vals: Array<{ type: 'column'; name: string; data: Array<number>; color: string }> = [];\r\n        this.memberTypes.forEach((type) => {\r\n            const val: { type: 'column'; name: string; data: Array<number>; color: string } = {\r\n                name: type,\r\n                type: 'column',\r\n                data: [],\r\n                color: ColourService.getSeriesColour('demographics', type),\r\n            };\r\n            this.ages.forEach((age) => {\r\n                val.data.push(ages[age] ? ages[age][type] || 0 : 0);\r\n            });\r\n            vals.push(val);\r\n        });\r\n        return vals;\r\n    }\r\n\r\n    get memberTypes () {\r\n        return Object.keys(this.memberDemographics?.countByStatusAndAge || {});\r\n    }\r\n\r\n    get colours () {\r\n        return ColourService.colours;\r\n    }\r\n\r\n    get ages () {\r\n        let minAge = -1;\r\n        let maxAge = -1;\r\n        this.memberTypes.forEach((type) => {\r\n            this.memberDemographics!.countByStatusAndAge[type].forEach((a) => {\r\n                if (a.age > maxAge || maxAge === -1) maxAge = a.age;\r\n                if (a.age < minAge || minAge === -1) minAge = a.age;\r\n            });\r\n        });\r\n        const vals: Array<string> = [];\r\n        for (let i = minAge; i <= maxAge; i += 1) {\r\n            vals.push(i.toString());\r\n        }\r\n        return vals;\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                type: 'column',\r\n            },\r\n            xAxis: {\r\n                categories: this.ages,\r\n                title: {\r\n                    text: 'Age',\r\n                },\r\n                labels: {\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            yAxis: {\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            legend: {\r\n                enabled: true,\r\n                itemStyle: {\r\n                    fontSize: '0.9rem',\r\n                    fontFamily: 'Montserrat, sans-serif',\r\n                    fontWeight: '400',\r\n                },\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            colors: this.colours,\r\n            plotOptions: {\r\n                series: {\r\n                    animation: !this.printing,\r\n                },\r\n                column: {\r\n                    stacking: 'normal',\r\n                },\r\n            },\r\n            series: this.memberDemographicsTransformed || [],\r\n        };\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./demographics.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./demographics.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./demographics.vue?vue&type=template&id=110b4ddd&scoped=true&\"\nimport script from \"./demographics.vue?vue&type=script&lang=ts&\"\nexport * from \"./demographics.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./demographics.vue?vue&type=style&index=0&id=110b4ddd&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"110b4ddd\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title grey\"},[_vm._v(\"Document search\")]),_c('div',{staticClass:\"tile-content\"},[_c('div',{staticClass:\"search\"},[_c('input',{staticClass:\"search\",attrs:{\"type\":\"text\",\"placeholder\":\"Search...\"},on:{\"click\":function($event){$event.preventDefault();return (() => {}).apply(null, arguments)}}}),_c('font-awesome-icon',{attrs:{\"icon\":\"search\"}})],1),_c('div',{staticClass:\"card-title\"},[_vm._v(\"Recent documents\")]),_c('ul',{staticClass:\"documents\"},[_c('li',[_c('font-awesome-icon',{staticClass:\"excel\",attrs:{\"icon\":\"file-excel\"}}),_vm._m(0)],1),_c('li',[_c('font-awesome-icon',{staticClass:\"pdf\",attrs:{\"icon\":\"file-pdf\"}}),_vm._m(1)],1),_c('li',[_c('font-awesome-icon',{staticClass:\"word\",attrs:{\"icon\":\"file-word\"}}),_vm._m(2)],1)])])])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"details\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"Scheme return 2020-2021\")]),_c('div',{staticClass:\"date\"},[_vm._v(\"21st April 2021\")])])\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"details\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"Pensionsers newsletter 2020\")]),_c('div',{staticClass:\"date\"},[_vm._v(\"12th March 2021\")])])\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"details\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"Privacy policy\")]),_c('div',{staticClass:\"date\"},[_vm._v(\"30th January 2021\")])])\n}]\n\nexport { render, staticRenderFns }","\r\nimport Guid from 'common/util/guid';\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class FeedbackScore extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    loading = false;\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./document-search.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./document-search.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./document-search.vue?vue&type=template&id=4393b636&scoped=true&\"\nimport script from \"./document-search.vue?vue&type=script&lang=ts&\"\nexport * from \"./document-search.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./document-search.vue?vue&type=style&index=0&id=4393b636&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"4393b636\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title aqua\"},[_vm._v(\" Generic documents viewed by member status \")]),_c('info',{attrs:{\"tooltip\":\"Total number of generic documents viewed grouped by member status\"}}),_c('div',{staticClass:\"tile-content\",class:[{ filtered: _vm.selectedPoint }, `colour-${_vm.selectedColourIndex}`]},[_c('highcharts',{ref:\"chart\",attrs:{\"options\":_vm.chartOptions}}),_c('div',{staticClass:\"total\",class:{ 'has-legend': _vm.showLegend },style:(_vm.centerPos),on:{\"click\":_vm.clearFilter}},[_vm._v(\" \"+_vm._s(_vm.formatNumber(_vm.totalDocumentsViewed))+\" \"),_c('span',{staticClass:\"filter\"},[_vm._v(_vm._s(_vm.selectedPoint))]),_c('span',[_vm._v(\"Documents viewed\")]),(_vm.selectedPoint)?_c('div',{staticClass:\"return\",on:{\"click\":_vm.clearFilter}},[_c('font-awesome-icon',{attrs:{\"icon\":\"times\"}})],1):_vm._e()]),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport dayjs from 'dayjs';\r\nimport Guid from 'common/util/guid';\r\nimport Highcharts, { Point } from 'highcharts';\r\nimport ColourService from '@/services/colourService';\r\nimport ToggleSwitch from 'common/components/toggle-switch.vue';\r\nimport PieLegend from '@/services/pieLegendService';\r\nimport MemberDocumentStats from '@/models/memberDocumentStats';\r\n\r\n@Component({ components: { ToggleSwitch } })\r\nexport default class PayslipViewsByStatusPie extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        showLegend!: boolean;\r\n\r\n    @Prop()\r\n        printing!: boolean;\r\n\r\n    viewByFileType = false;\r\n\r\n    selectedPoint: string | null = null;\r\n\r\n    selectedColourIndex: number | null = null;\r\n\r\n    chartCenterX = 0;\r\n\r\n    chartCenterY = 0;\r\n\r\n    get loading () {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'memberDocumentsStats') || false as boolean;\r\n    }\r\n\r\n    get documentStats (): Array<MemberDocumentStats> {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'memberDocumentsStats');\r\n    }\r\n\r\n    get centerPos () {\r\n        return {\r\n            top: `calc(${this.chartCenterY}px + 1.5rem) !important`,\r\n            left: `calc(${this.chartCenterX}px + 1.5rem) !important`,\r\n        };\r\n    }\r\n\r\n    get categories () {\r\n        if (!this.documentStats) return [];\r\n        const dataTypes: Array<string> = [];\r\n        this.documentStats.forEach((date) => {\r\n            Object.values(date.documentsViewed).forEach((document) => {\r\n                dataTypes.push(...Object.keys(document.splitByStatus));\r\n            });\r\n        });\r\n        return [...new Set(dataTypes)];\r\n    }\r\n\r\n    get totalDocumentsViewed () {\r\n        return this.dataUpdatesTransformed?.filter((a) => a.name === this.selectedPoint || !this.selectedPoint)?.reduce((a, b) => a + (b.y ?? 0), 0);\r\n    }\r\n\r\n    get dataUpdatesTransformed () {\r\n        if (!this.documentStats) return null;\r\n        const totals: Record<string, number> = {};\r\n        this.documentStats.forEach((date) => {\r\n            this.categories.forEach((status) => {\r\n                if (!totals[status]) totals[status] = 0;\r\n                totals[status] += Object.values(date.documentsViewed)\r\n                    .reduce((a, b) => a + (b.splitByStatus[status] ?? 0), 0);\r\n            });\r\n        });\r\n        return Object.keys(totals)\r\n            .map((seriesName) => ({\r\n                name: seriesName,\r\n                y: totals[seriesName],\r\n                color: ColourService.getSeriesColour('status', seriesName),\r\n            }));\r\n    }\r\n\r\n    formatNumber (number?: string | number) {\r\n        return Math.round(Number(number ?? 0)).toLocaleString('en');\r\n    }\r\n\r\n    pointClicked (point: Point) {\r\n        this.selectedColourIndex = point.colorIndex;\r\n        this.selectedPoint = point.name === this.selectedPoint ? null : point.name;\r\n        this.$emit('pointSelected', { category: 'documentsByStatus', series: this.selectedPoint });\r\n    }\r\n\r\n    clearFilter () {\r\n        (this.$refs.chart as unknown as { chart: Highcharts.Chart }).chart.series[0].points.forEach((a) => a.select(false));\r\n        this.selectedPoint = null;\r\n        this.$emit('pointSelected', { category: 'documentsByStatus', series: this.selectedPoint });\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n        // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n        const self = this;\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                height: 444,\r\n                type: 'pie',\r\n                backgroundColor: 'transparent',\r\n                events: {\r\n                    load () {\r\n                        const series = this.series[0] as unknown as { center: Array<number> };\r\n                        const x = this.plotLeft + series.center[0];\r\n                        const y = this.plotTop + series.center[1];\r\n                        self.chartCenterX = x;\r\n                        self.chartCenterY = y;\r\n                    },\r\n                    redraw () {\r\n                        const series = this.series[0] as unknown as { center: Array<number> };\r\n                        const x = this.plotLeft + series.center[0];\r\n                        const y = this.plotTop + series.center[1];\r\n                        self.chartCenterX = x;\r\n                        self.chartCenterY = y;\r\n                    },\r\n                },\r\n            },\r\n            xAxis: {\r\n                labels: {\r\n                    formatter: ((that) => dayjs(that.value).format('DD MMM')),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            yAxis: {\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            legend: this.showLegend ? PieLegend.get().legend : {\r\n                enabled: false,\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            plotOptions: {\r\n                pie: {\r\n                    dataLabels: {\r\n                        enabled: false,\r\n                    },\r\n                    allowPointSelect: true,\r\n                    showInLegend: true,\r\n                    borderWidth: 0,\r\n                    point: {\r\n                        events: {\r\n                            legendItemClick: (event) => {\r\n                                event.preventDefault();\r\n                                event.target.select(!event.target.selected);\r\n                                this.pointClicked(event.target);\r\n                            },\r\n                        },\r\n                    },\r\n                },\r\n            },\r\n            series: [{\r\n                type: 'pie',\r\n                name: 'Documents viewed',\r\n                innerSize: '70%',\r\n                slicedOffset: 5,\r\n                data: this.dataUpdatesTransformed!,\r\n                events: {\r\n                    click: (event) => { this.pointClicked(event.point); },\r\n                },\r\n            }],\r\n        };\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./document-views-by-status-pie.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./document-views-by-status-pie.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./document-views-by-status-pie.vue?vue&type=template&id=8faf20a8&scoped=true&\"\nimport script from \"./document-views-by-status-pie.vue?vue&type=script&lang=ts&\"\nexport * from \"./document-views-by-status-pie.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./document-views-by-status-pie.vue?vue&type=style&index=0&id=8faf20a8&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"8faf20a8\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title aqua\"},[_vm._v(\" Generic documents viewed by member status \")]),_c('info',{attrs:{\"tooltip\":\"Number of generic documents viewed grouped by member status over the period\"}}),_c('div',{staticClass:\"tile-content\"},[(!_vm.printing)?_c('toggle-switch',{attrs:{\"name\":\"View by document\"},model:{value:(_vm.viewByFileType),callback:function ($$v) {_vm.viewByFileType=$$v},expression:\"viewByFileType\"}}):_vm._e(),(_vm.viewByFileType)?_c('table',[_c('thead',[_c('tr',[_c('th',[_vm._v(\"Document\")]),_vm._l((_vm.categories),function(category){return _c('th',{key:category},[_vm._v(\" \"+_vm._s(category)+\" \")])})],2)]),_c('tbody',_vm._l((_vm.documentNames),function(documentName,i){return _c('tr',{key:documentName},[_c('td',[_vm._v(_vm._s(_vm.formatDocument(documentName)))]),_vm._l((_vm.categories),function(category){return _c('td',{key:category},[(_vm.documentStatsTransformed)?_c('span',{style:({ background: _vm.getColour(category) })},[_vm._v(\" \"+_vm._s(_vm.documentStatsTransformed.find(a => a.name === category).data[i])+\" \")]):_vm._e()])})],2)}),0)]):_c('highcharts',{attrs:{\"options\":_vm.chartOptions}}),(!_vm.chartOptions.series || !_vm.chartOptions.series.length)?_c('div',{staticClass:\"no-data\"},[_c('strong',[_vm._v(\"0\")]),_vm._v(\" Documents viewed\")]):_vm._e(),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport Guid from 'common/util/guid';\r\nimport dayjs from 'dayjs';\r\nimport ColourService from '@/services/colourService';\r\nimport MemberDocumentStats from '@/models/memberDocumentStats';\r\nimport Highcharts from 'highcharts';\r\n\r\n@Component\r\nexport default class PayslipViewsByStatus extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        filter!: string | null;\r\n\r\n    @Prop()\r\n        printing!: boolean;\r\n\r\n    viewByFileType = false;\r\n\r\n    get loading () {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'memberDocumentsStats') || false as boolean;\r\n    }\r\n\r\n    get documentStats (): Array<MemberDocumentStats> {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'memberDocumentsStats') as Array<MemberDocumentStats>;\r\n    }\r\n\r\n    get categories () {\r\n        if (!this.documentStats) return [];\r\n        const dataTypes: Array<string> = [];\r\n\r\n        this.documentStats.forEach((date) => {\r\n            Object.values(date.documentsViewed).forEach((document) => {\r\n                dataTypes.push(...Object.keys(document.splitByStatus));\r\n            });\r\n        });\r\n        return [...new Set(dataTypes)];\r\n    }\r\n\r\n    get documentNames () {\r\n        if (!this.documentStats) return [];\r\n        const dataTypes: Array<string> = [];\r\n\r\n        this.documentStats.forEach((date) => {\r\n            if (date.documentsViewed.length > 0) {\r\n                date.documentsViewed.forEach((document) => {\r\n                    dataTypes.push(document.name);\r\n                });\r\n            }\r\n        });\r\n        return [...new Set(dataTypes)];\r\n    }\r\n\r\n    get documentStatsTransformed () {\r\n        if (!this.documentStats) return null;\r\n        const vals: Array<{ name: string; data: number[]; type: 'column'; color: string }> = [];\r\n\r\n        this.categories.forEach((status) => {\r\n            const dataTypeData: Array<number> = [];\r\n\r\n            if (this.viewByFileType) {\r\n                this.documentNames.forEach((documentName) => {\r\n                    const val = this.documentStats.reduce((a, b) => a + (b.documentsViewed.find((c) => c.name === documentName)?.splitByStatus[status] ?? 0), 0);\r\n                    dataTypeData.push(val);\r\n                });\r\n            } else {\r\n                this.documentStats!.forEach((row) => {\r\n                    dataTypeData.push(Object.values(row.documentsViewed)\r\n                        .reduce((a, b) => a + (b.splitByStatus[status] ?? 0), 0));\r\n                });\r\n            }\r\n            console.log(dataTypeData);\r\n            if (!this.filter || this.filter === status) {\r\n                vals.push({\r\n                    name: status,\r\n                    type: 'column',\r\n                    data: dataTypeData,\r\n                    color: ColourService.getSeriesColour('status', status),\r\n                });\r\n            }\r\n        });\r\n\r\n        return vals;\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                type: 'column',\r\n                backgroundColor: 'transparent',\r\n            },\r\n            xAxis: {\r\n                categories: this.viewByFileType ? this.documentNames : this.documentStats?.map((a) => dayjs(a.fromDate).format('DD MMM YYYY')),\r\n                labels: {\r\n                    formatter: ((that) => (this.viewByFileType ? that.value as string : dayjs(that.value).format('DD MMM'))),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            yAxis: {\r\n                allowDecimals: false,\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            legend: {\r\n                enabled: true,\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            plotOptions: {\r\n                column: {\r\n                    stacking: 'normal',\r\n                },\r\n            },\r\n            series: this.documentStatsTransformed || [],\r\n        };\r\n    }\r\n\r\n    toUppercase (word: string) {\r\n        const wordArr = word.split('').filter((a) => a);\r\n        return wordArr[0].toUpperCase() + wordArr.slice(1).join('');\r\n    }\r\n\r\n    getColour (status: string) {\r\n        return ColourService.getSeriesColour('status', status);\r\n    }\r\n\r\n    formatDocument (document: string) {\r\n        let newUrl = document.startsWith('/') ? document.substring(1) : document;\r\n        newUrl = newUrl.replace(/-/g, ' ');\r\n        newUrl = newUrl.replace(/\\//g, ' - ');\r\n        return this.toUppercase(newUrl).replace('.pdf', '')\r\n            .replace('Sfs ', 'SFS ')\r\n            .replace('Ici ', 'ICI ');\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./document-views-by-status.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./document-views-by-status.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./document-views-by-status.vue?vue&type=template&id=6224d988&scoped=true&\"\nimport script from \"./document-views-by-status.vue?vue&type=script&lang=ts&\"\nexport * from \"./document-views-by-status.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./document-views-by-status.vue?vue&type=style&index=0&id=6224d988&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"6224d988\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile small\"},[_c('h3',{staticClass:\"tile-title blue\"},[_vm._v(\"Errors\")]),_c('div',{staticClass:\"tile-content\"},[_c('div',{staticClass:\"stat\"},[_c('span',{staticClass:\"value\"},[_vm._v(\" 1 \")]),_vm._v(\" error over this period \"),_c('font-awesome-icon',{attrs:{\"icon\":\"times-circle\"}})],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Guid from 'common/util/guid';\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class Errors extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    loading = false;\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./errors.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./errors.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./errors.vue?vue&type=template&id=85ea15fa&scoped=true&\"\nimport script from \"./errors.vue?vue&type=script&lang=ts&\"\nexport * from \"./errors.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./errors.vue?vue&type=style&index=0&id=85ea15fa&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"85ea15fa\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.previousFourFeedback.length),expression:\"previousFourFeedback.length\"}],class:{ tile: !_vm.isGovernanceScreen, flex: _vm.isGovernanceScreen }},[(!_vm.isGovernanceScreen)?_c('h3',{staticClass:\"tile-title blue\"},[_vm._v(\"Member feedback\")]):_vm._e(),_c('div',{class:{ 'tile-content': !_vm.isGovernanceScreen, flex: _vm.isGovernanceScreen }},[(_vm.previousFourFeedback.length === 0)?_c('div',{staticClass:\"notification\"},[_vm._v(\" 0 \"),_c('span',[_vm._v(\"Feedback supplied\")])]):_vm._e(),(_vm.previousFourFeedback.length > 0 && _vm.isCommunication)?_c('div',{staticClass:\"score\"},[_vm._m(0),_c('div',{staticClass:\"dots-quarters\"},_vm._l((_vm.previousFourFeedback),function(yearFeedback){return _c('div',{key:yearFeedback.feedback.quarter + yearFeedback.feedback.year,staticClass:\"dot-info\"},[_c('div',{staticClass:\"dot-quarters blue\"},[_c('span',[_vm._v(\" \"+_vm._s(yearFeedback.feedback.serviceScore)+\" \")])]),_c('span',[_vm._v(\" \"+_vm._s(yearFeedback.feedback.year)+\" \"+_vm._s(yearFeedback.feedback.quarter)+\" \")])])}),0)]):_vm._e(),(_vm.previousFourFeedback.length > 0 && _vm.isService)?_c('div',{staticClass:\"score\"},[_vm._m(1),_c('div',{staticClass:\"dots-quarters padded\"},_vm._l((_vm.previousFourFeedback),function(yearFeedback){return _c('div',{key:'q' + yearFeedback.feedback.quarter + yearFeedback.feedback.year,staticClass:\"dot-info\"},[_c('div',{staticClass:\"dot-quarters\"},[_c('span',[_vm._v(\" \"+_vm._s(yearFeedback.feedback.communicationScore)+\" \")])]),_c('span',[_vm._v(\" \"+_vm._s(yearFeedback.feedback.year)+\" \"+_vm._s(yearFeedback.feedback.quarter)+\" \")])])}),0)]):_vm._e()])])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"score-title\"},[_c('span',{staticClass:\"name\"},[_vm._v(\"Our service over the last year\")]),_c('span',{staticClass:\"quartely-info\"},[_vm._v(\"On a scale of 1 to 10, where 1 is awful and 10 is excellent, how would you rate our service overall?\")])])\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"score-title\"},[_c('span',{staticClass:\"name\"},[_vm._v(\"Our communication over the last year\")]),_c('span',{staticClass:\"quartely-info\"},[_vm._v(\" On a scale of 1 to 10, where 1 is impossible and 10 is effortless, how would you rate our communication overall?\")])])\n}]\n\nexport { render, staticRenderFns }","\r\nimport MemberFeedbackScores from '@/models/memberFeedbackScores';\r\nimport MemberFeedback from 'common/models/memberFeedback';\r\nimport YearlyQuarterlyFeedback from 'common/models/yearlyQuarterlyFeedback';\r\nimport Guid from 'common/util/guid';\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class FeedbackQuarterlyScore extends Vue {\r\n    @Prop() isCommunication!: boolean;\r\n\r\n    @Prop() isService!: boolean;\r\n\r\n    @Prop() isGovernanceScreen!: boolean;\r\n\r\n    feedbacktype: string | null = null;\r\n\r\n    get clientId () {\r\n        return this.$store.getters['clientContext/selectedClient'] as Guid;\r\n    }\r\n\r\n    get feedbackScores (): MemberFeedbackScores {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'feedback');\r\n    }\r\n\r\n    get loading () {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'feedback');\r\n    }\r\n\r\n    get previousFourFeedback (): Array<YearlyQuarterlyFeedback> {\r\n        if (!this.feedbackScores?.memberFeedbackScores) return [];\r\n        const distinctyears = this.findDistinctYears(this.feedbackScores.memberFeedbackScores);\r\n        const feedback: Array<YearlyQuarterlyFeedback> = [];\r\n        distinctyears.forEach((year) => {\r\n            let filtered = this.feedbackScores.memberFeedbackScores.filter((item) => item.year === year);\r\n\r\n            filtered = filtered.sort((a, b) => ((a.quarter < b.quarter) ? 1 : -1));\r\n            const memberFeedbacksFiltered = new Array<MemberFeedback>();\r\n\r\n            filtered.forEach((mf) => {\r\n                if (memberFeedbacksFiltered.length < 4) {\r\n                    memberFeedbacksFiltered.push(mf);\r\n\r\n                    const yearlyFeedback = new YearlyQuarterlyFeedback();\r\n                    yearlyFeedback.year = year;\r\n                    yearlyFeedback.feedback = mf;\r\n\r\n                    feedback.push(yearlyFeedback);\r\n                }\r\n            });\r\n        });\r\n        return feedback;\r\n    }\r\n\r\n    findDistinctYears (memberFeedback: Array<MemberFeedback>) {\r\n        let distinctyears = [...new Map(memberFeedback.map((item) => [item.year, item.year])).values()];\r\n\r\n        distinctyears = distinctyears.sort((a, b) => ((a < b) ? 1 : -1));\r\n\r\n        return distinctyears;\r\n    }\r\n}\r\n\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./feedback-quarterly-score.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./feedback-quarterly-score.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./feedback-quarterly-score.vue?vue&type=template&id=39acc577&scoped=true&\"\nimport script from \"./feedback-quarterly-score.vue?vue&type=script&lang=ts&\"\nexport * from \"./feedback-quarterly-score.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./feedback-quarterly-score.vue?vue&type=style&index=0&id=39acc577&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"39acc577\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\",class:{ 'full-width': _vm.printing }},[_c('h3',{staticClass:\"tile-title blue\"},[_vm._v(\"Member feedback\")]),(!_vm.isFeedbackForClient)?_c('info',{attrs:{\"tooltip\":\"Feedback from members across our pensions administration clients\"}}):_vm._e(),(_vm.isFeedbackForClient)?_c('info',{attrs:{\"tooltip\":\"Feedback from your members\"}}):_vm._e(),(_vm.hasScores)?_c('div',{staticClass:\"tile-content\"},[_c('div',{staticClass:\"feedback\"},[_c('div',{staticClass:\"score\"},[_c('div',{staticClass:\"score-title\"},[_c('span',{staticClass:\"name\"},[_vm._v(\"Our service over the latest quarter\")]),_c('span',{staticClass:\"score-info\"},[_vm._v(\"Rated an average of \"),_c('strong',[_vm._v(_vm._s(_vm.currentServiceScore)+\"/10\")])])]),_c('div',{staticClass:\"dots\"},_vm._l((10),function(i){return _c('div',{key:i,staticClass:\"dot blue\",class:{ active: i === _vm.currentServiceScore }},[_c('span',[_vm._v(_vm._s(i))])])}),0)]),_c('feedback-quarterly-score',{attrs:{\"isGovernanceScreen\":_vm.isGovernanceScreen || _vm.printing,\"isCommunication\":true}})],1),_c('div',{staticClass:\"feedback\"},[_c('div',{staticClass:\"score\"},[_c('div',{staticClass:\"score-title\"},[_c('span',{staticClass:\"name\"},[_vm._v(\"Our communication over the latest quarter\")]),_c('span',{staticClass:\"score-info\"},[_vm._v(\"Rated an average of \"),_c('strong',[_vm._v(_vm._s(_vm.currentCommunicationScore)+\"/10\")]),_vm._v(\" for ease of understanding\")])]),_c('div',{staticClass:\"dots\"},_vm._l((10),function(i){return _c('div',{key:i,staticClass:\"dot\",class:{ active: i === _vm.currentCommunicationScore }},[_c('span',[_vm._v(_vm._s(i))])])}),0)]),_c('feedback-quarterly-score',{attrs:{\"isGovernanceScreen\":_vm.isGovernanceScreen || _vm.printing,\"isService\":true}})],1)]):_c('div',{staticClass:\"tile-content\"},[_c('p',{staticClass:\"not-available\"},[_vm._v(\"Not available\")])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Vue, Prop,\r\n} from 'vue-property-decorator';\r\nimport YearlyQuarterlyFeedback from 'common/models/yearlyQuarterlyFeedback';\r\nimport MemberFeedbackScores from '@/models/memberFeedbackScores';\r\nimport Guid from 'common/util/guid';\r\nimport MemberFeedback from 'common/models/memberFeedback';\r\nimport ClientConfiguration from '@/models/client';\r\nimport FeedbackQuarterlyScore from './feedback-quarterly-score.vue';\r\n\r\n@Component({\r\n    name: 'feedback-quartely-score',\r\n    components: { FeedbackQuarterlyScore },\r\n})\r\nexport default class FeedbackScore extends Vue {\r\n    @Prop()\r\n        printing!: true;\r\n\r\n    get clientId () {\r\n        return this.$store.getters['clientContext/selectedClient'] as Guid;\r\n    }\r\n\r\n    get clientConfiguration () {\r\n        return this.$store.getters['clientContext/selectedClientConfiguration'](this.clientId) as ClientConfiguration ?? {};\r\n    }\r\n\r\n    get isFeedbackForClient () {\r\n        return this.clientConfiguration?.memberFeedbackType === 'Client';\r\n    }\r\n\r\n    get feedbackScores (): MemberFeedbackScores {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'feedback');\r\n    }\r\n\r\n    get loading () {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'feedback');\r\n    }\r\n\r\n    get previousFourFeedback (): Array<YearlyQuarterlyFeedback> {\r\n        if (!this.feedbackScores?.memberFeedbackScores) return [];\r\n        const distinctyears = this.findDistinctYears(this.feedbackScores.memberFeedbackScores);\r\n        const feedback: Array<YearlyQuarterlyFeedback> = [];\r\n        distinctyears.forEach((year) => {\r\n            let filtered = this.feedbackScores.memberFeedbackScores.filter((item) => item.year === year);\r\n\r\n            filtered = filtered.sort((a, b) => ((a.quarter < b.quarter) ? 1 : -1));\r\n            const memberFeedbacksFiltered = new Array<MemberFeedback>();\r\n\r\n            filtered.forEach((mf) => {\r\n                if (memberFeedbacksFiltered.length < 4) {\r\n                    memberFeedbacksFiltered.push(mf);\r\n\r\n                    const yearlyFeedback = new YearlyQuarterlyFeedback();\r\n                    yearlyFeedback.year = year;\r\n                    yearlyFeedback.feedback = mf;\r\n\r\n                    feedback.push(yearlyFeedback);\r\n                }\r\n            });\r\n        });\r\n        return feedback;\r\n    }\r\n\r\n    get hasScores () {\r\n        return this.previousFourFeedback.length;\r\n    }\r\n\r\n    get currentServiceScore () {\r\n        if (!this.previousFourFeedback.length) return 0;\r\n        return this.previousFourFeedback[0].feedback.serviceScore;\r\n    }\r\n\r\n    get currentCommunicationScore () {\r\n        if (!this.previousFourFeedback.length) return 0;\r\n        return this.previousFourFeedback[0].feedback.communicationScore;\r\n    }\r\n\r\n    findDistinctYears (memberFeedback: Array<MemberFeedback>) {\r\n        let distinctyears = [...new Map(memberFeedback.map((item) => [item.year, item.year])).values()];\r\n\r\n        distinctyears = distinctyears.sort((a, b) => ((a < b) ? 1 : -1));\r\n\r\n        return distinctyears;\r\n    }\r\n\r\n    get isGovernanceScreen () {\r\n        return this.$route.name === 'SchemeGovernance';\r\n    }\r\n}\r\n\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./feedback-score.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./feedback-score.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./feedback-score.vue?vue&type=template&id=5450ac56&scoped=true&\"\nimport script from \"./feedback-score.vue?vue&type=script&lang=ts&\"\nexport * from \"./feedback-score.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./feedback-score.vue?vue&type=style&index=0&id=5450ac56&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"5450ac56\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('header',{staticClass:\"header\"},[_c('div',{staticClass:\"left\"},[_vm._m(0),_c('h1',[_c('span',{staticClass:\"client\",style:(_vm.clientFontSize)},[_vm._v(_vm._s(_vm.clientName))])])]),_c('div',{staticClass:\"right\"},[(_vm.showDates)?_c('date-selector'):_vm._e(),(_vm.showPrint && _vm.hasReportingRole)?_c('button',{staticClass:\"print\",attrs:{\"title\":\"Create PDF report\"},on:{\"click\":function($event){_vm.showingPrint = true}}},[_c('font-awesome-icon',{attrs:{\"icon\":\"file-download\"}})],1):_vm._e(),(_vm.loggedIn)?_c('a',{staticClass:\"signout\",attrs:{\"href\":\"javascript:void(0)\",\"title\":\"Sign out\",\"alt\":\"Sign out\"},on:{\"click\":_vm.signOut}},[_c('font-awesome-icon',{attrs:{\"icon\":\"sign-out-alt\"}})],1):_vm._e()],1),(_vm.clientId && _vm.showingPrint && _vm.showPrint)?_c('print-preview',{attrs:{\"clientId\":_vm.clientId},on:{\"close\":function($event){_vm.showingPrint = false}}}):_vm._e()],1)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('a',{attrs:{\"href\":\"/\"}},[_c('img',{staticClass:\"logo\",attrs:{\"src\":require(\"../assets/logo.svg\"),\"alt\":\"LCP Logo\"}})])\n}]\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Watch } from 'vue-property-decorator';\r\nimport Guid from 'common/util/guid';\r\nimport ClientContext from '@/models/clientContext';\r\nimport Client from 'common/models/client';\r\nimport PrintPreview from '@/components/print-preview.vue';\r\nimport ClientConfig from '@/models/client';\r\nimport ClientNameService from '@/services/clientNameService';\r\n\r\n@Component({\r\n    components: { PrintPreview },\r\n})\r\nexport default class HeaderBar extends Vue {\r\n    showingPrint = false;\r\n\r\n    get showDates () {\r\n        return this.$route.meta?.showDates;\r\n    }\r\n\r\n    get showPrint () {\r\n        return this.$route.meta?.showPrint;\r\n    }\r\n\r\n    get clientId () {\r\n        return this.$store.getters['clientContext/selectedClient'] as Guid;\r\n    }\r\n\r\n    get clients () {\r\n        return this.$store.getters['clientContext/clients'] as Array<Client>;\r\n    }\r\n\r\n    get loggedIn () {\r\n        return this.$store.getters['auth/loggedIn'];\r\n    }\r\n\r\n    get clientName () {\r\n        if (this.$route.path.indexOf('/demo') > -1) return 'Demo Scheme';\r\n        if (this.clientId) {\r\n            const name = this.clients.find((a) => a.clientId === this.clientId)?.name;\r\n            if (name === 'Generali Pension Fund') return 'Assicurazioni Generali SpA (UK Branch) Pension Fund';\r\n            if (name === 'Main Fund ICI') return 'ICI Pension Fund';\r\n            if (name === 'BSI') return 'BSI Retirement Benefits Plan';\r\n            return name;\r\n        }\r\n        return '';\r\n    }\r\n\r\n    get clientPath () {\r\n        if (!this.clientName) return '';\r\n        if (this.$route.path.indexOf('/demo') > -1) return 'demo';\r\n        return ClientNameService.clientNameToPath(this.clientName);\r\n    }\r\n\r\n    get clientFontSize () {\r\n        if (this.clientName && this.clientName?.length > 40) return { 'font-size': '1.4rem' };\r\n        return { 'font-size': '1.7rem' };\r\n    }\r\n\r\n    get clientContext () {\r\n        if (this.clientId) {\r\n            return this.$store.getters['clientContext/context'](this.clientId) as ClientContext;\r\n        }\r\n        return null;\r\n    }\r\n\r\n    get clientConfiguration () {\r\n        return this.$store.getters['clientContext/selectedClientConfiguration'](this.clientId) as ClientConfig ?? {};\r\n    }\r\n\r\n    get hasReportingRole () {\r\n        return this.clientConfiguration?.hasReportingRole;\r\n    }\r\n\r\n    signOut () {\r\n        this.$store.dispatch('auth/logout');\r\n    }\r\n\r\n    @Watch('clientId', { immediate: true })\r\n    clientIdChanged () {\r\n        this.$store.getters['clientContext/selectedClientConfiguration'](this.clientId);\r\n\r\n        if (!this.clientContext && this.clientId && this.hasReportingRole) {\r\n            this.$store.dispatch('clientContext/getContext', this.clientId).then(() => {\r\n                this.$store.dispatch('clientStatistics/loadClientStatsForDashboard', {\r\n                    clientId: this.clientId,\r\n                    context: this.clientContext,\r\n                });\r\n            });\r\n        }\r\n\r\n        document.title = `Pulse - ${this.clientName}`;\r\n    }\r\n\r\n    @Watch('hasReportingRole', { immediate: true })\r\n    hasReportingRoleChanged () {\r\n        if (!this.clientContext && this.clientId && this.hasReportingRole) {\r\n            this.$store.dispatch('clientContext/getContext', this.clientId).then(() => {\r\n                this.$store.dispatch('clientStatistics/loadClientStatsForDashboard', {\r\n                    clientId: this.clientId,\r\n                    context: this.clientContext,\r\n                });\r\n            });\r\n        }\r\n\r\n        if (this.hasReportingRole === false) {\r\n            this.$router.push(`/${this.clientPath}/members/`);\r\n        }\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./header-bar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./header-bar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./header-bar.vue?vue&type=template&id=daf7ff60&scoped=true&\"\nimport script from \"./header-bar.vue?vue&type=script&lang=ts&\"\nexport * from \"./header-bar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./header-bar.vue?vue&type=style&index=0&id=daf7ff60&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"daf7ff60\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile income-table\"},[_c('h3',{staticClass:\"tile-title darkblue\"},[_vm._v(\" Income and expenditure \")]),_c('info',{attrs:{\"tooltip\":\"Income and expenditure over the period\"}}),_c('div',{staticClass:\"tile-content\"},[_c('table',[_vm._m(0),_c('tbody',[_c('tr',[_c('td',[_vm._v(_vm._s(_vm.formatDate(_vm.startDate)))]),_vm._m(1),_c('td',{staticClass:\"right\"},[_c('span',{staticClass:\"number\"},[_vm._v(\"£\"+_vm._s(_vm.formatNumber(_vm.startBalance)))])])]),_vm._l((_vm.events),function(event){return _c('tr',{key:event.date + event.name,class:{ filtered: event.name === _vm.currentFilter },on:{\"click\":function($event){return _vm.filterRow(event.name)}}},[_c('td',[_vm._v(_vm._s(_vm.formatDate(event.date)))]),_c('td',[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"dot\",style:({ background: event.color})}),_c('span',[_vm._v(_vm._s(event.name))])])]),_c('td',{staticClass:\"right\"},[_c('span',{staticClass:\"number\",class:{ negative: event.val < 0 }},[_vm._v(\"£\"+_vm._s(_vm.formatNumber(event.val)))])])])}),_c('tr',[_c('td',[_vm._v(_vm._s(_vm.formatDate(_vm.endDate)))]),_vm._m(2),_c('td',{staticClass:\"right\"},[_c('span',{staticClass:\"number\"},[_vm._v(\"£\"+_vm._s(_vm.formatNumber(_vm.endBalance)))])])])],2)]),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('thead',[_c('tr',[_c('th',[_vm._v(\"Date\")]),_c('th',[_vm._v(\"Transaction\")]),_c('th',[_vm._v(\"Amount\")])])])\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('td',[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"dot\"}),_c('div',[_vm._v(\"Start of period\")])])])\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('td',[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"dot\"}),_c('div',[_vm._v(\"End of period\")])])])\n}]\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport Guid from 'common/util/guid';\r\nimport dayjs from 'dayjs';\r\nimport ColourService from '@/services/colourService';\r\nimport { SeriesOptionsType } from 'highcharts';\r\nimport FinancialData from '@/models/financialData';\r\n\r\n@Component\r\nexport default class Transfers extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        filter!: string | null;\r\n\r\n    @Prop()\r\n        printing!: boolean | null;\r\n\r\n    currentFilter: string | null = null;\r\n\r\n    get loading () {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'financials') || false as boolean;\r\n    }\r\n\r\n    get transferStats (): FinancialData {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'financials');\r\n    }\r\n\r\n    get transferStatsTranformed () {\r\n        if (!this.transferStats) return null;\r\n        let groupNames: Array<string> = [];\r\n        this.transferStats.periods.forEach((period) => {\r\n            period.groups.forEach((group) => {\r\n                groupNames.push(group.name);\r\n            });\r\n        });\r\n        groupNames = [...new Set(groupNames)];\r\n        return groupNames.map((groupName) => ({\r\n            name: groupName,\r\n            color: ColourService.getSeriesColour('financial', groupName),\r\n            type: 'column',\r\n            data: this.transferStats.periods.map((a) => a.groups.find((b) => b.name === groupName)?.amount ?? 0),\r\n        })) as Array<SeriesOptionsType>;\r\n    }\r\n\r\n    get startDate () {\r\n        return this.transferStats?.periods[0].fromDate;\r\n    }\r\n\r\n    get endDate () {\r\n        return this.transferStats?.periods[this.transferStats.periods.length - 1].toDate;\r\n    }\r\n\r\n    get startBalance () {\r\n        return this.transferStats?.startBalance;\r\n    }\r\n\r\n    get endBalance () {\r\n        return this.transferStats?.endBalance;\r\n    }\r\n\r\n    get highestVal () {\r\n        return Math.max(...this.events.map((a) => Math.abs(a.val)));\r\n    }\r\n\r\n    get events () {\r\n        const events: Array<{ date: string; name: string; val: number; color: string }> = [];\r\n        if (!this.transferStats) return [];\r\n        this.transferStats.periods.forEach((val) => {\r\n            val.groups.forEach((group) => {\r\n                events.push({\r\n                    name: group.name,\r\n                    val: group.amount,\r\n                    date: val.fromDate,\r\n                    color: ColourService.getSeriesColour('financial', group.name),\r\n                });\r\n            });\r\n        });\r\n        return events;\r\n    }\r\n\r\n    barColour (e: { date: string; name: string; val: number; color: string }, pos: 'first' | 'last') {\r\n        if (e.val < 0 && pos === 'last') return {};\r\n        if (e.val > 0 && pos === 'first') return {};\r\n        return {\r\n            width: `calc(${Math.abs(Math.ceil((e.val / this.highestVal) * 100))}% - 1px)`,\r\n            background: e.color,\r\n\r\n        };\r\n    }\r\n\r\n    formatDate (date: string) {\r\n        if (!date) return '';\r\n        return dayjs(date).format('DD MMM YYYY');\r\n    }\r\n\r\n    formatNumber (val: number) {\r\n        return `${(val ?? 0).toLocaleString('en-GB', {\r\n            style: 'currency',\r\n            currency: 'GBP',\r\n        })}`.replace('£', '');\r\n    }\r\n\r\n    filterRow (page: string) {\r\n        if (this.currentFilter === page) {\r\n            this.currentFilter = null;\r\n            this.$emit('pointSelected', { category: 'income', series: null });\r\n        } else {\r\n            this.currentFilter = page;\r\n            this.$emit('pointSelected', { category: 'income', series: page });\r\n        }\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./income-expenditure-table.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./income-expenditure-table.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./income-expenditure-table.vue?vue&type=template&id=35c9f99b&scoped=true&\"\nimport script from \"./income-expenditure-table.vue?vue&type=script&lang=ts&\"\nexport * from \"./income-expenditure-table.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./income-expenditure-table.vue?vue&type=style&index=0&id=35c9f99b&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"35c9f99b\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title darkblue\"},[_vm._v(\" Income and expenditure \")]),_c('info',{attrs:{\"tooltip\":\"Income and expenditure over the period\"}}),_c('div',{staticClass:\"tile-content\"},[_c('highcharts',{attrs:{\"options\":_vm.chartOptions}}),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport Guid from 'common/util/guid';\r\nimport dayjs from 'dayjs';\r\nimport ColourService from '@/services/colourService';\r\nimport Highcharts, { SeriesOptionsType } from 'highcharts';\r\nimport FinancialData from '@/models/financialData';\r\n\r\n@Component\r\nexport default class Transfers extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        filter!: string | null;\r\n\r\n    @Prop()\r\n        printing!: boolean | null;\r\n\r\n    get loading () {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'financials') || false as boolean;\r\n    }\r\n\r\n    get transferStats (): FinancialData {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'financials');\r\n    }\r\n\r\n    get transferStatsTranformed () {\r\n        if (!this.transferStats) return null;\r\n        let groupNames: Array<string> = [];\r\n        this.transferStats.periods.forEach((period) => {\r\n            period.groups.forEach((group) => {\r\n                groupNames.push(group.name);\r\n            });\r\n        });\r\n        groupNames = [...new Set(groupNames)].filter((a) => !this.filter || this.filter === a);\r\n        return groupNames.map((groupName) => ({\r\n            name: groupName,\r\n            color: ColourService.getSeriesColour('financial', groupName),\r\n            type: 'column',\r\n            data: this.transferStats.periods.map((a) => a.groups.find((b) => b.name === groupName)?.amount ?? 0),\r\n        })) as Array<SeriesOptionsType>;\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                type: 'column',\r\n            },\r\n            xAxis: {\r\n                categories: this.transferStats?.periods.map((a) => dayjs(a.fromDate).format('DD MMM YYYY')),\r\n                labels: {\r\n                    formatter: (that) => dayjs(that.value).format('DD MMM'),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            tooltip: {\r\n                pointFormat: '{series.name}: <b>£{point.y}</b><br/>',\r\n            },\r\n            yAxis: {\r\n                allowDecimals: false,\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n                labels: {\r\n                    formatter () {\r\n                        const label = this.value;\r\n                        return `${(label ?? 0).toLocaleString('en-GB', {\r\n                            style: 'currency',\r\n                            currency: 'GBP',\r\n                        })}`;\r\n                    },\r\n                },\r\n\r\n            },\r\n            legend: {\r\n                enabled: true,\r\n                itemStyle: {\r\n                    fontSize: '0.9rem',\r\n                    fontFamily: 'Montserrat, sans-serif',\r\n                    fontWeight: '400',\r\n                    width: 200,\r\n                },\r\n\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            plotOptions: {\r\n                column: {\r\n                    stacking: 'normal',\r\n                },\r\n            },\r\n            series: this.transferStatsTranformed || [],\r\n        };\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./income-expenditure.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./income-expenditure.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./income-expenditure.vue?vue&type=template&id=50303ad4&scoped=true&\"\nimport script from \"./income-expenditure.vue?vue&type=script&lang=ts&\"\nexport * from \"./income-expenditure.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./income-expenditure.vue?vue&type=style&index=0&id=50303ad4&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"50303ad4\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:(_vm.tooltip),expression:\"tooltip\"}],staticClass:\"info\"},[_c('font-awesome-icon',{attrs:{\"icon\":\"info\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class Info extends Vue {\r\n    @Prop()\r\n        tooltip!: string;\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./info.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./info.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./info.vue?vue&type=template&id=01a47bc2&scoped=true&\"\nimport script from \"./info.vue?vue&type=script&lang=ts&\"\nexport * from \"./info.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./info.vue?vue&type=style&index=0&id=01a47bc2&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"01a47bc2\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title\"},[_vm._v(\" Cases in progress \")]),_c('info',{attrs:{\"tooltip\":\"Number of cases in progress over the period\"}}),_c('div',{staticClass:\"tile-content\"},[_c('highcharts',{attrs:{\"options\":_vm.chartOptions}}),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport dayjs from 'dayjs';\r\nimport JobDateStats from '@/models/jobDateStats';\r\nimport Guid from 'common/util/guid';\r\nimport ColourService from '@/services/colourService';\r\nimport Highcharts, { SeriesOptionsType } from 'highcharts';\r\n\r\n@Component\r\nexport default class InProgressJobs extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        filter!: string | null;\r\n\r\n    get inProgressJobStats (): JobDateStats | null {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'inProgressCases');\r\n    }\r\n\r\n    get loading (): boolean {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'inProgressCases');\r\n    }\r\n\r\n    get averagePerDay () {\r\n        const vals = this.inProgressJobStats?.dataByDate\r\n            .map((a) => Object.keys(a.counts)\r\n                .filter((b) => !this.filter || b === this.filter)\r\n                .map((b) => a.counts[b])\r\n                .reduce((sum, b) => sum + b, 0)) || [];\r\n        if (!vals.length) return 0;\r\n        const total = vals.reduce((sum, a) => sum + a, 0);\r\n        return Math.round(((total / Object.keys(this.inProgressJobStats!.dataByDate).length) * 10)) / 10;\r\n    }\r\n\r\n    get inprogressJobStatsTranformed () {\r\n        if (!this.inProgressJobStats) return null;\r\n        const types = new Set<string>(this.inProgressJobStats.dataByDate.map((a) => Object.keys(a.counts)).flat(1));\r\n        const vals: Array<SeriesOptionsType> = [];\r\n        vals.push({\r\n            name: 'Average',\r\n            color: '#999',\r\n            data: this.inProgressJobStats!.dataByDate.map(() => this.averagePerDay),\r\n            type: 'line',\r\n            dashStyle: 'Dash',\r\n            allowPointSelect: false,\r\n            marker: {\r\n                enabled: false,\r\n            },\r\n            opacity: 0.5,\r\n        });\r\n\r\n        [...types].sort((a, b) => (a > b ? 1 : -1)).forEach((type) => {\r\n            if (this.filter && type !== this.filter) return;\r\n            vals.push({\r\n                name: type,\r\n                type: 'column',\r\n                color: ColourService.getSeriesColour('jobs', type),\r\n                data: this.inProgressJobStats!.dataByDate.map((a) => a.counts[type] || 0),\r\n            });\r\n        });\r\n        return vals;\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                type: 'column',\r\n                backgroundColor: 'transparent',\r\n            },\r\n            xAxis: {\r\n                categories: this.inProgressJobStats?.dataByDate.map((a) => dayjs(a.startDate).format('DD MMM YYYY')),\r\n                labels: {\r\n                    formatter: ((that) => dayjs(that.value).format('DD MMM')),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            yAxis: {\r\n                allowDecimals: false,\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            legend: {\r\n                enabled: true,\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            plotOptions: {\r\n                column: {\r\n                    stacking: 'normal',\r\n                },\r\n            },\r\n            series: this.inprogressJobStatsTranformed || [],\r\n        };\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./inprogress-jobs.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./inprogress-jobs.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./inprogress-jobs.vue?vue&type=template&id=06109a22&scoped=true&\"\nimport script from \"./inprogress-jobs.vue?vue&type=script&lang=ts&\"\nexport * from \"./inprogress-jobs.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./inprogress-jobs.vue?vue&type=style&index=0&id=06109a22&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"06109a22\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title\",on:{\"click\":_vm.navigateTo}},[_vm._v(\" \"+_vm._s(_vm.showCurrent ? 'Current live cases' : 'Live cases')+\" \")]),_c('info',{attrs:{\"tooltip\":\"Current number of live cases\"}}),_c('div',{staticClass:\"tile-content\",class:[{ filtered: _vm.selectedPoint }, `colour-${_vm.selectedColourIndex}`]},[_c('highcharts',{ref:\"chart\",attrs:{\"options\":_vm.chartOptions}}),_c('div',{staticClass:\"total\",class:{ 'has-legend': _vm.showLegend },style:(_vm.centerPos),on:{\"click\":_vm.clearFilter}},[_vm._v(\" \"+_vm._s(_vm.totalJobs)+\" \"),_c('span',{staticClass:\"filter\"},[_vm._v(_vm._s(_vm.selectedPoint))]),_c('span',[_vm._v(\"Live cases\")]),(_vm.selectedPoint)?_c('div',{staticClass:\"return\",on:{\"click\":_vm.clearFilter}},[_c('font-awesome-icon',{attrs:{\"icon\":\"times\"}})],1):_vm._e()]),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport dayjs from 'dayjs';\r\nimport JobDateStats from '@/models/jobDateStats';\r\nimport Guid from 'common/util/guid';\r\nimport Highcharts, { Point } from 'highcharts';\r\nimport ColourService from '@/services/colourService';\r\nimport PieLegend from '@/services/pieLegendService';\r\n\r\n@Component\r\nexport default class InProgressJobs extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        showLegend!: boolean;\r\n\r\n    @Prop()\r\n        showCurrent!: boolean;\r\n\r\n    selectedPoint: string | null = null;\r\n\r\n    selectedColourIndex: number | null = null;\r\n\r\n    chartCenterX = 0;\r\n\r\n    chartCenterY = 0;\r\n\r\n    get inProgressJobStats (): JobDateStats | null {\r\n        if (this.showCurrent) {\r\n            const cases = this.$store.getters['clientStatistics/stats'](this.clientId, 'dashboardInProgressCases');\r\n            if (cases) return { dataByDate: [cases] };\r\n            return null;\r\n        }\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'inProgressCases');\r\n    }\r\n\r\n    get historicInProgressJobStats (): JobDateStats | null {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'inProgressCases');\r\n    }\r\n\r\n    get allKeys () {\r\n        const keys: Set<string> = new Set();\r\n        if (!this.historicInProgressJobStats) return [];\r\n        this.historicInProgressJobStats.dataByDate.forEach((date) => {\r\n            Object.keys(date.counts).forEach((key) => {\r\n                keys.add(key);\r\n            });\r\n        });\r\n        return [...keys];\r\n    }\r\n\r\n    get loading (): boolean {\r\n        if (this.showCurrent) {\r\n            return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'dashboardInProgressCases');\r\n        }\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'inProgressCases');\r\n    }\r\n\r\n    get totalJobs () {\r\n        if (!this.inprogressJobStatsTranformed) return 0;\r\n        return this.inprogressJobStatsTranformed.filter((a) => a.name === this.selectedPoint || !this.selectedPoint).map((a) => a.y).reduce((a, b) => b + a, 0);\r\n    }\r\n\r\n    get inprogressJobStatsTranformed () {\r\n        if (!this.inProgressJobStats) return null;\r\n        const last = this.inProgressJobStats.dataByDate[this.inProgressJobStats.dataByDate.length - 1];\r\n        return (this.allKeys?.length ? this.allKeys : Object.keys(last.counts)).sort((a, b) => (a > b ? 1 : -1))\r\n            .map((seriesName) => ({\r\n                name: seriesName,\r\n                y: last.counts[seriesName] ?? 0,\r\n                color: ColourService.getSeriesColour('jobs', seriesName),\r\n            }));\r\n    }\r\n\r\n    pointClicked (point: Point) {\r\n        this.selectedColourIndex = point.colorIndex;\r\n        this.selectedPoint = point.name === this.selectedPoint ? null : point.name;\r\n        this.$emit('pointSelected', { category: 'liveJobs', series: this.selectedPoint });\r\n    }\r\n\r\n    navigateTo () {\r\n        this.$router.push({\r\n            name: 'MemberActivity',\r\n            params: { row: 'live-cases' },\r\n        });\r\n    }\r\n\r\n    clearFilter () {\r\n        (this.$refs.chart as unknown as { chart: Highcharts.Chart }).chart.series[0].points.forEach((a) => a.select(false));\r\n        this.selectedPoint = null;\r\n        this.$emit('pointSelected', { category: 'liveJobs', series: this.selectedPoint });\r\n    }\r\n\r\n    get centerPos () {\r\n        return {\r\n            top: `calc(${this.chartCenterY}px + 1.5rem) !important`,\r\n            left: `calc(${this.chartCenterX}px + 1.5rem) !important`,\r\n        };\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n        // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n        const self = this;\r\n        return {\r\n            chart: {\r\n                backgroundColor: 'transparent',\r\n                type: 'pie',\r\n                events: {\r\n                    load () {\r\n                        const series = this.series[0] as unknown as { center: Array<number> };\r\n                        const x = this.plotLeft + series.center[0];\r\n                        const y = this.plotTop + series.center[1];\r\n                        self.chartCenterX = x;\r\n                        self.chartCenterY = y;\r\n                    },\r\n                    redraw () {\r\n                        const series = this.series[0] as unknown as { center: Array<number> };\r\n                        const x = this.plotLeft + series.center[0];\r\n                        const y = this.plotTop + series.center[1];\r\n                        self.chartCenterX = x;\r\n                        self.chartCenterY = y;\r\n                    },\r\n                },\r\n            },\r\n            title: {\r\n                text: '',\r\n            },\r\n            xAxis: {\r\n                labels: {\r\n                    formatter: ((that) => dayjs(that.value).format('DD MMM')),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            yAxis: {\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            legend: this.showLegend ? PieLegend.get().legend : {\r\n                enabled: false,\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            plotOptions: {\r\n                pie: {\r\n                    dataLabels: {\r\n                        enabled: false,\r\n                    },\r\n                    allowPointSelect: true,\r\n                    showInLegend: true,\r\n                    borderWidth: 0,\r\n                    point: {\r\n                        events: {\r\n                            legendItemClick: (event) => {\r\n                                event.preventDefault();\r\n                                event.target.select(!event.target.selected);\r\n                                this.pointClicked(event.target);\r\n                            },\r\n                        },\r\n                    },\r\n                },\r\n            },\r\n            series: [{\r\n                type: 'pie',\r\n                name: 'Live cases',\r\n                innerSize: '70%',\r\n                slicedOffset: 5,\r\n                data: this.inprogressJobStatsTranformed!,\r\n                events: {\r\n                    click: (event) => { this.pointClicked(event.point); },\r\n                },\r\n            }],\r\n        };\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./inprogress-pie.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./inprogress-pie.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./inprogress-pie.vue?vue&type=template&id=6f2d4062&scoped=true&\"\nimport script from \"./inprogress-pie.vue?vue&type=script&lang=ts&\"\nexport * from \"./inprogress-pie.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./inprogress-pie.vue?vue&type=style&index=0&id=6f2d4062&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"6f2d4062\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title aqua\"},[_vm._v(\" Member correspondence \")]),_c('info',{attrs:{\"tooltip\":\"Total member correspondence over the period\"}}),_c('div',{staticClass:\"tile-content member-correspondence\"},[_c('div',{staticClass:\"card\"},[_c('font-awesome-icon',{staticClass:\"icon\",attrs:{\"icon\":\"file-plus\"}}),_c('div',{staticClass:\"stat\"},[_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.personalCorrespondenceCreatedTotal))]),_c('p',[_vm._v(\"Personal correspondence added\")])])],1),_c('div',{staticClass:\"card\"},[_c('font-awesome-icon',{staticClass:\"icon\",attrs:{\"icon\":\"clipboard-list-check\"}}),_c('div',{staticClass:\"stat\"},[_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.formsSubmittedTotal))]),_c('p',[_vm._v(\"Forms submitted\")])])],1),_c('div',{staticClass:\"card\"},[_c('font-awesome-icon',{staticClass:\"icon\",attrs:{\"icon\":\"question\"}}),_c('div',{staticClass:\"stat\"},[_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.webQueriesTotal))]),_c('p',[_vm._v(\"Web queries raised\")])])],1),_c('div',{staticClass:\"card\"},[_c('font-awesome-icon',{staticClass:\"icon\",attrs:{\"icon\":\"file-alt\"}}),_c('div',{staticClass:\"stat\"},[_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.documentsViewedTotal))]),_c('p',[_vm._v(\"General documents viewed\")])])],1),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport Guid from 'common/util/guid';\r\nimport MemberDocumentStats from '@/models/memberDocumentStats';\r\n\r\n@Component\r\nexport default class MemberCorrespondenceViews extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        printing!: boolean;\r\n\r\n    get documentStats (): Array<MemberDocumentStats> {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'memberDocumentsStats');\r\n    }\r\n\r\n    get loading (): boolean {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'memberDocumentsStats');\r\n    }\r\n\r\n    get personalCorrespondenceCreatedTotal () {\r\n        if (!this.documentStats) return 0;\r\n        return this.documentStats.reduce((a, b) => a + b.correspondenceCreatedTotal, 0);\r\n    }\r\n\r\n    get webQueriesTotal () {\r\n        if (!this.documentStats) return 0;\r\n        return this.documentStats.reduce((a, b) => a + b.webQueriesSubmittedTotal, 0);\r\n    }\r\n\r\n    get formsSubmittedTotal () {\r\n        if (!this.documentStats) return 0;\r\n        return this.documentStats.reduce((a, b) => a + Object.values(b.webFormsSubmitted ?? {})?.reduce((c, d) => c + Object.values(d.splitByStatus).reduce((e, f) => e + f), 0), 0);\r\n    }\r\n\r\n    get documentsViewedTotal () {\r\n        if (!this.documentStats) return 0;\r\n        return this.documentStats.reduce((a, b) => a + Object.values(b.documentsViewed ?? {})?.reduce((c, d) => c + Object.values(d.splitByStatus).reduce((e, f) => e + f), 0), 0);\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./member-correspondence-views-totals.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./member-correspondence-views-totals.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./member-correspondence-views-totals.vue?vue&type=template&id=8f5f91a2&scoped=true&\"\nimport script from \"./member-correspondence-views-totals.vue?vue&type=script&lang=ts&\"\nexport * from \"./member-correspondence-views-totals.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./member-correspondence-views-totals.vue?vue&type=style&index=0&id=8f5f91a2&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"8f5f91a2\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title aqua\"},[_vm._v(\" Member correspondence \")]),_c('info',{attrs:{\"tooltip\":\"Member correspondence over the period\"}}),_c('div',{staticClass:\"tile-content\"},[_c('highcharts',{attrs:{\"options\":_vm.chartOptions}}),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport Guid from 'common/util/guid';\r\nimport ColourService from '@/services/colourService';\r\nimport dayjs from 'dayjs';\r\nimport MemberDocumentStats from '@/models/memberDocumentStats';\r\nimport Highcharts from 'highcharts';\r\n\r\n@Component\r\nexport default class MemberCorrespondenceViews extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        printing!: boolean;\r\n\r\n    get documentStats (): Array<MemberDocumentStats> {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'memberDocumentsStats');\r\n    }\r\n\r\n    get loading (): boolean {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'memberDocumentsStats');\r\n    }\r\n\r\n    get documentStatsTransformed () {\r\n        if (!this.documentStats?.length) return [];\r\n        const vals: Array<{ type: 'line'; name: string; data: Array<number>; color: string }> = [];\r\n\r\n        vals.push({\r\n            name: 'Personal correspondence added',\r\n            type: 'line',\r\n            data: this.documentStats.map((a) => a.correspondenceCreatedTotal),\r\n            color: ColourService.getSeriesColour('correspondence', 'personal'),\r\n        });\r\n\r\n        vals.push({\r\n            name: 'Forms submitted',\r\n            type: 'line',\r\n            data: this.documentStats.map((a) => Object.values(a.webFormsSubmitted ?? {})\r\n                .reduce((b, c) => b + Object.values(c.splitByStatus)\r\n                    .reduce((d, e) => d + e, 0), 0)),\r\n            color: ColourService.getSeriesColour('correspondence', 'forms'),\r\n        });\r\n\r\n        vals.push({\r\n            name: 'Web queries',\r\n            type: 'line',\r\n            data: this.documentStats.map((a) => a.webQueriesSubmittedTotal),\r\n            color: ColourService.getSeriesColour('correspondence', 'webQueries'),\r\n        });\r\n\r\n        vals.push({\r\n            name: 'Documents viewed',\r\n            type: 'line',\r\n            data: this.documentStats.map((a) => Object.values(a.documentsViewed ?? {})\r\n                .reduce((b, c) => b + Object.values(c.splitByStatus)\r\n                    .reduce((d, e) => d + e, 0), 0)),\r\n            color: ColourService.getSeriesColour('correspondence', 'documents'),\r\n        });\r\n\r\n        return vals;\r\n    }\r\n\r\n    get colours () {\r\n        return [ColourService.colours[0]];\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                type: 'line',\r\n            },\r\n            xAxis: {\r\n                categories: this.documentStats?.map((a) => dayjs(a.fromDate).format('DD MMM YYYY')),\r\n                labels: {\r\n                    formatter: ((that) => dayjs(that.value).format('DD MMM')),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            yAxis: {\r\n                allowDecimals: false,\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            legend: {\r\n                enabled: true,\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            colors: this.colours,\r\n            plotOptions: {\r\n                line: {\r\n                    marker: {\r\n                        enabled: false,\r\n                    },\r\n                    lineWidth: 3,\r\n                },\r\n                series: {\r\n                    animation: !this.printing,\r\n                },\r\n            },\r\n            series: this.documentStatsTransformed || [],\r\n        };\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./member-correspondence-views.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./member-correspondence-views.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./member-correspondence-views.vue?vue&type=template&id=1365387f&scoped=true&\"\nimport script from \"./member-correspondence-views.vue?vue&type=script&lang=ts&\"\nexport * from \"./member-correspondence-views.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./member-correspondence-views.vue?vue&type=style&index=0&id=1365387f&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"1365387f\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title\"},[_vm._v(\" Member interactions \")]),_c('info',{attrs:{\"tooltip\":\"Summary of member interactions in the period\"}}),_c('div',{staticClass:\"tile-content\",class:[{ filtered: _vm.selectedPoint }, `colour-${_vm.selectedColourIndex}`]},[_c('highcharts',{ref:\"chart\",attrs:{\"options\":_vm.chartOptions}}),_c('div',{staticClass:\"total\",class:{ 'has-legend': _vm.showLegend },style:(_vm.centerPos),on:{\"click\":_vm.clearFilter}},[_vm._v(\" \"+_vm._s(_vm.formatNumber(_vm.totalJobs))+\" \"),_c('span',{staticClass:\"filter\"},[_vm._v(_vm._s(_vm.selectedPoint))]),_c('span',[_vm._v(\"Interactions\")]),(_vm.selectedPoint)?_c('div',{staticClass:\"return\",on:{\"click\":_vm.clearFilter}},[_c('font-awesome-icon',{attrs:{\"icon\":\"times\"}})],1):_vm._e()]),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport dayjs from 'dayjs';\r\nimport Guid from 'common/util/guid';\r\nimport Highcharts, { Point } from 'highcharts';\r\nimport ColourService from '@/services/colourService';\r\nimport MemberInteractions from '@/models/memberInteractions';\r\nimport PieLegend from '@/services/pieLegendService';\r\nimport Client from 'common/models/client';\r\nimport ClientConfiguration from '@/models/client';\r\n\r\n@Component\r\nexport default class InProgressJobs extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        showLegend!: boolean;\r\n\r\n    selectedPoint: string | null = null;\r\n\r\n    selectedColourIndex: number | null = null;\r\n\r\n    chartCenterX = 0;\r\n\r\n    chartCenterY = 0;\r\n\r\n    get memberInteractions (): MemberInteractions | null {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'memberInteractions');\r\n    }\r\n\r\n    get loading (): boolean {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'memberInteractions');\r\n    }\r\n\r\n    get totalJobs () {\r\n        if (!this.inprogressJobStatsTranformed) return 0;\r\n        return this.inprogressJobStatsTranformed.filter((a) => a.name === this.selectedPoint || !this.selectedPoint).map((a) => a.y).reduce((a, b) => b + a, 0);\r\n    }\r\n\r\n    get centerPos () {\r\n        return {\r\n            top: `calc(${this.chartCenterY}px + 1.5rem) !important`,\r\n            left: `calc(${this.chartCenterX}px + 1.5rem) !important`,\r\n        };\r\n    }\r\n\r\n    get inprogressJobStatsTranformed () {\r\n        if (!this.memberInteractions) return null;\r\n        const counts: { [key: string ]: number } = {\r\n            'Phone calls': 0,\r\n            'Web requests': 0,\r\n            Emails: 0,\r\n        };\r\n        this.memberInteractions.dataByDate.forEach(((a) => {\r\n            counts['Phone calls'] += a.phoneCalls;\r\n            counts['Web requests'] += a.webQueries;\r\n            counts.Emails += a.emails;\r\n        }));\r\n        if (!this.hasMemberWeb) {\r\n            delete counts['Web requests'];\r\n        }\r\n        return Object.keys(counts)\r\n            .map((seriesName) => ({\r\n                name: seriesName,\r\n                y: counts[seriesName],\r\n                color: ColourService.getSeriesColour('interactions', seriesName),\r\n            }));\r\n    }\r\n\r\n    get client () {\r\n        return (this.$store.getters['clientContext/clients'] as Array<Client>).find((a) => a.clientId === this.clientId);\r\n    }\r\n\r\n    get clientConfiguration () {\r\n        return this.$store.getters['clientContext/selectedClientConfiguration'](this.clientId) as ClientConfiguration ?? {};\r\n    }\r\n\r\n    get hasMemberWeb () {\r\n        return this.clientConfiguration?.hasMemberWeb;\r\n    }\r\n\r\n    pointClicked (point: Point) {\r\n        this.selectedColourIndex = point.colorIndex;\r\n        this.selectedPoint = point.name === this.selectedPoint ? null : point.name;\r\n        this.$emit('pointSelected', { category: 'interactions', series: this.selectedPoint });\r\n    }\r\n\r\n    formatNumber (number?: string | number) {\r\n        return Math.round(Number(number ?? 0)).toLocaleString('en');\r\n    }\r\n\r\n    clearFilter () {\r\n        (this.$refs.chart as unknown as { chart: Highcharts.Chart }).chart.series[0].points.forEach((a) => a.select(false));\r\n        this.selectedPoint = null;\r\n        this.$emit('pointSelected', { category: 'interactions', series: this.selectedPoint });\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n        // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n        const self = this;\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                type: 'pie',\r\n                events: {\r\n                    load () {\r\n                        const series = this.series[0] as unknown as { center: Array<number> };\r\n                        const x = this.plotLeft + series.center[0];\r\n                        const y = this.plotTop + series.center[1];\r\n                        self.chartCenterX = x;\r\n                        self.chartCenterY = y;\r\n                    },\r\n                    redraw () {\r\n                        const series = this.series[0] as unknown as { center: Array<number> };\r\n                        const x = this.plotLeft + series.center[0];\r\n                        const y = this.plotTop + series.center[1];\r\n                        self.chartCenterX = x;\r\n                        self.chartCenterY = y;\r\n                    },\r\n                },\r\n            },\r\n            xAxis: {\r\n                labels: {\r\n                    formatter: ((that) => dayjs(that.value).format('DD MMM')),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            yAxis: {\r\n                allowDecimals: false,\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            legend: this.showLegend ? PieLegend.get().legend : {\r\n                enabled: false,\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            plotOptions: {\r\n                pie: {\r\n                    dataLabels: {\r\n                        enabled: true,\r\n                        useHTML: true,\r\n                        distance: -5,\r\n                        style: {\r\n                            fontSize: '0px',\r\n                            width: 0,\r\n                            height: 0,\r\n                        },\r\n                        formatter () {\r\n                            switch (this.point.name) {\r\n                                case 'Phone calls': return '<div class=\"label\"><img src=\"/phone.png\" /></div>';\r\n                                case 'Web requests': return '<div class=\"label\"><img src=\"/globe.png\" /></div>';\r\n                                case 'Emails': return '<div class=\"label\"><img src=\"/envelope.png\" /></div>';\r\n                                default: return '<div />';\r\n                            }\r\n                        },\r\n                    },\r\n                    allowPointSelect: true,\r\n                    showInLegend: true,\r\n                    borderWidth: 0,\r\n                    point: {\r\n                        events: {\r\n                            legendItemClick: (event) => {\r\n                                event.preventDefault();\r\n                                event.target.select(!event.target.selected);\r\n                                this.pointClicked(event.target);\r\n                            },\r\n                        },\r\n                    },\r\n                },\r\n            },\r\n            series: [{\r\n                type: 'pie',\r\n                name: 'Interactions',\r\n                innerSize: '70%',\r\n                data: this.inprogressJobStatsTranformed!,\r\n                events: {\r\n                    click: (event) => { this.pointClicked(event.point); },\r\n                },\r\n            }],\r\n        };\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./member-interactions-pie.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./member-interactions-pie.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./member-interactions-pie.vue?vue&type=template&id=6e52fe9b&scoped=true&\"\nimport script from \"./member-interactions-pie.vue?vue&type=script&lang=ts&\"\nexport * from \"./member-interactions-pie.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./member-interactions-pie.vue?vue&type=style&index=0&id=6e52fe9b&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"6e52fe9b\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title\"},[_vm._v(\" Member interactions \")]),_c('info',{attrs:{\"tooltip\":\"Member interactions over the period\"}}),_c('div',{staticClass:\"tile-content\"},[_c('highcharts',{attrs:{\"options\":_vm.chartOptions}}),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport Guid from 'common/util/guid';\r\nimport dayjs from 'dayjs';\r\nimport MemberInteractions from '@/models/memberInteractions';\r\nimport ColourService from '@/services/colourService';\r\nimport Highcharts from 'highcharts';\r\n\r\n@Component\r\nexport default class MemberInteractionsComponent extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        filter!: string | null;\r\n\r\n    get memberInteractions (): MemberInteractions | null {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'memberInteractions');\r\n    }\r\n\r\n    get loading (): boolean {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'memberInteractions');\r\n    }\r\n\r\n    get colours () {\r\n        return ColourService.colours;\r\n    }\r\n\r\n    get memberInteractionsTransformed () {\r\n        if (!this.memberInteractions) return null;\r\n        const vals: Array<{ name: string; data: number[]; type: 'column'; color: string }> = [];\r\n        if (!this.filter || this.filter === 'Phone calls') {\r\n            vals.push({\r\n                name: 'Phone calls',\r\n                type: 'column',\r\n                data: this.memberInteractions.dataByDate.map((a) => a.phoneCalls),\r\n                color: ColourService.getSeriesColour('interactions', 'Phone calls'),\r\n            });\r\n        }\r\n        if (!this.filter || this.filter === 'Web requests') {\r\n            vals.push({\r\n                name: 'Web requests',\r\n                type: 'column',\r\n                data: this.memberInteractions.dataByDate.map((a) => a.webQueries),\r\n                color: ColourService.getSeriesColour('interactions', 'Web requests'),\r\n            });\r\n        }\r\n        if (!this.filter || this.filter === 'Emails') {\r\n            vals.push({\r\n                name: 'Emails',\r\n                type: 'column',\r\n                data: this.memberInteractions.dataByDate.map((a) => a.emails),\r\n                color: ColourService.getSeriesColour('interactions', 'Emails'),\r\n            });\r\n        }\r\n        return vals;\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                type: 'column',\r\n            },\r\n            xAxis: {\r\n                categories: this.memberInteractions?.dataByDate.map((a) => dayjs(a.startDate).format('DD MMM YYYY')),\r\n                labels: {\r\n                    formatter: ((that) => dayjs(that.value).format('DD MMM')),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            yAxis: {\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            legend: {\r\n                enabled: true,\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            colors: this.colours,\r\n            plotOptions: {\r\n                column: {\r\n                    stacking: 'normal',\r\n                },\r\n            },\r\n            series: this.memberInteractionsTransformed || [],\r\n        };\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./member-interactions.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./member-interactions.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./member-interactions.vue?vue&type=template&id=78099398&scoped=true&\"\nimport script from \"./member-interactions.vue?vue&type=script&lang=ts&\"\nexport * from \"./member-interactions.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./member-interactions.vue?vue&type=style&index=0&id=78099398&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"78099398\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title aqua\"},[_vm._v(\" Member logins by age \")]),_c('info',{attrs:{\"tooltip\":\"Total number of web logins grouped by age band\"}}),_c('div',{staticClass:\"tile-content\",class:[{ filtered: _vm.selectedPoint }, `colour-${_vm.selectedColourIndex}`]},[_c('highcharts',{ref:\"chart\",attrs:{\"options\":_vm.chartOptions}}),_c('div',{staticClass:\"total\",class:{ 'has-legend': _vm.showLegend },style:(_vm.centerPos),on:{\"click\":_vm.clearFilter}},[_vm._v(\" \"+_vm._s(_vm.formatNumber(_vm.totalLogins))+\" \"),_c('span',{staticClass:\"filter\"},[_vm._v(_vm._s(_vm.selectedPoint))]),_c('span',[_vm._v(\"Logins\")]),(_vm.selectedPoint)?_c('div',{staticClass:\"return\",on:{\"click\":_vm.clearFilter}},[_c('font-awesome-icon',{attrs:{\"icon\":\"times\"}})],1):_vm._e()]),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport dayjs from 'dayjs';\r\nimport Guid from 'common/util/guid';\r\nimport Highcharts, { Point } from 'highcharts';\r\nimport ColourService from '@/services/colourService';\r\nimport ToggleSwitch from 'common/components/toggle-switch.vue';\r\nimport PieLegend from '@/services/pieLegendService';\r\nimport MemberLogins from '@/models/memberLogins';\r\n\r\n@Component({ components: { ToggleSwitch } })\r\nexport default class MemberLoginsPie extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        showLegend!: boolean;\r\n\r\n    selectedPoint: string | null = null;\r\n\r\n    selectedColourIndex: number | null = null;\r\n\r\n    chartCenterX = 0;\r\n\r\n    chartCenterY = 0;\r\n\r\n    ageBands = [\r\n        { min: 101, max: 200, label: '> 100' },\r\n        { min: 91, max: 100 },\r\n        { min: 81, max: 90 },\r\n        { min: 71, max: 80 },\r\n        { min: 61, max: 70 },\r\n        { min: 51, max: 60 },\r\n        { min: 41, max: 50 },\r\n        { min: 31, max: 40 },\r\n        { min: 19, max: 30 },\r\n        { min: 0, max: 18, label: '< 19' },\r\n    ];\r\n\r\n    get loading () {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'memberLogins') || false as boolean;\r\n    }\r\n\r\n    get memberLogins (): Array<MemberLogins> | null {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'memberLogins');\r\n    }\r\n\r\n    get centerPos () {\r\n        return {\r\n            top: `calc(${this.chartCenterY}px + 1.5rem) !important`,\r\n            left: `calc(${this.chartCenterX}px + 1.5rem) !important`,\r\n        };\r\n    }\r\n\r\n    get totalLogins () {\r\n        return this.memberLoginsTranformed?.filter((a) => a.name === this.selectedPoint || !this.selectedPoint)?.reduce((a, b) => a + (b.y ?? 0), 0);\r\n    }\r\n\r\n    get memberLoginsTranformed () {\r\n        if (!this.memberLogins) return null;\r\n        const totals: Record<string, number> = {};\r\n        this.memberLogins.forEach((date) => {\r\n            this.ageBands.forEach((ageBand) => {\r\n                const key = ageBand.label ?? `${ageBand.min} - ${ageBand.max}`;\r\n                if (!totals[key]) totals[key] = 0;\r\n                Object.keys(date.loginsByAge).forEach((age: string) => {\r\n                    if (Number(age) >= ageBand.min && Number(age) <= ageBand.max) {\r\n                        totals[key] += Number(date.loginsByAge[age]);\r\n                    }\r\n                });\r\n            });\r\n        });\r\n        return Object.keys(totals)\r\n            .filter((a) => totals[a])\r\n            .map((seriesName) => ({\r\n                name: seriesName,\r\n                y: totals[seriesName],\r\n                color: ColourService.getSeriesColour('age', seriesName),\r\n            }));\r\n    }\r\n\r\n    formatNumber (number?: string | number) {\r\n        return Math.round(Number(number ?? 0)).toLocaleString('en');\r\n    }\r\n\r\n    pointClicked (point: Point) {\r\n        this.selectedColourIndex = point.colorIndex;\r\n        this.selectedPoint = point.name === this.selectedPoint ? null : point.name;\r\n        this.$emit('pointSelected', { category: 'memberLoginsByAge', series: this.selectedPoint });\r\n    }\r\n\r\n    clearFilter () {\r\n        (this.$refs.chart as unknown as { chart: Highcharts.Chart }).chart.series[0].points.forEach((a) => a.select(false));\r\n        this.selectedPoint = null;\r\n        this.$emit('pointSelected', { category: 'memberLoginsByAge', series: this.selectedPoint });\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n        // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n        const self = this;\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                type: 'pie',\r\n                backgroundColor: 'transparent',\r\n                events: {\r\n                    load () {\r\n                        const series = this.series[0] as unknown as { center: Array<number> };\r\n                        const x = this.plotLeft + series.center[0];\r\n                        const y = this.plotTop + series.center[1];\r\n                        self.chartCenterX = x;\r\n                        self.chartCenterY = y;\r\n                    },\r\n                    redraw () {\r\n                        const series = this.series[0] as unknown as { center: Array<number> };\r\n                        const x = this.plotLeft + series.center[0];\r\n                        const y = this.plotTop + series.center[1];\r\n                        self.chartCenterX = x;\r\n                        self.chartCenterY = y;\r\n                    },\r\n                },\r\n            },\r\n            xAxis: {\r\n                labels: {\r\n                    formatter: ((that) => dayjs(that.value).format('DD MMM')),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            yAxis: {\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            legend: this.showLegend ? PieLegend.get().legend : {\r\n                enabled: false,\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            plotOptions: {\r\n                pie: {\r\n                    dataLabels: {\r\n                        enabled: false,\r\n                    },\r\n                    allowPointSelect: true,\r\n                    showInLegend: true,\r\n                    borderWidth: 0,\r\n                    point: {\r\n                        events: {\r\n                            legendItemClick: (event) => {\r\n                                event.preventDefault();\r\n                                event.target.select(!event.target.selected);\r\n                                this.pointClicked(event.target);\r\n                            },\r\n                        },\r\n                    },\r\n                },\r\n            },\r\n            series: [{\r\n                type: 'pie',\r\n                name: 'Logins',\r\n                innerSize: '70%',\r\n                slicedOffset: 5,\r\n                data: this.memberLoginsTranformed!,\r\n                events: {\r\n                    click: (event) => { this.pointClicked(event.point); },\r\n                },\r\n            }],\r\n        };\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./member-logins-by-age-pie.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./member-logins-by-age-pie.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./member-logins-by-age-pie.vue?vue&type=template&id=54d8dd45&scoped=true&\"\nimport script from \"./member-logins-by-age-pie.vue?vue&type=script&lang=ts&\"\nexport * from \"./member-logins-by-age-pie.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./member-logins-by-age-pie.vue?vue&type=style&index=0&id=54d8dd45&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"54d8dd45\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title aqua\"},[_vm._v(\" Member logins by age \")]),_c('info',{attrs:{\"tooltip\":\"Total number of web logins grouped by age band\"}}),_c('div',{staticClass:\"tile-content\"},[_c('highcharts',{attrs:{\"options\":_vm.chartOptions}}),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport Guid from 'common/util/guid';\r\nimport dayjs from 'dayjs';\r\nimport ColourService from '@/services/colourService';\r\nimport MemberLogins from '@/models/memberLogins';\r\nimport Highcharts from 'highcharts';\r\n\r\n@Component\r\nexport default class MemberLoginsByAgeChart extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        filter!: string | null;\r\n\r\n    @Prop()\r\n        showLegend!: boolean | null;\r\n\r\n    ageBands = [\r\n        { min: 101, max: 200, label: '> 100' },\r\n        { min: 91, max: 100 },\r\n        { min: 81, max: 90 },\r\n        { min: 71, max: 80 },\r\n        { min: 61, max: 70 },\r\n        { min: 51, max: 60 },\r\n        { min: 41, max: 50 },\r\n        { min: 31, max: 40 },\r\n        { min: 19, max: 30 },\r\n        { min: 0, max: 18, label: '< 19' },\r\n    ];\r\n\r\n    get loading () {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'memberLogins') || false as boolean;\r\n    }\r\n\r\n    get memberLogins (): Array<MemberLogins> {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'memberLogins');\r\n    }\r\n\r\n    get memberLoginsTranformed () {\r\n        if (!this.memberLogins) return null;\r\n        const vals: Array<{ name: string; data: number[]; type: 'column'; color: string }> = [];\r\n        this.ageBands.forEach((ageBand) => {\r\n            let ageTotal = 0;\r\n            const ageBandData: Array<number> = [];\r\n            this.memberLogins!.forEach((row) => {\r\n                let total = 0;\r\n                Object.keys(row.loginsByAge).forEach((age) => {\r\n                    if (Number(age) >= ageBand.min && Number(age) <= ageBand.max) {\r\n                        total += row.loginsByAge[age] ?? 0;\r\n                    }\r\n                });\r\n                ageTotal += total;\r\n                ageBandData.push(total);\r\n            });\r\n            if (ageTotal === 0) return;\r\n            if (!this.filter || this.filter === (ageBand.label ?? `${ageBand.min} - ${ageBand.max}`)) {\r\n                vals.push({\r\n                    name: ageBand.label ?? `${ageBand.min} - ${ageBand.max}`,\r\n                    type: 'column',\r\n                    data: ageBandData,\r\n                    color: ColourService.getSeriesColour('age', ageBand.label ?? `${ageBand.min} - ${ageBand.max}`),\r\n                });\r\n            }\r\n        });\r\n\r\n        return vals;\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                type: 'column',\r\n                backgroundColor: 'transparent',\r\n            },\r\n            xAxis: {\r\n                categories: this.memberLogins?.map((a) => dayjs(a.fromDate).format('DD MMM YYYY')),\r\n                labels: {\r\n                    formatter: ((that) => dayjs(that.value).format('DD MMM')),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            yAxis: {\r\n                allowDecimals: false,\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            legend: {\r\n                enabled: this.showLegend || false,\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            plotOptions: {\r\n                column: {\r\n                    stacking: 'normal',\r\n                },\r\n            },\r\n            series: this.memberLoginsTranformed || [],\r\n        };\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./member-logins-by-age.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./member-logins-by-age.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./member-logins-by-age.vue?vue&type=template&id=3a35d72b&scoped=true&\"\nimport script from \"./member-logins-by-age.vue?vue&type=script&lang=ts&\"\nexport * from \"./member-logins-by-age.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./member-logins-by-age.vue?vue&type=style&index=0&id=3a35d72b&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"3a35d72b\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title aqua\"},[_vm._v(\" Member logins by status \")]),_c('info',{attrs:{\"tooltip\":\"Total number of web logins grouped by member status\"}}),_c('div',{staticClass:\"tile-content\",class:[{ filtered: _vm.selectedPoint }, `colour-${_vm.selectedColourIndex}`]},[_c('highcharts',{ref:\"chart\",attrs:{\"options\":_vm.chartOptions}}),_c('div',{staticClass:\"total\",class:{ 'has-legend': _vm.showLegend },style:(_vm.centerPos),on:{\"click\":_vm.clearFilter}},[_vm._v(\" \"+_vm._s(_vm.formatNumber(_vm.totalLogins))+\" \"),_c('span',{staticClass:\"filter\"},[_vm._v(_vm._s(_vm.selectedPoint))]),_c('span',[_vm._v(\"Logins\")]),(_vm.selectedPoint)?_c('div',{staticClass:\"return\",on:{\"click\":_vm.clearFilter}},[_c('font-awesome-icon',{attrs:{\"icon\":\"times\"}})],1):_vm._e()]),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport dayjs from 'dayjs';\r\nimport Guid from 'common/util/guid';\r\nimport Highcharts, { Point } from 'highcharts';\r\nimport ColourService from '@/services/colourService';\r\nimport ToggleSwitch from 'common/components/toggle-switch.vue';\r\nimport PieLegend from '@/services/pieLegendService';\r\nimport MemberLogins from '@/models/memberLogins';\r\n\r\n@Component({ components: { ToggleSwitch } })\r\nexport default class MemberLoginsPie extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        showLegend!: boolean;\r\n\r\n    selectedPoint: string | null = null;\r\n\r\n    selectedColourIndex: number | null = null;\r\n\r\n    chartCenterX = 0;\r\n\r\n    chartCenterY = 0;\r\n\r\n    get loading () {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'memberLogins') || false as boolean;\r\n    }\r\n\r\n    get memberLogins (): Array<MemberLogins> | null {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'memberLogins');\r\n    }\r\n\r\n    get centerPos () {\r\n        return {\r\n            top: `calc(${this.chartCenterY}px + 1.5rem) !important`,\r\n            left: `calc(${this.chartCenterX}px + 1.5rem) !important`,\r\n        };\r\n    }\r\n\r\n    get totalLogins () {\r\n        return this.memberLoginsTranformed?.filter((a) => a.name === this.selectedPoint || !this.selectedPoint)?.reduce((a, b) => a + (b.y ?? 0), 0);\r\n    }\r\n\r\n    get memberLoginsTranformed () {\r\n        if (!this.memberLogins) return null;\r\n        const totals: Record<string, number> = {};\r\n        this.memberLogins.forEach((date) => {\r\n            Object.keys(date.loginsByStatus ?? {}).forEach((dataType) => {\r\n                if (!totals[dataType]) totals[dataType] = 0;\r\n                totals[dataType] += date.loginsByStatus[dataType];\r\n            });\r\n        });\r\n        return Object.keys(totals)\r\n            .map((seriesName) => ({\r\n                name: seriesName,\r\n                y: totals[seriesName],\r\n                color: ColourService.getSeriesColour('status', seriesName.trim()),\r\n            }));\r\n    }\r\n\r\n    formatNumber (number?: string | number) {\r\n        return Math.round(Number(number ?? 0)).toLocaleString('en');\r\n    }\r\n\r\n    pointClicked (point: Point) {\r\n        this.selectedColourIndex = point.colorIndex;\r\n        this.selectedPoint = point.name === this.selectedPoint ? null : point.name;\r\n        this.$emit('pointSelected', { category: 'memberLoginsByStatus', series: this.selectedPoint });\r\n    }\r\n\r\n    clearFilter () {\r\n        (this.$refs.chart as unknown as { chart: Highcharts.Chart }).chart.series[0].points.forEach((a) => a.select(false));\r\n        this.selectedPoint = null;\r\n        this.$emit('pointSelected', { category: 'memberLoginsByStatus', series: this.selectedPoint });\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n        // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n        const self = this;\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                type: 'pie',\r\n                backgroundColor: 'transparent',\r\n                events: {\r\n                    load () {\r\n                        const series = this.series[0] as unknown as { center: Array<number> };\r\n                        const x = this.plotLeft + series.center[0];\r\n                        const y = this.plotTop + series.center[1];\r\n                        self.chartCenterX = x;\r\n                        self.chartCenterY = y;\r\n                    },\r\n                    redraw () {\r\n                        const series = this.series[0] as unknown as { center: Array<number> };\r\n                        const x = this.plotLeft + series.center[0];\r\n                        const y = this.plotTop + series.center[1];\r\n                        self.chartCenterX = x;\r\n                        self.chartCenterY = y;\r\n                    },\r\n                },\r\n            },\r\n            xAxis: {\r\n                labels: {\r\n                    formatter: ((that) => dayjs(that.value).format('DD MMM')),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            yAxis: {\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            legend: this.showLegend ? PieLegend.get().legend : {\r\n                enabled: false,\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            plotOptions: {\r\n                pie: {\r\n                    dataLabels: {\r\n                        enabled: false,\r\n                    },\r\n                    allowPointSelect: true,\r\n                    showInLegend: true,\r\n                    borderWidth: 0,\r\n                    point: {\r\n                        events: {\r\n                            legendItemClick: (event) => {\r\n                                event.preventDefault();\r\n                                event.target.select(!event.target.selected);\r\n                                this.pointClicked(event.target);\r\n                            },\r\n                        },\r\n                    },\r\n                },\r\n            },\r\n            series: [{\r\n                type: 'pie',\r\n                name: 'Logins',\r\n                innerSize: '70%',\r\n                slicedOffset: 5,\r\n                data: this.memberLoginsTranformed!,\r\n                events: {\r\n                    click: (event) => { this.pointClicked(event.point); },\r\n                },\r\n            }],\r\n        };\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./member-logins-by-status-pie.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./member-logins-by-status-pie.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./member-logins-by-status-pie.vue?vue&type=template&id=daa880e4&scoped=true&\"\nimport script from \"./member-logins-by-status-pie.vue?vue&type=script&lang=ts&\"\nexport * from \"./member-logins-by-status-pie.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./member-logins-by-status-pie.vue?vue&type=style&index=0&id=daa880e4&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"daa880e4\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title aqua\"},[_vm._v(\" Member logins by status \")]),_c('info',{attrs:{\"tooltip\":\"Total number of web logins grouped by member status\"}}),_c('div',{staticClass:\"tile-content\"},[_c('highcharts',{attrs:{\"options\":_vm.chartOptions}}),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport Guid from 'common/util/guid';\r\nimport dayjs from 'dayjs';\r\nimport ColourService from '@/services/colourService';\r\nimport MemberLogins from '@/models/memberLogins';\r\nimport Highcharts from 'highcharts';\r\n\r\n@Component\r\nexport default class MemberLoginsByAgeChart extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        filter!: string | null;\r\n\r\n    get loading () {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'memberLogins') || false as boolean;\r\n    }\r\n\r\n    get memberLogins (): Array<MemberLogins> {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'memberLogins');\r\n    }\r\n\r\n    get categories () {\r\n        if (!this.memberLogins) return [];\r\n        const dataTypes: Array<string> = [];\r\n        this.memberLogins.forEach((date) => {\r\n            dataTypes.push(...Object.keys(date.loginsByStatus));\r\n        });\r\n        return [...new Set(dataTypes)];\r\n    }\r\n\r\n    get memberLoginsTranformed () {\r\n        if (!this.memberLogins) return null;\r\n        const vals: Array<{ name: string; data: number[]; type: 'column'; color: string }> = [];\r\n\r\n        this.categories.forEach((status) => {\r\n            const dataTypeData: Array<number> = [];\r\n            this.memberLogins!.forEach((row) => {\r\n                dataTypeData.push(row.loginsByStatus[status] ?? 0);\r\n            });\r\n            if (!this.filter || this.filter === status) {\r\n                vals.push({\r\n                    name: status,\r\n                    type: 'column',\r\n                    data: dataTypeData,\r\n                    color: ColourService.getSeriesColour('status', status),\r\n                });\r\n            }\r\n        });\r\n\r\n        return vals;\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                type: 'column',\r\n                backgroundColor: 'transparent',\r\n            },\r\n            xAxis: {\r\n                categories: this.memberLogins?.map((a) => dayjs(a.fromDate).format('DD MMM YYYY')),\r\n                labels: {\r\n                    formatter: ((that) => dayjs(that.value).format('DD MMM')),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            yAxis: {\r\n                allowDecimals: false,\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            legend: {\r\n                enabled: true,\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            plotOptions: {\r\n                column: {\r\n                    stacking: 'normal',\r\n                },\r\n            },\r\n            series: this.memberLoginsTranformed || [],\r\n        };\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./member-logins-by-status.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./member-logins-by-status.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./member-logins-by-status.vue?vue&type=template&id=693c66a0&scoped=true&\"\nimport script from \"./member-logins-by-status.vue?vue&type=script&lang=ts&\"\nexport * from \"./member-logins-by-status.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./member-logins-by-status.vue?vue&type=style&index=0&id=693c66a0&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"693c66a0\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title aqua\"},[_vm._v(\" Member logins \")]),_c('info',{attrs:{\"tooltip\":\"Total number of web logins grouped by new and repeat\"}}),_c('div',{staticClass:\"tile-content\",class:[{ filtered: _vm.selectedPoint }, `colour-${_vm.selectedColourIndex}`]},[_c('highcharts',{ref:\"chart\",attrs:{\"options\":_vm.chartOptions}}),_c('div',{staticClass:\"total\",class:{ 'has-legend': _vm.showLegend },style:(_vm.centerPos),on:{\"click\":_vm.clearFilter}},[_vm._v(\" \"+_vm._s(_vm.formatNumber(_vm.totalRegistrations))+\" \"),_c('span',{staticClass:\"filter\"},[_vm._v(_vm._s(_vm.selectedPoint))]),_c('span',[_vm._v(\"Logins\")]),(_vm.selectedPoint)?_c('div',{staticClass:\"return\",on:{\"click\":_vm.clearFilter}},[_c('font-awesome-icon',{attrs:{\"icon\":\"times\"}})],1):_vm._e()]),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport dayjs from 'dayjs';\r\nimport Guid from 'common/util/guid';\r\nimport Highcharts, { Point } from 'highcharts';\r\nimport ColourService from '@/services/colourService';\r\nimport ToggleSwitch from 'common/components/toggle-switch.vue';\r\nimport PieLegend from '@/services/pieLegendService';\r\nimport MemberLogins from '@/models/memberLogins';\r\n\r\n@Component({ components: { ToggleSwitch } })\r\nexport default class MemberLoginsPie extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        showLegend!: boolean;\r\n\r\n    selectedPoint: string | null = null;\r\n\r\n    selectedColourIndex: number | null = null;\r\n\r\n    chartCenterX = 0;\r\n\r\n    chartCenterY = 0;\r\n\r\n    get loading () {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'memberLogins') || false as boolean;\r\n    }\r\n\r\n    get memberLogins (): Array<MemberLogins> | null {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'memberLogins');\r\n    }\r\n\r\n    get centerPos () {\r\n        return {\r\n            top: `calc(${this.chartCenterY}px + 1.5rem) !important`,\r\n            left: `calc(${this.chartCenterX}px + 1.5rem) !important`,\r\n        };\r\n    }\r\n\r\n    get totalRegistrations () {\r\n        return this.memberLoginsTranformed?.filter((a) => a.name === this.selectedPoint || !this.selectedPoint)?.reduce((a, b) => a + (b.y ?? 0), 0);\r\n    }\r\n\r\n    get memberLoginsTranformed () {\r\n        if (!this.memberLogins) return null;\r\n        const totals: Record<string, number> = {\r\n            'New logins': 0,\r\n            'Repeat logins': 0,\r\n        };\r\n\r\n        this.memberLogins.forEach((date) => {\r\n            totals['New logins'] += date.logins - date.repeatVisits;\r\n            totals['Repeat logins'] += Number(date.repeatVisits);\r\n        });\r\n        return Object.keys(totals).sort((a, b) => (a > b ? 1 : -1))\r\n            .map((seriesName) => ({\r\n                name: seriesName,\r\n                y: totals[seriesName],\r\n                color: ColourService.getSeriesColour('memberLogins', seriesName),\r\n            }));\r\n    }\r\n\r\n    pointClicked (point: Point) {\r\n        this.selectedColourIndex = point.colorIndex;\r\n        this.selectedPoint = point.name === this.selectedPoint ? null : point.name;\r\n        this.$emit('pointSelected', { category: 'memberLogins', series: this.selectedPoint });\r\n    }\r\n\r\n    formatNumber (number?: string | number) {\r\n        return Math.round(Number(number ?? 0)).toLocaleString('en');\r\n    }\r\n\r\n    clearFilter () {\r\n        (this.$refs.chart as unknown as { chart: Highcharts.Chart }).chart.series[0].points.forEach((a) => a.select(false));\r\n        this.selectedPoint = null;\r\n        this.$emit('pointSelected', { category: 'memberLogins', series: this.selectedPoint });\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n        // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n        const self = this;\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                type: 'pie',\r\n                backgroundColor: 'transparent',\r\n                events: {\r\n                    load () {\r\n                        const series = this.series[0] as unknown as { center: Array<number> };\r\n                        const x = this.plotLeft + series.center[0];\r\n                        const y = this.plotTop + series.center[1];\r\n                        self.chartCenterX = x;\r\n                        self.chartCenterY = y;\r\n                    },\r\n                    redraw () {\r\n                        const series = this.series[0] as unknown as { center: Array<number> };\r\n                        const x = this.plotLeft + series.center[0];\r\n                        const y = this.plotTop + series.center[1];\r\n                        self.chartCenterX = x;\r\n                        self.chartCenterY = y;\r\n                    },\r\n                },\r\n            },\r\n            xAxis: {\r\n                labels: {\r\n                    formatter: ((that) => dayjs(that.value).format('DD MMM')),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            yAxis: {\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            legend: this.showLegend ? PieLegend.get().legend : {\r\n                enabled: false,\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            plotOptions: {\r\n                pie: {\r\n                    dataLabels: {\r\n                        enabled: false,\r\n                    },\r\n                    allowPointSelect: true,\r\n                    showInLegend: true,\r\n                    borderWidth: 0,\r\n                    point: {\r\n                        events: {\r\n                            legendItemClick: (event) => {\r\n                                event.preventDefault();\r\n                                event.target.select(!event.target.selected);\r\n                                this.pointClicked(event.target);\r\n                            },\r\n                        },\r\n                    },\r\n                },\r\n            },\r\n            series: [{\r\n                type: 'pie',\r\n                name: 'Logins',\r\n                innerSize: '70%',\r\n                slicedOffset: 5,\r\n                data: this.memberLoginsTranformed!,\r\n                events: {\r\n                    click: (event) => { this.pointClicked(event.point); },\r\n                },\r\n            }],\r\n        };\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./member-logins-pie.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./member-logins-pie.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./member-logins-pie.vue?vue&type=template&id=abc90d76&scoped=true&\"\nimport script from \"./member-logins-pie.vue?vue&type=script&lang=ts&\"\nexport * from \"./member-logins-pie.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./member-logins-pie.vue?vue&type=style&index=0&id=abc90d76&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"abc90d76\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile aqua\"},[_c('h3',{staticClass:\"tile-title aqua\"},[_vm._v(\" Member logins \")]),_c('info',{attrs:{\"tooltip\":\"Total number of web logins grouped by new and repeat\"}}),_c('div',{staticClass:\"tile-content\"},[_c('highcharts',{attrs:{\"options\":_vm.chartOptions}}),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport Guid from 'common/util/guid';\r\nimport dayjs from 'dayjs';\r\nimport ColourService from '@/services/colourService';\r\nimport Highcharts, { SeriesOptionsType } from 'highcharts';\r\nimport MemberLogins from '@/models/memberLogins';\r\n\r\n@Component\r\nexport default class MemberLoginsChart extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        filter!: string | null;\r\n\r\n    get loading () {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'memberLogins') || false as boolean;\r\n    }\r\n\r\n    get memberLogins (): Array<MemberLogins> {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'memberLogins');\r\n    }\r\n\r\n    get memberLoginsTranformed () {\r\n        if (!this.memberLogins) return null;\r\n\r\n        const vals: Array<SeriesOptionsType> = [];\r\n\r\n        if (!this.filter || this.filter === 'New logins') {\r\n            vals.push({\r\n                name: 'New logins',\r\n                color: ColourService.getSeriesColour('memberLogins', 'New logins'),\r\n                type: 'column',\r\n                data: this.memberLogins.map((a) => (a.logins ?? 0) - (a.repeatVisits ?? 0)),\r\n            });\r\n        }\r\n\r\n        if (!this.filter || this.filter === 'Repeat logins') {\r\n            vals.push({\r\n                name: 'Repeat logins',\r\n                color: ColourService.getSeriesColour('memberLogins', 'Repeat logins'),\r\n                type: 'column',\r\n                data: this.memberLogins.map((a) => a.repeatVisits ?? 0),\r\n            });\r\n        }\r\n\r\n        return vals;\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                type: 'column',\r\n                backgroundColor: 'transparent',\r\n            },\r\n            xAxis: {\r\n                categories: this.memberLogins?.map((a) => dayjs(a.fromDate).format('DD MMM YYYY')),\r\n                labels: {\r\n                    formatter: ((that) => dayjs(that.value).format('DD MMM')),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            yAxis: {\r\n                allowDecimals: false,\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            legend: {\r\n                enabled: true,\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            plotOptions: {\r\n                column: {\r\n                    stacking: 'normal',\r\n                },\r\n            },\r\n            series: this.memberLoginsTranformed || [],\r\n        };\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./member-logins.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./member-logins.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./member-logins.vue?vue&type=template&id=21c69fde&scoped=true&\"\nimport script from \"./member-logins.vue?vue&type=script&lang=ts&\"\nexport * from \"./member-logins.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./member-logins.vue?vue&type=style&index=0&id=21c69fde&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"21c69fde\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title grapefruit\"},[_vm._v(\" Member movements in period \")]),_c('info',{attrs:{\"tooltip\":\"Membership movements in the period\"}}),(_vm.memberMovements)?_c('div',{staticClass:\"tile-content\"},[_c('table',[_c('tr',[_c('th'),_vm._l((_vm.memberMovements.movements),function(status,statusName){return _c('th',{key:statusName},[_c('span',[_vm._v(_vm._s(statusName))])])})],2),_c('tr',[_c('td',{staticClass:\"date\"},[_vm._v(_vm._s(_vm.formattedFromDate))]),_vm._l((_vm.memberMovements.byStatusAtFromDate),function(val,type){return _c('td',{key:type},[_c('span',[_vm._v(_vm._s(val))])])})],2),_vm._l((_vm.rows),function(type){return _c('tr',{key:type.key},[_c('td',[_vm._v(_vm._s(type.key))]),_vm._l((_vm.memberMovements.movements),function(status,statusName,i){return _c('td',{key:statusName},[_c('span',{class:{\r\n                        exit: _vm.typeVal(type.key, status) < 0 && !_vm.arrowPos(type.key, statusName, i),\r\n                        number: _vm.typeVal(type.key, status),\r\n                        moveFrom: _vm.arrowPos(type.key, statusName, i) && _vm.typeVal(type.key, status) < 0,\r\n                        moveTo: _vm.hasFrom(type.key, statusName) && _vm.typeVal(type.key, status) > 0,\r\n                        }},[_vm._v(\" \"+_vm._s(_vm.typeVal(type.key, status))+\" \")]),(_vm.arrowPos(type.key, statusName, i))?_c('div',{staticClass:\"arrow\",style:(_vm.arrowPos(type.key, statusName, i))}):_vm._e()])})],2)}),_c('tr',[_c('td',{staticClass:\"date\"},[_vm._v(_vm._s(_vm.formattedToDate))]),_vm._l((_vm.memberMovements.byStatusAtToDate),function(val,type){return _c('td',{key:type},[_c('span',[_vm._v(_vm._s(val))])])})],2)],2)]):_vm._e(),(_vm.loading)?_c('loading'):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport Guid from 'common/util/guid';\r\nimport dayjs from 'dayjs';\r\nimport MemberMovements from '@/models/memberMovements';\r\n\r\n@Component\r\nexport default class MemberMovementsTile extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    get fromDate () {\r\n        return this.$store.getters['clientContext/fromDate'](this.clientId) as string;\r\n    }\r\n\r\n    get toDate () {\r\n        return this.$store.getters['clientContext/toDate'](this.clientId) as string;\r\n    }\r\n\r\n    get formattedFromDate () {\r\n        return dayjs(this.fromDate).format('DD MMM YYYY');\r\n    }\r\n\r\n    get formattedToDate () {\r\n        return dayjs(this.toDate).format('DD MMM YYYY');\r\n    }\r\n\r\n    get memberMovements (): MemberMovements | null {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'membershipMovements');\r\n    }\r\n\r\n    get loading (): boolean {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'membershipMovements');\r\n    }\r\n\r\n    typeVal (type: string, status: { [key: string]: number }) {\r\n        if (status[type]) return status[type];\r\n        return '';\r\n    }\r\n\r\n    hasFrom (type: string, statusName: string) {\r\n        if (!this.memberMovements?.movements) return false;\r\n        if (statusName === 'Pensioner' && type === 'Retirement') return true;\r\n        return false;\r\n    }\r\n\r\n    arrowPos (type: string, statusName: string, index: number) {\r\n        if (type !== 'Retirement') return 0;\r\n        if (!this.memberMovements?.movements || index < 0) return 0;\r\n        let firstIndex = -1;\r\n        let secondIndex = -1;\r\n        Object.keys(this.memberMovements.movements).forEach((a, i) => {\r\n            if (statusName === a) firstIndex = i;\r\n            if (statusName === 'Deferred' && a === 'Pensioner') secondIndex = i;\r\n        });\r\n        if (secondIndex === -1 || index !== firstIndex) return 0;\r\n        return { width: `${(secondIndex - firstIndex) * 100 - 35}%` };\r\n    }\r\n\r\n    get rows () {\r\n        const rows: Array<{ key: string; val: number }> = [];\r\n        if (!this.memberMovements?.movements) return [];\r\n        Object.keys(this.memberMovements.movements).forEach((status) => {\r\n            Object.keys(this.memberMovements!.movements[status])\r\n                .forEach(((key) => {\r\n                    if (rows.find((a) => a.key === key)) return;\r\n                    rows.push({ key, val: this.memberMovements!.movements[status][key] });\r\n                }));\r\n        });\r\n        return rows;\r\n    }\r\n\r\n    typeCount (type: string) {\r\n        if (!this.memberMovements?.movements) return 0;\r\n        let number = 0;\r\n        Object.keys(this.memberMovements.movements).forEach((key) => {\r\n            if (key !== type) return;\r\n            Object.keys(this.memberMovements!.movements[key]).forEach((a) => {\r\n                const n = this.memberMovements!.movements[key][a];\r\n                number += a.startsWith(type) ? -n : n;\r\n            });\r\n        });\r\n        return number;\r\n    }\r\n\r\n    get highestNumber () {\r\n        let max = 0;\r\n        if (!this.memberMovements) return 0;\r\n        Object.values(this.memberMovements.movements).forEach((movement) => {\r\n            Object.values(movement).forEach((val) => {\r\n                if (val > max) max = val;\r\n            });\r\n        });\r\n        return max;\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./member-movements.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./member-movements.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./member-movements.vue?vue&type=template&id=ebeb0f2a&scoped=true&\"\nimport script from \"./member-movements.vue?vue&type=script&lang=ts&\"\nexport * from \"./member-movements.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./member-movements.vue?vue&type=style&index=0&id=ebeb0f2a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"ebeb0f2a\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title aqua\"},[_vm._v(\" Web registrations by age \")]),_c('info',{attrs:{\"tooltip\":\"Web registrations grouped by age band\"}}),_c('div',{staticClass:\"tile-content\",class:[{ filtered: _vm.selectedPoint }, `colour-${_vm.selectedColourIndex}`]},[_c('highcharts',{ref:\"chart\",attrs:{\"options\":_vm.chartOptions}}),_c('div',{staticClass:\"total\",class:{ 'has-legend': _vm.showLegend },style:(_vm.centerPos),on:{\"click\":_vm.clearFilter}},[_vm._v(\" \"+_vm._s(_vm.formatNumber(_vm.totalRegistrations))+\" \"),_c('span',{staticClass:\"filter\"},[_vm._v(_vm._s(_vm.selectedPoint))]),_c('span',[_vm._v(\"Registrations\")]),(_vm.selectedPoint)?_c('div',{staticClass:\"return\",on:{\"click\":_vm.clearFilter}},[_c('font-awesome-icon',{attrs:{\"icon\":\"times\"}})],1):_vm._e()]),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport dayjs from 'dayjs';\r\nimport Guid from 'common/util/guid';\r\nimport Highcharts, { Point } from 'highcharts';\r\nimport ColourService from '@/services/colourService';\r\nimport ToggleSwitch from 'common/components/toggle-switch.vue';\r\nimport PieLegend from '@/services/pieLegendService';\r\nimport MemberRegistrations from '@/models/memberRegistrations';\r\n\r\n@Component({ components: { ToggleSwitch } })\r\nexport default class MemberRegistrationsByAge extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        showLegend!: boolean;\r\n\r\n    selectedPoint: string | null = null;\r\n\r\n    selectedColourIndex: number | null = null;\r\n\r\n    chartCenterX = 0;\r\n\r\n    chartCenterY = 0;\r\n\r\n    ageBands = [\r\n        { min: 101, max: 200, label: '> 100' },\r\n        { min: 91, max: 100 },\r\n        { min: 81, max: 90 },\r\n        { min: 71, max: 80 },\r\n        { min: 61, max: 70 },\r\n        { min: 51, max: 60 },\r\n        { min: 41, max: 50 },\r\n        { min: 31, max: 40 },\r\n        { min: 19, max: 30 },\r\n        { min: 0, max: 18, label: '< 19' },\r\n    ];\r\n\r\n    get loading () {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'memberRegistrations') || false as boolean;\r\n    }\r\n\r\n    get memberRegistrations (): MemberRegistrations | null {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'memberRegistrations');\r\n    }\r\n\r\n    get centerPos () {\r\n        return {\r\n            top: `calc(${this.chartCenterY}px + 1.5rem) !important`,\r\n            left: `calc(${this.chartCenterX}px + 1.5rem) !important`,\r\n        };\r\n    }\r\n\r\n    get totalRegistrations () {\r\n        return this.memberRegistrationsTransformed?.filter((a) => a.name === this.selectedPoint || !this.selectedPoint)?.reduce((a, b) => a + (b.y ?? 0), 0);\r\n    }\r\n\r\n    get memberRegistrationsTransformed () {\r\n        if (!this.memberRegistrations?.dataByAge) {\r\n            return null;\r\n        }\r\n\r\n        const ageBandData: Array<number> = [];\r\n\r\n        this.ageBands.forEach((ageBand) => {\r\n            let ageTotal = 0;\r\n\r\n            Object.keys(this.memberRegistrations!.dataByAge).forEach((age) => {\r\n                let total = 0;\r\n\r\n                if (Number(age) >= ageBand.min && Number(age) <= ageBand.max) {\r\n                    total += this.memberRegistrations!.dataByAge[age];\r\n                }\r\n                ageTotal += total;\r\n            });\r\n\r\n            ageBandData.push(ageTotal);\r\n        });\r\n\r\n        return this.ageBands\r\n            .map((ageBand, i) => ({\r\n                name: ageBand.label ?? `${ageBand.min} - ${ageBand.max}`,\r\n                y: ageBandData[i],\r\n                color: ColourService.getSeriesColour('age', ageBand.label ?? `${ageBand.min} - ${ageBand.max}`!),\r\n            }));\r\n    }\r\n\r\n    formatNumber (number?: string | number) {\r\n        return Math.round(Number(number ?? 0)).toLocaleString('en');\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n    // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n        const self = this;\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                type: 'pie',\r\n                backgroundColor: 'transparent',\r\n                events: {\r\n                    load () {\r\n                        const series = this.series[0] as unknown as { center: Array<number> };\r\n                        const x = this.plotLeft + series.center[0];\r\n                        const y = this.plotTop + series.center[1];\r\n                        self.chartCenterX = x;\r\n                        self.chartCenterY = y;\r\n                    },\r\n                    redraw () {\r\n                        const series = this.series[0] as unknown as { center: Array<number> };\r\n                        const x = this.plotLeft + series.center[0];\r\n                        const y = this.plotTop + series.center[1];\r\n                        self.chartCenterX = x;\r\n                        self.chartCenterY = y;\r\n                    },\r\n                },\r\n            },\r\n            xAxis: {\r\n                labels: {\r\n                    formatter: ((that) => dayjs(that.value).format('DD MMM')),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            yAxis: {\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            legend: this.showLegend ? PieLegend.get().legend : {\r\n                enabled: false,\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            plotOptions: {\r\n                pie: {\r\n                    dataLabels: {\r\n                        enabled: false,\r\n                    },\r\n                    allowPointSelect: true,\r\n                    showInLegend: true,\r\n                    borderWidth: 0,\r\n                    point: {\r\n                        events: {\r\n                            legendItemClick: (event) => {\r\n                                event.preventDefault();\r\n                                event.target.select(!event.target.selected);\r\n                                this.pointClicked(event.target);\r\n                            },\r\n                        },\r\n                    },\r\n                },\r\n            },\r\n            series: [{\r\n                type: 'pie',\r\n                name: 'Registrations',\r\n                innerSize: '70%',\r\n                slicedOffset: 5,\r\n                data: this.memberRegistrationsTransformed!,\r\n                events: {\r\n                    click: (event) => { this.pointClicked(event.point); },\r\n                },\r\n            }],\r\n        };\r\n    }\r\n\r\n    pointClicked (point: Point) {\r\n        this.selectedColourIndex = point.colorIndex;\r\n        this.selectedPoint = point.name === this.selectedPoint ? null : point.name;\r\n    }\r\n\r\n    clearFilter () {\r\n        (this.$refs.chart as unknown as { chart: Highcharts.Chart }).chart.series[0].points.forEach((a) => a.select(false));\r\n        this.selectedPoint = null;\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./member-registrations-by-age-pie.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./member-registrations-by-age-pie.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./member-registrations-by-age-pie.vue?vue&type=template&id=7fe6ef69&scoped=true&\"\nimport script from \"./member-registrations-by-age-pie.vue?vue&type=script&lang=ts&\"\nexport * from \"./member-registrations-by-age-pie.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./member-registrations-by-age-pie.vue?vue&type=style&index=0&id=7fe6ef69&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"7fe6ef69\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title aqua\"},[_vm._v(\" Web registrations by location \")]),_c('info',{attrs:{\"tooltip\":\"Total number of web registrations grouped by upper tier local authorities\"}}),_c('div',{staticClass:\"tile-content\",class:[`colour-${_vm.selectedColourIndex}`]},[_c('map-chart',{ref:\"map\",attrs:{\"mapOptions\":_vm.mapOptions,\"mapData\":_vm.mapData}},[_c('template',{slot:\"tooltip\"},[(_vm.hoveredArea)?_c('div',{staticClass:\"tooltip\"},[_c('div',{staticClass:\"area-name\"},[_vm._v(_vm._s(_vm.areaName(_vm.hoveredArea)))]),_c('div',{staticClass:\"area-value\"},[_vm._v(_vm._s(_vm.formatNumber(_vm.areaValue(_vm.hoveredArea))))])]):_vm._e()]),_c('template',{slot:\"overlay\"},[_c('div',{staticClass:\"abroad\",style:({ background: _vm.abroadColour })}),(!_vm.printing)?_c('div',{staticClass:\"abroad-tooltip\"},[_c('div',{staticClass:\"area-name\"},[_vm._v(\"Outside UK\")]),_c('div',{staticClass:\"area-value\"},[_vm._v(_vm._s(_vm.formatNumber(_vm.areaValue(undefined))))])]):_vm._e()])],2),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport Guid from 'common/util/guid';\r\nimport ToggleSwitch from 'common/components/toggle-switch.vue';\r\nimport MemberRegistrations from '@/models/memberRegistrations';\r\nimport { MapOptions, MapChart } from '@lcp/map-chart';\r\n\r\n@Component({ components: { ToggleSwitch } })\r\nexport default class MemberRegistrationsByLocation extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        showLegend!: boolean;\r\n\r\n    @Prop()\r\n        printing!: boolean;\r\n\r\n    hoveredArea: string | null = null;\r\n\r\n    selectedColourIndex: number | null = null;\r\n\r\n    loaded = false;\r\n\r\n    get loading () {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'memberRegistrations') || false as boolean;\r\n    }\r\n\r\n    get mapData () {\r\n        if (!this.memberRegistrations) return {};\r\n        const data: Record<string, number> = {};\r\n        Object.keys(this.memberRegistrations.dataByLocation).forEach((key) => {\r\n            const postcode = key.trim?.();\r\n            data[this.postcodes.postcodesMap[postcode]] = (data[this.postcodes.postcodesMap[postcode]] ?? 0) + this.memberRegistrations!.dataByLocation[key];\r\n        });\r\n        return data;\r\n    }\r\n\r\n    get postcodes () {\r\n        const map: Record<string, string> = {};\r\n        const areaMap: Record<string, string> = {};\r\n        this.$store.getters['clientStatistics/stats'](this.clientId, 'postcodes')\r\n            .split('\\r\\n').forEach((row: string) => {\r\n                const splitRow = row.split(',');\r\n                map[splitRow[0]] = splitRow[1];\r\n                areaMap[splitRow[1]] = splitRow[2];\r\n            });\r\n        return { postcodesMap: map, areaNamesMap: areaMap };\r\n    }\r\n\r\n    get mapOptions (): MapOptions {\r\n        return {\r\n            topoJsonSettings: {\r\n                jsonPath: '/utla2.json',\r\n                featureCollectionName: 'subunits',\r\n                areaPropertyName: 'LAD21CD',\r\n            },\r\n            interactive: {\r\n                allowPan: false,\r\n                allowSelectArea: false,\r\n                allowSelectRegion: false,\r\n                allowZoom: false,\r\n            },\r\n            display: {\r\n                colourRange: ['#90ddee', '#00a3c7', '#047b96'],\r\n                gradient: true,\r\n                gradientAmount: { hue: 0, saturation: 0, lightness: 10 },\r\n                zoomAnimationDuration: 0,\r\n                colourAnimationDuration: 0,\r\n                rotateAnimationDuration: 0,\r\n            },\r\n            extents: {\r\n                extentsFunction: () => [0, this.totalRegistrations! * 0.5, this.totalRegistrations],\r\n            },\r\n            events: {\r\n                loading: (loading: boolean) => { this.loaded = !loading; },\r\n                areaHovered: (area: string | null) => { this.hoveredArea = area; },\r\n            },\r\n        };\r\n    }\r\n\r\n    get memberRegistrations (): MemberRegistrations | null {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'memberRegistrations');\r\n    }\r\n\r\n    get totalRegistrations () {\r\n        return this.memberRegistrations?.totalRegistrations ?? 0;\r\n    }\r\n\r\n    get abroadColour () {\r\n        return this.loaded && (this.$refs.map as MapChart)?.getValueColour(this.mapData.undefined);\r\n    }\r\n\r\n    areaName (areaCode: string) {\r\n        return this.postcodes.areaNamesMap[areaCode]?.replace('&#44;', ',');\r\n    }\r\n\r\n    areaValue (areaCode: string | undefined) {\r\n        return this.mapData[areaCode!];\r\n    }\r\n\r\n    formatNumber (number: string | number) {\r\n        return Number(number ?? 0).toLocaleString('en');\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./member-registrations-by-location.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./member-registrations-by-location.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./member-registrations-by-location.vue?vue&type=template&id=a65c1632&scoped=true&\"\nimport script from \"./member-registrations-by-location.vue?vue&type=script&lang=ts&\"\nexport * from \"./member-registrations-by-location.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./member-registrations-by-location.vue?vue&type=style&index=0&id=a65c1632&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"a65c1632\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title aqua\"},[_vm._v(\" Web registrations by status \")]),_c('info',{attrs:{\"tooltip\":\"Total number of web registrations grouped by member status\"}}),_c('div',{staticClass:\"tile-content\",class:[{ filtered: _vm.selectedPoint }, `colour-${_vm.selectedColourIndex}`]},[_c('highcharts',{ref:\"chart\",attrs:{\"options\":_vm.chartOptions}}),_c('div',{staticClass:\"total\",class:{ 'has-legend': _vm.showLegend },style:(_vm.centerPos),on:{\"click\":_vm.clearFilter}},[_vm._v(\" \"+_vm._s(_vm.formatNumber(_vm.totalRegistrations))+\" \"),_c('span',{staticClass:\"filter\"},[_vm._v(_vm._s(_vm.selectedPoint))]),_c('span',[_vm._v(\"Registrations\")]),(_vm.selectedPoint)?_c('div',{staticClass:\"return\",on:{\"click\":_vm.clearFilter}},[_c('font-awesome-icon',{attrs:{\"icon\":\"times\"}})],1):_vm._e()]),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport dayjs from 'dayjs';\r\nimport Guid from 'common/util/guid';\r\nimport Highcharts, { Point } from 'highcharts';\r\nimport ColourService from '@/services/colourService';\r\nimport ToggleSwitch from 'common/components/toggle-switch.vue';\r\nimport PieLegend from '@/services/pieLegendService';\r\nimport MemberRegistrations from '@/models/memberRegistrations';\r\n\r\n@Component({ components: { ToggleSwitch } })\r\nexport default class MemberRegistrationsByStatus extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        showLegend!: boolean;\r\n\r\n    selectedPoint: string | null = null;\r\n\r\n    selectedColourIndex: number | null = null;\r\n\r\n    chartCenterX = 0;\r\n\r\n    chartCenterY = 0;\r\n\r\n    get loading () {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'memberRegistrations') || false as boolean;\r\n    }\r\n\r\n    get memberRegistrations (): MemberRegistrations | null {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'memberRegistrations');\r\n    }\r\n\r\n    get centerPos () {\r\n        return {\r\n            top: `calc(${this.chartCenterY}px + 1.5rem) !important`,\r\n            left: `calc(${this.chartCenterX}px + 1.5rem) !important`,\r\n        };\r\n    }\r\n\r\n    get totalRegistrations () {\r\n        return this.memberRegistrationsTranformed?.filter((a) => a.name === this.selectedPoint || !this.selectedPoint)?.reduce((a, b) => a + (b.y ?? 0), 0);\r\n    }\r\n\r\n    get memberRegistrationsTranformed () {\r\n        if (!this.memberRegistrations) return null;\r\n\r\n        return Object.keys(this.memberRegistrations.dataByStatus).sort((a, b) => (a > b ? 1 : -1))\r\n            .map((seriesName) => ({\r\n                name: seriesName,\r\n                y: this.memberRegistrations?.dataByStatus[seriesName],\r\n                color: ColourService.getSeriesColour('status', seriesName.trim()),\r\n            }));\r\n    }\r\n\r\n    formatNumber (number?: string | number) {\r\n        return Math.round(Number(number ?? 0)).toLocaleString('en');\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n    // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n        const self = this;\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                type: 'pie',\r\n                backgroundColor: 'transparent',\r\n                events: {\r\n                    load () {\r\n                        const series = this.series[0] as unknown as { center: Array<number> };\r\n                        const x = this.plotLeft + series.center[0];\r\n                        const y = this.plotTop + series.center[1];\r\n                        self.chartCenterX = x;\r\n                        self.chartCenterY = y;\r\n                    },\r\n                    redraw () {\r\n                        const series = this.series[0] as unknown as { center: Array<number> };\r\n                        const x = this.plotLeft + series.center[0];\r\n                        const y = this.plotTop + series.center[1];\r\n                        self.chartCenterX = x;\r\n                        self.chartCenterY = y;\r\n                    },\r\n                },\r\n            },\r\n            xAxis: {\r\n                labels: {\r\n                    formatter: ((that) => dayjs(that.value).format('DD MMM')),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            yAxis: {\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            legend: this.showLegend ? PieLegend.get().legend : {\r\n                enabled: false,\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            plotOptions: {\r\n                pie: {\r\n                    dataLabels: {\r\n                        enabled: false,\r\n                    },\r\n                    allowPointSelect: true,\r\n                    showInLegend: true,\r\n                    borderWidth: 0,\r\n                    point: {\r\n                        events: {\r\n                            legendItemClick: (event) => {\r\n                                event.preventDefault();\r\n                                event.target.select(!event.target.selected);\r\n                                this.pointClicked(event.target);\r\n                            },\r\n                        },\r\n                    },\r\n                },\r\n            },\r\n            series: [{\r\n                type: 'pie',\r\n                name: 'Registrations',\r\n                innerSize: '70%',\r\n                slicedOffset: 5,\r\n                data: this.memberRegistrationsTranformed!,\r\n                events: {\r\n                    click: (event) => { this.pointClicked(event.point); },\r\n                },\r\n            }],\r\n        };\r\n    }\r\n\r\n    pointClicked (point: Point) {\r\n        this.selectedColourIndex = point.colorIndex;\r\n        this.selectedPoint = point.name === this.selectedPoint ? null : point.name;\r\n    }\r\n\r\n    clearFilter () {\r\n        (this.$refs.chart as unknown as { chart: Highcharts.Chart }).chart.series[0].points.forEach((a) => a.select(false));\r\n        this.selectedPoint = null;\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./member-registrations-by-status.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./member-registrations-by-status.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./member-registrations-by-status.vue?vue&type=template&id=4ca9b3d4&scoped=true&\"\nimport script from \"./member-registrations-by-status.vue?vue&type=script&lang=ts&\"\nexport * from \"./member-registrations-by-status.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./member-registrations-by-status.vue?vue&type=style&index=0&id=4ca9b3d4&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"4ca9b3d4\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"search-window\"},[(!_vm.viewAdvancedSearch)?_c('div',{staticClass:\"tile\"},[_c('div',{staticClass:\"row apart\"},[_c('h3',{staticClass:\"tile-title lilac desktop\"},[_vm._v(\"Quick search by surname\")]),_c('btn',{staticClass:\"secondary\",attrs:{\"text\":\"View advanced search\"},on:{\"click\":function($event){_vm.viewAdvancedSearch = !_vm.viewAdvancedSearch}}})],1),_c('div',{staticClass:\"tile-content row no-wrap\"},[_c('dynamic-ui-text',{attrs:{\"name\":\"Surname\",\"allowNull\":true},on:{\"keypress\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.getResults.apply(null, arguments)}},model:{value:(_vm.surname),callback:function ($$v) {_vm.surname=$$v},expression:\"surname\"}}),_c('btn',{staticClass:\"primary\",attrs:{\"text\":\"Search\",\"icon\":\"search\",\"disabled\":!_vm.surname.length},on:{\"click\":_vm.getResults}})],1)]):_vm._e(),(_vm.viewAdvancedSearch)?_c('div',{staticClass:\"tile\"},[_c('div',{staticClass:\"row apart\"},[_c('h3',{staticClass:\"tile-title lilac desktop\"},[_vm._v(\"Advanced search\")]),_c('btn',{staticClass:\"secondary\",attrs:{\"text\":\"View quick search\"},on:{\"click\":function($event){_vm.viewAdvancedSearch = !_vm.viewAdvancedSearch}}})],1),_c('div',{staticClass:\"tile-content row\"},[_c('div',{staticClass:\"row no-wrap\"},[_c('dynamic-ui-text',{attrs:{\"name\":\"Surname\",\"allowNull\":true},on:{\"keypress\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.getResults.apply(null, arguments)}},model:{value:(_vm.surname),callback:function ($$v) {_vm.surname=$$v},expression:\"surname\"}}),_c('dynamic-ui-text',{attrs:{\"name\":\"Forenames\",\"allowNull\":true},on:{\"keypress\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.getResults.apply(null, arguments)}},model:{value:(_vm.forenames),callback:function ($$v) {_vm.forenames=$$v},expression:\"forenames\"}})],1),_c('div',{staticClass:\"row no-wrap\"},[_c('dynamic-ui-text',{attrs:{\"name\":\"Member no.\",\"allowNull\":true,\"validationMessage\":\"Please enter a numerical value\",\"regexValidation\":\"^[0-9]*$\"},on:{\"keypress\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.getResults.apply(null, arguments)}},model:{value:(_vm.memberId),callback:function ($$v) {_vm.memberId=$$v},expression:\"memberId\"}}),_c('dynamic-ui-date',{attrs:{\"name\":\"Date of birth\",\"exportFormat\":\"YYYY-MM-DD\",\"allowNull\":true},on:{\"keypress\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.getResults.apply(null, arguments)}},model:{value:(_vm.dateOfBirth),callback:function ($$v) {_vm.dateOfBirth=$$v},expression:\"dateOfBirth\"}})],1),_c('div',{staticClass:\"row no-wrap\"},[_c('dynamic-ui-text',{attrs:{\"name\":\"NI number\",\"allowNull\":true},on:{\"keypress\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.getResults.apply(null, arguments)}},model:{value:(_vm.nino),callback:function ($$v) {_vm.nino=$$v},expression:\"nino\"}}),_c('btn',{staticClass:\"primary\",attrs:{\"text\":\"Search\",\"icon\":\"search\",\"disabled\":_vm.advancedSearchDisabled},on:{\"click\":_vm.getResults}})],1)])]):_vm._e(),(_vm.isLoading)?_c('loading'):_vm._e(),(_vm.hasSearched)?_c('div',{staticClass:\"search-results tile\"},[_c('h3',{staticClass:\"tile-title lilac\"},[_vm._v(\"Search results\")]),_c('div',{staticClass:\"tile-content\"},[(_vm.searchResults.length)?_c('table',[_c('thead',[_c('tr',[_c('th',{staticClass:\"sortable\",class:{ sorted: _vm.sort.endsWith('memberId'), inverse: _vm.sort.startsWith('-')},on:{\"click\":function($event){return _vm.sortBy('memberId')}}},[_vm._v(\"Member no.\")]),_c('th',{staticClass:\"sortable\",class:{ sorted: _vm.sort.endsWith('surname'), inverse: _vm.sort.startsWith('-')},on:{\"click\":function($event){return _vm.sortBy('surname')}}},[_vm._v(\"Surname\")]),_c('th',{staticClass:\"sortable\",class:{ sorted: _vm.sort.endsWith('forenames'), inverse: _vm.sort.startsWith('-')},on:{\"click\":function($event){return _vm.sortBy('forenames')}}},[_vm._v(\"Forenames\")]),_c('th',{staticClass:\"sortable\",class:{ sorted: _vm.sort.endsWith('dob'), inverse: _vm.sort.startsWith('-')},on:{\"click\":function($event){return _vm.sortBy('dob')}}},[_vm._v(\"Date of birth\")]),_c('th',{staticClass:\"sortable\",class:{ sorted: _vm.sort.endsWith('nino'), inverse: _vm.sort.startsWith('-')},on:{\"click\":function($event){return _vm.sortBy('nino')}}},[_vm._v(\"NI number\")]),_c('th',[_vm._v(\"Status\")])])]),_c('tbody',_vm._l((_vm.searchResults),function(row){return _c('tr',{key:row.systemMemberId,attrs:{\"tabIndex\":\"0\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.gotoMember(row.memberId)},\"click\":function($event){return _vm.gotoMember(row.memberId)}}},[_c('td',[_c('div',{staticClass:\"member-id\"},[_vm._v(_vm._s(row.memberId))])]),_c('td',[_vm._v(_vm._s(row.surname))]),_c('td',[_vm._v(_vm._s(row.forenames))]),_c('td',[_vm._v(_vm._s(_vm._f(\"date\")(row.dateBirth)))]),_c('td',[_vm._v(_vm._s(row.nino))]),_c('td',[(row.servicePeriods)?_c('div',_vm._l((row.servicePeriods),function(status){return _c('div',{key:status.servicePeriodId},[_c('div',{staticClass:\"status-wrapper\",class:{'multiple-statuses': row.servicePeriods.length > 1}},[_c('div',{staticClass:\"status\",class:status.status},[_vm._v(_vm._s(status.status))])])])}),0):_c('div',[_c('div',{staticClass:\"status\"},[_vm._v(\"Unknown\")])])])])}),0)]):_c('p',[_vm._v(\"No results found\")])]),(_vm.searchResults.length)?_c('div',{staticClass:\"tile-content paging\"},[_c('span',[_vm._v(\" Showing \"),_c('b',[_vm._v(_vm._s(_vm.totalResults && _vm.totalResults > 0 ? _vm.pageNumber * _vm.pageSize - _vm.pageSize + 1: 0))]),_vm._v(\" to \"),_c('b',[_vm._v(_vm._s(_vm.pageNumber * _vm.pageSize >= _vm.totalResults ? _vm.totalResults : _vm.pageNumber * _vm.pageSize))]),_vm._v(\" of \"),_c('b',[_vm._v(_vm._s(_vm.totalResults))])]),_c('div',[_c('btn',{staticClass:\"desktop primary\",attrs:{\"text\":\"Previous Page\",\"disabled\":_vm.pageNumber === 1},on:{\"click\":_vm.decrementPage}}),_c('btn',{staticClass:\"desktop primary\",attrs:{\"text\":\"Next Page\",\"disabled\":_vm.pageNumber * _vm.pageSize >= _vm.totalResults},on:{\"click\":_vm.incrementPage}}),_c('btn',{staticClass:\"mobile primary\",attrs:{\"icon\":\"arrow-left\",\"disabled\":_vm.pageNumber === 1},on:{\"click\":_vm.decrementPage}}),_c('btn',{staticClass:\"mobile primary\",attrs:{\"icon\":\"arrow-right\",\"disabled\":_vm.pageNumber * _vm.pageSize >= _vm.totalResults},on:{\"click\":_vm.incrementPage}})],1)]):_vm._e()]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Watch } from 'vue-property-decorator';\r\nimport { DynamicUiText, DynamicUiDate } from '@lcp/dynamic-ui-typescript';\r\nimport MemberApi from '@/api/memberApi';\r\nimport Guid from 'common/util/guid';\r\nimport MemberSearchResult from '@/models/memberSearchResult';\r\nimport ClientNameService from '@/services/clientNameService';\r\nimport Client from 'common/models/client';\r\nimport MemberSearchOptions from '@/models/memberSearchOptions';\r\n\r\n@Component({\r\n    components: {\r\n        DynamicUiText, DynamicUiDate,\r\n    },\r\n})\r\nexport default class MemberSearch extends Vue {\r\n    viewAdvancedSearch = false;\r\n\r\n    memberId: number | null = null;\r\n\r\n    surname = '';\r\n\r\n    forenames = '';\r\n\r\n    dateOfBirth = '';\r\n\r\n    nino = '';\r\n\r\n    pageNumber = 1;\r\n\r\n    pageSize = 25;\r\n\r\n    sort = 'memberId';\r\n\r\n    isLoading = false;\r\n\r\n    hasSearched = false;\r\n\r\n    totalResults = 0;\r\n\r\n    get searchParams () {\r\n        return this.$store.getters['clientContext/memberSearchOptions'] as MemberSearchOptions;\r\n    }\r\n\r\n    get searchResults () {\r\n        return this.$store.getters['clientContext/memberSearchResults'] as Array<MemberSearchResult> ?? [];\r\n    }\r\n\r\n    get clientId () {\r\n        return this.$store.getters['clientContext/selectedClient'] as Guid;\r\n    }\r\n\r\n    get clients () {\r\n        return this.$store.getters['clientContext/clients'] as Array<Client>;\r\n    }\r\n\r\n    get clientName () {\r\n        if (!this.clients) return '';\r\n        return this.clients.find((a) => a.clientId === this.clientId)?.name;\r\n    }\r\n\r\n    get advancedSearchDisabled () {\r\n        return !this.surname?.length && !this.forenames?.length && this.isInvalidMemberId()\r\n        && !this.dateOfBirth?.length && !this.nino?.length;\r\n    }\r\n\r\n    get clientPath () {\r\n        if (!this.clientName) return '';\r\n        if (this.$route.path.indexOf('/demo') > -1) return 'demo';\r\n        return ClientNameService.clientNameToPath(this.clientName);\r\n    }\r\n\r\n    sortBy (column: string) {\r\n        const isInversed = this.sort.startsWith('-');\r\n        if (this.sort.includes(column) && isInversed) {\r\n            this.sort = column;\r\n        } else if (this.sort.includes(column) && !isInversed) {\r\n            this.sort = `-${column}`;\r\n        } else {\r\n            this.sort = column;\r\n        }\r\n        this.getResults();\r\n    }\r\n\r\n    @Watch('searchParams', { immediate: true })\r\n    searchParamsChanged () {\r\n        this.surname = this.searchParams.surname;\r\n        this.forenames = this.searchParams.forenames;\r\n        this.memberId = this.searchParams.memberId;\r\n        this.nino = this.searchParams.nino;\r\n        this.dateOfBirth = this.searchParams.dateOfBirth;\r\n        this.pageNumber = this.searchParams.pageNumber;\r\n        this.pageSize = this.searchParams.pageSize;\r\n        this.hasSearched = this.searchParams.hasSearched;\r\n        this.totalResults = this.searchParams.totalResults;\r\n        this.viewAdvancedSearch = this.searchParams.viewAdvancedSearch;\r\n    }\r\n\r\n    incrementPage () {\r\n        this.pageNumber += 1;\r\n        this.getResults(false);\r\n    }\r\n\r\n    decrementPage () {\r\n        this.pageNumber -= 1;\r\n        this.getResults(false);\r\n    }\r\n\r\n    isInvalidMemberId () {\r\n        const reg = /^[0-9]+$/;\r\n        const id = this.memberId?.toString(10);\r\n        return this.memberId === undefined || this.memberId === null || id === '' || !reg.test(id!);\r\n    }\r\n\r\n    getResults (resetPage = true) {\r\n        if (this.memberId !== undefined && this.memberId !== null && this.memberId.toString(10) !== '' && this.isInvalidMemberId()) {\r\n            return;\r\n        }\r\n        this.isLoading = true;\r\n        this.hasSearched = true;\r\n        if (resetPage) {\r\n            this.pageNumber = 1;\r\n        }\r\n\r\n        MemberApi.getMemberSearchResults(this.clientId, {\r\n            memberId: this.viewAdvancedSearch ? this.memberId : null,\r\n            surname: this.surname,\r\n            forenames: this.viewAdvancedSearch ? this.forenames : undefined,\r\n            dateOfBirth: this.viewAdvancedSearch ? this.dateOfBirth : undefined,\r\n            nino: this.viewAdvancedSearch ? this.nino : undefined,\r\n            pageNumber: this.pageNumber,\r\n            pageSize: this.pageSize,\r\n            sort: this.sort,\r\n        }).then((result) => {\r\n            this.$store.commit('clientContext/setSearchResults', { clientId: this.clientId, results: result });\r\n            this.totalResults = result.headers['x-total-count'];\r\n\r\n            this.$store.commit('clientContext/setSearchParams', {\r\n                clientId: this.clientId,\r\n                options: {\r\n                    memberId: this.memberId,\r\n                    surname: this.surname,\r\n                    forenames: this.forenames,\r\n                    dateOfBirth: this.dateOfBirth,\r\n                    nino: this.nino,\r\n                    pageNumber: this.pageNumber,\r\n                    pageSize: this.pageSize,\r\n                    hasSearched: this.hasSearched,\r\n                    totalResults: this.totalResults,\r\n                    viewAdvancedSearch: this.viewAdvancedSearch,\r\n                },\r\n            });\r\n        }).finally(() => {\r\n            this.isLoading = false;\r\n        });\r\n    }\r\n\r\n    gotoMember (memberId: number) {\r\n        this.$router.push(`/${this.clientPath}/members/${memberId}/`);\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./member-search.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./member-search.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./member-search.vue?vue&type=template&id=ea416f1e&scoped=true&\"\nimport script from \"./member-search.vue?vue&type=script&lang=ts&\"\nexport * from \"./member-search.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./member-search.vue?vue&type=style&index=0&id=ea416f1e&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"ea416f1e\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title grapefruit\"},[_vm._v(\" Current member statistics \")]),_c('info',{attrs:{\"tooltip\":\"Current membership summary\"}}),_c('div',{staticClass:\"tile-content\"},[(_vm.memberStats)?_c('div',{staticClass:\"top\"},[_c('div',{staticClass:\"count\"},[_vm._v(_vm._s(_vm.memberStats.memberCount))])]):_vm._e(),(_vm.memberStats)?_c('div',{staticClass:\"bottom\"},_vm._l((_vm.memberTypes),function(type){return _c('div',{key:type,staticClass:\"type\"},[_c('div',{staticClass:\"line\"}),_c('font-awesome-icon',{staticClass:\"plus\",attrs:{\"icon\":['far', 'plus']}}),_c('font-awesome-icon',{staticClass:\"user\",attrs:{\"icon\":['far', 'user']}}),_c('div',{staticClass:\"type-name\"},[_vm._v(_vm._s(type))]),_c('div',{staticClass:\"count\"},[_vm._v(_vm._s(_vm.memberStats.countByStatus[type]))])],1)}),0):_vm._e(),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport Guid from 'common/util/guid';\r\nimport ClientStats from '@/models/clientMemberStats';\r\n\r\n@Component\r\nexport default class MemberStatisticsTile extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    get loading (): boolean {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'memberStats');\r\n    }\r\n\r\n    get memberTypes () {\r\n        return Object.keys(this.memberStats.countByStatus);\r\n    }\r\n\r\n    get memberStats () {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'memberStats') as ClientStats;\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./member-statistics-tile.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./member-statistics-tile.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./member-statistics-tile.vue?vue&type=template&id=598c6858&scoped=true&\"\nimport script from \"./member-statistics-tile.vue?vue&type=script&lang=ts&\"\nexport * from \"./member-statistics-tile.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./member-statistics-tile.vue?vue&type=style&index=0&id=598c6858&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"598c6858\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"data list\"},_vm._l((_vm.items),function(item,index){return _c('div',{key:index,staticClass:\"list-item tile-content\"},[_c('div',{staticClass:\"list\"},[_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"AVC provider\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(item.source))])]),_vm._l((item.balances),function(element,index){return _c('div',{key:index,staticClass:\"list-item tile-content\"},[_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Effective Date\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"date\")(element.effectiveDate)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Balance\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(element.balance)))])])])})],2)])}),0)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport AVCAccumulationHistory from '@/models/memberDataTypes/avcAccumulationHistory';\r\n\r\n@Component\r\nexport default class AVCAccumulationHistoryVue extends Vue {\r\n    @Prop()\r\n        dataTypeData!: AVCAccumulationHistory;\r\n\r\n    get items () {\r\n        return this.dataTypeData?.items?.sort((a, b) => (a.source < b.source ? 1 : -1));\r\n    }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./a-v-c.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./a-v-c.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./a-v-c.vue?vue&type=template&id=23eaecce&scoped=true&\"\nimport script from \"./a-v-c.vue?vue&type=script&lang=ts&\"\nexport * from \"./a-v-c.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./a-v-c.vue?vue&type=style&index=0&id=23eaecce&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"23eaecce\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"data list\"},[_c('div',{staticClass:\"tile-content\"},[(_vm.dataTypeData.items.length)?_c('table',[_c('thead',[_c('tr',[_c('th',[_vm._v(\"Type\")]),_c('th',[_vm._v(\"Amount\")]),(_vm.hasLumpSum)?_c('th',[_vm._v(\"Lump Sum\")]):_vm._e(),(_vm.hasComparator)?_c('th',[_vm._v(\"Comparator\")]):_vm._e(),(_vm.hasAlternativeBenefit)?_c('th',[_vm._v(\"Alternative Benefit\")]):_vm._e(),(_vm.hasAlternativeBenefitComparator)?_c('th',[_vm._v(\"Alternative Benefit Comparator\")]):_vm._e()])]),_c('tbody',_vm._l((_vm.dataTypeData.items),function(row){return _c('tr',{key:row.numberName},[_c('td',[_vm._v(_vm._s(row.numberName))]),_c('td',[_vm._v(_vm._s(_vm._f(\"currency\")(row.numberValue)))]),(_vm.hasLumpSum)?_c('td',[_vm._v(_vm._s(_vm._f(\"currency\")(row.lumpSum)))]):_vm._e(),(_vm.hasComparator)?_c('td',[_vm._v(_vm._s(_vm._f(\"currency\")(row.comparator)))]):_vm._e(),(_vm.hasAlternativeBenefit)?_c('td',[_vm._v(_vm._s(_vm._f(\"currency\")(row.alternativeBenefit)))]):_vm._e(),(_vm.hasAlternativeBenefitComparator)?_c('td',[_vm._v(_vm._s(_vm._f(\"currency\")(row.alternativeBenefitComparator)))]):_vm._e()])}),0)]):_c('p',[_vm._v(\"No results found\")])]),_c('div',{staticClass:\"list-item tile-content\"},[_c('div',{staticClass:\"lis\"},[_c('div',{staticClass:\"list-item tile-content\"},[_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"tile-name label\"},[_vm._v(\"Total\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(_vm.dataTypeData.total)))])])])])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport ActiveCeasedAccrualCollections from '@/models/memberDataTypes/activeCeasedAccrualCollections';\r\n\r\n@Component\r\nexport default class ActiveCeasedAccrualCollectionsVue extends Vue {\r\n    @Prop()\r\n        dataTypeData!: ActiveCeasedAccrualCollections;\r\n\r\n    get hasLumpSum () {\r\n        return this.dataTypeData.items.some((x) => 'lumpSum' in x);\r\n    }\r\n\r\n    get hasComparator () {\r\n        return this.dataTypeData.items.some((x) => 'comparator' in x);\r\n    }\r\n\r\n    get hasAlternativeBenefit () {\r\n        return this.dataTypeData.items.some((x) => 'alternativeBenefit' in x);\r\n    }\r\n\r\n    get hasAlternativeBenefitComparator () {\r\n        return this.dataTypeData.items.some((x) => 'alternativeBenefitComparator' in x);\r\n    }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./active-ceased-accrual-collections.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./active-ceased-accrual-collections.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./active-ceased-accrual-collections.vue?vue&type=template&id=283a9dc6&scoped=true&\"\nimport script from \"./active-ceased-accrual-collections.vue?vue&type=script&lang=ts&\"\nexport * from \"./active-ceased-accrual-collections.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./active-ceased-accrual-collections.vue?vue&type=style&index=0&id=283a9dc6&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"283a9dc6\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{staticClass:\"tile-content\"},[_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Over NRA - retiring late\")]),_c('div',{staticClass:\"value\",class:_vm.dataTypeData.overNraRetiringLate.toString()},[_vm._v(_vm._s(_vm.dataTypeData.overNraRetiringLate ? 'Yes' : 'No'))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Over NRA - not traced\")]),_c('div',{staticClass:\"value\",class:_vm.dataTypeData.overNraNotTraced.toString()},[_vm._v(_vm._s(_vm.dataTypeData.overNraNotTraced ? 'Yes' : 'No'))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Left with options\")]),_c('div',{staticClass:\"value\",class:_vm.dataTypeData.leftWithOptions.toString()},[_vm._v(_vm._s(_vm.dataTypeData.leftWithOptions ? 'Yes' : 'No'))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"DC / AVCs only\")]),_c('div',{staticClass:\"value\",class:_vm.dataTypeData.dcAvcsOnly.toString()},[_vm._v(_vm._s(_vm.dataTypeData.dcAvcsOnly ? 'Yes' : 'No'))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Final Pensionable Salary\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(_vm.dataTypeData.finalPensionableSalary)))])])]),_c('br'),(_vm.dataTypeData.additionalClientSpecificFigures.length)?_c('div',{staticClass:\"data list tile-content\"},[_c('div',{staticClass:\"label bold\"},[_vm._v(\"Additional client specific figures\")]),_vm._l((_vm.dataTypeData.additionalClientSpecificFigures),function(item,index){return _c('div',{key:index,staticClass:\"list-item\"},[_c('div',{staticClass:\"list two-col\"},[_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(_vm._s(item.numberName))]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(item.numberValue)))])])])])})],2):_vm._e(),_c('br'),(_vm.dataTypeData.additionalClientSpecificNumbers.length)?_c('div',{staticClass:\"data list tile-content\"},[_c('div',{staticClass:\"label bold\"},[_vm._v(\"Additional client specific number\")]),_vm._l((_vm.dataTypeData.additionalClientSpecificNumbers),function(item,index){return _c('div',{key:index,staticClass:\"list-item\"},[_c('div',{staticClass:\"list two-col\"},[_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(_vm._s(item.numberName))]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(item.numberValue))])])])])})],2):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport DeferredAdditionalInformation from '@/models/memberDataTypes/deferredAdditionalInformation';\r\n\r\n@Component\r\nexport default class AddDefInfoVue extends Vue {\r\n    @Prop()\r\n        dataTypeData!: DeferredAdditionalInformation;\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./add-def-info.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./add-def-info.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./add-def-info.vue?vue&type=template&id=2e6aa975&scoped=true&\"\nimport script from \"./add-def-info.vue?vue&type=script&lang=ts&\"\nexport * from \"./add-def-info.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./add-def-info.vue?vue&type=style&index=0&id=2e6aa975&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"2e6aa975\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{staticClass:\"data list\"},_vm._l((_vm.dataTypeData.items),function(item,index){return _c('div',{key:index,staticClass:\"list-item tile-content\"},[_c('div',{staticClass:\"list two-col\"},[_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Type\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(item.type))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Date of entitlement\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"date\")(item.dateOfEngagement)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Value\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(item.value)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"LTA charge payable?\")]),_c('div',{staticClass:\"value\",class:item.isLtaChargePayable.toString()},[_vm._v(_vm._s(item.isLtaChargePayable ? 'Yes' : 'No'))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"LTA charge\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(item.ltaCharge)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Notification date\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"date\")(item.notificationDate)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Date paid\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"date\")(item.datePaid)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Percentage of LTA used\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"twoDpPercentage\")(item.percentageOfLtaUsed)))])])])])}),0),_c('div',{staticClass:\"tile-content\"},[_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Total percentage of LTA used\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"twoDpPercentage\")(_vm.dataTypeData.totalPercentageOfLtaUsed)))])])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport BCE from '@/models/memberDataTypes/bce';\r\n\r\n@Component\r\nexport default class BCEsVue extends Vue {\r\n    @Prop()\r\n        dataTypeData!: BCE;\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./b-c-e.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./b-c-e.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./b-c-e.vue?vue&type=template&id=58d845e2&scoped=true&\"\nimport script from \"./b-c-e.vue?vue&type=script&lang=ts&\"\nexport * from \"./b-c-e.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./b-c-e.vue?vue&type=style&index=0&id=58d845e2&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"58d845e2\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile-content\"},[_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Title\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.dataTypeData.title))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Forenames\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.dataTypeData.forenames))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Surname\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.dataTypeData.surname))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Date of birth\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"date\")(_vm.dataTypeData.dateOfBirth)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Is date of birth confirmed?\")]),_c('div',{staticClass:\"value\",class:_vm.dataTypeData.isDateOfBirthConfirmed?.toString()},[_vm._v(_vm._s(_vm.dataTypeData.isDateOfBirthConfirmed ? 'Yes' : 'No'))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"NI number\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.dataTypeData.niNumber))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Sex\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.dataTypeData.sex))])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport BasicInfo from '@/models/memberDataTypes/basicInfo';\r\n\r\n@Component\r\nexport default class BasicInfoVue extends Vue {\r\n    @Prop()\r\n        dataTypeData!: BasicInfo;\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./basic-info.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./basic-info.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./basic-info.vue?vue&type=template&id=13c24fb0&scoped=true&\"\nimport script from \"./basic-info.vue?vue&type=script&lang=ts&\"\nexport * from \"./basic-info.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./basic-info.vue?vue&type=style&index=0&id=13c24fb0&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"13c24fb0\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"tile-content\"},[_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Benefit Category\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.dataTypeData.benefitCategory))])]),_vm._l((_vm.dataTypeData.categories),function(category){return _c('div',{key:category.categoryName,staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(_vm._s(category.categoryName))]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(category.categoryValue))])])}),_vm._l((_vm.dataTypeData.flags),function(flag){return _c('div',{key:flag.flagName,staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(_vm._s(flag.flagName))]),_c('div',{staticClass:\"value\",class:flag.flagValue.toString()},[_vm._v(_vm._s(flag.flagValue ? 'Yes' : 'No'))])])}),_vm._l((_vm.dataTypeData.references),function(reference){return _c('div',{key:reference.referenceName,staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(_vm._s(reference.referenceName))]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(reference.referenceValue))])])}),_vm._l((_vm.dataTypeData.dates),function(date){return _c('div',{key:date.dateName,staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(_vm._s(date.dateName))]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(date.dateValue))])])}),_vm._l((_vm.dataTypeData.numbers),function(number){return _c('div',{key:number.numberName,staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(_vm._s(number.numberName))]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(number.numberValue))])])}),_vm._l((_vm.dataTypeData.financialNumbers),function(number){return _c('div',{key:number.numberName,staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(_vm._s(number.numberName))]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(number.numberValue)))])])}),_vm._l((_vm.dataTypeData.percentages),function(number){return _c('div',{key:number.numberName,staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(_vm._s(number.numberName))]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(number.numberValue)+\"%\")])])})],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport Categories from '@/models/memberDataTypes/categories';\r\n\r\n@Component\r\nexport default class CategoriesVue extends Vue {\r\n    @Prop()\r\n        dataTypeData!: Categories;\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./categories.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./categories.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./categories.vue?vue&type=template&id=43cbf2de&scoped=true&\"\nimport script from \"./categories.vue?vue&type=script&lang=ts&\"\nexport * from \"./categories.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./categories.vue?vue&type=style&index=0&id=43cbf2de&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"43cbf2de\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"row\"},[(_vm.dataTypeData.email)?_c('div',{staticClass:\"tile-content\"},[_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Email\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.dataTypeData.email))])])]):_vm._e(),(_vm.dataTypeData.phoneNumbers?.length)?_c('div',{staticClass:\"tile-content\"},[_c('div',{staticClass:\"tile-name\"},[_vm._v(\"Phone numbers\")]),_c('div',{staticClass:\"list two-col\"},_vm._l((_vm.dataTypeData.phoneNumbers),function(phoneNumber,i){return _c('div',{key:i,staticClass:\"list-item tile-content\"},[_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Description\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(phoneNumber.description))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Number\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.getFormattedValue(phoneNumber.number)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Is preferred?\")]),_c('div',{staticClass:\"value\",class:phoneNumber.preferred.toString()},[_vm._v(_vm._s(phoneNumber.preferred ? 'Yes' : 'No'))])])])}),0)]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport ContactInfo from '@/models/memberDataTypes/contactInfo';\r\nimport { parsePhoneNumberFromString } from 'libphonenumber-js';\r\n\r\n@Component\r\nexport default class ContactInfoVue extends Vue {\r\n    @Prop()\r\n        dataTypeData!: ContactInfo;\r\n\r\n    getFormattedValue (phoneNumberString: string) : string {\r\n        if (!phoneNumberString) {\r\n            return '';\r\n        }\r\n        const phoneNumber = parsePhoneNumberFromString(phoneNumberString, 'GB');\r\n        if (phoneNumber) {\r\n            if (phoneNumber.country === 'GB') {\r\n                return phoneNumber.formatNational();\r\n            }\r\n            return phoneNumber.formatInternational();\r\n        }\r\n        return phoneNumberString;\r\n    }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./contactInfo.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./contactInfo.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./contactInfo.vue?vue&type=template&id=c2fe8cfc&scoped=true&\"\nimport script from \"./contactInfo.vue?vue&type=script&lang=ts&\"\nexport * from \"./contactInfo.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./contactInfo.vue?vue&type=style&index=0&id=c2fe8cfc&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"c2fe8cfc\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"data list\"},[_c('div',{staticClass:\"tile-content\"},[(_vm.dataTypeData.contributionsByDate && _vm.dataTypeData.contributionsByDate.length)?_c('table',[_vm._m(0),_c('tbody',_vm._l((_vm.dataTypeData.contributionsByDate),function(row){return _c('tr',{key:row.contributionDate},[_c('td',[_vm._v(_vm._s(_vm._f(\"date\")(row.contributionDate)))]),_c('td',[_vm._v(_vm._s(row.numberName))]),_c('td',[_vm._v(_vm._s(_vm._f(\"currency\")(row.numberValue)))])])}),0)]):_c('p',[_vm._v(\"No results found\")])]),_c('div',{staticClass:\"tile-content\"},[_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Total\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(_vm.dataTypeData.total)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Pre 97\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(_vm.dataTypeData.pre97)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Post 97\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(_vm.dataTypeData.post97)))])])])])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('thead',[_c('tr',[_c('th',[_vm._v(\"Date\")]),_c('th',[_vm._v(\"Type\")]),_c('th',[_vm._v(\"Value\")])])])\n}]\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport Contributions from '@/models/memberDataTypes/contributions';\r\n\r\n@Component\r\nexport default class ContributionsVue extends Vue {\r\n    @Prop()\r\n        dataTypeData!: Contributions;\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./contributions.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./contributions.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./contributions.vue?vue&type=template&id=4925ae86&scoped=true&\"\nimport script from \"./contributions.vue?vue&type=script&lang=ts&\"\nexport * from \"./contributions.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./contributions.vue?vue&type=style&index=0&id=4925ae86&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"4925ae86\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"tile-content\"},[_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Line 1\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.dataTypeData.line1))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Line 2\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.dataTypeData.line2))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Line 3\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.dataTypeData.line3))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Line 4\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.dataTypeData.line4))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Country\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.dataTypeData.country))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Postcode\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.dataTypeData.postCode))])])]),_c('div',{staticClass:\"tile-content\"},[_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Effective date\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"date\")(_vm.dataTypeData.effectiveDate)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Confirmed?\")]),_c('div',{staticClass:\"value\",class:_vm.dataTypeData.isConfirmed?.toString()},[_vm._v(_vm._s(_vm.dataTypeData.isConfirmed ? 'Yes' : 'No'))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Do not use for mailing?\")]),_c('div',{staticClass:\"value\",class:_vm.dataTypeData.isNotUsedForMailing?.toString()},[_vm._v(_vm._s(_vm.dataTypeData.isNotUsedForMailing ? 'Yes' : 'No'))])])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport BasicInfo from '@/models/memberDataTypes/basicInfo';\r\n\r\n@Component\r\nexport default class BasicInfoVue extends Vue {\r\n    @Prop()\r\n        dataTypeData!: BasicInfo;\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./current-address.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./current-address.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./current-address.vue?vue&type=template&id=5b132dd6&scoped=true&\"\nimport script from \"./current-address.vue?vue&type=script&lang=ts&\"\nexport * from \"./current-address.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./current-address.vue?vue&type=style&index=0&id=5b132dd6&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"5b132dd6\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{staticClass:\"data list\"},_vm._l((_vm.dataTypeData.balances),function(item,index){return _c('div',{key:index,staticClass:\"list-item tile-content\"},[_c('div',{staticClass:\"list two-col\"},[_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Provider\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(item.provider))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Effective date\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"date\")(item.effectiveDate)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Balance\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(item.balance)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Units\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"decimal\")(item.units)))])])])])}),0)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport DcFunds from '@/models/memberDataTypes/dcFunds';\r\n\r\n@Component\r\nexport default class dcFundsVue extends Vue {\r\n    @Prop()\r\n        dataTypeData!: DcFunds;\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./d-c-funds.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./d-c-funds.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./d-c-funds.vue?vue&type=template&id=2fa2eae8&scoped=true&\"\nimport script from \"./d-c-funds.vue?vue&type=script&lang=ts&\"\nexport * from \"./d-c-funds.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./d-c-funds.vue?vue&type=style&index=0&id=2fa2eae8&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"2fa2eae8\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"data list\"},_vm._l((_vm.items),function(item,index){return _c('div',{key:index,staticClass:\"list-item tile-content\"},[_c('div',{staticClass:\"list\"},[_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Effective Date\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"date\")(item.effectiveDate)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Total\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(item.total)))])]),_vm._l((item.elements),function(element,index){return _c('div',{key:index,staticClass:\"list-item tile-content\"},[_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Source\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(element.source))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Amount\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(element.amount)))])]),(element.comparator > 0)?_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Comparator\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(element.comparator)))])]):_vm._e(),(element.alternativeBenefit > 0)?_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Alternative Benefit\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(element.alternativeBenefit)))])]):_vm._e(),(element.alternativeBenefitComparator > 0)?_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Alternative Benefit Comparator\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(element.alternativeBenefitComparator)))])]):_vm._e()])})],2)])}),0)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport DeferredDataHistory from '@/models/memberDataTypes/deferredDataHistory';\r\n\r\n@Component\r\nexport default class DeferredDataHistoryVue extends Vue {\r\n    @Prop()\r\n        dataTypeData!: DeferredDataHistory;\r\n\r\n    get items () {\r\n        return this.dataTypeData?.items?.sort((a, b) => (a.effectiveDate < b.effectiveDate ? 1 : -1));\r\n    }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./deferred-data-history.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./deferred-data-history.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./deferred-data-history.vue?vue&type=template&id=08fb47a0&scoped=true&\"\nimport script from \"./deferred-data-history.vue?vue&type=script&lang=ts&\"\nexport * from \"./deferred-data-history.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./deferred-data-history.vue?vue&type=style&index=0&id=08fb47a0&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"08fb47a0\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"data list\"},[_c('div',{staticClass:\"tile-content\"},[(_vm.dataTypeData.items && _vm.dataTypeData.items.length)?_c('table',[_c('thead',[_c('tr',[_c('th',[_vm._v(\"Type\")]),_c('th',[_vm._v(\"Amount\")]),(_vm.hasLumpSum)?_c('th',[_vm._v(\"Lump Sum\")]):_vm._e(),(_vm.hasComparator)?_c('th',[_vm._v(\"Comparator\")]):_vm._e(),(_vm.hasAlternativeBenefit)?_c('th',[_vm._v(\"Alternative Benefit\")]):_vm._e(),(_vm.hasAlternativeBenefitComparator)?_c('th',[_vm._v(\"Alternative Benefit Comparator\")]):_vm._e()])]),_c('tbody',_vm._l((_vm.dataTypeData.items),function(row){return _c('tr',{key:row.numberName},[_c('td',[_vm._v(_vm._s(row.numberName))]),_c('td',[_vm._v(_vm._s(_vm._f(\"currency\")(row.numberValue)))]),(_vm.hasLumpSum)?_c('td',[_vm._v(_vm._s(_vm._f(\"currency\")(row.lumpSum)))]):_vm._e(),(_vm.hasComparator)?_c('td',[_vm._v(_vm._s(_vm._f(\"currency\")(row.comparator)))]):_vm._e(),(_vm.hasAlternativeBenefit)?_c('td',[_vm._v(_vm._s(_vm._f(\"currency\")(row.alternativeBenefit)))]):_vm._e(),(_vm.hasAlternativeBenefitComparator)?_c('td',[_vm._v(_vm._s(_vm._f(\"currency\")(row.alternativeBenefitComparator)))]):_vm._e()])}),0)]):_c('p',[_vm._v(\"No results found\")])]),_c('div',{staticClass:\"list-item tile-content\"},[_c('div',{staticClass:\"lis\"},[_c('div',{staticClass:\"list-item tile-content\"},[_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"tile-name label\"},[_vm._v(\"Total\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(_vm.dataTypeData.total)))])])])])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport DeferredDataByCollections from '@/models/memberDataTypes/deferredDataByCollections';\r\n\r\n@Component\r\nexport default class DeferreddatabycollectionsVue extends Vue {\r\n    @Prop()\r\n        dataTypeData!: DeferredDataByCollections;\r\n\r\n    get hasLumpSum () {\r\n        return this.dataTypeData.items.some((x) => 'lumpSum' in x);\r\n    }\r\n\r\n    get hasComparator () {\r\n        return this.dataTypeData.items.some((x) => 'comparator' in x);\r\n    }\r\n\r\n    get hasAlternativeBenefit () {\r\n        return this.dataTypeData.items.some((x) => 'alternativeBenefit' in x);\r\n    }\r\n\r\n    get hasAlternativeBenefitComparator () {\r\n        return this.dataTypeData.items.some((x) => 'alternativeBenefitComparator' in x);\r\n    }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./deferreddatabycollections.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./deferreddatabycollections.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./deferreddatabycollections.vue?vue&type=template&id=efabd116&scoped=true&\"\nimport script from \"./deferreddatabycollections.vue?vue&type=script&lang=ts&\"\nexport * from \"./deferreddatabycollections.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./deferreddatabycollections.vue?vue&type=style&index=0&id=efabd116&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"efabd116\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile-content\"},[_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Original member ID\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"integer\")(_vm.dataTypeData.originalMemberId)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Original service period ID\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"integer\")(_vm.dataTypeData.originalServicePeriodId)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Dependant type\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.dataTypeData.dependantType))])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport DepSetup from '@/models/memberDataTypes/depSetup';\r\n\r\n@Component\r\nexport default class DepSetupVue extends Vue {\r\n    @Prop()\r\n        dataTypeData!: DepSetup;\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./depSetup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./depSetup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./depSetup.vue?vue&type=template&id=0fa16ed4&scoped=true&\"\nimport script from \"./depSetup.vue?vue&type=script&lang=ts&\"\nexport * from \"./depSetup.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./depSetup.vue?vue&type=style&index=0&id=0fa16ed4&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"0fa16ed4\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"row\"},_vm._l((_vm.dataTypeData.earmarkingCollection),function(item,type){return _c('div',{key:type,staticClass:\"tile-content\"},[_c('div',{staticClass:\"list twenty-col\"},[_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Type\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(item.type))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Date\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"date\")(item.date)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Ex-spouse's name\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(item.exSpouseName))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Ex-spouse's date of birth\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"date\")(item.exSpouseDoB)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Ex-spouse's date of birth confirmed?\")]),_c('div',{staticClass:\"value\",class:item.exSpouseDoBConfirmed.toString()},[_vm._v(_vm._s(item.exSpouseDoBConfirmed ? 'Yes' : 'No'))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Ex-spouse's sex\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(item.sex))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Percentage of order\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"twoDpPercentage\")(item.percentageOfOrder)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Amount\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(item.amount)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Earmarking benefit type\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(item.earmarkingBenefitType))])])])])}),0)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport EarmarkingCollections from '@/models/memberDataTypes/earmarkingCollections';\r\n\r\n@Component\r\nexport default class EarmarkingCollectionsVue extends Vue {\r\n    @Prop()\r\n        dataTypeData!: EarmarkingCollections;\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./earmarkingCollections.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./earmarkingCollections.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./earmarkingCollections.vue?vue&type=template&id=f8e54338&scoped=true&\"\nimport script from \"./earmarkingCollections.vue?vue&type=script&lang=ts&\"\nexport * from \"./earmarkingCollections.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./earmarkingCollections.vue?vue&type=style&index=0&id=f8e54338&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"f8e54338\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile-content\"},[_c('table',[_c('thead',[_c('tr',[_c('th',[_vm._v(\"Date\")]),_vm._l((_vm.columnNames),function(column){return _c('th',{key:column},[_vm._v(_vm._s(column))])})],2)]),_c('tbody',_vm._l((_vm.orderedItems),function(item){return _c('tr',{key:item.salaryDate},[_c('td',[_vm._v(_vm._s(_vm._f(\"date\")(item.salaryDate)))]),_vm._l((_vm.columnNames),function(column){return _c('td',{key:_vm.salaryDate + column},[_vm._v(\" \"+_vm._s(_vm._f(\"currency\")(item.salaries.find(a => a.numberName === column)?.numberValue))+\" \")])})],2)}),0)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport Earnings from '@/models/memberDataTypes/earnings';\r\n\r\n@Component\r\nexport default class EarningsVue extends Vue {\r\n    @Prop()\r\n        dataTypeData!: Earnings;\r\n\r\n    get columnNames () {\r\n        const columns = (this.dataTypeData.items?.map((a) => a.salaries?.map((b) => b.numberName) ?? [])).flat();\r\n        return [...new Set(columns)];\r\n    }\r\n\r\n    get orderedItems () {\r\n        return this.dataTypeData.items?.sort((a, b) => (b.salaryDate > a.salaryDate ? 1 : -1));\r\n    }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./earnings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./earnings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./earnings.vue?vue&type=template&id=f844de9e&scoped=true&\"\nimport script from \"./earnings.vue?vue&type=script&lang=ts&\"\nexport * from \"./earnings.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./earnings.vue?vue&type=style&index=0&id=f844de9e&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"f844de9e\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile-content\"},[_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Date contracted out\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"date\")(_vm.dataTypeData.dateContractedOut)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Date contracted out ceased\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"date\")(_vm.dataTypeData.dateContractedOutCeased)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Date Expression of Wish updated\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"date\")(_vm.dataTypeData.dateExpressionOfWishUpdated)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Date Joined Employment\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"date\")(_vm.dataTypeData.dateJoinedEmployment)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Date nomination for dependant pension updated\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"date\")(_vm.dataTypeData.dateNominationForDependantPensionUpdated)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Date Pensionable Service Commenced\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"date\")(_vm.dataTypeData.datePensionableServiceCommenced)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Normal Retirement Date\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"date\")(_vm.dataTypeData.normalRetirementDate)))])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport KeyServicePeriodDates from '@/models/memberDataTypes/keyServicePeriodDates';\r\n\r\n@Component\r\nexport default class KeyServicePeriodDatesVue extends Vue {\r\n    @Prop()\r\n        dataTypeData!: KeyServicePeriodDates;\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./keyServicePeriodDates.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./keyServicePeriodDates.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./keyServicePeriodDates.vue?vue&type=template&id=46dd10a6&scoped=true&\"\nimport script from \"./keyServicePeriodDates.vue?vue&type=script&lang=ts&\"\nexport * from \"./keyServicePeriodDates.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./keyServicePeriodDates.vue?vue&type=style&index=0&id=46dd10a6&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"46dd10a6\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile-content\"},[_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Marital status\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.dataTypeData.maritalStatus))])]),(_vm.dataTypeData.dateOfMarriage)?_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Date of marriage / civil partnership\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"date\")(_vm.dataTypeData.dateOfMarriage)))])]):_vm._e(),(_vm.dataTypeData.dateOfMarriage)?_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Is date of marriage / civil partnership confirmed?\")]),_c('div',{staticClass:\"value\",class:_vm.dataTypeData.isDateOfMarriageConfirmed?.toString()},[_vm._v(_vm._s(_vm.dataTypeData.isDateOfMarriageConfirmed ? 'Yes' : 'No'))])]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport MaritalStatus from '@/models/memberDataTypes/maritalStatus';\r\n\r\n@Component\r\nexport default class MaritalConstructorVue extends Vue {\r\n    @Prop()\r\n        dataTypeData!: MaritalStatus;\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./marital-constructor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./marital-constructor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./marital-constructor.vue?vue&type=template&id=610268d8&scoped=true&\"\nimport script from \"./marital-constructor.vue?vue&type=script&lang=ts&\"\nexport * from \"./marital-constructor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./marital-constructor.vue?vue&type=style&index=0&id=610268d8&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"610268d8\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"data list\"},_vm._l((_vm.dataTypeData.history),function(item,index){return _c('div',{key:index,staticClass:\"list-item tile-content\"},[_c('div',{staticClass:\"list two-col\"},[_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Date\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"date\")(item.date)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Scheme name\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(item.schemeName))])])])])}),0)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport MembershipHistory from '@/models/memberDataTypes/membershipHistory';\r\n\r\n@Component\r\nexport default class MembershipHistoryVue extends Vue {\r\n    @Prop()\r\n        dataTypeData!: MembershipHistory;\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./memberhsipHistory.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./memberhsipHistory.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./memberhsipHistory.vue?vue&type=template&id=eb92f252&scoped=true&\"\nimport script from \"./memberhsipHistory.vue?vue&type=script&lang=ts&\"\nexport * from \"./memberhsipHistory.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./memberhsipHistory.vue?vue&type=style&index=0&id=eb92f252&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"eb92f252\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"data list\"},[_c('div',{staticClass:\"tile-content\"},[(_vm.dataTypeData.items && _vm.dataTypeData.items.length)?_c('table',[_vm._m(0),_c('tbody',_vm._l((_vm.dataTypeData.items),function(row){return _c('tr',{key:row.taxYearFrom},[_c('td',[_vm._v(_vm._s(_vm._f(\"date\")(row.taxYearFrom)))]),_c('td',[_vm._v(_vm._s(_vm._f(\"currency\")(row.amount)))])])}),0)]):_c('p',[_vm._v(\"No results found\")])])])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('thead',[_c('tr',[_c('th',[_vm._v(\"Tax year from\")]),_c('th',[_vm._v(\"Amount\")])])])\n}]\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport NIEarnings from '@/models/memberDataTypes/niEarnings';\r\n\r\n@Component\r\nexport default class NIEarningsVue extends Vue {\r\n    @Prop()\r\n        dataTypeData!: NIEarnings;\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./n-i-earnings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./n-i-earnings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./n-i-earnings.vue?vue&type=template&id=7554af2b&scoped=true&\"\nimport script from \"./n-i-earnings.vue?vue&type=script&lang=ts&\"\nexport * from \"./n-i-earnings.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./n-i-earnings.vue?vue&type=style&index=0&id=7554af2b&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"7554af2b\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"data list\"},_vm._l((_vm.items),function(item,index){return _c('div',{key:index,staticClass:\"list-item tile-content\"},[_c('div',{staticClass:\"list\"},[_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Suspended to\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.getToDate(item.to)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Suspended from\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"date\")(item.from)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Reason\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(item.reason))])])])])}),0)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport PensionSuspensions from '@/models/memberDataTypes/pensionSuspensions';\r\nimport dayjs from 'dayjs';\r\n\r\n@Component\r\nexport default class PensionSuspensionsVue extends Vue {\r\n    @Prop()\r\n        dataTypeData!: PensionSuspensions;\r\n\r\n    get items () {\r\n        return this.dataTypeData?.items?.sort((a, b) => (a.from < b.from ? 1 : -1));\r\n    }\r\n\r\n    getToDate (to: number) {\r\n        return to ? dayjs(new Date(to)).format('DD MMM YYYY') : 'Active';\r\n    }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./penSuspensions.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./penSuspensions.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./penSuspensions.vue?vue&type=template&id=22dd176e&scoped=true&\"\nimport script from \"./penSuspensions.vue?vue&type=script&lang=ts&\"\nexport * from \"./penSuspensions.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./penSuspensions.vue?vue&type=style&index=0&id=22dd176e&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"22dd176e\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"data list\"},_vm._l((_vm.items),function(item,index){return _c('div',{key:index,staticClass:\"list-item tile-content\"},[_c('div',{staticClass:\"list two-col\"},[_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Effective date\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"date\")(item.effectiveDate)))])])]),_vm._l((item.elements),function(element,elementIndex){return _c('div',{key:elementIndex,staticClass:\"list-item bottom-border\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Source\")]),_c('div',{staticClass:\"value long\"},[_vm._v(_vm._s(element.source))])])]),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Amount\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(element.amount || 0)))])])]),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Spouse pension\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(element.spousesAmount || 0)))])])]),_c('div',{staticClass:\"row\"},[(element.ringfenced)?_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Ringfenced\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(element.ringfenced)))])]):_vm._e(),(element.comparator)?_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Comparator\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(element.comparator)))])]):_vm._e()]),_c('div',{staticClass:\"row\"},[(element.spousesRingfenced)?_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Spouse's ringfenced\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(element.spousesRingfenced)))])]):_vm._e(),(element.spousesComparator)?_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Spouse's comparator\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(element.spousesComparator)))])]):_vm._e()])])}),_c('div',{staticClass:\"tile-content\"},[_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Amount total\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(_vm.totalAmount(item.elements))))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Spouse's pension total\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(_vm.totalSpouseAmount(item.elements))))])])])],2)}),0)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport PensionInPayments from '@/models/memberDataTypes/pensionInPayment';\r\n\r\n@Component\r\nexport default class PensionHistoryVue extends Vue {\r\n    @Prop()\r\n        dataTypeData!: PensionInPayments;\r\n\r\n    get items () {\r\n        return this.dataTypeData?.items?.sort((a, b) => (a.effectiveDate < b.effectiveDate ? 1 : -1));\r\n    }\r\n\r\n    totalAmount (items: Array<{ amount: number}>) {\r\n        return items.reduce((a, b) => a + b.amount, 0);\r\n    }\r\n\r\n    totalSpouseAmount (items: Array<{ spousesAmount: number}>) {\r\n        return items.reduce((a, b) => a + b.spousesAmount, 0);\r\n    }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./pension-history.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./pension-history.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./pension-history.vue?vue&type=template&id=25bd94a9&scoped=true&\"\nimport script from \"./pension-history.vue?vue&type=script&lang=ts&\"\nexport * from \"./pension-history.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./pension-history.vue?vue&type=style&index=0&id=25bd94a9&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"25bd94a9\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"row\"},_vm._l((_vm.dataTypeData.items),function(item,type){return _c('div',{key:type,staticClass:\"tile-content\"},[_c('div',{staticClass:\"list twenty-col\"},[_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Type\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(item.type))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Date\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"date\")(item.date)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Ex-spouse's name\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(item.exSpouseName))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Ex-spouse's date of birth\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"date\")(item.exSpouseDoB)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Ex-spouse's date of birth confirmed?\")]),_c('div',{staticClass:\"value\",class:item.exSpouseDoBConfirmed.toString()},[_vm._v(_vm._s(item.exSpouseDoBConfirmed ? 'Yes' : 'No'))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Ex-spouse's sex\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(item.sex))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Percentage of order\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"twoDpPercentage\")(item.percentageOfOrder)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Amount\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(item.amount)))])]),_vm._l((item.pensionSharing.splits),function(number){return _c('div',{key:number.numberName,staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(_vm._s(number.numberName))]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(number.numberValue)))])])}),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Total\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(item.pensionSharing.total)))])])],2)])}),0)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport PensionSharingCollections from '@/models/memberDataTypes/pensionSharingCollections';\r\n\r\n@Component\r\nexport default class PensionSharingCollectionsVue extends Vue {\r\n    @Prop()\r\n        dataTypeData!: PensionSharingCollections;\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./pensionSharingCollections.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./pensionSharingCollections.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./pensionSharingCollections.vue?vue&type=template&id=e9e7ce58&scoped=true&\"\nimport script from \"./pensionSharingCollections.vue?vue&type=script&lang=ts&\"\nexport * from \"./pensionSharingCollections.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./pensionSharingCollections.vue?vue&type=style&index=0&id=e9e7ce58&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"e9e7ce58\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"data list\"},_vm._l((_vm.items),function(item,index){return _c('div',{key:index,staticClass:\"list-item tile-content\"},[_c('div',{staticClass:\"list\"},[_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Certificate type\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(item.type))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Status\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(item.status))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Status date\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"date\")(item.statusDate)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"IPLTA\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(item.iplta)))])])])])}),0)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport ProtectionCerts from '@/models/memberDataTypes/protectionCerts';\r\n\r\n@Component\r\nexport default class ProtectionCertsVue extends Vue {\r\n    @Prop()\r\n        dataTypeData!: ProtectionCerts;\r\n\r\n    get items () {\r\n        return this.dataTypeData?.items?.sort((a, b) => (a.statusDate < b.statusDate ? 1 : -1)) ?? [];\r\n    }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./protection-certs.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./protection-certs.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./protection-certs.vue?vue&type=template&id=206e9f26&scoped=true&\"\nimport script from \"./protection-certs.vue?vue&type=script&lang=ts&\"\nexport * from \"./protection-certs.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./protection-certs.vue?vue&type=style&index=0&id=206e9f26&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"206e9f26\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{staticClass:\"tile-content\"},[_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Has left with no benefit?\")]),_c('div',{staticClass:\"value\",class:_vm.dataTypeData.hasLeftWithNoBenefit?.toString()},[_vm._v(_vm._s(_vm.dataTypeData.hasLeftWithNoBenefit ? 'Yes' : 'No'))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Scheme contributions\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(_vm.dataTypeData.schemeContributions)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"AVCs\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(_vm.dataTypeData.avcs)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Interest / AVC growth\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(_vm.dataTypeData.interestAvcGrowth)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Certified Amount\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(_vm.dataTypeData.certifiedAmount)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Tax\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(_vm.dataTypeData.schemeTax)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"CEP\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(_vm.dataTypeData.cep)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Date CEP paid\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"date\")(_vm.dataTypeData.dateCepPaid)))])]),_vm._v(\" \"),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Date refund paid\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"date\")(_vm.dataTypeData.dateRefundPaid)))])])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport Refunds from '@/models/memberDataTypes/refunds';\r\n\r\n@Component\r\nexport default class refundsVue extends Vue {\r\n    @Prop()\r\n        dataTypeData!: Refunds;\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./refund.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./refund.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./refund.vue?vue&type=template&id=4d2d626a&scoped=true&\"\nimport script from \"./refund.vue?vue&type=script&lang=ts&\"\nexport * from \"./refund.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./refund.vue?vue&type=style&index=0&id=4d2d626a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"4d2d626a\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{staticClass:\"data list\"},_vm._l((_vm.dataTypeData.pensionSources),function(item,index){return _c('div',{key:index,staticClass:\"list-item tile-content\"},[_c('div',{staticClass:\"list two-col\"},[_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Source of pension\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(item.sourceOfPension))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Residual pension\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(item.residualPension)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Spouse pension\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(item.spousePension)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Pension exchanged\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(item.pensionExchanged)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Lump sum taken\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(item.lumpSumTaken)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Expiry date\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"date\")(item.expiryDate)))])])])])}),0)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport PensionSources from '@/models/memberDataTypes/pensionSources';\r\n\r\n@Component\r\nexport default class RetirementEvents extends Vue {\r\n    @Prop()\r\n        dataTypeData!: PensionSources;\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./retirement-event.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./retirement-event.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./retirement-event.vue?vue&type=template&id=74437258&scoped=true&\"\nimport script from \"./retirement-event.vue?vue&type=script&lang=ts&\"\nexport * from \"./retirement-event.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./retirement-event.vue?vue&type=style&index=0&id=74437258&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"74437258\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"data list\"},_vm._l((_vm.items),function(item,index){return _c('div',{key:index,staticClass:\"list-item tile-content\"},[_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Tax year ending\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"date\")(item.taxYearEnding)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Date election form received\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"date\")(item.dateElectionFormReceived)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Type\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(item.type))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Method\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(item.method))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"AA effective date\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"date\")(item.aaEffectiveDate)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Date AA charge paid\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"date\")(item.dateAaChargePaid)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"AA Charge\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(item.aaCharge)))])]),_c('div',{staticClass:\"list-name\"},[_vm._v(\"Scheme Pays debits\")]),_vm._l((item.tranches),function(tranche,trancheIndex){return _c('div',{key:trancheIndex,staticClass:\"list-item\"},[_c('div',{staticClass:\"list two-col\"},[_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Source\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(tranche.numberName))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Amount\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(tranche.numberValue)))])])])])})],2)}),0)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport SchemePays from '@/models/memberDataTypes/schemePays';\r\n\r\n@Component\r\nexport default class SchemePaysVue extends Vue {\r\n    @Prop()\r\n        dataTypeData!: SchemePays;\r\n\r\n    get items () {\r\n        return this.dataTypeData.items?.sort((a, b) => (a.taxYearEnding < b.taxYearEnding ? 1 : -1));\r\n    }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./scheme-pays.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./scheme-pays.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./scheme-pays.vue?vue&type=template&id=d66b7622&scoped=true&\"\nimport script from \"./scheme-pays.vue?vue&type=script&lang=ts&\"\nexport * from \"./scheme-pays.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./scheme-pays.vue?vue&type=style&index=0&id=d66b7622&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"d66b7622\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile-content\"},[_c('table',[_vm._m(0),_c('tbody',_vm._l((_vm.dataTypeData.lumpSumPayments),function(row){return _c('tr',{key:row.date},[_c('td',[_vm._v(_vm._s(_vm._f(\"date\")(row.date)))]),_c('td',[_vm._v(_vm._s(row.type))]),_c('td',[_vm._v(_vm._s(_vm._f(\"currency\")(row.amount)))]),_c('td',[_vm._v(_vm._s(_vm._f(\"currency\")(row.tax)))]),_c('td',[_vm._v(_vm._s(_vm._f(\"currency\")(row.taxablePAYEElement)))])])}),0)])])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('thead',[_c('tr',[_c('th',[_vm._v(\"Date\")]),_c('th',[_vm._v(\"Type\")]),_c('th',[_vm._v(\"Amount\")]),_c('th',[_vm._v(\"Tax\")]),_c('th',[_vm._v(\"Taxable PAYE element\")])])])\n}]\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport LumpSumPayments from '@/models/memberDataTypes/lumpSumPayments';\r\n\r\n@Component\r\nexport default class SinglePaymentsVue extends Vue {\r\n    @Prop()\r\n        dataTypeData!: LumpSumPayments;\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./single-payments.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./single-payments.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./single-payments.vue?vue&type=template&id=539c2b76&scoped=true&\"\nimport script from \"./single-payments.vue?vue&type=script&lang=ts&\"\nexport * from \"./single-payments.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./single-payments.vue?vue&type=style&index=0&id=539c2b76&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"539c2b76\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"data list\"},_vm._l((_vm.items),function(item,index){return _c('div',{key:index,staticClass:\"list-item tile-content\"},[_c('div',{staticClass:\"list\"},[_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Date of change\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"date\")(item.dateOfChange)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Status\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(item.status))])])])])}),0)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport StatusHistory from '@/models/memberDataTypes/statusHistory';\r\n\r\n@Component\r\nexport default class StatusHistoryVue extends Vue {\r\n    @Prop()\r\n        dataTypeData!: StatusHistory;\r\n\r\n    get items () {\r\n        return this.dataTypeData?.items?.sort((a, b) => (a.dateOfChange < b.dateOfChange ? 1 : -1));\r\n    }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./status-history.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./status-history.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./status-history.vue?vue&type=template&id=16fe9195&scoped=true&\"\nimport script from \"./status-history.vue?vue&type=script&lang=ts&\"\nexport * from \"./status-history.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./status-history.vue?vue&type=style&index=0&id=16fe9195&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"16fe9195\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"data list\"},_vm._l((_vm.dataTypeData.items),function(item,date){return _c('div',{key:date,staticClass:\"list-item tile-content\"},[_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Date Paid\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"date\")(item.datePaid)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Type\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(item.type))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Source\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(item.source))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Payee\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(item.payee))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Member Conts\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(item.memberConts)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"LRP Paid\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(item.lrpPaid)))])]),(item.sconAscon)?_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"SCON/ASCON\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(item.sconAscon))])]):_vm._e(),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Country\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(item.country))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"C/O Rights\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(item.coRights)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Amount\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(item.amount)))])])])}),0)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport TVOut from '@/models/memberDataTypes/tvOut';\r\n\r\n@Component\r\nexport default class TVOutVue extends Vue {\r\n    @Prop()\r\n        dataTypeData!: TVOut;\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./t-v-out.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./t-v-out.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./t-v-out.vue?vue&type=template&id=2eab33b2&scoped=true&\"\nimport script from \"./t-v-out.vue?vue&type=script&lang=ts&\"\nexport * from \"./t-v-out.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./t-v-out.vue?vue&type=style&index=0&id=2eab33b2&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"2eab33b2\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"data list\"},_vm._l((_vm.dataTypeData.items),function(item,index){return _c('div',{key:index,staticClass:\"list-item tile-content\"},[_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Reason\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(item.reason))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Date request received\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"date\")(item.dateRequestReceived)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"Calculation date\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"date\")(item.calculationDate)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"DB Transfer Value\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(item.dbTransferValue)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label long\"},[_vm._v(\"AVCs\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(item.avcs)))])])])}),0)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport TVQuote from '@/models/memberDataTypes/tvQuotes';\r\n\r\n@Component\r\nexport default class TVQuotesVue extends Vue {\r\n    @Prop()\r\n        dataTypeData!: TVQuote;\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./t-v-quotes.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./t-v-quotes.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./t-v-quotes.vue?vue&type=template&id=106820e5&scoped=true&\"\nimport script from \"./t-v-quotes.vue?vue&type=script&lang=ts&\"\nexport * from \"./t-v-quotes.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./t-v-quotes.vue?vue&type=style&index=0&id=106820e5&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"106820e5\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"row\"},_vm._l((_vm.dataTypeData.items),function(item,source){return _c('div',{key:source,staticClass:\"tile-content\"},[_c('div',{staticClass:\"list twenty-col\"},[_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Source\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(item.source))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Date received\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"date\")(item.dateReceived)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Amount\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(item.amount)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Member contributions\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(item.memberContributions)))])]),_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Date of leaving\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"date\")(item.dateOfLeaving)))])]),(item.transferInBenefit?.addedPension != null)?_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Added pension\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(item.transferInBenefit.addedPension)))])]):_vm._e(),(item.transferInBenefit?.addedWidowsPension != null)?_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Added widows pension\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(item.transferInBenefit.addedWidowsPension)))])]):_vm._e(),(item.transferInBenefit?.benefitsAddedYears != null)?_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Added years\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(item.transferInBenefit.benefitsAddedYears))])]):_vm._e(),(item.transferInBenefit?.benefitsAddedMonths != null)?_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Added months\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(item.transferInBenefit.benefitsAddedMonths))])]):_vm._e(),(item.transferInBenefit?.benefitsAddedDays != null)?_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Added days\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(item.transferInBenefit.benefitsAddedDays))])]):_vm._e(),(item.transferInBenefit?.cash != null)?_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Cash\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(item.transferInBenefit.cash)))])]):_vm._e(),(item.transferInBenefit?.benefitsPercentageOfSalary != null)?_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Percentage of salary\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"percentage\")(item.transferInBenefit.benefitsPercentageOfSalary)))])]):_vm._e(),(item.transferInGMPBenefit?.pre88GMP != null)?_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Pre 88 GMP\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(item.transferInGMPBenefit.pre88GMP)))])]):_vm._e(),(item.transferInGMPBenefit?.post88GMP != null)?_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Post 88 GMP\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(item.transferInGMPBenefit.post88GMP)))])]):_vm._e(),(item.transferInGMPBenefit?.pre88GMPAtGMPAge != null)?_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Pre 88 GMP at GMP age\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(item.transferInGMPBenefit.pre88GMPAtGMPAge)))])]):_vm._e(),(item.transferInGMPBenefit?.post88GMPAtGMPAge != null)?_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Post 88 GMP at GMP age\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(item.transferInGMPBenefit.post88GMPAtGMPAge)))])]):_vm._e(),(item.transferInGMPBenefit?.coCeased != null)?_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Contracted out ceased\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"date\")(item.transferInGMPBenefit.coCeased)))])]):_vm._e(),(item.transferInGMPBenefit?.ratePreDol != null)?_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Rate pre DOL\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(item.transferInGMPBenefit.ratePreDol))])]):_vm._e(),(item.transferInGMPBenefit?.ratePostDol != null)?_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Rate post DOL\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(item.transferInGMPBenefit.ratePostDol))])]):_vm._e(),(item.transferInGMPBenefit?.nicoAction != null)?_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"NICO action\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(item.transferInGMPBenefit.nicoAction))])]):_vm._e(),(item.transferInGMPBenefit?.revaluedTo != null)?_c('div',{staticClass:\"input-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"Revalued to\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"date\")(item.transferInGMPBenefit.revaluedTo)))])]):_vm._e()])])}),0)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport TransfersIn from '@/models/memberDataTypes/transfersIn';\r\n\r\n@Component\r\nexport default class TVINVue extends Vue {\r\n    @Prop()\r\n        dataTypeData!: TransfersIn;\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./transfersIn.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./transfersIn.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./transfersIn.vue?vue&type=template&id=0a1e5cfd&scoped=true&\"\nimport script from \"./transfersIn.vue?vue&type=script&lang=ts&\"\nexport * from \"./transfersIn.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./transfersIn.vue?vue&type=style&index=0&id=0a1e5cfd&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"0a1e5cfd\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title aqua\"},[_vm._v(\" Modeller interactions by age \")]),_c('info',{attrs:{\"tooltip\":\"Interactions with sliders on the modeller pages grouped by age band\"}}),_c('div',{staticClass:\"tile-content\",class:[{ filtered: _vm.selectedPoint }, `colour-${_vm.selectedColourIndex}`]},[_c('highcharts',{ref:\"chart\",attrs:{\"options\":_vm.chartOptions}}),_c('div',{staticClass:\"total\",class:{ 'has-legend': _vm.showLegend },style:(_vm.centerPos),on:{\"click\":_vm.clearFilter}},[_vm._v(\" \"+_vm._s(_vm.formatNumber(_vm.totalModellerViews))+\" \"),_c('span',{staticClass:\"filter\"},[_vm._v(_vm._s(_vm.selectedPoint))]),_c('span',[_vm._v(\"Interactions\")]),(_vm.selectedPoint)?_c('div',{staticClass:\"return\",on:{\"click\":_vm.clearFilter}},[_c('font-awesome-icon',{attrs:{\"icon\":\"times\"}})],1):_vm._e()]),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport dayjs from 'dayjs';\r\nimport Guid from 'common/util/guid';\r\nimport Highcharts, { Point } from 'highcharts';\r\nimport ColourService from '@/services/colourService';\r\nimport ToggleSwitch from 'common/components/toggle-switch.vue';\r\nimport PieLegend from '@/services/pieLegendService';\r\nimport ModellerStats from '@/models/modellerStats';\r\n\r\n@Component({ components: { ToggleSwitch } })\r\nexport default class ModellerInteractionsByAgePie extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        showLegend!: boolean;\r\n\r\n    @Prop()\r\n        printing!: boolean;\r\n\r\n    viewInteractionsByType = false;\r\n\r\n    selectedPoint: string | null = null;\r\n\r\n    selectedColourIndex: number | null = null;\r\n\r\n    chartCenterX = 0;\r\n\r\n    chartCenterY = 0;\r\n\r\n    ageBands = [\r\n        { min: 101, max: 200, label: '> 100' },\r\n        { min: 91, max: 100 },\r\n        { min: 81, max: 90 },\r\n        { min: 71, max: 80 },\r\n        { min: 61, max: 70 },\r\n        { min: 51, max: 60 },\r\n        { min: 41, max: 50 },\r\n        { min: 31, max: 40 },\r\n        { min: 19, max: 30 },\r\n        { min: 0, max: 18, label: '< 19' },\r\n    ];\r\n\r\n    get loading () {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'modellerStats') || false as boolean;\r\n    }\r\n\r\n    get modellerStats (): Array<ModellerStats> {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'modellerStats');\r\n    }\r\n\r\n    get centerPos () {\r\n        return {\r\n            top: `calc(${this.chartCenterY}px + 1.5rem) !important`,\r\n            left: `calc(${this.chartCenterX}px + 1.5rem) !important`,\r\n        };\r\n    }\r\n\r\n    get totalModellerViews () {\r\n        return this.modellerViewsTranformed?.filter((a) => a.name === this.selectedPoint || !this.selectedPoint)?.reduce((a, b) => a + (b.y ?? 0), 0);\r\n    }\r\n\r\n    get modellerViewsTranformed () {\r\n        if (!this.modellerStats) return null;\r\n        const totals: Record<string, number> = {};\r\n        const counts: Record<string, number> = {};\r\n        this.ageBands.forEach((ageBand) => {\r\n            const key = ageBand.label ?? `${ageBand.min} - ${ageBand.max}`;\r\n            if (!totals[key]) totals[key] = 0;\r\n            if (!counts[key]) counts[key] = 0;\r\n\r\n            this.modellerStats.forEach((date) => {\r\n                date.ageGroupInteractions.forEach((section) => {\r\n                    Object.keys(section.dataByAge).forEach((age) => {\r\n                        if (Number(age) >= ageBand.min && Number(age) <= ageBand.max) {\r\n                            totals[key] += section.dataByAge[age];\r\n                            counts[key] += 1;\r\n                        }\r\n                    });\r\n                });\r\n            });\r\n        });\r\n        return Object.keys(totals)\r\n            .filter((a) => totals[a])\r\n            .map((seriesName) => ({\r\n                name: seriesName,\r\n                y: (totals[seriesName] ?? 0),\r\n                color: ColourService.getSeriesColour('age', seriesName),\r\n            }));\r\n    }\r\n\r\n    pointClicked (point: Point) {\r\n        this.selectedColourIndex = point.colorIndex;\r\n        this.selectedPoint = point.name === this.selectedPoint ? null : point.name;\r\n        this.$emit('pointSelected', { category: 'modellerInteractions', series: this.selectedPoint });\r\n    }\r\n\r\n    formatNumber (number?: string | number) {\r\n        return Math.round(Number(number ?? 0)).toLocaleString('en');\r\n    }\r\n\r\n    clearFilter () {\r\n        (this.$refs.chart as unknown as { chart: Highcharts.Chart }).chart.series[0].points.forEach((a) => a.select(false));\r\n        this.selectedPoint = null;\r\n        this.$emit('pointSelected', { category: 'modellerInteractions', series: this.selectedPoint });\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n        // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n        const self = this;\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                height: 444,\r\n                type: 'pie',\r\n                backgroundColor: 'transparent',\r\n                events: {\r\n                    load () {\r\n                        const series = this.series[0] as unknown as { center: Array<number> };\r\n                        const x = this.plotLeft + series.center[0];\r\n                        const y = this.plotTop + series.center[1];\r\n                        self.chartCenterX = x;\r\n                        self.chartCenterY = y;\r\n                    },\r\n                    redraw () {\r\n                        const series = this.series[0] as unknown as { center: Array<number> };\r\n                        const x = this.plotLeft + series.center[0];\r\n                        const y = this.plotTop + series.center[1];\r\n                        self.chartCenterX = x;\r\n                        self.chartCenterY = y;\r\n                    },\r\n                },\r\n            },\r\n            xAxis: {\r\n                labels: {\r\n                    formatter: ((that) => dayjs(that.value).format('DD MMM')),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            yAxis: {\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            legend: this.showLegend ? PieLegend.get().legend : {\r\n                enabled: false,\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            plotOptions: {\r\n                pie: {\r\n                    dataLabels: {\r\n                        enabled: false,\r\n                    },\r\n                    allowPointSelect: true,\r\n                    showInLegend: true,\r\n                    borderWidth: 0,\r\n                    point: {\r\n                        events: {\r\n                            legendItemClick: (event) => {\r\n                                event.preventDefault();\r\n                                event.target.select(!event.target.selected);\r\n                                this.pointClicked(event.target);\r\n                            },\r\n                        },\r\n                    },\r\n                },\r\n            },\r\n            series: [{\r\n                type: 'pie',\r\n                name: 'Modeller interactions',\r\n                innerSize: '70%',\r\n                slicedOffset: 5,\r\n                data: this.modellerViewsTranformed!,\r\n                events: {\r\n                    click: (event) => { this.pointClicked(event.point); },\r\n                },\r\n            }],\r\n        };\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./modeller-interactions-by-age-pie.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./modeller-interactions-by-age-pie.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./modeller-interactions-by-age-pie.vue?vue&type=template&id=4e233bb8&scoped=true&\"\nimport script from \"./modeller-interactions-by-age-pie.vue?vue&type=script&lang=ts&\"\nexport * from \"./modeller-interactions-by-age-pie.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./modeller-interactions-by-age-pie.vue?vue&type=style&index=0&id=4e233bb8&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"4e233bb8\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title aqua\"},[_vm._v(\" Modeller interactions by age \")]),_c('info',{attrs:{\"tooltip\":\"Interactions with sliders on the modeller pages grouped by age band over the period\"}}),_c('div',{staticClass:\"tile-content\"},[_c('div',{staticClass:\"spacer\"}),_c('highcharts',{attrs:{\"options\":_vm.chartOptions}}),(!_vm.chartOptions.series || !_vm.chartOptions.series.length)?_c('div',{staticClass:\"no-data\"},[_c('strong',[_vm._v(\"0\")]),_vm._v(\" Modeller interactions\")]):_vm._e(),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport Guid from 'common/util/guid';\r\nimport dayjs from 'dayjs';\r\nimport ColourService from '@/services/colourService';\r\nimport ModellerStats from '@/models/modellerStats';\r\nimport Highcharts from 'highcharts';\r\n\r\n@Component\r\nexport default class ModellerInteractionsByAgeChart extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        filter!: string | null;\r\n\r\n    @Prop()\r\n        printing!: boolean;\r\n\r\n    viewByType = true;\r\n\r\n    ageBands = [\r\n        { min: 101, max: 200, label: '> 100' },\r\n        { min: 91, max: 100 },\r\n        { min: 81, max: 90 },\r\n        { min: 71, max: 80 },\r\n        { min: 61, max: 70 },\r\n        { min: 51, max: 60 },\r\n        { min: 41, max: 50 },\r\n        { min: 31, max: 40 },\r\n        { min: 19, max: 30 },\r\n        { min: 0, max: 18, label: '< 19' },\r\n    ];\r\n\r\n    get modellerStatistics (): Array<ModellerStats> | null {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'modellerStats');\r\n    }\r\n\r\n    get loading (): boolean {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'modellerStats');\r\n    }\r\n\r\n    get colours () {\r\n        return ColourService.colours;\r\n    }\r\n\r\n    get modellerInteractionPages () {\r\n        if (!this.modellerStatistics) return [];\r\n        const pages: Array<string> = [];\r\n        this.modellerStatistics.forEach((row) => {\r\n            pages.push(...row.ageGroupInteractions.map((a) => a.interactionName));\r\n        });\r\n        return [...new Set(pages)];\r\n    }\r\n\r\n    get modellerStatisticsTransformed () {\r\n        if (!this.modellerStatistics) return null;\r\n        const vals: Array<{ name: string; data: number[]; type: 'column'; color: string }> = [];\r\n\r\n        this.ageBands.forEach((ageBand) => {\r\n            let ageTotal = 0;\r\n            const ageBandData: Array<number> = [];\r\n            if (this.viewByType) {\r\n                this.modellerInteractionPages.forEach((page) => {\r\n                    let total = 0;\r\n                    this.modellerStatistics!.forEach((row) => {\r\n                        const section = row.ageGroupInteractions.find((a) => a.interactionName === page)?.dataByAge;\r\n                        Object.keys(section || {}).forEach((age) => {\r\n                            if (Number(age) >= ageBand.min && Number(age) <= ageBand.max) {\r\n                                total += section![age];\r\n                            }\r\n                        });\r\n                    });\r\n                    ageBandData.push(total);\r\n                    ageTotal += total;\r\n                });\r\n            } else {\r\n                this.modellerStatistics!.forEach((row) => {\r\n                    let total = 0;\r\n                    row.ageGroupInteractions.forEach((section) => {\r\n                        Object.keys(section.dataByAge ?? {}).forEach((age) => {\r\n                            if (Number(age) >= ageBand.min && Number(age) <= ageBand.max) {\r\n                                total += section.dataByAge[age];\r\n                            }\r\n                        });\r\n                    });\r\n                    ageBandData.push(total);\r\n                    ageTotal += total;\r\n                });\r\n            }\r\n            if (ageTotal === 0) return;\r\n            if (!this.filter || this.filter === (ageBand.label ?? `${ageBand.min} - ${ageBand.max}`)) {\r\n                vals.push({\r\n                    name: ageBand.label ?? `${ageBand.min} - ${ageBand.max}`,\r\n                    type: 'column',\r\n                    data: ageBandData,\r\n                    color: ColourService.getSeriesColour('age', ageBand.label ?? `${ageBand.min} - ${ageBand.max}`),\r\n                });\r\n            }\r\n        });\r\n\r\n        return vals;\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                type: 'column',\r\n            },\r\n            xAxis: {\r\n                categories: this.viewByType ? this.modellerInteractionPages : this.modellerStatistics?.map((a) => dayjs(a.fromDate).format('DD MMM YYYY')),\r\n                labels: {\r\n                    formatter: ((that) => (this.viewByType ? this.formatInteraction(that.value as string) : dayjs(that.value).format('DD MMM'))),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            yAxis: {\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            legend: {\r\n                enabled: true,\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            colors: this.colours,\r\n            plotOptions: {\r\n                column: {\r\n                    stacking: this.viewByType ? undefined : 'normal',\r\n                },\r\n            },\r\n            series: this.modellerStatisticsTransformed || [],\r\n        };\r\n    }\r\n\r\n    formatInteraction (interaction: string) {\r\n        const result = interaction.replace(/([A-Z])/g, ' $1');\r\n        return result.charAt(0).toUpperCase() + result.slice(1);\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./modeller-interactions-by-age.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./modeller-interactions-by-age.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./modeller-interactions-by-age.vue?vue&type=template&id=59bbd9e9&scoped=true&\"\nimport script from \"./modeller-interactions-by-age.vue?vue&type=script&lang=ts&\"\nexport * from \"./modeller-interactions-by-age.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./modeller-interactions-by-age.vue?vue&type=style&index=0&id=59bbd9e9&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"59bbd9e9\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title aqua\"},[_vm._v(\" Time spent in modeller by age \")]),_c('info',{attrs:{\"tooltip\":\"Average time spent on modeller pages grouped by age band\"}}),_c('div',{staticClass:\"tile-content\",class:[{ filtered: _vm.selectedPoint }, `colour-${_vm.selectedColourIndex}`]},[_c('highcharts',{ref:\"chart\",attrs:{\"options\":_vm.chartOptions}}),_c('div',{staticClass:\"total\",class:{ 'has-legend': _vm.showLegend },style:(_vm.centerPos),on:{\"click\":_vm.clearFilter}},[_vm._v(\" \"+_vm._s(_vm.formatNumber(_vm.totalModellerViews))+\" \"),_c('span',{staticClass:\"filter\"},[_vm._v(_vm._s(_vm.selectedPoint))]),_c('span',[_vm._v(\"Average seconds spent\")]),(_vm.selectedPoint)?_c('div',{staticClass:\"return\",on:{\"click\":_vm.clearFilter}},[_c('font-awesome-icon',{attrs:{\"icon\":\"times\"}})],1):_vm._e()]),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport dayjs from 'dayjs';\r\nimport Guid from 'common/util/guid';\r\nimport Highcharts, { Point } from 'highcharts';\r\nimport ColourService from '@/services/colourService';\r\nimport ToggleSwitch from 'common/components/toggle-switch.vue';\r\nimport PieLegend from '@/services/pieLegendService';\r\nimport ModellerStats from '@/models/modellerStats';\r\n\r\n@Component({ components: { ToggleSwitch } })\r\nexport default class ModelelrTimesByAgePie extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        showLegend!: boolean;\r\n\r\n    @Prop()\r\n        printing!: boolean;\r\n\r\n    viewTimesByPage = false;\r\n\r\n    selectedPoint: string | null = null;\r\n\r\n    selectedColourIndex: number | null = null;\r\n\r\n    chartCenterX = 0;\r\n\r\n    chartCenterY = 0;\r\n\r\n    ageBands = [\r\n        { min: 101, max: 200, label: '> 100' },\r\n        { min: 91, max: 100 },\r\n        { min: 81, max: 90 },\r\n        { min: 71, max: 80 },\r\n        { min: 61, max: 70 },\r\n        { min: 51, max: 60 },\r\n        { min: 41, max: 50 },\r\n        { min: 31, max: 40 },\r\n        { min: 19, max: 30 },\r\n        { min: 0, max: 18, label: '< 19' },\r\n    ];\r\n\r\n    get loading () {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'modellerStats') || false as boolean;\r\n    }\r\n\r\n    get modellerStats (): Array<ModellerStats> {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'modellerStats');\r\n    }\r\n\r\n    get centerPos () {\r\n        return {\r\n            top: `calc(${this.chartCenterY}px + 1.5rem) !important`,\r\n            left: `calc(${this.chartCenterX}px + 1.5rem) !important`,\r\n        };\r\n    }\r\n\r\n    get totalModellerViews () {\r\n        return this.modellerViewsTranformed?.filter((a) => a.name === this.selectedPoint || !this.selectedPoint)?.reduce((a, b) => a + (b.y ?? 0), 0);\r\n    }\r\n\r\n    get modellerViewsTranformed () {\r\n        if (!this.modellerStats) return null;\r\n\r\n        const totals: Record<string, number> = {};\r\n        const counts: Record<string, number> = {};\r\n\r\n        this.ageBands.forEach((ageBand) => {\r\n            const key = ageBand.label ?? `${ageBand.min} - ${ageBand.max}`;\r\n            if (!totals[key]) totals[key] = 0;\r\n            if (!counts[key]) counts[key] = 0;\r\n\r\n            this.modellerStats.forEach((date) => {\r\n                date.ageGroupSections.forEach((section) => {\r\n                    if (section.sectionName !== 'Print summary?'\r\n                        && section.sectionName !== 'Request an illustration?'\r\n                        && section.sectionName !== 'Introduction'\r\n                        && section.sectionName !== 'introduction') {\r\n                        Object.keys(section.timesByAge).forEach((age) => {\r\n                            if (Number(age) >= ageBand.min && Number(age) <= ageBand.max) {\r\n                                totals[key] += section.timesByAge[age];\r\n                            }\r\n                        });\r\n                    }\r\n                });\r\n\r\n                Object.keys(date.visitsByAge).forEach((age) => {\r\n                    if (Number(age) >= ageBand.min && Number(age) <= ageBand.max) {\r\n                        counts[key] += date.visitsByAge[age];\r\n                    }\r\n                });\r\n            });\r\n        });\r\n\r\n        return Object.keys(totals)\r\n            .filter((a) => totals[a])\r\n            .map((seriesName) => ({\r\n                name: seriesName,\r\n                y: Math.round(((totals[seriesName] ?? 0) / (counts[seriesName] || 1)) * 100) / 100,\r\n                color: ColourService.getSeriesColour('age', seriesName),\r\n            }));\r\n    }\r\n\r\n    pointClicked (point: Point) {\r\n        this.selectedColourIndex = point.colorIndex;\r\n        this.selectedPoint = point.name === this.selectedPoint ? null : point.name;\r\n        this.$emit('pointSelected', { category: 'modellerPageTimes', series: this.selectedPoint });\r\n    }\r\n\r\n    clearFilter () {\r\n        (this.$refs.chart as unknown as { chart: Highcharts.Chart }).chart.series[0].points.forEach((a) => a.select(false));\r\n        this.selectedPoint = null;\r\n        this.$emit('pointSelected', { category: 'modellerPageTimes', series: this.selectedPoint });\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n        // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n        const self = this;\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                height: 444,\r\n                type: 'pie',\r\n                backgroundColor: 'transparent',\r\n                events: {\r\n                    load () {\r\n                        const series = this.series[0] as unknown as { center: Array<number> };\r\n                        const x = this.plotLeft + series.center[0];\r\n                        const y = this.plotTop + series.center[1];\r\n                        self.chartCenterX = x;\r\n                        self.chartCenterY = y;\r\n                    },\r\n                    redraw () {\r\n                        const series = this.series[0] as unknown as { center: Array<number> };\r\n                        const x = this.plotLeft + series.center[0];\r\n                        const y = this.plotTop + series.center[1];\r\n                        self.chartCenterX = x;\r\n                        self.chartCenterY = y;\r\n                    },\r\n                },\r\n            },\r\n            xAxis: {\r\n                labels: {\r\n                    formatter: ((that) => dayjs(that.value).format('DD MMM')),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            yAxis: {\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            legend: this.showLegend ? PieLegend.get().legend : {\r\n                enabled: false,\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            plotOptions: {\r\n                pie: {\r\n                    dataLabels: {\r\n                        enabled: false,\r\n                    },\r\n                    allowPointSelect: true,\r\n                    showInLegend: true,\r\n                    borderWidth: 0,\r\n                    point: {\r\n                        events: {\r\n                            legendItemClick: (event) => {\r\n                                event.preventDefault();\r\n                                event.target.select(!event.target.selected);\r\n                                this.pointClicked(event.target);\r\n                            },\r\n                        },\r\n                    },\r\n                },\r\n            },\r\n            series: [{\r\n                type: 'pie',\r\n                name: 'Modeller average times (s)',\r\n                innerSize: '70%',\r\n                slicedOffset: 5,\r\n                data: this.modellerViewsTranformed!,\r\n                events: {\r\n                    click: (event) => { this.pointClicked(event.point); },\r\n                },\r\n            }],\r\n        };\r\n    }\r\n\r\n    formatNumber (number?: string | number) {\r\n        return Math.round(Number(number ?? 0)).toLocaleString('en');\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./modeller-times-by-age-pie.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./modeller-times-by-age-pie.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./modeller-times-by-age-pie.vue?vue&type=template&id=b3f90bbe&scoped=true&\"\nimport script from \"./modeller-times-by-age-pie.vue?vue&type=script&lang=ts&\"\nexport * from \"./modeller-times-by-age-pie.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./modeller-times-by-age-pie.vue?vue&type=style&index=0&id=b3f90bbe&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"b3f90bbe\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title aqua\"},[_vm._v(\" Time spent on modeller pages by age \")]),_c('info',{attrs:{\"tooltip\":\"Average time spent on modeller pages grouped by age band\"}}),_c('div',{staticClass:\"tile-content\"},[_c('div',{staticClass:\"spacer\"}),_c('highcharts',{attrs:{\"options\":_vm.chartOptions}}),(!_vm.chartOptions.series || !_vm.chartOptions.series.length)?_c('div',{staticClass:\"no-data\"},[_c('strong',[_vm._v(\"0\")]),_vm._v(\" Pages viewed\")]):_vm._e(),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport Guid from 'common/util/guid';\r\nimport dayjs from 'dayjs';\r\nimport ColourService from '@/services/colourService';\r\nimport ModellerStats from '@/models/modellerStats';\r\nimport Highcharts from 'highcharts';\r\n\r\n@Component\r\nexport default class ModellerTimesByAgeChart extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        filter!: string | null;\r\n\r\n    @Prop()\r\n        printing!: boolean;\r\n\r\n    viewByPage = true;\r\n\r\n    ageBands = [\r\n        { min: 101, max: 200, label: '> 100' },\r\n        { min: 91, max: 100 },\r\n        { min: 81, max: 90 },\r\n        { min: 71, max: 80 },\r\n        { min: 61, max: 70 },\r\n        { min: 51, max: 60 },\r\n        { min: 41, max: 50 },\r\n        { min: 31, max: 40 },\r\n        { min: 19, max: 30 },\r\n        { min: 0, max: 18, label: '< 19' },\r\n    ];\r\n\r\n    get modellerData (): Array<ModellerStats> | null {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'modellerStats');\r\n    }\r\n\r\n    get loading (): boolean {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'modellerStats');\r\n    }\r\n\r\n    get colours () {\r\n        return ColourService.colours;\r\n    }\r\n\r\n    get documentTypes () {\r\n        if (!this.modellerData) return [];\r\n        const pages: Array<string> = [];\r\n        this.modellerData.forEach((row) => {\r\n            pages.push(...row.ageGroupSections.map((a) => a.sectionName));\r\n        });\r\n\r\n        const filteredPages = pages.filter((value) => value !== 'Print summary?'\r\n            && value !== 'Request an illustration?'\r\n            && value !== 'Introduction'\r\n            && value !== 'introduction');\r\n\r\n        return [...new Set(filteredPages)];\r\n    }\r\n\r\n    get modellerDataTransformed () {\r\n        if (!this.modellerData) return null;\r\n        const vals: Array<{ name: string; data: number[]; type: 'column'; color: string }> = [];\r\n\r\n        this.ageBands.forEach((ageBand) => {\r\n            const ageBandData: Array<number> = [];\r\n            let ageTotal = 0;\r\n            if (this.viewByPage) {\r\n                this.documentTypes.forEach((page) => {\r\n                    let total = 0;\r\n                    let count = 0;\r\n                    this.modellerData!.forEach((row) => {\r\n                        const timesByAge = row.ageGroupSections.find((a) => a.sectionName === page)?.timesByAge;\r\n                        Object.keys(timesByAge || {}).forEach((age) => {\r\n                            if (Number(age) >= ageBand.min && Number(age) <= ageBand.max) {\r\n                                total += timesByAge![age];\r\n                            }\r\n                        });\r\n\r\n                        const visitsByAge = row.ageGroupSections.find((a) => a.sectionName === page)?.viewsByAge;\r\n                        Object.keys(visitsByAge || {}).forEach((age) => {\r\n                            if (Number(age) >= ageBand.min && Number(age) <= ageBand.max) {\r\n                                count += visitsByAge![age];\r\n                            }\r\n                        });\r\n                    });\r\n\r\n                    ageTotal += total;\r\n\r\n                    const result = Math.ceil(total / count);\r\n                    ageBandData.push(result);\r\n                });\r\n            } else {\r\n                this.modellerData!.forEach((row) => {\r\n                    let total = 0;\r\n                    let count = 0;\r\n                    row.ageGroupSections.forEach((section) => {\r\n                        Object.keys(section.timesByAge ?? {}).forEach((age) => {\r\n                            if (Number(age) >= ageBand.min && Number(age) <= ageBand.max) {\r\n                                total += section.timesByAge[age];\r\n                            }\r\n                        });\r\n\r\n                        Object.keys(section.viewsByAge ?? {}).forEach((age) => {\r\n                            if (Number(age) >= ageBand.min && Number(age) <= ageBand.max) {\r\n                                count += section.viewsByAge[age];\r\n                            }\r\n                        });\r\n                    });\r\n\r\n                    ageTotal += total;\r\n\r\n                    const result = Math.ceil(total / count);\r\n                    ageBandData.push(result);\r\n                });\r\n            }\r\n\r\n            if (ageTotal === 0) {\r\n                return;\r\n            }\r\n\r\n            if (!this.filter || this.filter === (ageBand.label ?? `${ageBand.min} - ${ageBand.max}`)) {\r\n                vals.push({\r\n                    name: ageBand.label ?? `${ageBand.min} - ${ageBand.max}`,\r\n                    type: 'column',\r\n                    data: ageBandData,\r\n                    color: ColourService.getSeriesColour('age', ageBand.label ?? `${ageBand.min} - ${ageBand.max}`),\r\n                });\r\n            }\r\n        });\r\n\r\n        return vals;\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                type: 'column',\r\n            },\r\n            xAxis: {\r\n                categories: this.viewByPage ? this.documentTypes : this.modellerData?.map((a) => dayjs(a.fromDate).format('DD MMM YYYY')),\r\n                labels: {\r\n                    formatter: ((that) => (this.viewByPage ? this.formatSectionName(that.value as string) : dayjs(that.value).format('DD MMM'))),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            yAxis: {\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            legend: {\r\n                enabled: true,\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            colors: this.colours,\r\n            plotOptions: {\r\n                column: {\r\n                    stacking: this.viewByPage ? undefined : 'normal',\r\n                },\r\n            },\r\n            series: this.modellerDataTransformed || [],\r\n        };\r\n    }\r\n\r\n    formatSectionName (sectionName: string) {\r\n        switch (sectionName) {\r\n            case 'Your pension benefits':\r\n                return 'Retirement pension';\r\n            case 'Get a cash lump sum on retirement?':\r\n                return 'Retirement cash lump sum';\r\n            case 'Your retirement benefits':\r\n                return 'Retirement pension age';\r\n            case 'Introduction':\r\n            case 'introduction':\r\n                return 'Transfer value';\r\n            default:\r\n                return sectionName;\r\n        }\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./modeller-times-by-age.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./modeller-times-by-age.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./modeller-times-by-age.vue?vue&type=template&id=7c582e78&scoped=true&\"\nimport script from \"./modeller-times-by-age.vue?vue&type=script&lang=ts&\"\nexport * from \"./modeller-times-by-age.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./modeller-times-by-age.vue?vue&type=style&index=0&id=7c582e78&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"7c582e78\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title aqua\"},[_vm._v(\" Modeller visits by age \")]),_c('info',{attrs:{\"tooltip\":\"Total number of modeller visits grouped by age band\"}}),_c('div',{staticClass:\"tile-content\",class:[{ filtered: _vm.selectedPoint }, `colour-${_vm.selectedColourIndex}`]},[_c('highcharts',{ref:\"chart\",attrs:{\"options\":_vm.chartOptions}}),_c('div',{staticClass:\"total\",class:{ 'has-legend': _vm.showLegend },style:(_vm.centerPos),on:{\"click\":_vm.clearFilter}},[_vm._v(\" \"+_vm._s(_vm.totalModellerViews)+\" \"),_c('span',{staticClass:\"filter\"},[_vm._v(_vm._s(_vm.selectedPoint))]),_c('span',[_vm._v(\"Modeller visits\")]),(_vm.selectedPoint)?_c('div',{staticClass:\"return\",on:{\"click\":_vm.clearFilter}},[_c('font-awesome-icon',{attrs:{\"icon\":\"times\"}})],1):_vm._e()]),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport dayjs from 'dayjs';\r\nimport Guid from 'common/util/guid';\r\nimport Highcharts, { Point } from 'highcharts';\r\nimport ColourService from '@/services/colourService';\r\nimport ToggleSwitch from 'common/components/toggle-switch.vue';\r\nimport PieLegend from '@/services/pieLegendService';\r\nimport ModellerStats from '@/models/modellerStats';\r\n\r\n@Component({ components: { ToggleSwitch } })\r\nexport default class PayslipViewsByStatusPie extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        showLegend!: boolean;\r\n\r\n    @Prop()\r\n        printing!: boolean;\r\n\r\n    viewViewsByPage = false;\r\n\r\n    selectedPoint: string | null = null;\r\n\r\n    selectedColourIndex: number | null = null;\r\n\r\n    chartCenterX = 0;\r\n\r\n    chartCenterY = 0;\r\n\r\n    ageBands = [\r\n        { min: 101, max: 200, label: '> 100' },\r\n        { min: 91, max: 100 },\r\n        { min: 81, max: 90 },\r\n        { min: 71, max: 80 },\r\n        { min: 61, max: 70 },\r\n        { min: 51, max: 60 },\r\n        { min: 41, max: 50 },\r\n        { min: 31, max: 40 },\r\n        { min: 19, max: 30 },\r\n        { min: 0, max: 18, label: '< 19' },\r\n    ];\r\n\r\n    get loading () {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'modellerStats') || false as boolean;\r\n    }\r\n\r\n    get modellerStats (): Array<ModellerStats> {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'modellerStats');\r\n    }\r\n\r\n    get centerPos () {\r\n        return {\r\n            top: `calc(${this.chartCenterY}px + 1.5rem) !important`,\r\n            left: `calc(${this.chartCenterX}px + 1.5rem) !important`,\r\n        };\r\n    }\r\n\r\n    get totalModellerViews () {\r\n        return this.modellerViewsTranformed?.filter((a) => a.name === this.selectedPoint || !this.selectedPoint)?.reduce((a, b) => a + (b.y ?? 0), 0);\r\n    }\r\n\r\n    get modellerViewsTranformed () {\r\n        if (!this.modellerStats) return null;\r\n        const totals: Record<string, number> = {};\r\n        this.ageBands.forEach((ageBand) => {\r\n            const key = ageBand.label ?? `${ageBand.min} - ${ageBand.max}`;\r\n            if (!totals[key]) totals[key] = 0;\r\n\r\n            this.modellerStats.forEach((date) => {\r\n                Object.keys(date.visitsByAge).forEach((age) => {\r\n                    if (Number(age) >= ageBand.min && Number(age) <= ageBand.max) {\r\n                        totals[key] += date.visitsByAge[age];\r\n                    }\r\n                });\r\n            });\r\n        });\r\n        return Object.keys(totals)\r\n            .filter((a) => totals[a])\r\n            .map((seriesName) => ({\r\n                name: seriesName,\r\n                y: totals[seriesName],\r\n                color: ColourService.getSeriesColour('age', seriesName),\r\n            }));\r\n    }\r\n\r\n    pointClicked (point: Point) {\r\n        this.selectedColourIndex = point.colorIndex;\r\n        this.selectedPoint = point.name === this.selectedPoint ? null : point.name;\r\n        this.$emit('pointSelected', { category: 'modellerPageViews', series: this.selectedPoint });\r\n    }\r\n\r\n    clearFilter () {\r\n        (this.$refs.chart as unknown as { chart: Highcharts.Chart }).chart.series[0].points.forEach((a) => a.select(false));\r\n        this.selectedPoint = null;\r\n        this.$emit('pointSelected', { category: 'modellerPageViews', series: this.selectedPoint });\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n        // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n        const self = this;\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                height: 444,\r\n                type: 'pie',\r\n                backgroundColor: 'transparent',\r\n                events: {\r\n                    load () {\r\n                        const series = this.series[0] as unknown as { center: Array<number> };\r\n                        const x = this.plotLeft + series.center[0];\r\n                        const y = this.plotTop + series.center[1];\r\n                        self.chartCenterX = x;\r\n                        self.chartCenterY = y;\r\n                    },\r\n                    redraw () {\r\n                        const series = this.series[0] as unknown as { center: Array<number> };\r\n                        const x = this.plotLeft + series.center[0];\r\n                        const y = this.plotTop + series.center[1];\r\n                        self.chartCenterX = x;\r\n                        self.chartCenterY = y;\r\n                    },\r\n                },\r\n            },\r\n            xAxis: {\r\n                labels: {\r\n                    formatter: ((that) => dayjs(that.value).format('DD MMM')),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            yAxis: {\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            legend: this.showLegend ? PieLegend.get().legend : {\r\n                enabled: false,\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            plotOptions: {\r\n                pie: {\r\n                    dataLabels: {\r\n                        enabled: false,\r\n                    },\r\n                    allowPointSelect: true,\r\n                    showInLegend: true,\r\n                    borderWidth: 0,\r\n                    point: {\r\n                        events: {\r\n                            legendItemClick: (event) => {\r\n                                event.preventDefault();\r\n                                event.target.select(!event.target.selected);\r\n                                this.pointClicked(event.target);\r\n                            },\r\n                        },\r\n                    },\r\n                },\r\n            },\r\n            series: [{\r\n                type: 'pie',\r\n                name: 'Modeller visits',\r\n                innerSize: '70%',\r\n                slicedOffset: 5,\r\n                data: this.modellerViewsTranformed!,\r\n                events: {\r\n                    click: (event) => { this.pointClicked(event.point); },\r\n                },\r\n            }],\r\n        };\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./modeller-visits-by-age-pie.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./modeller-visits-by-age-pie.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./modeller-visits-by-age-pie.vue?vue&type=template&id=40307eed&scoped=true&\"\nimport script from \"./modeller-visits-by-age-pie.vue?vue&type=script&lang=ts&\"\nexport * from \"./modeller-visits-by-age-pie.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./modeller-visits-by-age-pie.vue?vue&type=style&index=0&id=40307eed&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"40307eed\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title aqua\"},[_vm._v(\" Modeller visits by age \")]),_c('info',{attrs:{\"tooltip\":\"Total number of web modeller visits grouped by age band over the period\"}}),_c('div',{staticClass:\"tile-content\"},[(!_vm.printing)?_c('toggle-switch',{attrs:{\"name\":\"View by page\"},on:{\"click\":function($event){return _vm.$emit('viewViewsByPage', _vm.viewViewsByPage)}},model:{value:(_vm.viewByPage),callback:function ($$v) {_vm.viewByPage=$$v},expression:\"viewByPage\"}}):_vm._e(),_c('highcharts',{attrs:{\"options\":_vm.chartOptions}}),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport Guid from 'common/util/guid';\r\nimport dayjs from 'dayjs';\r\nimport ColourService from '@/services/colourService';\r\nimport ModellerStats from '@/models/modellerStats';\r\nimport Highcharts from 'highcharts';\r\n\r\n@Component\r\nexport default class ModellerVisitsByAge extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        filter!: string | null;\r\n\r\n    @Prop()\r\n        printing!: boolean;\r\n\r\n    viewByPage = false;\r\n\r\n    ageBands = [\r\n        { min: 101, max: 200, label: '> 100' },\r\n        { min: 91, max: 100 },\r\n        { min: 81, max: 90 },\r\n        { min: 71, max: 80 },\r\n        { min: 61, max: 70 },\r\n        { min: 51, max: 60 },\r\n        { min: 41, max: 50 },\r\n        { min: 31, max: 40 },\r\n        { min: 19, max: 30 },\r\n        { min: 0, max: 18, label: '< 19' },\r\n    ];\r\n\r\n    get modellerVisits (): Array<ModellerStats> | null {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'modellerStats');\r\n    }\r\n\r\n    get loading (): boolean {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'modellerStats');\r\n    }\r\n\r\n    get colours () {\r\n        return ColourService.colours;\r\n    }\r\n\r\n    get documentTypes () {\r\n        if (!this.modellerVisits) return [];\r\n        const pages: Array<string> = [];\r\n\r\n        this.modellerVisits.forEach((row) => {\r\n            pages.push(...row.ageGroupSections.map((a) => a.sectionName));\r\n        });\r\n\r\n        const filteredPages = pages.filter((value) => value !== 'Print summary?'\r\n            && value !== 'Request an illustration?'\r\n            && value !== 'Introduction'\r\n            && value !== 'introduction');\r\n\r\n        return [...new Set(filteredPages)];\r\n    }\r\n\r\n    get modellerVisitsTransformed () {\r\n        if (!this.modellerVisits) return null;\r\n        const vals: Array<{ name: string; data: number[]; type: 'column'; color: string }> = [];\r\n\r\n        this.ageBands.forEach((ageBand) => {\r\n            const ageBandData: Array<number> = [];\r\n            let ageTotal = 0;\r\n            if (this.viewByPage) {\r\n                this.documentTypes.forEach((page) => {\r\n                    let total = 0;\r\n                    this.modellerVisits!.forEach((row) => {\r\n                        const section = row.ageGroupSections.find((a) => a.sectionName === page)?.viewsByAge;\r\n\r\n                        Object.keys(section || {}).forEach((age) => {\r\n                            if (Number(age) >= ageBand.min && Number(age) <= ageBand.max) {\r\n                                total += section![age];\r\n                            }\r\n                        });\r\n                    });\r\n                    ageTotal += total;\r\n                    ageBandData.push(total);\r\n                });\r\n            } else {\r\n                this.modellerVisits!.forEach((row) => {\r\n                    let total = 0;\r\n                    Object.keys(row.visitsByAge).forEach((age) => {\r\n                        if (Number(age) >= ageBand.min && Number(age) <= ageBand.max) {\r\n                            total += row.visitsByAge[age];\r\n                        }\r\n                    });\r\n                    ageBandData.push(total);\r\n                    ageTotal += total;\r\n                });\r\n            }\r\n            if (ageTotal === 0) return;\r\n            if (!this.filter || this.filter === (ageBand.label ?? `${ageBand.min} - ${ageBand.max}`)) {\r\n                vals.push({\r\n                    name: ageBand.label ?? `${ageBand.min} - ${ageBand.max}`,\r\n                    type: 'column',\r\n                    data: ageBandData,\r\n                    color: ColourService.getSeriesColour('age', ageBand.label ?? `${ageBand.min} - ${ageBand.max}`),\r\n                });\r\n            }\r\n        });\r\n\r\n        return vals;\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                type: 'column',\r\n            },\r\n            xAxis: {\r\n                categories: this.viewByPage ? this.documentTypes : this.modellerVisits?.map((a) => dayjs(a.fromDate).format('DD MMM YYYY')),\r\n                labels: {\r\n                    formatter: ((that) => (this.viewByPage ? this.formatSectionName(that.value as string) : dayjs(that.value).format('DD MMM'))),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            yAxis: {\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            legend: {\r\n                enabled: true,\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            colors: this.colours,\r\n            plotOptions: {\r\n                column: {\r\n                    stacking: 'normal',\r\n                },\r\n            },\r\n            series: this.modellerVisitsTransformed || [],\r\n        };\r\n    }\r\n\r\n    formatSectionName (sectionName: string) {\r\n        switch (sectionName) {\r\n            case 'Your pension benefits':\r\n                return 'Retirement pension';\r\n            case 'Get a cash lump sum on retirement?':\r\n                return 'Retirement cash lump sum';\r\n            case 'Your retirement benefits':\r\n                return 'Retirement pension age';\r\n            case 'Introduction':\r\n            case 'introduction':\r\n                return 'Transfer value';\r\n            default:\r\n                return sectionName;\r\n        }\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./modeller-visits-by-age.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./modeller-visits-by-age.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./modeller-visits-by-age.vue?vue&type=template&id=647f303e&scoped=true&\"\nimport script from \"./modeller-visits-by-age.vue?vue&type=script&lang=ts&\"\nexport * from \"./modeller-visits-by-age.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./modeller-visits-by-age.vue?vue&type=style&index=0&id=647f303e&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"647f303e\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('nav',{class:{ smaller: !_vm.hasMemberWeb }},[(_vm.hasReportingRole)?_c('router-link',{attrs:{\"to\":`/${_vm.clientPath}`,\"exact-path\":\"\"}},[_c('font-awesome-icon',{attrs:{\"icon\":\"home\"}}),_c('div',{staticClass:\"name\"},[_vm._v(\"Home\")])],1):_vm._e(),(_vm.hasReportingRole)?_c('router-link',{attrs:{\"to\":`/${_vm.clientPath}/member-activity`,\"exact\":true}},[_c('font-awesome-icon',{attrs:{\"icon\":\"user-clock\"}}),_c('div',{staticClass:\"name\"},[_vm._v(\"Member activity\")])],1):_vm._e(),(_vm.hasReportingRole)?_c('router-link',{attrs:{\"to\":`/${_vm.clientPath}/membership`,\"exact\":true}},[_c('font-awesome-icon',{attrs:{\"icon\":\"user-alt\"}}),_c('div',{staticClass:\"name\"},[_vm._v(\"Membership\")])],1):_vm._e(),(_vm.hasMemberWeb && _vm.hasReportingRole)?_c('router-link',{attrs:{\"to\":`/${_vm.clientPath}/member-website`,\"exact\":true}},[_c('font-awesome-icon',{attrs:{\"icon\":\"globe\"}}),_c('div',{staticClass:\"name\"},[_vm._v(\"Member website\")])],1):_vm._e(),(_vm.hasReportingRole)?_c('router-link',{attrs:{\"to\":`/${_vm.clientPath}/scheme-governance`,\"exact\":true}},[_c('font-awesome-icon',{attrs:{\"icon\":\"users-class\"}}),_c('div',{staticClass:\"name\"},[_vm._v(\"Governance\")])],1):_vm._e(),_c('button',{staticClass:\"view-more\",class:{ expanded: _vm.showNextRow },on:{\"click\":function($event){_vm.showNextRow = !_vm.showNextRow}}},[_c('font-awesome-icon',{attrs:{\"icon\":\"caret-down\"}})],1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showNextRow),expression:\"showNextRow\"}],staticClass:\"next-row\"},[(_vm.hasPacia && _vm.hasPaciaRole)?_c('router-link',{attrs:{\"to\":`/${_vm.clientPath}/members`,\"exact\":true}},[_c('font-awesome-icon',{attrs:{\"icon\":\"user-magnifying-glass\"}}),_c('div',{staticClass:\"name\"},[_vm._v(\"Member search\")])],1):_vm._e(),(_vm.clientConfiguration.showFinancials && _vm.hasReportingRole)?_c('router-link',{attrs:{\"to\":`/${_vm.clientPath}/finance`,\"exact\":true}},[_c('font-awesome-icon',{attrs:{\"icon\":\"pound-sign\"}}),_c('div',{staticClass:\"name\"},[_vm._v(\"Financial\")])],1):_vm._e(),(_vm.hasReportingRole)?_c('router-link',{attrs:{\"to\":`/${_vm.clientPath}/pensions-news`,\"exact\":true}},[_c('font-awesome-icon',{attrs:{\"icon\":\"newspaper\"}}),_c('div',{staticClass:\"name\"},[_vm._v(\"Pensions news\")])],1):_vm._e(),(_vm.hasReportingRole)?_c('router-link',{attrs:{\"to\":`/${_vm.clientPath}/documents`,\"exact\":true}},[_c('font-awesome-icon',{attrs:{\"icon\":\"file-alt\"}}),_c('div',{staticClass:\"name\"},[_vm._v(\"Documents\")])],1):_vm._e(),(_vm.hasReportingRole)?_c('router-link',{attrs:{\"to\":`/${_vm.clientPath}/terms-conditions`,\"exact\":true}},[_c('font-awesome-icon',{attrs:{\"icon\":\"file-signature\"}}),_c('div',{staticClass:\"name\"},[_vm._v(\"Terms\")])],1):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Vue, Component, Watch } from 'vue-property-decorator';\r\nimport Client from 'common/models/client';\r\nimport Guid from 'common/util/guid';\r\nimport ClientNameService from '@/services/clientNameService';\r\nimport ClientConfig from '@/models/client';\r\n\r\n@Component\r\nexport default class Navbar extends Vue {\r\n    showNextRow = false;\r\n\r\n    get clientId () {\r\n        return this.$store.getters['clientContext/selectedClient'] as Guid;\r\n    }\r\n\r\n    get clients () {\r\n        return this.$store.getters['clientContext/clients'] as Array<Client>;\r\n    }\r\n\r\n    get clientConfiguration () {\r\n        return this.$store.getters['clientContext/selectedClientConfiguration'](this.clientId) as ClientConfig ?? {};\r\n    }\r\n\r\n    get clientName () {\r\n        if (!this.clients) return '';\r\n        return this.clients.find((a) => a.clientId === this.clientId)?.name;\r\n    }\r\n\r\n    get clientPath () {\r\n        if (!this.clientName) return '';\r\n        if (this.$route.path.indexOf('/demo') > -1) return 'demo';\r\n        return ClientNameService.clientNameToPath(this.clientName);\r\n    }\r\n\r\n    get client () {\r\n        return this.clients?.find((a) => a.clientId === this.clientId);\r\n    }\r\n\r\n    get isLive () {\r\n        return window.location.href.indexOf('.lcp.uk.com') > -1;\r\n    }\r\n\r\n    get hasMemberWeb () {\r\n        return this.clientConfiguration?.hasMemberWeb;\r\n    }\r\n\r\n    get hasPacia () {\r\n        return this.clientConfiguration?.hasPacia;\r\n    }\r\n\r\n    get hasPaciaRole () {\r\n        return this.clientConfiguration?.hasPaciaRole;\r\n    }\r\n\r\n    get hasReportingRole () {\r\n        return this.clientConfiguration?.hasReportingRole;\r\n    }\r\n\r\n    @Watch('clientId', { immediate: true })\r\n    clientIdChanged () {\r\n        if (this.clientId) {\r\n            this.$store.dispatch('clientContext/getClientConfiguration', this.clientId);\r\n        }\r\n    }\r\n}\r\n\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./navbar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./navbar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./navbar.vue?vue&type=template&id=3457f814&scoped=true&\"\nimport script from \"./navbar.vue?vue&type=script&lang=ts&\"\nexport * from \"./navbar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./navbar.vue?vue&type=style&index=0&id=3457f814&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"3457f814\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[(_vm.printing)?_c('table',{ref:\"news\",staticClass:\"news printing\"},_vm._l((_vm.printedNews),function(row,i){return _c('tr',{key:i,staticStyle:{\"padding-top\":\"1rem\"}},_vm._l((row),function(news,i2){return _c('td',{key:news.id,staticStyle:{\"vertical-align\":\"top\"},style:({ paddingTop: i === 0 && i2 === 1 ? '80px' : '40px' }),attrs:{\"width\":\"600\"}},[(i === 0 && i2 === 0)?_c('h3',{staticClass:\"tile-title darkblue\"},[_vm._v(\" Pensions news \")]):_vm._e(),_c('div',{staticClass:\"news-item printing\"},[_c('div',{staticClass:\"header\",style:({ background: news.color })},[_vm._v(_vm._s(news.title))]),_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(news.title))]),_c('div',{staticClass:\"snippet\",domProps:{\"innerHTML\":_vm._s(_vm.getSnippet(news))}}),(!_vm.printing)?_c('div',{staticClass:\"read-more\"},[_vm._v(\"Read more...\")]):_vm._e()])])}),0)}),0):_c('ul',{ref:\"news\",staticClass:\"news\"},_vm._l((_vm.pensionNews),function(news){return _c('li',{key:news.id,staticClass:\"news-item\",on:{\"click\":function($event){_vm.selectedNews = news}}},[(news.image)?_c('img',{attrs:{\"src\":news.image}}):_c('div',{staticClass:\"header\",style:({ background: news.color })},[_vm._v(_vm._s(news.title))]),_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(news.title))]),_c('div',{staticClass:\"snippet\",domProps:{\"innerHTML\":_vm._s(_vm.getSnippet(news))}}),(!_vm.printing)?_c('div',{staticClass:\"read-more\"},[_vm._v(\"Read more...\")]):_vm._e()])}),0),(_vm.selectedNews)?_c('div',{staticClass:\"selected-news\",on:{\"click\":function($event){if($event.target !== $event.currentTarget)return null;_vm.selectedNews = null}}},[_c('div',{staticClass:\"selected-news-content\"},[_c('font-awesome-icon',{staticClass:\"close\",attrs:{\"icon\":\"times\"},on:{\"click\":function($event){_vm.selectedNews = null}}}),_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.selectedNews.title))]),_c('div',{staticClass:\"snippet\",domProps:{\"innerHTML\":_vm._s(_vm.selectedNews.html)}})],1)]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Guid from 'common/util/guid';\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class News extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        printing!: boolean;\r\n\r\n    loading = false;\r\n\r\n    selectedNews: never | null = null;\r\n\r\n    getSnippet (news: { html: string }) {\r\n        if (this.printing) return news.html;\r\n        return news.html.split('</p>')[0];\r\n    }\r\n\r\n    get printedNews () {\r\n        const grouped: Array<Array<unknown>> = [];\r\n        this.pensionNews.forEach((news, i) => {\r\n            if (i % 2 === 0) grouped.push([]);\r\n            const row = grouped[grouped.length - 1];\r\n            row.push(news);\r\n        });\r\n        return grouped;\r\n    }\r\n\r\n    pensionNews = [\r\n        {\r\n            id: 'abolition-of-lifetime-allowance',\r\n            title: 'Abolition of the Lifetime Allowance',\r\n            snippet: '',\r\n            image: '/dashboard.jpg',\r\n            color: '#002e5f',\r\n            html: `\r\n                <p>Following the Chancellor’s Autumn Statement, the Finance Bill containing all the necessary detail to carry out the abolition of the Lifetime Allowance\r\n                    received Royal Assent, meaning the Lifetime Allowance was abolished with effect from 6 April 2024. You can find more on the relevant details contained within the Finance Bill\r\n                    in our December 2023 News Alert at  <a href=\"https://www.lcp.com/our-viewpoint/2023/12/finance-bill-removes-the-lifetime-allowance\" target=\"_blank\">Finance Bill removes the\r\n                        Lifetime Allowance | Lane Clark & Peacock LLP (lcp.com)</a>.\r\n                </p>\r\n                <h3>What have we been doing in Pensions Administration?</h3>\r\n                <p>We started planning ahead, prior to the Finance Bill’s publication (and it subsequently receiving Royal Assent), including updating member communications and identifying areas needing change\r\n                    based on the (limited) information previously published by government and HMRC.\r\n                </p>\r\n                <p>Since December, we have been busy implementing the detail contained within the Bill (now an Act) and prioritising work accordingly. These include ensuring: </p>\r\n                <ul>\r\n                    <li>member communications, particularly for quotations for retirements from 6 April 2024 are accurate - not just the figurework but also the explanation of\r\n                        how the pensions tax regime works and what information is needed from the member before benefits can be paid;\r\n                    </li>\r\n                    <li>processes are updated – particularly to ensure ‘edge’ cases (those with ‘Lifetime Allowance protections’ or entitlements to ‘lump sums over 25%’)\r\n                        requiring specialist review continue to be flagged; and\r\n                    </li>\r\n                    <li>systems are updated – including changes to calculation routines and adding the ability to record additional data items to ensure the new reporting\r\n                        requirements imposed by the Act on scheme administrators to both members and HMRC can be met.\r\n                    </li>\r\n                </ul>\r\n                <p>Training staff on the new regime continues as HMRC issue more guidance.</p>\r\n            `,\r\n            sort: 0,\r\n        },\r\n        {\r\n            id: 'cyber-security-article',\r\n            title: 'Cyber security ',\r\n            snippet: '',\r\n            image: '/reminder.jpg',\r\n            html: `\r\n                <p>Cyber security continues to be a hot topic. Following the Pensions Regulator’s (TPR) update of its cyber security principles in December 2023, the Regulator\r\n                    published its regulatory intervention report on 2 February 2024 following the Capita cyber security incident.  In addition to a report on how TPR worked with Capita\r\n                    to assess the risk to the schemes and members affected, this document sets out steps that trustees should take in the event of a cyber security incident.\r\n                </p>\r\n                <p>The report can be read\r\n                    <a href=\"https://www.thepensionsregulator.gov.uk/en/document-library/enforcement-activity/regulatory-intervention-reports/capita-cyber-security-incident-regulatory-intervention-report\"\r\n                    target=\"_blank\">here</a> and highlights the need for trustees to be prepared and to act fast, on the basis that it’s a question of when, not if an incident could happen.\r\n                </p>\r\n                <p>For more information about how LCP can help you prepare, reduce and react to any cyber risks threatening your scheme please see this\r\n                    <a href=\"https://www.lcp.com/media/dfwdvdno/cyber-crime-and-your-scheme.pdf\" target=\"_blank\">flyer</a>.\r\n                </p>\r\n            `,\r\n            sort: 1,\r\n            color: '#002e5f',\r\n        },\r\n\r\n        {\r\n            id: 'general-code-of-practice-has-arrived',\r\n            title: 'The Code of Practice',\r\n            image: '/avc.jpg',\r\n            snippet: '',\r\n            html: `\r\n                <p>The General Code, now published on TPR’s website as the <a href=\"https://www.thepensionsregulator.gov.uk/en/document-library/code-of-practice\" target=\"_blank\">Code of Practice</a>,\r\n                    came into force on 28 March 2024. This gives access to the content of all of TPR’s codes.\r\n                </p>\r\n                <p>As you know, the Own Risk Assessment is one of the new risk management requirements and LCP has collaborated with the Pensions and Lifetime Savings Association to produce an updated\r\n                    <a href=\"https://www.plsa.co.uk/Portals/0/Documents/Made-Simple-Guides/2024/Own-Risk-Assessments-Made-Simple-2024.pdf\" target=\"_blank\">Own Risk Assessments Made Simple</a> guide.\r\n                </p>\r\n                <p>Some modules in the Code bring an additional focus on administration areas and cyber security as part of the risk management expected of trustees.  We are working to ensure that\r\n                    our administration and cyber security procedures will support trustees in meeting the relevant requirements.\r\n                </p>\r\n                <p>If you would like to know more, please contact your usual LCP contact.</p>\r\n            `,\r\n            sort: 2,\r\n        },\r\n        {\r\n            id: 'dashboard-update',\r\n            title: 'Pensions dashboards staging timetable confirmed!',\r\n            image: '/small-laptop.jpg',\r\n            snippet: '',\r\n            html: `\r\n                <p>DWP has released its updated guidance on the pensions dashboards, which confirms the staged timetable for connection with the dashboards’ ‘ecosystem’.\r\n                    Pension schemes have been assigned a ‘connect by’ date – to which the Regulator expects trustees to adhere – with all schemes and providers legally required to be connected\r\n                    by 31 October 2026.\r\n                </p>\r\n                <p>LCP has a team of pensions dashboards experts helping to make sure your scheme is dashboard ready – please speak to your usual contact if you want to know more.</p>\r\n            `,\r\n            sort: 3,\r\n        },\r\n        {\r\n            id: 'divorce-charges',\r\n            title: 'Update to recommended divorce charges',\r\n            image: '/dc-savings.jpg',\r\n            snippet: '',\r\n            html: `\r\n                <p>The Pensions and Lifetime Savings Association has updated its\r\n                    <a href=\"https://www.plsa.co.uk/Policy-and-Research/Document-library/Pension-sharing-charges-Pensions-and-Lifetime-Savings-Association-guidance\" target=\"_blank\">'Pension sharing on divorce'</a>\r\n                    guidance and charges document. It contains a recommended range of charges for schemes as well as a flowchart outlining the circumstances when charges can be made.<br>\r\n                    LCP are currently reviewing the revised charges and how these may apply to divorcing couples.\r\n                </p>\r\n            `,\r\n            sort: 4,\r\n        },\r\n        {\r\n            id: 'pasa-accreditation',\r\n            title: 'PASA accreditation',\r\n            image: '/boardroom.jpg',\r\n            snippet: '',\r\n            html: `\r\n                <p>We are delighted that LCP has successfully been re-accredited by The Pensions Administration Standards Association (PASA), demonstrating our unwavering commitment to excellence in pension administration.</p>\r\n                <p>As PASA sets the gold standard for quality, this re-accreditation shows our dedication to delivering professional and high-quality pension administration services.</p>\r\n            `,\r\n            sort: 5,\r\n        },\r\n        {\r\n            id: 'pensions-dashboards',\r\n            title: 'Pensions dashboards',\r\n            image: '/calculator.jpg',\r\n            snippet: '',\r\n            html: `\r\n                <p>As schemes continue their preparations for connection to pensions dashboards by their revised ‘connect by’ dates, a  <a href=\"https://www.nao.org.uk/reports/investigation-into-the-pensions-dashboards-programme/\" target=\"_blank\">National Audit Office report</a>. on the project was published in May. Although the report identified challenges which led to the reset in March 2023, and an increase in the cost of the project, it also concluded the net benefit of it to be around £211 million.</p>\r\n                <p>LCP has a team of pensions dashboards experts helping to make sure your scheme is dashboard ready – please speak to your usual contact if you want to know more.</p>\r\n            `,\r\n            sort: 6,\r\n        },\r\n        {\r\n            id: 'pensions-dashboards-continued',\r\n            title: 'Pensions dashboards',\r\n            image: '/headway.jpg',\r\n            snippet: '',\r\n            html: `\r\n                <p>In September, The Pensions Regulator issued its pensions dashboards <a href=\"https://www.thepensionsregulator.gov.uk/en/document-library/regulatory-and-enforcement-policies/pensions-dashboards-compliance-and-enforcement-policy\" target=\"_blank\">compliance and enforcement policy</a>. Recognising that delivering pensions dashboards is a huge challenge for the industry, the Regulator intends to be pragmatic when enforcing dashboards regulations. However, it has made it clear that any wilful or reckless non-compliance will result in “a robust enforcement approach”</p>\r\n                <p>Also in September, the Pensions Dashboards Programme (PDP) <a href=\"https://www.pensionsdashboardsprogramme.org.uk/publications/news/pdp-confirms-identity-service-provider\" target=\"_blank\">confirmed</a> that GOV.UK One Login will be the identity service provider for anyone using the dashboard service. Provided by the UK government, GOV.UK One Login ensures users only have to prove their identity once and can use this proof to access other government services they use.</p>\r\n                <p>The PDP have also updated three of the five <a href=\"https://www.pensionsdashboardsprogramme.org.uk/standards/code-of-connection\" target=\"_blank\">sets of standards</a> schemes should be using to prepare for dashboards: the technical standards, code of connection and reporting standards. The data standards were updated in May 2024.</p>\r\n                <p>LCP has a team of pensions dashboards experts helping to make sure your scheme is dashboards ready – please speak to your usual contact if you want to know more. </p>\r\n                `,\r\n            sort: 7,\r\n        },\r\n        {\r\n            id: 'inheritance-tax',\r\n            title: 'The Chancellor’s Budget – Change to Inheritance Tax rules for pensions',\r\n            image: '/boardroom.jpg',\r\n            snippet: '',\r\n            html: `\r\n                <p>The October 2024 Budget did not bring the pensions tax measures that were mooted, such as a flat rate of income tax relief on member contributions or a cut to the tax-free lump sum allowance on retirement.  However, as we have highlighted in the <a href=\"https://www.lcp.com/en/pensions-benefits/insights/bulletins/pensions-bulletin-202442-budget-special\" target=\"_blank\">LCP Pensions Bulletin 2024/42 – Budget Special</a>, several proposals will affect pensions either directly or indirectly.</p>\r\n                <p>The proposal that is likely to have the most impact on members, their beneficiaries, trustees and the administration of benefits, relates to Inheritance Tax.  The government announced that it intends to treat most unused pension funds and death benefits as part of a member’s estate from 6 April 2027, when they are expected to fall within the scope of Inheritance Tax.  Under current plans, trustees – or specifically the ‘Scheme Administrator’ – will be responsible for reporting and paying any Inheritance Tax due on impacted death benefits. There will be no distinction between death benefits paid on a discretionary or non-discretionary basis and the change will apply to both DB and DC pension schemes.  Dependants’ pensions from DB schemes are however excluded from this.</p>\r\n                <p>Following the Chancellor’s announcement, the government has been <a href=\"https://www.gov.uk/government/consultations/inheritance-tax-on-pensions-liability-reporting-and-payment/technical-consultation-inheritance-tax-on-pensions-liability-reporting-and-payment\" target=\"_blank\">consulting</a> on the implementation of the proposed changes for pension schemes, and as this has a direct impact on scheme administration and the services we provide, LCP has given careful consideration to the proposals and has submitted a response to the consultation. You can read our response to the consultation <a href=\"https://www.lcp.com/en/our-impact/consultation-responses\" target=\"_blank\">here</a></p>\r\n                <p>Trustees’ procedures for exercising their decision about the beneficiary/ies of lump sum death benefits could also be affected by the proposals because Inheritance Tax rules set tighter deadlines for settling tax when compared to those for paying lump sum death benefits from pension schemes.  This means payment of any lump sum(s) following the death of a member may need to be accelerated, as things currently stand.</p>\r\n                <p>It is clear from the pensions industry’s response to the proposed changes that there are numerous points that are unclear and the responses to the consultation should enable HMRC to work through these.</p>\r\n                <p>We will keep you informed once we have reviewed the outcome of the consultation, which we expect the government to publish later this year.  We also understand that draft legislation is planned towards the end of 2025 and hope this will provide much more of the detail around the proposed changes.</p>\r\n                `,\r\n            sort: 8,\r\n        },\r\n    ];\r\n\r\n    async needBreak () {\r\n        if (!this.printing) return;\r\n        const ref = this.$refs.news as HTMLElement;\r\n        let lastBreakHeight = 0;\r\n        let page = 0;\r\n        for (let i = 0; i < ref.children.length; i += 1) {\r\n            const el = ref.children[i] as HTMLElement;\r\n\r\n            if (ref.children[i].getAttribute('data-index')) {\r\n                el.classList.remove('break');\r\n                el.style.height = '0';\r\n            }\r\n        }\r\n        for (let i = 0; i <= ref.children.length - 1; i += 1) {\r\n            const el = ref.children[i] as HTMLElement;\r\n            const pageHeight = 1785;\r\n            if (i >= ref.children.length - 1) {\r\n                el.style.height = `${pageHeight + (page * pageHeight) - el.offsetTop}px`;\r\n            }\r\n            const nextEl = ref.children[i + 1] as HTMLElement;\r\n            if (ref.children[i].getAttribute('data-index')) {\r\n                if (nextEl.offsetTop + nextEl.offsetHeight - lastBreakHeight > pageHeight) {\r\n                    el.classList.add('break');\r\n                    if (page === 1) {\r\n                        el.style.height = `${pageHeight + (page * pageHeight) - el.offsetTop - 13}px`;\r\n                        lastBreakHeight = el.offsetTop + pageHeight + (page * pageHeight) - el.offsetTop - 13;\r\n                    } else {\r\n                        el.style.height = `${pageHeight + (page * pageHeight) - el.offsetTop}px`;\r\n                        lastBreakHeight = el.offsetTop + pageHeight + (page * pageHeight) - el.offsetTop;\r\n                    }\r\n                    page += 1;\r\n                } else {\r\n                    el.classList.remove('break');\r\n                    el.style.height = '0';\r\n                }\r\n            }\r\n        }\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./news-items.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./news-items.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./news-items.vue?vue&type=template&id=3b0975d1&scoped=true&\"\nimport script from \"./news-items.vue?vue&type=script&lang=ts&\"\nexport * from \"./news-items.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./news-items.vue?vue&type=style&index=0&id=3b0975d1&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"3b0975d1\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile page-visits-table\"},[_c('h3',{staticClass:\"tile-title aqua\"},[_vm._v(\" Page visits \")]),_c('info',{attrs:{\"tooltip\":\"Total web page visits in the period with the average duration on the page\"}}),_c('div',{staticClass:\"tile-content\"},[_c('table',[_vm._m(0),(_vm.pageStats)?_c('tbody',[_vm._l((_vm.pageStats),function(visits,page){return _c('tr',{key:page,class:{ filtered: page === _vm.currentFilter },on:{\"click\":function($event){return _vm.filterRow(page)}}},[_c('td',[_c('div',{staticClass:\"row\"},[_c('span',[_vm._v(_vm._s(_vm.formatUrl(page)))])])]),_c('td',[_c('span',{staticClass:\"number\",style:({ background: _vm.getColour(_vm.formatUrl(page)) })},[_vm._v(_vm._s(_vm.formatNumber(visits.visits)))])]),_c('td',[_c('span',{staticClass:\"number\",style:({ background: _vm.getColour(_vm.formatUrl(page)) })},[_vm._v(_vm._s(_vm.formatNumber(visits.time / visits.visits)))])])])}),_c('tr',[_c('td',{staticClass:\"overall\"},[_vm._v(\"Overall\")]),_c('td',[_c('span',[_vm._v(_vm._s(_vm.formatNumber(_vm.totalVisits)))])]),_c('td',[_c('span',[_vm._v(_vm._s(_vm.formatNumber(_vm.totalAverageTimeSpent)))])])])],2):_vm._e()]),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('thead',[_c('tr',[_c('th',[_vm._v(\"Page\")]),_c('th',[_vm._v(\"Visits\")]),_c('th',[_vm._v(\"Average duration (seconds)\")])])])\n}]\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport Guid from 'common/util/guid';\r\nimport ColourService from '@/services/colourService';\r\nimport PageVisits from '@/models/pageVisits';\r\nimport PageVisitDate from '@/models/pageVisitDate';\r\n\r\n@Component\r\nexport default class PageVisitsTable extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        printing!: boolean;\r\n\r\n    currentFilter: string | null = null;\r\n\r\n    get pageVisits (): Array<PageVisits> | null {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'pageVisits');\r\n    }\r\n\r\n    get filteredPageVisitsByDate (): Array<PageVisitDate> | null {\r\n        const filteredPageVisitsByDate = new Array<PageVisitDate>();\r\n        if (!this.pageVisits) return filteredPageVisitsByDate;\r\n\r\n        this.pageVisits.forEach((date) => {\r\n            date.pageVisitsByDate.forEach((page) => {\r\n                if (page.pageName.includes('submissions')) {\r\n                    page.pageName = 'My Forms';\r\n                }\r\n                if (page.pageName.includes('/pension-news')) {\r\n                    page.pageName = 'News';\r\n                }\r\n                filteredPageVisitsByDate.push(page);\r\n            });\r\n        });\r\n\r\n        return filteredPageVisitsByDate;\r\n    }\r\n\r\n    get loading (): boolean {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'pageVisits');\r\n    }\r\n\r\n    get totalVisits () {\r\n        if (!this.filteredPageVisitsByDate) return 0;\r\n\r\n        const totalVisits = this.filteredPageVisitsByDate.reduce((a, b) => a + b.visits, 0);\r\n        return totalVisits;\r\n    }\r\n\r\n    get totalAverageTimeSpent () {\r\n        if (!this.filteredPageVisitsByDate) return 0;\r\n\r\n        const totalTime = this.filteredPageVisitsByDate.reduce((a, b) => a + b.time, 0);\r\n        const totalVisits = this.filteredPageVisitsByDate.reduce((a, b) => a + b.visits, 0);\r\n\r\n        return totalTime / totalVisits;\r\n    }\r\n\r\n    get colours () {\r\n        return [ColourService.colours[0]];\r\n    }\r\n\r\n    get pageStats () {\r\n        const pages: Record<string, { visits: number; time: number; count: number }> = {};\r\n        if (!this.filteredPageVisitsByDate) return {};\r\n        this.filteredPageVisitsByDate.forEach((page) => {\r\n            if (!pages[page.pageName]) {\r\n                pages[page.pageName] = {\r\n                    visits: 0,\r\n                    time: 0,\r\n                    count: 0,\r\n                };\r\n            }\r\n\r\n            pages[page.pageName].count += 1;\r\n            pages[page.pageName].visits += page.visits;\r\n            pages[page.pageName].time += page.time;\r\n        });\r\n\r\n        return pages;\r\n    }\r\n\r\n    toUppercase (word: string) {\r\n        const split = word.toLowerCase().split(' ');\r\n        // eslint-disable-next-line no-plusplus\r\n        for (let i = 0; i < split.length; i++) {\r\n            split[i] = split[i].charAt(0).toUpperCase() + split[i].substring(1);\r\n        }\r\n        return split.join(' ');\r\n    }\r\n\r\n    formatUrl (url: string) {\r\n        if (!url?.trim() || url.trim() === '/') return 'Home';\r\n        let newUrl = url.startsWith('/') ? url.substring(1) : url;\r\n        newUrl = newUrl.replace(/-/g, ' ');\r\n        newUrl = newUrl.replace(/\\//g, ' - ');\r\n        return newUrl.split(' ').map((a) => this.toUppercase(a)).join(' ').replace('Pension Tool', 'Modeller');\r\n    }\r\n\r\n    formatNumber (number: string | number) {\r\n        return Math.round(Number(number ?? 0)).toLocaleString('en');\r\n    }\r\n\r\n    getColour (url: string) {\r\n        return ColourService.getSeriesColour('page', url);\r\n    }\r\n\r\n    filterRow (page: string) {\r\n        if (this.currentFilter === page) {\r\n            this.currentFilter = null;\r\n            this.$emit('pointSelected', { category: 'pageVisits', series: null });\r\n        } else {\r\n            this.currentFilter = page;\r\n            this.$emit('pointSelected', { category: 'pageVisits', series: page });\r\n        }\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./page-visits-table.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./page-visits-table.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./page-visits-table.vue?vue&type=template&id=4b89dfd0&scoped=true&\"\nimport script from \"./page-visits-table.vue?vue&type=script&lang=ts&\"\nexport * from \"./page-visits-table.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./page-visits-table.vue?vue&type=style&index=0&id=4b89dfd0&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"4b89dfd0\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title aqua\"},[_vm._v(\" Page visits \")]),_c('info',{attrs:{\"tooltip\":\"Web page visits over the period\"}}),_c('div',{staticClass:\"tile-content\"},[_c('highcharts',{attrs:{\"options\":_vm.chartOptions}}),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport Guid from 'common/util/guid';\r\nimport ColourService from '@/services/colourService';\r\nimport dayjs from 'dayjs';\r\nimport PageVisits from '@/models/pageVisits';\r\nimport Highcharts from 'highcharts';\r\n\r\n@Component\r\nexport default class Demographics extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        printing!: boolean;\r\n\r\n    @Prop()\r\n        filter!: string | null;\r\n\r\n    get pageVisits (): Array<PageVisits> | null {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'pageVisits');\r\n    }\r\n\r\n    get loading (): boolean {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'pageVisits');\r\n    }\r\n\r\n    get pages () {\r\n        const pageNames: Record<string, boolean> = {};\r\n        if (!this.pageVisits) return [];\r\n        this.pageVisits.forEach((date) => {\r\n            date.pageVisitsByDate.forEach((page) => {\r\n                if (!pageNames[page.pageName]) pageNames[page.pageName] = true;\r\n            });\r\n        });\r\n        return Object.keys(pageNames).filter((a) => !this.filter || this.filter === a);\r\n    }\r\n\r\n    get pageVisitsTransformed () {\r\n        if (!this.pageVisits) return [];\r\n        const vals: Array<{ type: 'column'; name: string; data: Array<number>; color: string }> = [];\r\n        this.pages.forEach((page) => {\r\n            vals.push({\r\n                name: this.formatUrl(page),\r\n                type: 'column',\r\n                data: this.pageVisits!.map((a) => a.pageVisitsByDate.find((b) => b.pageName === page)?.visits ?? 0),\r\n                color: ColourService.getSeriesColour('page', this.formatUrl(page)),\r\n            });\r\n        });\r\n\r\n        return vals;\r\n    }\r\n\r\n    get colours () {\r\n        return [ColourService.colours[0]];\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                type: 'area',\r\n            },\r\n            xAxis: {\r\n                categories: this.pageVisits?.map((a) => dayjs(a.fromDate).format('DD MMM YYYY')) ?? [],\r\n                labels: {\r\n                    formatter: ((that) => dayjs(that.value).format('DD MMM')),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            yAxis: {\r\n                allowDecimals: false,\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            legend: {\r\n                enabled: true,\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            colors: this.colours,\r\n            plotOptions: {\r\n                column: {\r\n                    stacking: 'normal',\r\n                    borderWidth: 0,\r\n                },\r\n                series: {\r\n                    animation: !this.printing,\r\n                },\r\n            },\r\n            series: this.pageVisitsTransformed || [],\r\n        };\r\n    }\r\n\r\n    toUppercase (word: string) {\r\n        const wordArr = word.split('').filter((a) => a);\r\n        return wordArr[0].toUpperCase() + wordArr.slice(1).join('');\r\n    }\r\n\r\n    formatUrl (url: string) {\r\n        if (!url?.trim() || url.trim() === '/') return 'Home';\r\n        let newUrl = url.startsWith('/') ? url.substring(1) : url;\r\n        newUrl = newUrl.replace(/-/g, ' ');\r\n        newUrl = newUrl.replace(/\\//g, ' - ');\r\n        return newUrl.split(' ').map((a) => this.toUppercase(a)).join(' ').replace('Pension Tool', 'Modeller');\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./page-visits.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./page-visits.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./page-visits.vue?vue&type=template&id=02e0e2ee&scoped=true&\"\nimport script from \"./page-visits.vue?vue&type=script&lang=ts&\"\nexport * from \"./page-visits.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./page-visits.vue?vue&type=style&index=0&id=02e0e2ee&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"02e0e2ee\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title aqua\"},[_vm._v(\" Payslips viewed by member status \")]),_c('info',{attrs:{\"tooltip\":\"Total number of payslips viewed grouped by member status\"}}),_c('div',{staticClass:\"tile-content\",class:[{ filtered: _vm.selectedPoint }, `colour-${_vm.selectedColourIndex}`]},[_c('highcharts',{ref:\"chart\",attrs:{\"options\":_vm.chartOptions}}),_c('div',{staticClass:\"total\",class:{ 'has-legend': _vm.showLegend },style:(_vm.centerPos),on:{\"click\":_vm.clearFilter}},[_vm._v(\" \"+_vm._s(_vm.formatNumber(_vm.totalDocumentsViewed))+\" \"),_c('span',{staticClass:\"filter\"},[_vm._v(_vm._s(_vm.selectedPoint))]),_c('span',[_vm._v(\"Payslips viewed\")]),(_vm.selectedPoint)?_c('div',{staticClass:\"return\",on:{\"click\":_vm.clearFilter}},[_c('font-awesome-icon',{attrs:{\"icon\":\"times\"}})],1):_vm._e()]),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport dayjs from 'dayjs';\r\nimport Guid from 'common/util/guid';\r\nimport Highcharts, { Point } from 'highcharts';\r\nimport ColourService from '@/services/colourService';\r\nimport ToggleSwitch from 'common/components/toggle-switch.vue';\r\nimport PieLegend from '@/services/pieLegendService';\r\nimport MemberDocumentStats from '@/models/memberDocumentStats';\r\n\r\n@Component({ components: { ToggleSwitch } })\r\nexport default class PayslipViewsByStatusPie extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        showLegend!: boolean;\r\n\r\n    selectedPoint: string | null = null;\r\n\r\n    selectedColourIndex: number | null = null;\r\n\r\n    chartCenterX = 0;\r\n\r\n    chartCenterY = 0;\r\n\r\n    get loading () {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'memberDocumentsStats') || false as boolean;\r\n    }\r\n\r\n    get documentStats (): Array<MemberDocumentStats> {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'memberDocumentsStats');\r\n    }\r\n\r\n    get centerPos () {\r\n        return {\r\n            top: `calc(${this.chartCenterY}px + 1.5rem) !important`,\r\n            left: `calc(${this.chartCenterX}px + 1.5rem) !important`,\r\n        };\r\n    }\r\n\r\n    get totalDocumentsViewed () {\r\n        return this.dataUpdatesTransformed?.filter((a) => a.name === this.selectedPoint || !this.selectedPoint)?.reduce((a, b) => a + (b.y ?? 0), 0);\r\n    }\r\n\r\n    get dataUpdatesTransformed () {\r\n        if (!this.documentStats) return null;\r\n        const totals: Record<string, number> = {};\r\n        this.documentStats.forEach((date) => {\r\n            Object.keys(date.payslipDataByStatus).forEach((dataType) => {\r\n                if (!totals[dataType]) totals[dataType] = 0;\r\n                totals[dataType] += date.payslipDataByStatus[dataType];\r\n            });\r\n        });\r\n        return Object.keys(totals)\r\n            .map((seriesName) => ({\r\n                name: seriesName,\r\n                y: totals[seriesName],\r\n                color: ColourService.getSeriesColour('status', seriesName),\r\n            }));\r\n    }\r\n\r\n    pointClicked (point: Point) {\r\n        this.selectedColourIndex = point.colorIndex;\r\n        this.selectedPoint = point.name === this.selectedPoint ? null : point.name;\r\n        this.$emit('pointSelected', { category: 'payslipsByStatus', series: this.selectedPoint });\r\n    }\r\n\r\n    clearFilter () {\r\n        (this.$refs.chart as unknown as { chart: Highcharts.Chart }).chart.series[0].points.forEach((a) => a.select(false));\r\n        this.selectedPoint = null;\r\n        this.$emit('pointSelected', { category: 'payslipsByStatus', series: this.selectedPoint });\r\n    }\r\n\r\n    formatNumber (number?: string | number) {\r\n        return Math.round(Number(number ?? 0)).toLocaleString('en');\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n        // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n        const self = this;\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                type: 'pie',\r\n                backgroundColor: 'transparent',\r\n                events: {\r\n                    load () {\r\n                        const series = this.series[0] as unknown as { center: Array<number> };\r\n                        const x = this.plotLeft + series.center[0];\r\n                        const y = this.plotTop + series.center[1];\r\n                        self.chartCenterX = x;\r\n                        self.chartCenterY = y;\r\n                    },\r\n                    redraw () {\r\n                        const series = this.series[0] as unknown as { center: Array<number> };\r\n                        const x = this.plotLeft + series.center[0];\r\n                        const y = this.plotTop + series.center[1];\r\n                        self.chartCenterX = x;\r\n                        self.chartCenterY = y;\r\n                    },\r\n                },\r\n            },\r\n            xAxis: {\r\n                labels: {\r\n                    formatter: ((that) => dayjs(that.value).format('DD MMM')),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            yAxis: {\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            legend: this.showLegend ? PieLegend.get().legend : {\r\n                enabled: false,\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            plotOptions: {\r\n                pie: {\r\n                    dataLabels: {\r\n                        enabled: false,\r\n                    },\r\n                    allowPointSelect: true,\r\n                    showInLegend: true,\r\n                    borderWidth: 0,\r\n                    point: {\r\n                        events: {\r\n                            legendItemClick: (event) => {\r\n                                event.preventDefault();\r\n                                event.target.select(!event.target.selected);\r\n                                this.pointClicked(event.target);\r\n                            },\r\n                        },\r\n                    },\r\n                },\r\n            },\r\n            series: [{\r\n                type: 'pie',\r\n                name: 'Data updates',\r\n                innerSize: '70%',\r\n                slicedOffset: 5,\r\n                data: this.dataUpdatesTransformed!,\r\n                events: {\r\n                    click: (event) => { this.pointClicked(event.point); },\r\n                },\r\n            }],\r\n        };\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./payslip-views-by-status-pie.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./payslip-views-by-status-pie.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./payslip-views-by-status-pie.vue?vue&type=template&id=ad2a5902&scoped=true&\"\nimport script from \"./payslip-views-by-status-pie.vue?vue&type=script&lang=ts&\"\nexport * from \"./payslip-views-by-status-pie.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./payslip-views-by-status-pie.vue?vue&type=style&index=0&id=ad2a5902&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"ad2a5902\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title aqua\"},[_vm._v(\" Payslips viewed by member status \")]),_c('info',{attrs:{\"tooltip\":\"Number of payslips viewed grouped by member status over the period\"}}),_c('div',{staticClass:\"tile-content\"},[_c('highcharts',{attrs:{\"options\":_vm.chartOptions}}),(!_vm.chartOptions.series || !_vm.chartOptions.series.length)?_c('div',{staticClass:\"no-data\"},[_c('strong',[_vm._v(\"0\")]),_vm._v(\" Payslips viewed\")]):_vm._e(),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport Guid from 'common/util/guid';\r\nimport dayjs from 'dayjs';\r\nimport ColourService from '@/services/colourService';\r\nimport MemberDocumentStats from '@/models/memberDocumentStats';\r\nimport Highcharts from 'highcharts';\r\n\r\n@Component\r\nexport default class PayslipViewsByStatus extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        filter!: string | null;\r\n\r\n    get loading () {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'memberDocumentsStats') || false as boolean;\r\n    }\r\n\r\n    get documentStats (): Array<MemberDocumentStats> {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'memberDocumentsStats');\r\n    }\r\n\r\n    get categories () {\r\n        if (!this.documentStats) return [];\r\n        const dataTypes: Array<string> = [];\r\n        this.documentStats.forEach((date) => {\r\n            dataTypes.push(...Object.keys(date.payslipDataByStatus));\r\n        });\r\n        return [...new Set(dataTypes)];\r\n    }\r\n\r\n    get documentStatsTransformed () {\r\n        if (!this.documentStats) return null;\r\n        const vals: Array<{ name: string; data: number[]; type: 'column'; color: string }> = [];\r\n\r\n        this.categories.forEach((status) => {\r\n            const dataTypeData: Array<number> = [];\r\n            this.documentStats!.forEach((row) => {\r\n                dataTypeData.push(row.payslipDataByStatus[status] ?? 0);\r\n            });\r\n            if (!this.filter || this.filter === status) {\r\n                vals.push({\r\n                    name: status,\r\n                    type: 'column',\r\n                    data: dataTypeData,\r\n                    color: ColourService.getSeriesColour('status', status),\r\n                });\r\n            }\r\n        });\r\n\r\n        return vals;\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                type: 'column',\r\n                backgroundColor: 'transparent',\r\n            },\r\n            xAxis: {\r\n                categories: this.documentStats?.map((a) => dayjs(a.fromDate).format('DD MMM YYYY')),\r\n                labels: {\r\n                    formatter: ((that) => dayjs(that.value).format('DD MMM')),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            yAxis: {\r\n                allowDecimals: false,\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            legend: {\r\n                enabled: true,\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            plotOptions: {\r\n                column: {\r\n                    stacking: 'normal',\r\n                },\r\n            },\r\n            series: this.documentStatsTransformed || [],\r\n        };\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./payslip-views-by-status.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./payslip-views-by-status.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./payslip-views-by-status.vue?vue&type=template&id=1151ff5a&scoped=true&\"\nimport script from \"./payslip-views-by-status.vue?vue&type=script&lang=ts&\"\nexport * from \"./payslip-views-by-status.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./payslip-views-by-status.vue?vue&type=style&index=0&id=1151ff5a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"1151ff5a\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"modal-container\"},[_c('div',{staticClass:\"modal\"},[_c('div',{staticClass:\"modal-title\"},[_vm._m(0),_c('date-selector'),_c('button',{staticClass:\"close\",on:{\"click\":function($event){return _vm.$emit('close')}}},[_c('font-awesome-icon',{attrs:{\"icon\":\"times\"}})],1)],1),_c('div',{staticClass:\"modal-content\"},[_c('div',{staticClass:\"settings\"},[_c('div',{staticClass:\"report-type\"},[_c('dynamic-ui-enum-dropdown',{attrs:{\"options\":_vm.reportTypes,\"name\":\"Report type\"},model:{value:(_vm.selectedReportType),callback:function ($$v) {_vm.selectedReportType=$$v},expression:\"selectedReportType\"}})],1),_c('div',{staticClass:\"options\"},[_c('font-awesome-icon',{staticClass:\"exchange-icon\",attrs:{\"icon\":\"exchange\"}}),_c('div',{staticClass:\"option-group\"},[_vm._m(1),_c('draggable',{staticClass:\"draggable-area\",attrs:{\"group\":\"options\"},model:{value:(_vm.options),callback:function ($$v) {_vm.options=$$v},expression:\"options\"}},_vm._l((_vm.options),function(option,index){return _c('div',{key:`${option.name}-${index}`,staticClass:\"option\",class:[option.color, {wide: option.components.length === 2}]},[_vm._v(\" \"+_vm._s(option.name)+\" \")])}),0)],1),_c('div',{staticClass:\"option-group\"},[_vm._m(2),_c('draggable',{staticClass:\"draggable-area\",attrs:{\"group\":\"options\"},model:{value:(_vm.selectedOptions),callback:function ($$v) {_vm.selectedOptions=$$v},expression:\"selectedOptions\"}},_vm._l((_vm.selectedOptions),function(option,index){return _c('div',{key:`${option.name}-${index}`,staticClass:\"option\",class:[option.color, {wide: option.components.length === 2}]},[_vm._v(\" \"+_vm._s(option.name)+\" \")])}),0)],1)],1)]),_c('div',{staticClass:\"print-scroll\"},[_c('div',{ref:\"printPreview\",staticClass:\"print-preview\",attrs:{\"id\":\"printPreview\"}},[_c('div',{ref:\"components\",staticClass:\"components\"},[_c('table',{attrs:{\"width\":\"1200\"}},[_c('tr',[_c('td',{staticStyle:{\"page-break-inside\":\"avoid\"},attrs:{\"colspan\":\"2\"}},[_c('div',{staticClass:\"row title\"},[_c('img',{staticClass:\"logo\",attrs:{\"src\":\"/logo.png\"}}),_c('div',{staticClass:\"header-title\"},[_c('h1',[_vm._v(\"Administration report\")]),_c('h2',[_vm._v(_vm._s(_vm.clientName))]),_c('h3',[_vm._v(_vm._s(_vm.formatDate(_vm.fromDate))+\" to \"+_vm._s(_vm.formatDate(_vm.toDate)))])]),_c('img',{staticClass:\"telescope\",attrs:{\"src\":\"/telescope.png\",\"height\":\"500\",\"width\":\"500\"}}),_c('img',{staticClass:\"pasa\",attrs:{\"src\":\"/pasa.png\",\"height\":\"113\",\"width\":\"261\"}}),_c('img',{staticClass:\"iso\",attrs:{\"src\":\"/iso.png\",\"height\":\"120\",\"width\":\"107\"}}),_c('img',{staticClass:\"cyber-essentials\",attrs:{\"src\":\"/cyber-essentials.png\",\"height\":\"130\",\"width\":\"106\"}})])])]),_vm._l((_vm.formattedOptions),function(option,i){return [_c('tr',{key:i,staticClass:\"tile-wrapper\",staticStyle:{\"page-break-inside\":\"avoid\"}},_vm._l((option.filter(a => a.component)),function(component,index){return _c('td',{key:index,staticStyle:{\"page-break-inside\":\"avoid\",\"min-width\":\"600px\"},style:({ maxWidth: option.filter(a => a.component === '').length ? '1200px' : '600px' }),attrs:{\"colspan\":option.filter(a => a.component === '').length ? 2 : 1}},[_c(component.component.id ? component.component.id : component.component,_vm._b({tag:\"component\",attrs:{\"clientId\":_vm.clientId,\"printing\":true,\"showLegend\":true}},'component',component.component.props ? component.component.props: component.props,false))],1)}),0)]}),_c('tr',[_c('td',{staticStyle:{\"page-break-inside\":\"avoid\"},attrs:{\"colspan\":\"2\"}},[_c('div',{staticClass:\"terms\"},[_vm._v(\" The information in this document has been produced by Lane Clark & Peacock LLP under the terms of our written agreement (including, for the avoidance of doubt, the terms and conditions of access to the website from which you downloaded this document) with the \"+_vm._s(_vm.clientEntity)+\" of the \"+_vm._s(_vm.clientName)+\" (\\\"Our Client\\\"). The information in this document is only appropriate for the purposes described and should not be used for anything else. None of the information in this document constitutes advice. The information in this document is subject to any stated limitations (eg regarding accuracy or completeness); in particular, we do not guarantee that the website, or any information shown in this document, will be free from errors and omissions, and we accept no liability for any actions or decisions taken using the information in this document unless we have confirmed in writing that it is appropriate for that purpose. \"),_c('br'),_vm._v(\" Unless otherwise stated, the information in this document is confidential and is for your sole use. You may not provide the information in this document, in whole or in part, to anyone else without first obtaining our permission in writing. We accept no liability in respect of the information in this document to anyone who is not Our Client. If the purpose of the information in this document is to assist you in supplying information to someone else, and you acknowledge our assistance in your communication to that person, you must make it clear that we accept no liability towards them. \"),_c('br'),_c('br'),_vm._v(\" Lane Clark & Peacock LLP is a limited liability partnership registered in England and Wales with registered number OC301436. LCP is a registered trademark in the UK and in the EU. All partners are members of Lane Clark & Peacock LLP. \"),_c('br'),_vm._v(\" A list of members' names is available for inspection at 95 Wigmore Street, London, W1U 1DQ, the firm's principal place of business and registered office. Lane Clark & Peacock LLP is authorised and regulated by the Financial Conduct Authority and is licensed by the Institute and Faculty of Actuaries for a range of investment business activities. \"),_c('br'),_vm._v(\" © Lane Clark & Peacock LLP \"+_vm._s(new Date().getFullYear())+\". \"),_c('br'),_c('a',{attrs:{\"href\":\"https://www.lcp.com/third-party-privacy-notice/emails-important-information/\"}},[_vm._v(\"https://www.lcp.com/third-party-privacy-notice/emails-important-information\")]),_vm._v(\" contains important information about this communication from LCP, including limitations as to its use. \")])])])],2)])])]),_c('div',{staticClass:\"preview-scroll\"},[_c('iframe',{ref:\"iframe\",staticStyle:{\"overflow\":\"auto\"},attrs:{\"src\":\"\",\"type\":\"application/pdf\",\"width\":\"100%\",\"height\":\"100%\"}}),(_vm.loading || _vm.loadingData)?_c('loading'):_vm._e(),_c('div',{staticClass:\"controls\"},[_c('btn',{staticClass:\"primary\",attrs:{\"text\":\"Download PDF\",\"icon\":\"file-download\",\"disabled\":_vm.loading || !_vm.lastPreview},on:{\"click\":_vm.print}})],1)],1)])])])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"title\"},[_vm._v(\" Print preview \"),_c('span',[_vm._v(\"- select items to report on\")])])\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"option-title\"},[_vm._v(\"Available \"),_c('span',[_vm._v(\"- drag and drop to add\")])])\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"option-title\"},[_vm._v(\"Included \"),_c('span',[_vm._v(\"- drag and drop to remove\")])])\n}]\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue, Watch,\r\n} from 'vue-property-decorator';\r\nimport Guid from 'common/util/guid';\r\nimport draggable from 'vuedraggable';\r\nimport Client from 'common/models/client';\r\nimport dayjs from 'dayjs';\r\nimport { DynamicUiEnumDropdown } from '@lcp/dynamic-ui-typescript';\r\nimport axios from 'axios';\r\nimport base64Image from 'common/util/base64Image';\r\nimport * as STORE from 'common/store/storepaths';\r\nimport ClientConfiguration from '@/models/client';\r\nimport PrintTile from '@/models/printTile';\r\n\r\n@Component({ components: { draggable, DynamicUiEnumDropdown } })\r\nexport default class PrintPreview extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    loading = false;\r\n\r\n    reportTypes = [\r\n        { id: 'full', name: 'Full report' },\r\n        { id: 'custom', name: 'Custom' },\r\n    ];\r\n\r\n    selectedReportType = 'full';\r\n\r\n    lastPreview?: Blob | null = null;\r\n\r\n    fullReportOptions: Array<PrintTile> = [\r\n        {\r\n            components: ['news-items', 'div'], props: { printing: true }, name: 'Pensions news', color: 'grey',\r\n        },\r\n        {\r\n            components: ['completed-pie-sla', 'completed-jobs-sla'], props: { viewByCase: false }, name: 'Cases completed within target', color: 'watermelon',\r\n        },\r\n        {\r\n            components: ['completed-jobs-sla'], props: { viewByCase: true }, name: 'Cases completed within target (by case)', color: 'watermelon',\r\n        },\r\n        {\r\n            components: ['completed-pie-sla'], props: { showTable: true }, name: 'Cases completed within target by case (table)', color: 'watermelon',\r\n        },\r\n        {\r\n            components: ['inprogress-pie', 'inprogress-jobs'], props: { showCurrent: true }, name: 'Current live cases', color: 'watermelon',\r\n        },\r\n        {\r\n            components: ['completed-pie', 'completed-jobs'], name: 'Completed cases', color: 'watermelon',\r\n        },\r\n        {\r\n            components: ['data-scores'], name: 'Data scores', color: 'blue',\r\n        },\r\n        {\r\n            components: ['member-movements'], name: 'Member movements in period', color: 'grapefruit',\r\n        },\r\n        {\r\n            components: [{ id: 'demographics', props: { tableView: true, printing: true } }, { id: 'demographics', props: { printing: true } }], props: { printing: true }, name: 'Current demographics', color: 'grapefruit',\r\n        },\r\n        {\r\n            components: ['member-statistics-tile'], name: 'Current member statistics', color: 'grapefruit',\r\n        },\r\n        {\r\n            components: ['client-calendar'], name: 'Events calendar', color: 'blue', props: { showCurrent: false },\r\n        },\r\n        {\r\n            components: [{ id: 'transfers', props: { viewByValue: true, printing: true } }, { id: 'transfers' }], props: { printing: true }, name: 'Transfer quotations and payments', color: 'grapefruit',\r\n        },\r\n        {\r\n            components: ['member-interactions-pie', 'member-interactions'], name: 'Member interactions', color: 'watermelon',\r\n        },\r\n        {\r\n            components: ['feedback-score', 'div'], props: { printing: true }, name: 'Member feedback', color: 'blue',\r\n        },\r\n        {\r\n            components: ['contact-tile'], name: 'Your team', color: 'lilac',\r\n        },\r\n\r\n    ];\r\n\r\n    selectedOptions = [...this.fullReportOptions];\r\n\r\n    get clients () {\r\n        return this.$store.getters['clientContext/clients'] as Array<Client>;\r\n    }\r\n\r\n    mounted () {\r\n        const memberWebTiles: Array<PrintTile> = [{\r\n            components: ['web-registrations-pie', 'web-registrations'], props: { showCurrent: false }, name: 'Web registrations', color: 'aqua',\r\n        },\r\n        {\r\n            components: ['member-registrations-by-age-pie'], name: 'Web registrations by age', color: 'aqua',\r\n        },\r\n        {\r\n            components: ['member-registrations-by-status'], name: 'Web registrations by status', color: 'aqua',\r\n        },\r\n        {\r\n            components: ['member-registrations-by-location'], name: 'Web registrations by location', color: 'aqua', props: { printing: true },\r\n        },\r\n        {\r\n            components: ['member-logins-pie', 'member-logins'], name: 'Member logins', color: 'aqua',\r\n        },\r\n        {\r\n            components: ['member-logins-by-age-pie', 'member-logins-by-age'], name: 'Member logins by age', color: 'aqua',\r\n        },\r\n        {\r\n            components: ['member-logins-by-status-pie', 'member-logins-by-status'], name: 'Member logins by status', color: 'aqua',\r\n        },\r\n        {\r\n            components: ['page-visits-table', 'page-visits'], name: 'Page visits', color: 'aqua',\r\n        },\r\n        {\r\n            components: ['modeller-visits-by-age-pie', 'modeller-visits-by-age'], name: 'Modeller visits by age', color: 'aqua',\r\n        },\r\n        {\r\n            components: ['modeller-times-by-age-pie', 'modeller-times-by-age'], name: 'Time spent in modeller by  age', color: 'aqua',\r\n        },\r\n        {\r\n            components: ['modeller-interactions-by-age-pie', 'modeller-interactions-by-age'], name: 'Modeller interactions by age', color: 'aqua',\r\n        },\r\n        {\r\n            components: ['data-updates-by-age-pie', 'data-updates-by-age'], name: 'Data updates by age', color: 'aqua',\r\n        },\r\n        {\r\n            components: ['data-updates-by-datatype-pie', 'data-updates-by-datatype'], name: 'Data updates by data type', color: 'aqua',\r\n        },\r\n        {\r\n            components: ['data-updates-by-status-pie', 'data-updates-by-status'], name: 'Data updates by member status', color: 'aqua',\r\n        },\r\n        {\r\n            components: ['member-correspondence-views-totals', 'member-correspondence-views'], name: 'Member correspondence', color: 'aqua',\r\n        },\r\n        {\r\n            components: ['payslip-views-by-status-pie', 'payslip-views-by-status'], name: 'Payslips viewed by member status', color: 'aqua',\r\n        },\r\n        {\r\n            components: ['document-views-by-status-pie', 'document-views-by-status'], name: 'Generic documents viewed by member status', color: 'aqua',\r\n        },\r\n        ];\r\n        const financialTiles: Array<PrintTile> = [{\r\n            components: ['bank-balance'], name: 'Bank balance summary', color: 'darkBlue',\r\n        },\r\n        {\r\n            components: ['bank-balance-over-time'], name: 'Bank balance', color: 'darkBlue',\r\n        },\r\n        {\r\n            components: ['income-expenditure-table', 'income-expenditure'], name: 'Income and expenditure', color: 'darkBlue',\r\n        },\r\n        ];\r\n\r\n        const copiedSelectedOptions = JSON.parse(JSON.stringify(this.selectedOptions));\r\n        if (this.showFinancials) {\r\n            this.fullReportOptions.splice(this.fullReportOptions.length - 3, 0, ...financialTiles);\r\n            copiedSelectedOptions.splice(copiedSelectedOptions.length - 3, 0, ...financialTiles);\r\n        }\r\n        if (this.hasMemberWeb) {\r\n            this.fullReportOptions.splice(this.fullReportOptions.length - 3, 0, ...memberWebTiles);\r\n            copiedSelectedOptions.splice(copiedSelectedOptions.length - 3, 0, ...memberWebTiles);\r\n        }\r\n        this.fullReportOptions = this.filterTiles(this.fullReportOptions);\r\n        this.selectedOptions = this.filterTiles(copiedSelectedOptions);\r\n    }\r\n\r\n    get clientEntity () {\r\n        switch (this.clientName) {\r\n            case 'Law Debenture Pension Plan':\r\n                return 'Trustee';\r\n            default:\r\n                return 'Trustees';\r\n        }\r\n    }\r\n\r\n    get clientName () {\r\n        if (this.$route.path.indexOf('/demo') > -1) return 'Demo Scheme';\r\n        if (this.clientId) {\r\n            const name = this.clients.find((a) => a.clientId === this.clientId)?.name;\r\n            if (name === 'Generali Pension Fund') return 'Assicurazioni Generali SpA (UK Branch) Pension Fund';\r\n            if (name === 'Main Fund ICI') return 'ICI Pension Fund';\r\n            if (name === 'BSI') return 'BSI Retirement Benefits Plan';\r\n            return name;\r\n        }\r\n        return '';\r\n    }\r\n\r\n    get client () {\r\n        return (this.$store.getters['clientContext/clients'] as Array<Client>).find((a) => a.clientId === this.clientId);\r\n    }\r\n\r\n    get clientConfiguration () {\r\n        return this.$store.getters['clientContext/selectedClientConfiguration'](this.clientId) as ClientConfiguration ?? {};\r\n    }\r\n\r\n    get hasMemberWeb () {\r\n        return this.clientConfiguration?.hasMemberWeb;\r\n    }\r\n\r\n    get showFinancials () {\r\n        return this.clientConfiguration?.showFinancials;\r\n    }\r\n\r\n    get isLive () {\r\n        return window.location.href.indexOf('.lcp.uk.com') > -1;\r\n    }\r\n\r\n    formatDate (date: string) {\r\n        return dayjs(date).format('DD MMM YYYY');\r\n    }\r\n\r\n    get fromDate () {\r\n        return this.$store.getters['clientContext/fromDate'](this.clientId) as string;\r\n    }\r\n\r\n    get toDate () {\r\n        return this.$store.getters['clientContext/toDate'](this.clientId) as string;\r\n    }\r\n\r\n    get loadingData () {\r\n        return this.$store.getters['clientStatistics/areAnyLoading'](this.clientId) || false as boolean;\r\n    }\r\n\r\n    get printDate () {\r\n        return dayjs(new Date()).format('DD/MM/YYYY HH:mm');\r\n    }\r\n\r\n    async needBreak () {\r\n        if (!this.$refs.components) return;\r\n        const ref = this.$refs.components as HTMLElement;\r\n        let lastBreakHeight = 0;\r\n        let page = 0;\r\n        for (let i = 0; i < ref.children.length; i += 1) {\r\n            const el = ref.children[i] as HTMLElement;\r\n\r\n            if (ref.children[i].getAttribute('data-index')) {\r\n                el.classList.remove('break');\r\n                el.style.height = '0';\r\n            }\r\n        }\r\n        for (let i = 0; i < ref.children.length; i += 1) {\r\n            const el = ref.children[i] as HTMLElement;\r\n            if (i >= ref.children.length - 1) break;\r\n            const nextEl = ref.children[i + 1] as HTMLElement;\r\n            const pageHeight = 1697;\r\n            if (ref.children[i].getAttribute('data-index')) {\r\n                if (nextEl.offsetTop + nextEl.offsetHeight - lastBreakHeight > pageHeight) {\r\n                    el.classList.add('break');\r\n                    if (page === 1) {\r\n                        el.style.height = `${pageHeight + (page * pageHeight) - el.offsetTop - 13}px`;\r\n                        lastBreakHeight = el.offsetTop + pageHeight + (page * pageHeight) - el.offsetTop - 13;\r\n                    } else {\r\n                        el.style.height = `${pageHeight + (page * pageHeight) - el.offsetTop}px`;\r\n                        lastBreakHeight = el.offsetTop + pageHeight + (page * pageHeight) - el.offsetTop;\r\n                    }\r\n                    page += 1;\r\n                } else {\r\n                    el.classList.remove('break');\r\n                    el.style.height = '0';\r\n                }\r\n            }\r\n        }\r\n    }\r\n\r\n    async createPdf () {\r\n        await this.$nextTick();\r\n        this.loading = true;\r\n        const styles: Array<string> = [];\r\n        for (let i = 0; i < document.styleSheets.length; i += 1) {\r\n            const sheet = document.styleSheets[i];\r\n            // eslint-disable-next-line no-continue\r\n            if (sheet.href === 'https://fonts.lcp.uk.com/documenta.css') continue;\r\n            try {\r\n                for (let j = 0; j < sheet.cssRules.length; j += 1) {\r\n                    styles.push(sheet.cssRules[j].cssText);\r\n                }\r\n            } catch (ex) {\r\n                console.log(ex);\r\n            }\r\n        }\r\n\r\n        const els = (this.$refs.printPreview as HTMLElement).querySelectorAll('img');\r\n        for (let i = 0; i < els.length; i += 1) {\r\n            const image = els[i];\r\n            if (image.src.indexOf('data:') === -1) {\r\n            // eslint-disable-next-line no-await-in-loop\r\n                await base64Image(image.src).then((result) => {\r\n                    image.src = result as string;\r\n                }).catch((ex) => {\r\n                    console.log(ex);\r\n                });\r\n            }\r\n        }\r\n\r\n        window.setTimeout(async () => {\r\n            await this.needBreak();\r\n            axios.post('https://printpdf.lcp.uk.com/api/pdf', {\r\n                html: `<html><head><style>${styles.join('\\r\\n').replaceAll('Montserrat', 'Arial')}</style></head><body>${((this.$refs.printPreview as HTMLElement).parentElement as HTMLElement).innerHTML.replaceAll('Montserrat', 'Arial')}</body></html>`,\r\n                footer: `<div id=\"footer-template\" style=\"display: flex; position: relative; z-index: 999; overflow: visible; justify-content: space-between; font-size:8px; !important; color:#808080; padding-left:10px; padding-right: 10px; width: 100%\">\r\n                    <span style=\"overflow: visible\">${this.printDate}</span>\r\n                    <div class=\"pages\">\r\n                        Page <b><span class=\"pageNumber\"></span></b> of\r\n                        <b><span class=\"totalPages\"></span></b>\r\n                    </div>\r\n                </div>`,\r\n                width: 1248,\r\n                height: 1729,\r\n                margin: {\r\n                    bottom: 32,\r\n                    left: 24,\r\n                    right: 24,\r\n                    top: 32,\r\n                },\r\n            }, { responseType: 'arraybuffer' })\r\n                .then((result) => {\r\n                    const blob = new Blob([result.data], { type: 'application/pdf' });\r\n                    const file = window.URL.createObjectURL(blob);\r\n                    this.lastPreview = blob;\r\n                    (this.$refs.iframe as HTMLIFrameElement).src = `${file}#toolbar=0&navpanes=0`;\r\n                    this.loading = false;\r\n                });\r\n        }, 4500);\r\n    }\r\n\r\n    options: Array<PrintTile> = [];\r\n\r\n    get formattedOptions () {\r\n        const rows: Array<{ component: string | { componentId: string; props: Record<string, unknown>}}> = [];\r\n        let currentRow: Array<{ component: string | { componentId: string; props: Record<string, unknown>}}> = [];\r\n        this.selectedOptions.forEach((option) => {\r\n            if (currentRow.length && option.components.length > 1) {\r\n                rows.push([...currentRow] as never);\r\n                currentRow = [];\r\n            }\r\n            option.components.forEach((component: unknown) => {\r\n                if (currentRow.length === 2) {\r\n                    rows.push([...currentRow] as never);\r\n                    currentRow = [];\r\n                }\r\n                currentRow.push({ ...option, component } as never);\r\n            });\r\n        });\r\n        rows.push(currentRow as never);\r\n\r\n        return rows;\r\n    }\r\n\r\n    print () {\r\n        if (!this.lastPreview) {\r\n            return;\r\n        }\r\n\r\n        const url = URL.createObjectURL(this.lastPreview);\r\n        const a = document.createElement('a');\r\n        a.href = url;\r\n        a.download = `${this.clientName} - ${dayjs(new Date()).format('YYYY-MM-DD HHmm')}`;\r\n        a.click();\r\n    }\r\n\r\n    @Watch('selectedReportType')\r\n    selectedReportTypeChanged () {\r\n        if (this.selectedReportType === 'full') {\r\n            this.selectedOptions = this.filterTiles([...this.fullReportOptions]);\r\n            this.options = [];\r\n        }\r\n        if (this.selectedReportType === 'custom') {\r\n            this.selectedOptions = [];\r\n            this.options = this.filterTiles([...this.fullReportOptions].sort((a, b) => (a.name > b.name ? 1 : -1))) as never;\r\n        }\r\n    }\r\n\r\n    @Watch('loadingData')\r\n    loadingDataChanged (newLoadingState: boolean) {\r\n        if (newLoadingState) return;\r\n        this.createPdf();\r\n    }\r\n\r\n    @Watch('selectedOptions')\r\n    selectedOptionsChanged (newSelectedOptions: Array<PrintTile>, oldSelectedOptions: Array<PrintTile>) {\r\n        if (JSON.stringify(newSelectedOptions) === JSON.stringify(oldSelectedOptions) || this.loadingData) return;\r\n        this.createPdf();\r\n    }\r\n\r\n    get webRegistrationBySummaryEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.webregistrationbysummary.enabled'] === 'true';\r\n    }\r\n\r\n    get webRegistrationByTimeEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.webregistrationbytime.enabled'] === 'true';\r\n    }\r\n\r\n    get webRegistrationByLocationEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.webregistrationbylocation.enabled'] === 'true';\r\n    }\r\n\r\n    get webRegistrationByStatusEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.webregistrationbystatus.enabled'] === 'true';\r\n    }\r\n\r\n    get webRegistrationByAgeEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.webregistrationbyage.enabled'] === 'true';\r\n    }\r\n\r\n    get memberLoginEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.memberlogin.enabled'] === 'true';\r\n    }\r\n\r\n    get memberLoginByAgeEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.memberloginbyage.enabled'] === 'true';\r\n    }\r\n\r\n    get memberLoginByStatusEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.memberloginbystatus.enabled'] === 'true';\r\n    }\r\n\r\n    get pageVisitsEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.pagevisits.enabled'] === 'true';\r\n    }\r\n\r\n    get pageVisitsByTimeEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.pagevisitsbytime.enabled'] === 'true';\r\n    }\r\n\r\n    get modellerVisitsByAgeEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.modellervisitsbyage.enabled'] === 'true';\r\n    }\r\n\r\n    get modellerVisitsByTimeEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.modellervisitsbytime.enabled'] === 'true';\r\n    }\r\n\r\n    get modellerTimesByAgeEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.modellertimesbyage.enabled'] === 'true';\r\n    }\r\n\r\n    get modellerTimesByTimeEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.modellertimesbytime.enabled'] === 'true';\r\n    }\r\n\r\n    get modellerInteractionsByAgeEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.modellerinteractionsbyage.enabled'] === 'true';\r\n    }\r\n\r\n    get modellerInteractionsByPageEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.modellerinteractionsbypage.enabled'] === 'true';\r\n    }\r\n\r\n    get dateUpdatesByAgeEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.dateupdatesbyage.enabled'] === 'true';\r\n    }\r\n\r\n    get dateUpdatesByAgeByTimeEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.dateupdatesbyage.enabled'] === 'true';\r\n    }\r\n\r\n    get dateUpdatesByDataTypeEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.dateupdatesbydatatype.enabled'] === 'true';\r\n    }\r\n\r\n    get dateUpdatesByDataTypeByTimeEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.dateupdatesbyagebytime.enabled'] === 'true';\r\n    }\r\n\r\n    get dateUpdatesByStatusEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.dateupdatesbystatus.enabled'] === 'true';\r\n    }\r\n\r\n    get dateUpdatesByStatusByTimeEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.dateupdatesbystatusbytime.enabled'] === 'true';\r\n    }\r\n\r\n    get memberCorrespondenceEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.membercorrespondence.enabled'] === 'true';\r\n    }\r\n\r\n    get payslipViewsVisible () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.payslipsviews.enabled'] === 'true';\r\n    }\r\n\r\n    get payslipViewsByStatusEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.payslipsviewsbystatus.enabled'] === 'true';\r\n    }\r\n\r\n    get payslipViewsByTimeEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.payslipsviewsbytime.enabled'] === 'true';\r\n    }\r\n\r\n    get correspondenceViewsByStatusEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.correspondenceviewsbystatus.enabled'] === 'true';\r\n    }\r\n\r\n    get correspondenceViewsByTimeEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.correspondenceviewsbytime.enabled'] === 'true';\r\n    }\r\n\r\n    get documentViewsByStatusEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.documentviewsbystatus.enabled'] === 'true';\r\n    }\r\n\r\n    get documentViewsByTimeEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.documentviewsbytime.enabled'] === 'true';\r\n    }\r\n\r\n    get webFormsViewsByStatusEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.webformviewsbystatus.enabled'] === 'true';\r\n    }\r\n\r\n    get webFormsViewsByTimeEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.webformviewsbytime.enabled'] === 'true';\r\n    }\r\n\r\n    get showModeller () {\r\n        return this.clientConfiguration?.showModeller;\r\n    }\r\n\r\n    get showPayslips () {\r\n        return this.clientConfiguration?.showPayslips;\r\n    }\r\n\r\n    get disabledPrintTiles () {\r\n        return [\r\n            this.webRegistrationBySummaryEnabled ? '' : 'web-registrations-pie',\r\n            this.webRegistrationByTimeEnabled ? '' : 'web-registrations',\r\n            this.webRegistrationByLocationEnabled ? '' : 'member-registrations-by-location',\r\n            this.webRegistrationByStatusEnabled ? '' : 'member-registrations-by-status',\r\n            this.webRegistrationByAgeEnabled ? '' : 'member-registrations-by-age-pie',\r\n            this.memberLoginEnabled ? '' : 'member-logins-pie',\r\n            this.memberLoginEnabled ? '' : 'member-logins',\r\n            this.memberLoginByAgeEnabled ? '' : 'member-logins-by-age-pie',\r\n            this.memberLoginByAgeEnabled ? '' : 'member-logins-by-age',\r\n            this.memberLoginByStatusEnabled ? '' : 'member-logins-by-status-pie',\r\n            this.memberLoginByStatusEnabled ? '' : 'member-logins-by-status',\r\n            this.pageVisitsEnabled ? '' : 'page-visits-table',\r\n            this.pageVisitsByTimeEnabled ? '' : 'page-visits',\r\n            this.modellerTimesByAgeEnabled ? '' : 'modeller-times-by-age-pie',\r\n            this.modellerTimesByTimeEnabled ? '' : 'modeller-times-by-age',\r\n            this.modellerInteractionsByAgeEnabled ? '' : 'modeller-interactions-by-age-pie',\r\n            this.modellerInteractionsByPageEnabled ? '' : 'modeller-interactions-by-age',\r\n            this.dateUpdatesByAgeEnabled ? '' : 'data-updates-by-age-pie',\r\n            this.dateUpdatesByAgeByTimeEnabled ? '' : 'data-updates-by-age',\r\n            this.dateUpdatesByDataTypeEnabled ? '' : 'data-updates-by-datatype-pie',\r\n            this.dateUpdatesByDataTypeByTimeEnabled ? '' : 'data-updates-by-datatype',\r\n            this.dateUpdatesByStatusEnabled ? '' : 'data-updates-by-status-pie',\r\n            this.dateUpdatesByStatusByTimeEnabled ? '' : 'data-updates-by-status',\r\n            this.memberCorrespondenceEnabled ? '' : 'member-correspondence-views-totals',\r\n            this.memberCorrespondenceEnabled ? '' : 'member-correspondence-views',\r\n            this.showPayslips && this.payslipViewsByStatusEnabled ? '' : 'payslip-views-by-status-pie',\r\n            this.showPayslips && this.payslipViewsByTimeEnabled ? '' : 'payslip-views-by-status',\r\n            this.correspondenceViewsByStatusEnabled ? '' : 'correspondence-views-by-status-pie',\r\n            this.correspondenceViewsByTimeEnabled ? '' : 'correspondence-views-by-status',\r\n            this.documentViewsByStatusEnabled ? '' : 'document-views-by-status-pie',\r\n            this.documentViewsByTimeEnabled ? '' : 'document-views-by-status',\r\n            this.webFormsViewsByStatusEnabled ? '' : 'web-form-views-by-status-pie',\r\n            this.webFormsViewsByTimeEnabled ? '' : 'web-form-views-by-status',\r\n            this.showModeller ? '' : 'modeller-visits-by-age-pie',\r\n            this.showModeller ? '' : 'modeller-visits-by-age',\r\n            this.showModeller ? '' : 'modeller-times-by-age-pie',\r\n            this.showModeller ? '' : 'modeller-times-by-age',\r\n            this.showModeller ? '' : 'modeller-interactions-by-age-pie',\r\n            this.showModeller ? '' : 'modeller-interactions-by-age',\r\n            this.modellerVisitsByAgeEnabled ? '' : 'modeller-visits-by-age-pie',\r\n            this.modellerVisitsByTimeEnabled ? '' : 'modeller-visits-by-age',\r\n            this.showFinancials ? '' : 'bank-balance-over-time',\r\n            this.showFinancials ? '' : 'bank-balance',\r\n            this.showFinancials ? '' : 'income-expenditure',\r\n            this.showFinancials ? '' : 'income-expenditure-table',\r\n        ];\r\n    }\r\n\r\n    filterTiles (tiles: Array<PrintTile>) {\r\n        tiles.forEach((tile) => {\r\n            tile.components.forEach((component, i) => {\r\n                if (typeof component === 'string' && this.disabledPrintTiles.includes(component)) {\r\n                    tile.components.splice(i, 1);\r\n                    return;\r\n                }\r\n                if (this.disabledPrintTiles.includes((component as { id: string; props?: Record<string, unknown> }).id)) {\r\n                    tile.components.splice(i, 1);\r\n                }\r\n            });\r\n        });\r\n        return tiles.filter((a) => a.components.length);\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./print-preview.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./print-preview.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./print-preview.vue?vue&type=template&id=0e0580dc&scoped=true&\"\nimport script from \"./print-preview.vue?vue&type=script&lang=ts&\"\nexport * from \"./print-preview.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./print-preview.vue?vue&type=style&index=0&id=0e0580dc&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"0e0580dc\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"terms-conditions\"},[_c('h2',[_vm._v(\"LCP Pulse\")]),_c('h2',[_vm._v(\"Terms and conditions of use\")]),_c('h3',[_vm._v(\"Using LCP Pulse\")]),_vm._m(0),_vm._m(1),_c('p',[_vm._v(\"These terms and conditions were last amended on 8 April 2024.\")]),_c('h3',[_vm._v(\"Liability and reliance on information\")]),_c('p',[_vm._v(\" We do not guarantee that this website, or any content on it, will be free from errors or omissions. The accuracy of information on this website relies on data provided to us as at a certain date and on data having been sourced from other websites (reference to other websites includes other websites or systems operated by us), and it may be affected by changes to this data, issues for whatever reason with sourcing data through from other websites or external events. Certain data (including Client Data) published on this website may originate from third parties who have provided the data in accordance with the Client’s permission and/or as agreed. To the extent permitted by law, LCP excludes all responsibility and/or liability for such data. \")]),_c('p',[_vm._v(\" Calculations produced through LCP Pulse are intended for illustrative purposes only and their results do not constitute a promise or guarantee. LCP Pulse is not intended to be sufficient by itself to assist with any action, decision or any other possible use. You must liaise with us before making any decisions based on the contents of this website. To the extent permitted by law, LCP excludes all responsibility and/or liability for any actions or decisions taken using this website unless we have confirmed in writing that LCP Pulse is appropriate for that purpose. \")]),_c('p',[_vm._v(\" Access to this website is provided as part of our overall service to the Client and is subject to the limitations and exclusions of liability set out in our appointment letter (and terms and conditions of appointment) with the Client, including the liability cap, and any other written agreement with the Client. \")]),_c('p',[_vm._v(\" In addition, this website is provided on an “as is” basis. Accordingly, use of this website is at a person’s own risk, and LCP makes no warranty or representation (in each case, whether express or implied) as to its fitness for purpose. To the extent permitted by law, LCP expressly disclaims any and all conditions, warranties and representations (in each case, whether express or implied) in respect of this website. \")]),_c('p',[_vm._v(\" Regarding any person other than the Client (including authorised users), to the extent permitted by law, we exclude all liability for any loss or damage, whether in contract, tort (including negligence), breach of statutory duty, or otherwise, even if foreseeable, arising under or in connection with this website. Nothing in the T&Cs excludes or limits LCP’s liability for any matter that cannot be lawfully excluded or limited. \")]),_c('h3',[_vm._v(\"Access to LCP Pulse\")]),_vm._m(2),_c('p',[_vm._v(\"Information published on this website may include personal data and confidential information for pension scheme members and must be kept secure and confidential by you at all times. Users should not copy electronically and/or print in hard copy any personal data and confidential information that is accessed through this website.\")]),_c('p',[_vm._v(\"We may update, modify, restrict access to or close this website. We do not guarantee uninterrupted use of this website or accept liability for any access delays or interruptions.\")]),_c('h3',[_vm._v(\"Information about us\")]),_c('p',[_vm._v(\"This website is owned and operated by LCP, a limited liability partnership registered in England and Wales with registered number OC301436. LCP is a registered trademark in the UK and in the EU. All partners are members of Lane Clark & Peacock LLP. A list of members’ names is available for inspection at 95 Wigmore Street, London, W1U 1DQ, the firm’s principal place of business and registered office.\")]),_c('p',[_vm._v(\"Lane Clark & Peacock LLP is authorised and regulated by the Financial Conduct Authority and is licensed by the Institute and Faculty of Actuaries for a range of investment business activities.\")]),_c('p',[_vm._v(\"© Lane Clark & Peacock LLP \"+_vm._s(new Date().getFullYear())+\".\")]),_c('h3',[_vm._v(\"Intellectual Property Rights\")]),_c('p',[_vm._v(\"We are the owner or the licensee of all Intellectual Property Rights in the website and the Content. Client Data is owned by the Client (or its licensors). If applicable, you grant to us on behalf of the Client a non-exclusive, royalty-free, worldwide licence to publish or otherwise use Client Data for the purposes of providing this website. For the purposes of the T&Cs:\")]),_vm._m(3),_c('h3',[_vm._v(\"Online privacy\")]),_vm._m(4),_c('h3',[_vm._v(\"Viruses and security\")]),_c('p',[_vm._v(\"We do not guarantee that this website will be free from bugs or viruses. You must use your own virus protection software. We do not accept liability for any damage or loss caused by:\")]),_vm._m(5),_c('p',[_vm._v(\"You must not misuse this website by knowingly introducing viruses, trojans, worms, logic bombs or other material which is malicious or technologically harmful.\")]),_c('h3',[_vm._v(\"Third party links\")]),_c('p',[_vm._v(\"Where this website contains links to other websites and resources provided by third parties, these links are provided for your information only. We do not endorse any of these websites or accept responsibility for their contents.\")]),_c('h3',[_vm._v(\"Other matters\")]),_c('p',[_vm._v(\"If any of the T&Cs are held by any judicial or other competent authority to be void, voidable, illegal or otherwise unenforceable, the remaining terms and conditions shall remain in full force and effect.\")]),_c('p',[_vm._v(\"Any temporary or permanent waiver on our part of any of the T&Cs shall not affect our right subsequently to enforce all of the T&Cs.\")]),_c('p',[_vm._v(\"None of the T&Cs are intended to be enforceable pursuant to the Contracts (Rights of Third Parties) Act 1999. Accordingly, no third party shall have any right to enforce or rely on any of the T&Cs.\")]),_c('h3',[_vm._v(\"Governing law\")]),_c('p',[_vm._v(\"The T&Cs shall be governed by and construed in accordance with English law, and we and you each submit to the exclusive jurisdiction of the English Courts.\")]),_vm._t(\"default\")],2)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('p',[_vm._v(\" LCP Pulse is being provided to you by Lane Clark & Peacock LLP (“LCP”) through its direct arrangement with its client (the “Client”). References to “we, “us” and “our” are to LCP, and references to “you” or “your” are to the Client and to the individual named user(s) expressly authorised by the Client (each an “authorised user” where the context so requires). An authorised user may use LCP Pulse as part of that authorised user’s role as permitted by the Client but for no other purpose. Your use of LCP Pulse is subject to these terms and conditions and any accompanying legal notices (the “T&Cs\\\"). The \"),_c('a',{attrs:{\"href\":\"https://lcpcloud.com/privacy\",\"target\":\"_blank\"}},[_vm._v(\"LCP Cloud privacy policy\")]),_vm._v(\" also applies to your use of this website. Please read the T&Cs and the privacy policy and, on log-in, click “Accept Terms and Conditions” to confirm your acceptance of the T&Cs. If you do not agree to the T&Cs and/or are not comfortable with the terms of the privacy policy, you must not use this website. By accepting the T&Cs you indicate your acceptance on behalf of yourself and the Client. \")])\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('p',[_vm._v(\"We may amend the T&Cs and the \"),_c('a',{attrs:{\"href\":\"https://lcpcloud.com/privacy\",\"target\":\"_blank\"}},[_vm._v(\"LCP Cloud privacy policy\")]),_vm._v(\" from time to time. Please check them periodically so that you can be informed of any changes. Your continued access to and use of LCP Pulse will amount to continued acceptance.\")])\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('p',[_vm._v(\"Access to this website is only for users for whom we have authorised and associated an email address with the pension scheme on which we are providing services to the Client. Authorised users must not disclose their account details to anyone and must keep the details secure. LCP excludes all liability in connection with all activities that occur under your account. If you have been given access to this website, or to information regarding a pension scheme on this website, by mistake or suspect that an unauthorised person knows your password, you must inform us promptly at \"),_c('a',{attrs:{\"href\":\"mailto:clientwebsupport@lcp.uk.com\"}},[_vm._v(\"clientwebsupport@lcp.uk.com\")]),_vm._v(\".\")])\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ul',[_c('li',[_vm._v(\"“Client Data” means all data and other materials used on this website that are provided to us by, or on behalf of, the Client;\")]),_c('li',[_vm._v(\"“Content” means any text, software, database, format, graphic, program code, calculation, model, chart and written work and all other materials developed by, or on behalf of, us which form part of this website; and\")]),_c('li',[_vm._v(\"“Intellectual Property Rights” means:\")]),_c('ul',[_c('li',[_vm._v(\"copyright, patents, database rights and rights in trademarks, designs, know- how and confidential information (whether registered or not);\")]),_c('li',[_vm._v(\"applications for registration and the right to apply for registration for any of these rights; and\")]),_c('li',[_vm._v(\"all other intellectual property rights and equivalent or similar forms of protection existing anywhere in the world.\")])])])\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('p',[_vm._v(\"The \"),_c('a',{attrs:{\"href\":\"https://lcpcloud.com/privacy\",\"target\":\"_blank\"}},[_vm._v(\"LCP Cloud privacy policy\")]),_vm._v(\" sets out the basis on which we will use your personal data in connection with your use of this website and other LCP Cloud services as applicable.\")])\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ul',[_c('li',[_vm._v(\"any virus, malicious code or software, defect or malfunction in connection with use of this website; or\")]),_c('li',[_vm._v(\"any breach of security or unauthorised use of the website arising from hacking or otherwise.\")])])\n}]\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue } from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class TermsWording extends Vue {\r\n\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./terms-wording.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./terms-wording.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./terms-wording.vue?vue&type=template&id=5ee18cfc&scoped=true&\"\nimport script from \"./terms-wording.vue?vue&type=script&lang=ts&\"\nexport * from \"./terms-wording.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./terms-wording.vue?vue&type=style&index=0&id=5ee18cfc&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"5ee18cfc\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title grapefruit\"},[_vm._v(\" Transfer quotations and payments \")]),_c('info',{attrs:{\"tooltip\":\"Transfer activity in the period\"}}),_c('div',{staticClass:\"tile-content\"},[(!_vm.printing)?_c('toggle-switch',{attrs:{\"name\":\"View by amount\"},model:{value:(_vm.valueView),callback:function ($$v) {_vm.valueView=$$v},expression:\"valueView\"}}):_vm._e(),_c('highcharts',{attrs:{\"options\":_vm.chartOptions}}),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue, Watch,\r\n} from 'vue-property-decorator';\r\nimport Guid from 'common/util/guid';\r\nimport dayjs from 'dayjs';\r\nimport ColourService from '@/services/colourService';\r\nimport Highcharts, { SeriesOptionsType } from 'highcharts';\r\nimport TransferStats from '@/models/transferStats';\r\n\r\n@Component\r\nexport default class Transfers extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        filter!: string | null;\r\n\r\n    @Prop()\r\n        printing!: boolean | null;\r\n\r\n    @Prop()\r\n        viewByValue!: boolean | null;\r\n\r\n    valueView = false;\r\n\r\n    @Watch('viewByValue', { immediate: true })\r\n    viewByValueChanged () {\r\n        this.valueView = !!this.viewByValue;\r\n    }\r\n\r\n    get loading () {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'transfers') || false as boolean;\r\n    }\r\n\r\n    get transferStats (): TransferStats {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'transfers');\r\n    }\r\n\r\n    get transferStatsTranformed () {\r\n        if (!this.transferStats) return null;\r\n        return [{\r\n            name: 'Quotes',\r\n            color: ColourService.getSeriesColour('transfers', 'quotes'),\r\n            type: 'column',\r\n            data: this.transferStats.dataByDate\r\n                .map((a) => (this.valueView ? a.quotesAmount : a.quotes)),\r\n        },\r\n        {\r\n            name: 'Payments',\r\n            color: ColourService.getSeriesColour('transfers', 'transfers'),\r\n            type: 'column',\r\n            data: this.transferStats.dataByDate\r\n                .map((a) => (this.valueView ? a.transferAmount : a.transfers)),\r\n        }] as Array<SeriesOptionsType>;\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n        // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n        const self = this;\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                type: 'column',\r\n            },\r\n            xAxis: {\r\n                categories: this.transferStats?.dataByDate.map((a) => dayjs(a.startDate).format('DD MMM YYYY')),\r\n                labels: {\r\n                    formatter: (that) => dayjs(that.value).format('DD MMM'),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            tooltip: {\r\n                pointFormat: this.valueView ? '{series.name}: <b>£{point.y}</b><br/>' : '{series.name}: <b>{point.y}</b><br/>',\r\n            },\r\n            yAxis: {\r\n                allowDecimals: false,\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n                labels: {\r\n                    formatter () {\r\n                        const label = this.value;\r\n                        return self.valueView ? `£${label.toLocaleString('en')}` : label.toString();\r\n                    },\r\n                },\r\n\r\n            },\r\n            legend: {\r\n                enabled: true,\r\n                itemStyle: {\r\n                    fontSize: '0.9rem',\r\n                    fontFamily: 'Montserrat, sans-serif',\r\n                    fontWeight: '400',\r\n                },\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            plotOptions: {\r\n                // column: {\r\n                //     stacking: 'normal',\r\n                // },\r\n            },\r\n            series: this.transferStatsTranformed || [],\r\n        };\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./transfers.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./transfers.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./transfers.vue?vue&type=template&id=07d4ed88&scoped=true&\"\nimport script from \"./transfers.vue?vue&type=script&lang=ts&\"\nexport * from \"./transfers.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./transfers.vue?vue&type=style&index=0&id=07d4ed88&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"07d4ed88\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('a',{staticClass:\"profile\",attrs:{\"title\":_vm.hoverText}},[(_vm.url && !_vm.useFallback)?_c('img',{class:{ 'not-grayscale': _vm.color},attrs:{\"src\":_vm.url,\"height\":\"50\",\"width\":\"50\"},on:{\"error\":function($event){_vm.useFallback = true}}}):_vm._t(\"fallback\",function(){return [_c('div',{staticClass:\"icon\"},[_c('font-awesome-icon',{attrs:{\"icon\":\"user-alt\"}})],1)]})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template lang=\"html\">\r\n    <a class=\"profile\" :title=\"hoverText\">\r\n        <img v-if=\"url && !useFallback\" :src=\"url\" :class=\"{ 'not-grayscale': color}\" @error=\"useFallback = true\" height=\"50\" width=\"50\"/>\r\n        <slot name=\"fallback\" v-else>\r\n            <div class=\"icon\">\r\n                <font-awesome-icon icon=\"user-alt\" />\r\n            </div>\r\n        </slot>\r\n    </a>\r\n</template>\r\n\r\n<script>\r\nimport base64Image from 'common/util/base64Image';\r\n\r\nexport default {\r\n    name: 'user-photo',\r\n    components: {\r\n    },\r\n\r\n    props: {\r\n        id: String,\r\n        color: {\r\n            default: true,\r\n            type: Boolean,\r\n        },\r\n        email: String,\r\n        prescence: {\r\n            default: 'offline',\r\n            type: String,\r\n        },\r\n        fallbackmage: String,\r\n        disabled: Boolean,\r\n    },\r\n    data () {\r\n        return {\r\n            useFallback: false,\r\n            url: '',\r\n        };\r\n    },\r\n    mounted () {\r\n        this.getImgUrl();\r\n    },\r\n    methods: {\r\n        async getImgUrl () {\r\n            this.url = await base64Image(`${this.userUrl}${this.id}.jpg`);\r\n        },\r\n    },\r\n    computed: {\r\n        hoverText () {\r\n            if (this.title) return this.title;\r\n            if (this.disabled) return this.email;\r\n            if (!this.email) return null;\r\n            return `${this.email}`;\r\n        },\r\n        userUrl () {\r\n            return this.$store.getters['configuration/site']['user.blob.url'];\r\n        },\r\n\r\n    },\r\n    watch: {\r\n        id () {\r\n            this.useFallback = false;\r\n        },\r\n    },\r\n};\r\n\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import 'common/scss/index.scss';\r\n\r\n.profile {\r\n    height: 50px;\r\n    width: 50px;\r\n    min-height: 50px;\r\n    min-width: 50px;\r\n    border-radius: 100%;\r\n    position: relative;\r\n    display: block;\r\n    img {\r\n        filter: grayscale(100%);\r\n        transition: filter 0.5s;\r\n        height: 100%;\r\n        height: 50px;\r\n        width: 50px;\r\n        border-radius: 100%;\r\n        width: 100%;\r\n        &.not-grayscale {\r\n            filter: none;\r\n        }\r\n    }\r\n\r\n    .icon {\r\n        background: #aaa;\r\n        color: #fff;\r\n        height: 100%;\r\n        width: 100%;\r\n        border-radius: 100%;\r\n        text-align: center;\r\n        ::v-deep svg {\r\n            position: relative;\r\n            margin-top: 19%;\r\n            color: #fff;\r\n            height: 55%;\r\n            width: 55%;\r\n        }\r\n    }\r\n\r\n    &:hover {\r\n\r\n        &:after {\r\n            opacity: 0;\r\n        }\r\n\r\n        img {\r\n            filter: none;\r\n        }\r\n    }\r\n\r\n    &:before {\r\n        content: '';\r\n        height: 0.5rem;\r\n        width: 0.5rem;\r\n        border-radius: 100%;\r\n        position: absolute;\r\n        border: 2px solid #ccc;\r\n        background: white;\r\n        bottom: -5%;\r\n        right: -5%;\r\n        z-index: 2;\r\n        display: none;\r\n    }\r\n    &.online:before {\r\n        background: #6eb005;\r\n        border-color: #fff;\r\n    }\r\n}\r\n\r\n</style>\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./user-photo.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./user-photo.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./user-photo.vue?vue&type=template&id=c97987d4&scoped=true&lang=html&\"\nimport script from \"./user-photo.vue?vue&type=script&lang=js&\"\nexport * from \"./user-photo.vue?vue&type=script&lang=js&\"\nimport style0 from \"./user-photo.vue?vue&type=style&index=0&id=c97987d4&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"c97987d4\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title aqua\"},[_vm._v(\" Web Forms submitted by member status \")]),_c('info',{attrs:{\"tooltip\":\"Total number of web forms submitted grouped by member status\"}}),_c('div',{staticClass:\"tile-content\",class:[{ filtered: _vm.selectedPoint }, `colour-${_vm.selectedColourIndex}`]},[_c('highcharts',{ref:\"chart\",attrs:{\"options\":_vm.chartOptions}}),_c('div',{staticClass:\"total\",class:{ 'has-legend': _vm.showLegend },style:(_vm.centerPos),on:{\"click\":_vm.clearFilter}},[_vm._v(\" \"+_vm._s(_vm.totalWebFormsViewed)+\" \"),_c('span',{staticClass:\"filter\"},[_vm._v(_vm._s(_vm.selectedPoint))]),_c('span',[_vm._v(\"Web Forms submitted\")]),(_vm.selectedPoint)?_c('div',{staticClass:\"return\",on:{\"click\":_vm.clearFilter}},[_c('font-awesome-icon',{attrs:{\"icon\":\"times\"}})],1):_vm._e()]),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport dayjs from 'dayjs';\r\nimport Guid from 'common/util/guid';\r\nimport Highcharts, { Point } from 'highcharts';\r\nimport ColourService from '@/services/colourService';\r\nimport ToggleSwitch from 'common/components/toggle-switch.vue';\r\nimport PieLegend from '@/services/pieLegendService';\r\nimport MemberDocumentStats from '@/models/memberDocumentStats';\r\n\r\n@Component({ components: { ToggleSwitch } })\r\nexport default class PayslipViewsByStatusPie extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        showLegend!: boolean;\r\n\r\n    @Prop()\r\n        printing!: boolean;\r\n\r\n    viewByFileType = false;\r\n\r\n    selectedPoint: string | null = null;\r\n\r\n    selectedColourIndex: number | null = null;\r\n\r\n    chartCenterX = 0;\r\n\r\n    chartCenterY = 0;\r\n\r\n    get loading () {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'memberDocumentsStats') || false as boolean;\r\n    }\r\n\r\n    get webFormStats (): Array<MemberDocumentStats> {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'memberDocumentsStats');\r\n    }\r\n\r\n    get centerPos () {\r\n        return {\r\n            top: `calc(${this.chartCenterY}px + 1.5rem) !important`,\r\n            left: `calc(${this.chartCenterX}px + 1.5rem) !important`,\r\n        };\r\n    }\r\n\r\n    get categories () {\r\n        if (!this.webFormStats) return [];\r\n        const dataTypes: Array<string> = [];\r\n        this.webFormStats.forEach((date) => {\r\n            Object.values(date.webFormsSubmitted).forEach((webForm) => {\r\n                dataTypes.push(...Object.keys(webForm.splitByStatus));\r\n            });\r\n        });\r\n        return [...new Set(dataTypes)];\r\n    }\r\n\r\n    get totalWebFormsViewed () {\r\n        return this.dataUpdatesTransformed?.filter((a) => a.name === this.selectedPoint || !this.selectedPoint)?.reduce((a, b) => a + (b.y ?? 0), 0);\r\n    }\r\n\r\n    get dataUpdatesTransformed () {\r\n        if (!this.webFormStats) return null;\r\n        const totals: Record<string, number> = {};\r\n        this.webFormStats.forEach((date) => {\r\n            this.categories.forEach((status) => {\r\n                if (!totals[status]) totals[status] = 0;\r\n                totals[status] += Object.values(date.webFormsSubmitted)\r\n                    .reduce((a, b) => a + (b.splitByStatus[status] ?? 0), 0);\r\n            });\r\n        });\r\n        return Object.keys(totals)\r\n            .map((seriesName) => ({\r\n                name: seriesName,\r\n                y: totals[seriesName],\r\n                color: ColourService.getSeriesColour('status', seriesName),\r\n            }));\r\n    }\r\n\r\n    pointClicked (point: Point) {\r\n        this.selectedColourIndex = point.colorIndex;\r\n        this.selectedPoint = point.name === this.selectedPoint ? null : point.name;\r\n        this.$emit('pointSelected', { category: 'webFormsByStatus', series: this.selectedPoint });\r\n    }\r\n\r\n    clearFilter () {\r\n        (this.$refs.chart as unknown as { chart: Highcharts.Chart }).chart.series[0].points.forEach((a) => a.select(false));\r\n        this.selectedPoint = null;\r\n        this.$emit('pointSelected', { category: 'webFormsByStatus', series: this.selectedPoint });\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n        // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n        const self = this;\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                type: 'pie',\r\n                backgroundColor: 'transparent',\r\n                height: 444,\r\n                events: {\r\n                    load () {\r\n                        const series = this.series[0] as unknown as { center: Array<number> };\r\n                        const x = this.plotLeft + series.center[0];\r\n                        const y = this.plotTop + series.center[1];\r\n                        self.chartCenterX = x;\r\n                        self.chartCenterY = y;\r\n                    },\r\n                    redraw () {\r\n                        const series = this.series[0] as unknown as { center: Array<number> };\r\n                        const x = this.plotLeft + series.center[0];\r\n                        const y = this.plotTop + series.center[1];\r\n                        self.chartCenterX = x;\r\n                        self.chartCenterY = y;\r\n                    },\r\n                },\r\n            },\r\n            xAxis: {\r\n                labels: {\r\n                    formatter: ((that) => dayjs(that.value).format('DD MMM')),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            yAxis: {\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            legend: this.showLegend ? PieLegend.get().legend : {\r\n                enabled: false,\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            plotOptions: {\r\n                pie: {\r\n                    dataLabels: {\r\n                        enabled: false,\r\n                    },\r\n                    allowPointSelect: true,\r\n                    showInLegend: true,\r\n                    borderWidth: 0,\r\n                    point: {\r\n                        events: {\r\n                            legendItemClick: (event) => {\r\n                                event.preventDefault();\r\n                                event.target.select(!event.target.selected);\r\n                                this.pointClicked(event.target);\r\n                            },\r\n                        },\r\n                    },\r\n                },\r\n            },\r\n            series: [{\r\n                type: 'pie',\r\n                name: 'Web Forms submitted',\r\n                innerSize: '70%',\r\n                slicedOffset: 5,\r\n                data: this.dataUpdatesTransformed!,\r\n                events: {\r\n                    click: (event) => { this.pointClicked(event.point); },\r\n                },\r\n            }],\r\n        };\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./web-form-views-by-status-pie.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./web-form-views-by-status-pie.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./web-form-views-by-status-pie.vue?vue&type=template&id=ce3f25b8&scoped=true&\"\nimport script from \"./web-form-views-by-status-pie.vue?vue&type=script&lang=ts&\"\nexport * from \"./web-form-views-by-status-pie.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./web-form-views-by-status-pie.vue?vue&type=style&index=0&id=ce3f25b8&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"ce3f25b8\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title aqua\"},[_vm._v(\" Web Forms submitted by member status \")]),_c('info',{attrs:{\"tooltip\":\"Number of web forms submitted grouped by member status over the period\"}}),_c('div',{staticClass:\"tile-content\"},[(!_vm.printing)?_c('toggle-switch',{attrs:{\"name\":\"View by web form\"},model:{value:(_vm.viewByFileType),callback:function ($$v) {_vm.viewByFileType=$$v},expression:\"viewByFileType\"}}):_vm._e(),_c('highcharts',{attrs:{\"options\":_vm.chartOptions}}),(!_vm.chartOptions.series || !_vm.chartOptions.series.length)?_c('div',{staticClass:\"no-data\"},[_c('strong',[_vm._v(\"0\")]),_vm._v(\" Web Forms submitted\")]):_vm._e(),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport Guid from 'common/util/guid';\r\nimport dayjs from 'dayjs';\r\nimport ColourService from '@/services/colourService';\r\nimport MemberDocumentStats from '@/models/memberDocumentStats';\r\nimport Highcharts from 'highcharts';\r\n\r\n@Component\r\nexport default class PayslipViewsByStatus extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        filter!: string | null;\r\n\r\n    @Prop()\r\n        printing!: boolean;\r\n\r\n    viewByFileType = false;\r\n\r\n    get loading () {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'memberDocumentsStats') || false as boolean;\r\n    }\r\n\r\n    get documentStats (): Array<MemberDocumentStats> {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'memberDocumentsStats') as Array<MemberDocumentStats>;\r\n    }\r\n\r\n    get categories () {\r\n        if (!this.documentStats) return [];\r\n        const dataTypes: Array<string> = [];\r\n\r\n        this.documentStats.forEach((date) => {\r\n            Object.values(date.webFormsSubmitted).forEach((webForm) => {\r\n                dataTypes.push(...Object.keys(webForm.splitByStatus));\r\n            });\r\n        });\r\n        return [...new Set(dataTypes)];\r\n    }\r\n\r\n    get webFormNames () {\r\n        if (!this.documentStats) return [];\r\n        const dataTypes: Array<string> = [];\r\n\r\n        this.documentStats.forEach((date) => {\r\n            if (date.webFormsSubmitted.length > 0) {\r\n                date.webFormsSubmitted.forEach((webForm) => {\r\n                    dataTypes.push(webForm.name);\r\n                });\r\n            }\r\n        });\r\n        return [...new Set(dataTypes)];\r\n    }\r\n\r\n    get documentStatsTransformed () {\r\n        if (!this.documentStats) return null;\r\n        const vals: Array<{ name: string; data: number[]; type: 'column'; color: string }> = [];\r\n\r\n        this.categories.forEach((status) => {\r\n            const dataTypeData: Array<number> = [];\r\n\r\n            if (this.viewByFileType) {\r\n                this.webFormNames.forEach((webFormName) => {\r\n                    const val = this.documentStats.reduce((a, b) => a + (b.webFormsSubmitted.find((c) => c.name === webFormName)?.splitByStatus[status] ?? 0), 0);\r\n                    dataTypeData.push(val);\r\n                });\r\n            } else {\r\n                this.documentStats!.forEach((row) => {\r\n                    dataTypeData.push(Object.values(row.webFormsSubmitted)\r\n                        .reduce((a, b) => a + (b.splitByStatus[status] ?? 0), 0));\r\n                });\r\n            }\r\n            console.log(dataTypeData);\r\n            if (!this.filter || this.filter === status) {\r\n                vals.push({\r\n                    name: status,\r\n                    type: 'column',\r\n                    data: dataTypeData,\r\n                    color: ColourService.getSeriesColour('status', status),\r\n                });\r\n            }\r\n        });\r\n\r\n        return vals;\r\n    }\r\n\r\n    formatName (val: string) {\r\n        switch (val) {\r\n            case 'Change of address':\r\n                return 'Holden section handbook';\r\n            case 'Change of name':\r\n                return 'Pensioner FAQs';\r\n            case 'Pension statement':\r\n                return 'Pensions News 2021';\r\n            case 'Latest pension news':\r\n                return 'Privacy notice';\r\n            default:\r\n                return val;\r\n        }\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                type: 'column',\r\n                backgroundColor: 'transparent',\r\n            },\r\n            xAxis: {\r\n                categories: this.viewByFileType ? this.webFormNames : this.documentStats?.map((a) => dayjs(a.fromDate).format('DD MMM YYYY')),\r\n                labels: {\r\n                    formatter: ((that) => (this.viewByFileType ? this.formatName(this.formatDocument(that.value as string)) : dayjs(that.value).format('DD MMM'))),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            yAxis: {\r\n                allowDecimals: false,\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            legend: {\r\n                enabled: true,\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            plotOptions: {\r\n                column: {\r\n                    stacking: 'normal',\r\n                },\r\n            },\r\n            series: this.documentStatsTransformed || [],\r\n        };\r\n    }\r\n\r\n    formatDocument (document: string) {\r\n        const result = document.replace(/([A-Z])/g, ' $1');\r\n        return result.charAt(0).toUpperCase() + result.slice(1);\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./web-form-views-by-status.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./web-form-views-by-status.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./web-form-views-by-status.vue?vue&type=template&id=4e024fd8&scoped=true&\"\nimport script from \"./web-form-views-by-status.vue?vue&type=script&lang=ts&\"\nexport * from \"./web-form-views-by-status.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./web-form-views-by-status.vue?vue&type=style&index=0&id=4e024fd8&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"4e024fd8\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title\"},[_vm._v(\" Web registrations \")]),_c('div',{staticClass:\"tile-content\",class:[{ filtered: _vm.selectedPoint }, `colour-${_vm.selectedColourIndex}`]},[_c('div',{staticClass:\"total\",class:{ 'has-legend': _vm.showLegend },on:{\"click\":_vm.clearFilter}},[_vm._v(\" \"+_vm._s(_vm.percentageRegistered)+\" \"),_c('span',{staticClass:\"filter\"},[_vm._v(_vm._s(_vm.selectedPoint))]),_c('span',[_vm._v(\"Members registered\")])]),_c('highcharts',{ref:\"chart\",attrs:{\"options\":_vm.chartOptions}}),(_vm.loading)?_c('loading'):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport dayjs from 'dayjs';\r\nimport Guid from 'common/util/guid';\r\nimport Highcharts, { Point } from 'highcharts';\r\nimport WebRegistrations from '@/models/webRegistrations';\r\n\r\n@Component\r\nexport default class InProgressJobs extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        showLegend!: boolean;\r\n\r\n    selectedPoint: string | null = null;\r\n\r\n    selectedColourIndex: number | null = null;\r\n\r\n    get webRegistrations (): WebRegistrations | null {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'webRegistrations');\r\n    }\r\n\r\n    get loading (): boolean {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'webRegistrations');\r\n    }\r\n\r\n    get percentageRegistered () {\r\n        if (!this.inprogressJobStatsTranformed || !this.webRegistrations) return '';\r\n        return `${((this.inprogressJobStatsTranformed.registrations / this.inprogressJobStatsTranformed.total) * 100).toFixed(0)}%`;\r\n    }\r\n\r\n    get inprogressJobStatsTranformed () {\r\n        if (!this.webRegistrations) {\r\n            return {\r\n                total: 0,\r\n                registrations: 0,\r\n                availableToRegister: 0,\r\n            };\r\n        }\r\n        const totals: { registrations: number; availableToRegister: number } = {\r\n            registrations: 0,\r\n            availableToRegister: 0,\r\n        };\r\n        this.webRegistrations.dataByDate.forEach((date) => {\r\n            totals.registrations = date.registrations;\r\n            totals.availableToRegister = date.availableToRegister;\r\n        });\r\n        return {\r\n            total: totals.registrations + totals.availableToRegister,\r\n            registrations: totals.registrations,\r\n            availableToRegister: totals.availableToRegister,\r\n        };\r\n    }\r\n\r\n    pointClicked (point: Point) {\r\n        this.selectedColourIndex = point.colorIndex;\r\n        this.selectedPoint = point.name === this.selectedPoint ? null : point.name;\r\n        this.$emit('pointSelected', this.selectedPoint);\r\n    }\r\n\r\n    clearFilter () {\r\n        (this.$refs.chart as unknown as { chart: Highcharts.Chart }).chart.series[0].points.forEach((a) => a.select(false));\r\n        this.selectedPoint = null;\r\n        this.$emit('pointSelected', this.selectedPoint);\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                type: 'solidgauge',\r\n                height: 500,\r\n                backgroundColor: 'transparent',\r\n            },\r\n            xAxis: {\r\n                labels: {\r\n                    formatter: ((that) => dayjs(that.value).format('DD MMM')),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            yAxis: {\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n                min: 0,\r\n                lineWidth: 0,\r\n                tickPositions: [],\r\n                max: this.inprogressJobStatsTranformed.total,\r\n            },\r\n            legend: {\r\n                enabled: false,\r\n                align: 'right',\r\n                layout: 'vertical',\r\n                verticalAlign: 'middle',\r\n                floating: false,\r\n                itemMarginBottom: 5,\r\n                x: -45,\r\n                navigation: {\r\n                    enabled: false,\r\n                },\r\n                itemStyle: {\r\n                    fontSize: '1rem',\r\n                    fontFamily: 'Montserrat, sans-serif',\r\n                    fontWeight: '400',\r\n                },\r\n            },\r\n            pane: {\r\n                startAngle: 0,\r\n                endAngle: 360,\r\n                background: [{\r\n                    outerRadius: '87%',\r\n                    innerRadius: '63%',\r\n                    backgroundColor: '#eee',\r\n                    borderWidth: 0,\r\n                }],\r\n            },\r\n            plotOptions: {\r\n                solidgauge: {\r\n                    dataLabels: {\r\n                        enabled: false,\r\n                    },\r\n                    linecap: 'round',\r\n                    stickyTracking: false,\r\n                    rounded: true,\r\n                    showInLegend: true,\r\n                },\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            series: [{\r\n                type: 'solidgauge',\r\n                name: 'Web registrations',\r\n                data: [\r\n                    {\r\n                        color: '#eee',\r\n                        radius: '87%',\r\n                        innerRadius: '63%',\r\n                        y: this.inprogressJobStatsTranformed.total,\r\n                        name: 'Members registered',\r\n                    }],\r\n                events: {\r\n                    click: (event) => { this.pointClicked(event.point); },\r\n                },\r\n            }, {\r\n                type: 'solidgauge',\r\n                name: 'Registered',\r\n                data: [\r\n                    {\r\n                        color: '#00a3c7',\r\n                        radius: '87%',\r\n                        innerRadius: '63%',\r\n                        y: this.inprogressJobStatsTranformed.registrations,\r\n                    },\r\n                ],\r\n            }],\r\n        };\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./web-registrations-gauge.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./web-registrations-gauge.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./web-registrations-gauge.vue?vue&type=template&id=709918ca&scoped=true&\"\nimport script from \"./web-registrations-gauge.vue?vue&type=script&lang=ts&\"\nexport * from \"./web-registrations-gauge.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./web-registrations-gauge.vue?vue&type=style&index=0&id=709918ca&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"709918ca\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title aqua\"},[_vm._v(\" Web registrations \"),_c('info',{attrs:{\"tooltip\":\"Number of members registered for web\"}})],1),_c('div',{staticClass:\"tile-content\",class:[{ filtered: _vm.selectedPoint, printing: _vm.printing }, `colour-${_vm.selectedColourIndex}`]},[_c('div',{staticClass:\"stat\"},[_c('div',{staticClass:\"text\"},[_c('div',{staticClass:\"number\"},[_vm._v(_vm._s(_vm.numberRegistered))]),_c('span',[_vm._v(\"Total members registered\")])])]),_c('div',{staticClass:\"stat\"},[_c('div',{staticClass:\"text\"},[_c('div',{staticClass:\"number increase\"},[_vm._v(\" \"+_vm._s(_vm.numberIncreased)+\" \"),_c('div',{staticClass:\"increase-arrow\"})]),_c('span',[_vm._v(\"New members registered since \"+_vm._s(_vm.formattedFromDate))])])]),_c('div',{staticClass:\"stat\"},[_c('div',{staticClass:\"text\"},[_c('div',{staticClass:\"number\"},[_vm._v(_vm._s(_vm.percentageRegistered))]),_c('span',[_vm._v(\"Total members registered\")])]),_c('div',{staticClass:\"chart\"})]),_c('div',{staticClass:\"stat\"},[_c('div',{staticClass:\"text\"},[_c('div',{staticClass:\"number increase\"},[_vm._v(\" \"+_vm._s(_vm.percentageIncrease)+\" \"),_c('div',{staticClass:\"increase-arrow\"})]),_c('span',[_vm._v(\"Increase since \"+_vm._s(_vm.formattedFromDate))])]),_c('div',{staticClass:\"chart\"})]),_c('highcharts',{staticClass:\"chart\",attrs:{\"options\":_vm.increaseChartOptions}}),(_vm.loading)?_c('loading'):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport dayjs from 'dayjs';\r\nimport Guid from 'common/util/guid';\r\nimport Highcharts, { Point } from 'highcharts';\r\nimport WebRegistrations from '@/models/webRegistrations';\r\n\r\n@Component\r\nexport default class InProgressJobs extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        showLegend!: boolean;\r\n\r\n    @Prop()\r\n        printing!: boolean;\r\n\r\n    selectedPoint: string | null = null;\r\n\r\n    selectedColourIndex: number | null = null;\r\n\r\n    get fromDate () {\r\n        return this.$store.getters['clientContext/fromDate'](this.clientId) as string;\r\n    }\r\n\r\n    get formattedFromDate () {\r\n        return dayjs(this.fromDate).format('DD MMM YYYY');\r\n    }\r\n\r\n    get webRegistrations (): WebRegistrations | null {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'webRegistrations');\r\n    }\r\n\r\n    get loading (): boolean {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'webRegistrations');\r\n    }\r\n\r\n    get percentageIncrease () {\r\n        if (!this.webRegistrations) {\r\n            return '0';\r\n        }\r\n\r\n        return `${Math.round(this.webRegistrations.registeredPeriodPercentageOfTotal)}%`;\r\n    }\r\n\r\n    get numberRegisteredAtStart () {\r\n        if (!this.registeredStatsTranformed || !this.webRegistrations) return 1;\r\n        return this.webRegistrations.dataByDate[0].registrations;\r\n    }\r\n\r\n    get numberRegistered () {\r\n        if (!this.webRegistrations) {\r\n            return 0;\r\n        }\r\n\r\n        return this.webRegistrations.registeredTotal;\r\n    }\r\n\r\n    get numberIncreased () {\r\n        if (!this.webRegistrations) return 0;\r\n        return this.webRegistrations.registeredPeriod;\r\n    }\r\n\r\n    get percentageRegistered () {\r\n        if (!this.webRegistrations) {\r\n            return 0;\r\n        }\r\n\r\n        return `${Math.round(this.webRegistrations.registeredPercentage)}%`;\r\n    }\r\n\r\n    get numberNotRegistered () {\r\n        if (!this.webRegistrations) return 0;\r\n        return this.webRegistrations.unregistered;\r\n    }\r\n\r\n    get colours () {\r\n        return {\r\n            Registrations: '#00a3c7',\r\n            'Available to register': '#eee',\r\n        };\r\n    }\r\n\r\n    get registeredStatsTranformed () {\r\n        if (!this.webRegistrations) {\r\n            return {\r\n                total: 0,\r\n                registrations: 0,\r\n                availableToRegister: 0,\r\n            };\r\n        }\r\n        const totals: { registrations: number; availableToRegister: number } = {\r\n            registrations: 0,\r\n            availableToRegister: 0,\r\n        };\r\n        this.webRegistrations.dataByDate.forEach((date) => {\r\n            totals.registrations = date.registrations;\r\n            totals.availableToRegister = date.availableToRegister;\r\n        });\r\n        return {\r\n            total: totals.registrations + totals.availableToRegister,\r\n            registrations: totals.registrations,\r\n            availableToRegister: totals.availableToRegister,\r\n        };\r\n    }\r\n\r\n    pointClicked (point: Point) {\r\n        this.selectedColourIndex = point.colorIndex;\r\n        this.selectedPoint = point.name === this.selectedPoint ? null : point.name;\r\n        this.$emit('pointSelected', { category: 'registrations', series: this.selectedPoint });\r\n    }\r\n\r\n    clearFilter () {\r\n        (this.$refs.chart as unknown as { chart: Highcharts.Chart }).chart.series[0].points.forEach((a) => a.select(false));\r\n        this.selectedPoint = null;\r\n        this.$emit('pointSelected', { category: 'registrations', series: this.selectedPoint });\r\n    }\r\n\r\n    get increaseChartOptions (): Highcharts.Options {\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            tooltip: {\r\n                enabled: false,\r\n            },\r\n            chart: {\r\n                type: 'pie',\r\n                height: 300,\r\n                width: 300,\r\n                backgroundColor: 'transparent',\r\n            },\r\n            xAxis: {\r\n                labels: {\r\n                    formatter: ((that) => dayjs(that.value).format('DD MMM')),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            yAxis: {\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n                min: 0,\r\n                max: this.numberRegistered + this.numberNotRegistered,\r\n                lineWidth: 0,\r\n                tickPositions: [],\r\n            },\r\n            legend: {\r\n                enabled: false,\r\n                align: 'right',\r\n                layout: 'vertical',\r\n                verticalAlign: 'middle',\r\n                floating: false,\r\n                itemMarginBottom: 5,\r\n                x: -45,\r\n                navigation: {\r\n                    enabled: false,\r\n                },\r\n                itemStyle: {\r\n                    fontSize: '1rem',\r\n                    fontFamily: 'Montserrat, sans-serif',\r\n                    fontWeight: '400',\r\n                },\r\n            },\r\n            pane: {\r\n                startAngle: 0,\r\n                endAngle: 360,\r\n                background: [{\r\n                    outerRadius: '87%',\r\n                    innerRadius: '63%',\r\n                    backgroundColor: '#eee',\r\n                    borderWidth: 0,\r\n                }],\r\n            },\r\n            plotOptions: {\r\n                solidgauge: {\r\n                    dataLabels: {\r\n                        enabled: false,\r\n                    },\r\n                    linecap: 'round',\r\n                    stickyTracking: false,\r\n                    rounded: true,\r\n                    showInLegend: true,\r\n                },\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            series: [{\r\n                type: 'solidgauge',\r\n                name: 'Web registrations',\r\n                data: [\r\n                    {\r\n                        color: '#ddd',\r\n                        radius: '87%',\r\n                        innerRadius: '63%',\r\n                        y: this.numberRegistered,\r\n                        name: 'Members registered',\r\n                    }],\r\n                events: {\r\n                    click: (event) => { this.pointClicked(event.point); },\r\n                },\r\n            },\r\n            {\r\n                type: 'solidgauge',\r\n                name: 'TotalRegistered', // total registered\r\n                data: [\r\n                    {\r\n                        color: '#00a6c9',\r\n                        radius: '87%',\r\n                        innerRadius: '63%',\r\n                        y: this.numberRegistered,\r\n                    },\r\n                ],\r\n            },\r\n            {\r\n                type: 'solidgauge',\r\n                name: 'Registered', // registered in time period?\r\n                data: [\r\n                    {\r\n                        color: '#faa743',\r\n                        radius: '87%',\r\n                        innerRadius: '63%',\r\n                        y: this.numberIncreased,\r\n                    },\r\n                ],\r\n            },\r\n            ],\r\n        };\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./web-registrations-pie.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./web-registrations-pie.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./web-registrations-pie.vue?vue&type=template&id=4dd5e57c&scoped=true&\"\nimport script from \"./web-registrations-pie.vue?vue&type=script&lang=ts&\"\nexport * from \"./web-registrations-pie.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./web-registrations-pie.vue?vue&type=style&index=0&id=4dd5e57c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"4dd5e57c\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tile\"},[_c('h3',{staticClass:\"tile-title aqua\"},[_vm._v(\" Web registrations \")]),_c('info',{attrs:{\"tooltip\":\"Web registrations over the period\"}}),_c('div',{staticClass:\"tile-content\"},[_c('highcharts',{attrs:{\"options\":_vm.chartOptions}}),(_vm.loading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\nimport Guid from 'common/util/guid';\r\nimport WebRegistrations from '@/models/webRegistrations';\r\nimport ColourService from '@/services/colourService';\r\nimport dayjs from 'dayjs';\r\nimport Highcharts from 'highcharts';\r\n\r\n@Component\r\nexport default class Demographics extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    @Prop()\r\n        printing!: boolean;\r\n\r\n    get webRegistrations (): WebRegistrations | null {\r\n        return this.$store.getters['clientStatistics/stats'](this.clientId, 'webRegistrations');\r\n    }\r\n\r\n    get loading (): boolean {\r\n        return this.$store.getters['clientStatistics/isLoading'](this.clientId, 'webRegistrations');\r\n    }\r\n\r\n    get webRegistrationsTransformed () {\r\n        if (!this.webRegistrations?.dataByDate) return null;\r\n        const vals: Array<{ type: 'line'; name: string; data: Array<number> }> = [];\r\n\r\n        vals.push({\r\n            name: 'Registrations',\r\n            type: 'line',\r\n            data: this.webRegistrations.dataByDate.map((a) => a.registrations),\r\n        });\r\n\r\n        return vals;\r\n    }\r\n\r\n    get colours () {\r\n        return [ColourService.colours[0]];\r\n    }\r\n\r\n    get chartOptions (): Highcharts.Options {\r\n        return {\r\n            title: {\r\n                text: '',\r\n            },\r\n            chart: {\r\n                type: 'line',\r\n            },\r\n            xAxis: {\r\n                categories: this.webRegistrations?.dataByDate.map((a) => dayjs(a.date).format('DD MMM YYYY')),\r\n                labels: {\r\n                    formatter: ((that) => dayjs(that.value).format('DD MMM')),\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            yAxis: {\r\n                allowDecimals: false,\r\n                title: {\r\n                    text: '',\r\n                    style: {\r\n                        fontFamily: 'Montserrat, sans-serif',\r\n                    },\r\n                },\r\n            },\r\n            legend: {\r\n                enabled: false,\r\n            },\r\n            credits: {\r\n                enabled: false,\r\n            },\r\n            colors: this.colours,\r\n            plotOptions: {\r\n                line: {\r\n                    marker: {\r\n                        enabled: false,\r\n                    },\r\n                    lineWidth: 3,\r\n                },\r\n                series: {\r\n                    animation: !this.printing,\r\n                },\r\n            },\r\n            series: this.webRegistrationsTransformed || [],\r\n        };\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./web-registrations.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./web-registrations.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./web-registrations.vue?vue&type=template&id=3ff53b50&scoped=true&\"\nimport script from \"./web-registrations.vue?vue&type=script&lang=ts&\"\nexport * from \"./web-registrations.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./web-registrations.vue?vue&type=style&index=0&id=3ff53b50&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"3ff53b50\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"col address-container\"},[(_vm.showResults && _vm.addressResponse)?_c('div',{staticClass:\"row\"},[_c('dynamic-ui-enumdropdown',{attrs:{\"name\":\"Address\",\"options\":_vm.addressResponse.addresses,\"valueKey\":\"key\",\"textKey\":\"key\"},on:{\"change\":_vm.addressSelected},model:{value:(_vm.selectedAddress),callback:function ($$v) {_vm.selectedAddress=$$v},expression:\"selectedAddress\"}}),_c('btn',{staticClass:\"tertiary\",attrs:{\"icon\":\"pencil-alt\",\"title\":\"Edit manually\"},on:{\"click\":function($event){_vm.showResults = false}}}),_c('btn',{staticClass:\"secondary\",attrs:{\"icon\":\"times\",\"title\":\"Reset address\"},on:{\"click\":_vm.reset}})],1):_vm._e(),(_vm.lookupFailed)?_c('p',{staticClass:\"error\"},[_vm._v(\"Lookup failed, please enter the address manually\")]):_vm._e(),_c('dynamic-ui-text',{attrs:{\"name\":\"Address Line 1\",\"disabled\":_vm.showResults},model:{value:(_vm.address.addressLine1),callback:function ($$v) {_vm.$set(_vm.address, \"addressLine1\", $$v)},expression:\"address.addressLine1\"}}),_c('dynamic-ui-text',{attrs:{\"name\":\"Address Line 2\",\"allowNull\":true,\"disabled\":_vm.showResults},model:{value:(_vm.address.addressLine2),callback:function ($$v) {_vm.$set(_vm.address, \"addressLine2\", $$v)},expression:\"address.addressLine2\"}}),_c('dynamic-ui-text',{attrs:{\"name\":\"Address Line 3\",\"allowNull\":true,\"disabled\":_vm.showResults},model:{value:(_vm.address.addressLine3),callback:function ($$v) {_vm.$set(_vm.address, \"addressLine3\", $$v)},expression:\"address.addressLine3\"}}),_c('dynamic-ui-text',{attrs:{\"name\":\"Address Line 4\",\"allowNull\":true,\"disabled\":_vm.showResults},model:{value:(_vm.address.addressLine4),callback:function ($$v) {_vm.$set(_vm.address, \"addressLine4\", $$v)},expression:\"address.addressLine4\"}}),_c('dynamic-ui-stringdropdown',{attrs:{\"options\":_vm.countryOptions,\"valueKey\":\"value\",\"disabled\":_vm.showResults,\"name\":\"Address Country\"},model:{value:(_vm.address.addressCountry),callback:function ($$v) {_vm.$set(_vm.address, \"addressCountry\", $$v)},expression:\"address.addressCountry\"}}),_c('div',{staticClass:\"row\"},[_c('dynamic-ui-text',{staticClass:\"postcode\",attrs:{\"name\":\"Address Postcode\"},model:{value:(_vm.address.addressPostCode),callback:function ($$v) {_vm.$set(_vm.address, \"addressPostCode\", $$v)},expression:\"address.addressPostCode\"}}),_c('btn',{staticClass:\"primary\",attrs:{\"icon\":\"search\",\"disabled\":!_vm.address || !_vm.address.addressPostCode.length,\"title\":\"Search for an address by it's postcode\"},on:{\"click\":_vm.searchPostcode}})],1),(_vm.isLoading)?_c('loading'):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default class Address {\r\n    addressLine1 = '';\r\n\r\n    addressLine2 = '';\r\n\r\n    addressLine3 = '';\r\n\r\n    addressLine4 = '';\r\n\r\n    addressPostCode = '';\r\n\r\n    addressCountry = '';\r\n\r\n    [key: string]: string;\r\n}\r\n","/* eslint-disable max-classes-per-file */\r\nimport { Type } from '~/@lcp/class-mapper';\r\n\r\nexport class AddressResponse {\r\n    formatted_address: Array<string> = [];\r\n\r\n    thoroughfare!: string;\r\n\r\n    building_name!: string;\r\n\r\n    sub_building_name!: string;\r\n\r\n    sub_building_number!: string;\r\n\r\n    building_number!: string;\r\n\r\n    line_1!: string;\r\n\r\n    line_2!: string;\r\n\r\n    line_3!: string;\r\n\r\n    line_4!: string;\r\n\r\n    locality!: string;\r\n\r\n    town_or_city!: string;\r\n\r\n    county!: string;\r\n\r\n    district!: string;\r\n\r\n    country!: string;\r\n\r\n    get key () {\r\n        return `${this.formatted_address[0]},${this.formatted_address[1]},${this.formatted_address[2]},${this.formatted_address[3]}`;\r\n    }\r\n}\r\n\r\nexport default class AddressesResponse {\r\n    postcode!: string;\r\n\r\n    latitude!: number;\r\n\r\n    longitude!: number;\r\n\r\n    @Type(() => AddressResponse)\r\n    addresses!: Array<AddressResponse>;\r\n}\r\n","\r\nimport * as STORE from 'common/store/storepaths';\r\nimport Address from 'common/models/address';\r\nimport AddressesResponse, { AddressResponse } from 'common/models/addressResponse';\r\nimport Map from '~/@lcp/class-mapper';\r\nimport {\r\n    Component, Vue, Prop, Watch,\r\n} from '~/vue-property-decorator';\r\nimport axios from '~/axios';\r\n\r\n@Component\r\nexport default class AddressComponent extends Vue {\r\n    @Prop()\r\n    value!: Address;\r\n\r\n    address: Address | null = null;\r\n\r\n    isLoading = false;\r\n\r\n    showResults = false;\r\n\r\n    lookupFailed = false;\r\n\r\n    addressResponse: AddressesResponse | null = null;\r\n\r\n    selectedAddress: string | null = null;\r\n\r\n    axiosInstance = axios.create({\r\n        headers: {\r\n            Authorization: {},\r\n        },\r\n    });\r\n\r\n    get countryOptions () {\r\n        return this.$store.getters[STORE.GET_COUNTRIES];\r\n    }\r\n\r\n    get pulseApiUrl () {\r\n        return this.$store.getters[STORE.GET_SITE_CONFIGURATION][STORE.PULSE_API_URL] ?? '';\r\n    }\r\n\r\n    get getAddressDomainToken () {\r\n        return this.$store.getters[STORE.GET_SITE_CONFIGURATION]['getaddress.domain.token'];\r\n    }\r\n\r\n    get lookupUrl () {\r\n        return `https://api.getAddress.io/find/${this.address?.addressPostCode?.trim()}?expand=true&api-key=${this.getAddressDomainToken}&sort=true`;\r\n    }\r\n\r\n    mounted () {\r\n        if (!this.countryOptions?.length) {\r\n            this.isLoading = true;\r\n            this.$store.dispatch(STORE.LOAD_COUNTRIES, this.pulseApiUrl).then(() => {\r\n                this.isLoading = false;\r\n            });\r\n        }\r\n    }\r\n\r\n    searchPostcode () {\r\n        this.isLoading = true;\r\n        this.addressResponse = null;\r\n        this.lookupFailed = false;\r\n        return this.axiosInstance.get<AddressResponse>(this.lookupUrl)\r\n            .then((response) => {\r\n                this.showResults = true;\r\n                this.addressResponse = Map(response.data, AddressesResponse) as AddressesResponse;\r\n            })\r\n            .catch((error) => {\r\n                console.log(error);\r\n                this.lookupFailed = true;\r\n                this.showResults = false;\r\n            })\r\n            .finally(() => {\r\n                this.isLoading = false;\r\n            });\r\n    }\r\n\r\n    reset () {\r\n        for (let i = 1; i < 5; i += 1) {\r\n            this.address![`addressLine${i}`] = '';\r\n        }\r\n        this.address!.addressPostCode = '';\r\n        this.address!.addressCountry = '';\r\n        this.showResults = false;\r\n    }\r\n\r\n    addressSelected () {\r\n        if (!this.addressResponse || !this.selectedAddress) return;\r\n        const address = this.addressResponse.addresses.find((a) => a.key === this.selectedAddress);\r\n        if (!address) return;\r\n        let nextValid = 0;\r\n        if (!this.address) this.address = new Address();\r\n\r\n        for (let i = 1; i < 5; i += 1) {\r\n            this.address[`addressLine${i}`] = '';\r\n        }\r\n\r\n        for (let i2 = 0; i2 < address.formatted_address.length; i2 += 1) {\r\n            if (address.formatted_address[i2].trim().length) {\r\n                nextValid += 1;\r\n                this.address[`addressLine${nextValid}`] = address.formatted_address[i2];\r\n            }\r\n        }\r\n        if (nextValid === 5 && address.formatted_address[4].length) {\r\n            this.address.Line4 = `${address.formatted_address[3]}, ${address.formatted_address[4]}`;\r\n        }\r\n\r\n        this.address.addressCountry = 'United Kingdom';\r\n    }\r\n\r\n    @Watch('value', { immediate: true, deep: true })\r\n    valueChanged () {\r\n        if (!this.value) {\r\n            this.$emit('input', new Address());\r\n        }\r\n        if (JSON.stringify(this.value) !== JSON.stringify(this.address)) {\r\n            this.address = this.value;\r\n        }\r\n    }\r\n\r\n    @Watch('address', { deep: true })\r\n    addressChanged () {\r\n        this.lookupFailed = false;\r\n        this.$emit('input', this.address);\r\n    }\r\n}\r\n","import mod from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./addressComponent.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./addressComponent.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./addressComponent.vue?vue&type=template&id=23a5d082&scoped=true&\"\nimport script from \"./addressComponent.vue?vue&type=script&lang=ts&\"\nexport * from \"./addressComponent.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./addressComponent.vue?vue&type=style&index=0&id=23a5d082&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"23a5d082\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"container\"},[(_vm.isMember)?_c('header-bar',{attrs:{\"hideNav\":true}},[_c('template',{slot:\"nav\"},[_c('header-nav',{attrs:{\"path\":'/user/batchJobs'}},[_c('div',[_vm._v(\"My Batch Jobs\")])])],1)],2):_vm._e(),(!_vm.isMember)?_c('header-bar'):_vm._e(),_c('div',{staticClass:\"content\"},[_c('div',{staticClass:\"table-wrapper\"},[_c('filter-table',{attrs:{\"tableData\":_vm.batchJobs,\"columns\":_vm.columns},scopedSlots:_vm._u([{key:\"search\",fn:function({  }){return [_c('div',{staticClass:\"button-bar\"},[_c('div',{staticClass:\"button-bar-left\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.searchExpression),expression:\"searchExpression\"}],attrs:{\"placeholder\":\"Search...\",\"type\":\"text\"},domProps:{\"value\":(_vm.searchExpression)},on:{\"input\":[function($event){if($event.target.composing)return;_vm.searchExpression=$event.target.value},_vm.onSearch]}})]),_c('div',{staticClass:\"button-bar-right\"},[_c('LastRefreshed',{attrs:{\"lastRefreshed\":_vm.lastRefreshed,\"isLoading\":_vm.isLoading},on:{\"reload\":_vm.reload}})],1)])]}},{key:\"td-status\",fn:function({ row }){return [(row.scheduledTime && row.status == 'Pending')?_c('div',[_c('div',{staticClass:\"scheduled-status\"},[_vm._v(_vm._s(row.status))]),_c('font-awesome-icon',{attrs:{\"icon\":\"clock\"}})],1):_c('div',[_vm._v(\" \"+_vm._s(row.status)+\" \")])]}}])})],1),_c('GridPaging',{attrs:{\"pageNumber\":_vm.currentFilter.pageNumber,\"pageSize\":_vm.currentFilter.pageSize,\"pageSizeOptions\":[10, 20, 50, 100],\"total\":_vm.jobsTotal},on:{\"pageNumberChanged\":_vm.pageNumberChanged,\"pageSizeChanged\":_vm.pageSizeChanged}}),(_vm.isLoading)?_c('loading'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Guid from 'common/util/guid';\r\n\r\nexport default class BatchJobSummary {\r\n    batchJobId!: Guid;\r\n\r\n    application!: {\r\n        applicationId: Guid;\r\n        name: string;\r\n        code: string;\r\n    }\r\n\r\n    status!: string;\r\n\r\n    clientCode!: string;\r\n\r\n    name!: string;\r\n\r\n    type!: string;\r\n\r\n    data!: string;\r\n\r\n    error!: string;\r\n\r\n    exception!: string;\r\n\r\n    updated!: string;\r\n\r\n    created!: string;\r\n\r\n    createdBy!: Guid;\r\n\r\n    scheduledTime!:Date | null;\r\n}\r\n","import BatchJobSummary from 'common/models/batchJobSummary';\r\nimport Guid from 'common/util/guid';\r\nimport Http from './apiHelper';\r\n\r\nconst apiVersion = 'v1.0';\r\nexport default class BatchJobsApi {\r\n    static getBatchJobs (search = '', pageNumber = 1, pageSize = 50) {\r\n        return Http.getAsArray<BatchJobSummary>(`${apiVersion}/batchJob?search=${search}&pageNumber=${pageNumber}&pageSize=${pageSize}`,\r\n            BatchJobSummary,\r\n            { returnHeaders: true }) as Promise<(Array<BatchJobSummary> & {headers: { 'x-total-count': number } })>;\r\n    }\r\n\r\n    static getClientBatchJobs (clientId: Guid, search = '', pageNumber = 1, pageSize = 50, pulseApiUrl: string) {\r\n        const url = pulseApiUrl\r\n            ? `${pulseApiUrl}${apiVersion}/batchJob/client/${clientId}?search=${search}&pageNumber=${pageNumber}&pageSize=${pageSize}`\r\n            : `${apiVersion}/batchJob/client/${clientId}?search=${search}&pageNumber=${pageNumber}&pageSize=${pageSize}`;\r\n\r\n        return Http.getAsArray<BatchJobSummary>(url,\r\n            BatchJobSummary,\r\n            { useBasePath: !pulseApiUrl, returnHeaders: true }) as Promise<(Array<BatchJobSummary> & {headers: { 'x-total-count': number } })>;\r\n    }\r\n\r\n    static getUserBatchJobs (search = '', pageNumber = 1, pageSize = 50, pulseApiUrl: string) {\r\n        return Http.getAsArray<BatchJobSummary>(`${pulseApiUrl}${apiVersion}/user/batchjob?search=${search}&pageNumber=${pageNumber}&pageSize=${pageSize}`,\r\n            BatchJobSummary,\r\n            { useBasePath: !pulseApiUrl, returnHeaders: true }) as Promise<(Array<BatchJobSummary> & {headers: { 'x-total-count': number } })>;\r\n    }\r\n}\r\n","\r\nimport HeaderBar from 'common/components/header-bar.vue';\r\nimport BatchJobSummary from 'common/models/batchJobSummary';\r\nimport clientsApi from 'common/api/clientsApi';\r\nimport batchJobsApi from 'common/api/batchJobsApi';\r\nimport User from 'common/models/user';\r\nimport Guid from 'common/util/guid';\r\nimport * as STORE from 'common/store/storepaths';\r\nimport Client from 'common/models/client';\r\nimport * as _ from '~/lodash';\r\nimport { Column } from '~/@lcp/vue-filter-table';\r\nimport moment from '~/moment';\r\nimport {\r\n    Component, Vue, Watch, Prop,\r\n} from '~/vue-property-decorator';\r\n\r\n@Component({\r\n    components: { HeaderBar },\r\n})\r\nexport default class BatchJobs extends Vue {\r\n    @Prop()\r\n    clientName!: string;\r\n\r\n    @Prop()\r\n    isMember!: boolean;\r\n\r\n    @Prop()\r\n    isFromMemberData!: boolean;\r\n\r\n    batchJobs: Array<BatchJobSummary> = [];\r\n\r\n    client: Client | null | undefined = null;\r\n\r\n    currentFilter = {\r\n        search: '',\r\n        pageSize: 50,\r\n        pageNumber: 1,\r\n    }\r\n\r\n    isLoading = false;\r\n\r\n    jobsTotal = 0;\r\n\r\n    lastRefreshed = '';\r\n\r\n    searchExpression: string | null = null;\r\n\r\n    async mounted () {\r\n        if (this.clientName) {\r\n            await this.getClient();\r\n        }\r\n\r\n        await this.getBatchJobs();\r\n    }\r\n\r\n    async getClient () {\r\n        const clients = await clientsApi.getClients();\r\n\r\n        if (!clients) {\r\n            return;\r\n        }\r\n\r\n        const clientByName = clients.find((c: Client) => c.name === this.clientName);\r\n\r\n        if (clientByName) {\r\n            this.client = clientByName;\r\n            return;\r\n        }\r\n\r\n        this.client = clients.find((c: Client) => c.code === this.clientName);\r\n    }\r\n\r\n    async reload () {\r\n        await this.getBatchJobs();\r\n    }\r\n\r\n    pageNumberChanged (pageNumber: number) {\r\n        this.currentFilter.pageNumber = pageNumber;\r\n    }\r\n\r\n    pageSizeChanged (newPageSize: number) {\r\n        const { pageNumber }: {pageNumber: number} = this.currentFilter;\r\n        const pageNumberNeedsChanging = ((pageNumber - 1) * newPageSize) > this.jobsTotal;\r\n\r\n        if (pageNumberNeedsChanging) {\r\n            this.currentFilter.pageNumber = Math.ceil((this.jobsTotal / newPageSize));\r\n        }\r\n\r\n        this.currentFilter.pageSize = newPageSize;\r\n    }\r\n\r\n    async getBatchJobs () {\r\n        this.isLoading = true;\r\n\r\n        if (this.isMember) {\r\n            await batchJobsApi.getUserBatchJobs(this.currentFilter.search, this.currentFilter.pageNumber, this.currentFilter.pageSize, this.pulseUrl)\r\n                .then((result) => {\r\n                    this.lastRefreshed = moment().toString();\r\n                    this.batchJobs = result;\r\n                    this.jobsTotal = result.headers['x-total-count'];\r\n                })\r\n                .finally(() => {\r\n                    this.isLoading = false;\r\n                });\r\n        } else if (this.clientName) {\r\n            // By saying null, we're in pulse admin so it will use the default path, otherwise point at pulse endpoint\r\n            const url = this.isFromMemberData ? this.pulseUrl : null;\r\n\r\n            await batchJobsApi.getClientBatchJobs(this.client!.clientId, this.currentFilter.search, this.currentFilter.pageNumber, this.currentFilter.pageSize, url)\r\n                .then((result) => {\r\n                    this.lastRefreshed = moment().toString();\r\n                    this.batchJobs = result.filter((a) => !this.clientName || a.clientCode === this.client?.code);\r\n                    this.jobsTotal = result.headers['x-total-count'];\r\n                })\r\n                .finally(() => {\r\n                    this.isLoading = false;\r\n                });\r\n        } else {\r\n            await batchJobsApi.getBatchJobs(this.currentFilter.search, this.currentFilter.pageNumber, this.currentFilter.pageSize)\r\n                .then((result) => {\r\n                    this.lastRefreshed = moment().toString();\r\n                    this.batchJobs = result.filter((a) => !this.clientName || a.clientCode === this.client?.code);\r\n                    this.jobsTotal = result.headers['x-total-count'];\r\n                })\r\n                .finally(() => {\r\n                    this.isLoading = false;\r\n                });\r\n        }\r\n    }\r\n\r\n    getUser (userId: Guid) {\r\n        if (!userId) return 'System';\r\n        const user = this.allUsersById[userId.toString()];\r\n        if (!user) return 'System';\r\n        return `${user.forenames} ${user.surname}`;\r\n    }\r\n\r\n    onSearch () {\r\n        this.getSearchDebounce();\r\n    }\r\n\r\n    get userInfo () {\r\n        return this.$store.getters['auth/userInfo'];\r\n    }\r\n\r\n    get allUsersById () {\r\n        return this.$store.getters['users/allUsersByUserId'] as { [key: string]: User };\r\n    }\r\n\r\n    get getSearchDebounce () {\r\n        return _.debounce(() => {\r\n            this.currentFilter.search = this.searchExpression!;\r\n        }, 600);\r\n    }\r\n\r\n    get pulseUrl () {\r\n        return this.$store.getters[STORE.GET_SITE_CONFIGURATION]['pulse-api.url'];\r\n    }\r\n\r\n    get columns () {\r\n        return [\r\n            new Column({\r\n                id: 'name',\r\n                name: 'Name',\r\n                prop: 'name',\r\n                filterable: false,\r\n                sortable: false,\r\n                width: 200,\r\n            }),\r\n            new Column<BatchJobSummary>({\r\n                id: 'application',\r\n                name: 'Application',\r\n                value: (r: BatchJobSummary) => r.application.name,\r\n                filterable: false,\r\n                sortable: false,\r\n                width: 150,\r\n            }),\r\n            new Column({\r\n                id: 'client',\r\n                name: 'Client',\r\n                prop: 'clientCode',\r\n                filterable: false,\r\n                sortable: false,\r\n                width: 70,\r\n            }),\r\n            new Column({\r\n                id: 'status',\r\n                name: 'Status',\r\n                value: (r: BatchJobSummary) => r.scheduledTime && r.status == 'Pending' ? 'Scheduled' : r.status,\r\n                filterable: false,\r\n                sortable: false,\r\n                width: 130,\r\n            }),\r\n            new Column<BatchJobSummary>({\r\n                id: 'error',\r\n                name: 'Error',\r\n                value: (r: BatchJobSummary) => r.error ?? r.exception,\r\n                filterable: false,\r\n                sortable: false,\r\n            }),\r\n            new Column<BatchJobSummary>({\r\n                id: 'created',\r\n                name: 'Created',\r\n                value: (r: BatchJobSummary) => moment(r.created).format('DD/MM/YYYY HH:mm'),\r\n                filterable: false,\r\n                sortable: false,\r\n                width: 150,\r\n            }),\r\n            new Column<BatchJobSummary>({\r\n                id: 'scheduledTime',\r\n                name: 'Scheduled',\r\n                value: (r: BatchJobSummary) => r.scheduledTime ? moment(r.scheduledTime).format('DD/MM/YYYY HH:mm') : '',\r\n                filterable: false,\r\n                sortable: false,\r\n                width: 150,\r\n            }),\r\n            new Column<BatchJobSummary>({\r\n                id: 'updated',\r\n                name: 'Last updated',\r\n                value: (r: BatchJobSummary) => moment(r.status === 'Pending' ? r.created : r.updated).format('DD/MM/YYYY HH:mm'),\r\n                filterable: false,\r\n                sortable: false,\r\n                width: 150,\r\n            }),\r\n            // remove this column after testing as it will always be the same user\r\n            new Column<BatchJobSummary>({\r\n                id: 'user',\r\n                name: 'User',\r\n                value: (r: BatchJobSummary) => this.getUser(r.createdBy),\r\n                filterable: false,\r\n                sortable: false,\r\n                width: 150,\r\n            }),\r\n        ];\r\n    }\r\n\r\n    @Watch('currentFilter', { deep: true })\r\n    currentFilterChanged () {\r\n        this.getBatchJobs();\r\n    }\r\n}\r\n","import mod from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./batch-jobs.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./batch-jobs.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./batch-jobs.vue?vue&type=template&id=217497bd&scoped=true&\"\nimport script from \"./batch-jobs.vue?vue&type=script&lang=ts&\"\nexport * from \"./batch-jobs.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./batch-jobs.vue?vue&type=style&index=0&id=217497bd&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"217497bd\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.confirmationMessage)?_c('div',{staticClass:\"btn\"},[_c('button',_vm._g({class:[_vm.classes, { 'text-with-icon': _vm.icon && _vm.icon.length && _vm.text && _vm.text.length, 'on-left': _vm.iconOnLeft, 'secondary-icon': _vm.secondaryIcon, 'modaled': _vm.showModal }],attrs:{\"type\":\"button\",\"disabled\":_vm.disabled}},_vm.listeners),[_vm._t(\"default\",function(){return [(_vm.icon && _vm.iconOnLeft)?_c('font-awesome-icon',{staticClass:\"icon\",style:(_vm.iconStylesToUse),attrs:{\"icon\":_vm.icon}}):_vm._e(),(_vm.icon && _vm.iconOnLeft)?_c('font-awesome-icon',{staticClass:\"icon\",style:(_vm.iconStylesToUse),attrs:{\"icon\":_vm.icon}}):_vm._e(),_vm._v(_vm._s(_vm.text)+\" \"),(_vm.icon && !_vm.iconOnLeft)?_c('font-awesome-icon',{staticClass:\"icon\",style:(_vm.iconStylesToUse),attrs:{\"icon\":_vm.icon}}):_vm._e(),(_vm.secondaryIcon && !_vm.iconOnLeft)?_c('font-awesome-icon',{staticClass:\"secondary-icon\",attrs:{\"icon\":_vm.secondaryIcon}}):_vm._e()]})],2),(_vm.confirmationMessage)?_c('div',{staticClass:\"modal\"},[_c('modal',{attrs:{\"title\":_vm.confirmationTitle,\"icon\":_vm.confirmationIcon},model:{value:(_vm.showModal),callback:function ($$v) {_vm.showModal=$$v},expression:\"showModal\"}},[_c('template',{slot:\"content\"},[_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.confirmationMessage)}})]),_c('template',{slot:\"footer\"},[_c('div',{staticClass:\"controls\"},[_c('btn',{staticClass:\"secondary\",attrs:{\"text\":\"Cancel\"},on:{\"click\":function($event){_vm.showModal=false}}}),_c('btn',{staticClass:\"primary\",attrs:{\"text\":_vm.confirmButtonText},on:{\"click\":_vm.confirm}})],1)])],2)],1):_vm._e()]):_c('button',_vm._g({class:[_vm.classes, { 'text-with-icon': _vm.icon && _vm.icon.length && _vm.text && _vm.text.length, 'on-left': _vm.iconOnLeft, 'secondary-icon': _vm.secondaryIcon }],attrs:{\"type\":\"button\",\"disabled\":_vm.disabled}},_vm.listeners),[_vm._t(\"default\",function(){return [(_vm.icon && _vm.iconOnLeft)?_c('font-awesome-icon',{staticClass:\"icon\",style:(_vm.iconStylesToUse),attrs:{\"icon\":_vm.icon}}):_vm._e(),(_vm.secondaryIcon && _vm.iconOnLeft)?_c('font-awesome-icon',{staticClass:\"secondary-icon\",attrs:{\"icon\":_vm.secondaryIcon}}):_vm._e(),_vm._v(_vm._s(_vm.text)+\" \"),(_vm.icon && !_vm.iconOnLeft)?_c('font-awesome-icon',{staticClass:\"icon\",style:(_vm.iconStylesToUse),attrs:{\"icon\":_vm.icon}}):_vm._e(),(_vm.secondaryIcon && !_vm.iconOnLeft)?_c('font-awesome-icon',{staticClass:\"secondary-icon\",attrs:{\"icon\":_vm.secondaryIcon}}):_vm._e()]})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./btn.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./btn.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./btn.vue?vue&type=template&id=1d7c0b51&scoped=true&\"\nimport script from \"./btn.vue?vue&type=script&lang=js&\"\nexport * from \"./btn.vue?vue&type=script&lang=js&\"\nimport style0 from \"./btn.vue?vue&type=style&index=0&id=1d7c0b51&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"1d7c0b51\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{attrs:{\"id\":\"container\"}},[_c('header',[_c('h2',[_vm._v(_vm._s(_vm.title)+\" \")])]),_c('div',{staticClass:\"row main-content\"},[_c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"group\",staticStyle:{\"flex\":\"0\"}},[_c('dynamic-ui-datetime',{attrs:{\"exportFormat\":\"YYYY-MM-DD HH:mm\",\"includeTime\":true,\"name\":\"Time of call\"},model:{value:(_vm.timeOfCall),callback:function ($$v) {_vm.timeOfCall=$$v},expression:\"timeOfCall\"}}),_c('dynamic-ui-radio',{attrs:{\"hideLabel\":true,\"options\":_vm.callOptions},model:{value:(_vm.incomingCall),callback:function ($$v) {_vm.incomingCall=$$v},expression:\"incomingCall\"}})],1),_c('div',{staticClass:\"group\"},[_c('h4',{staticClass:\"group-title\"},[_vm._v(\"Contact details\")]),[_c('dynamic-ui-text',{attrs:{\"name\":\"Name\"},model:{value:(_vm.otherName),callback:function ($$v) {_vm.otherName=$$v},expression:\"otherName\"}}),_c('dynamic-ui-text',{attrs:{\"name\":\"Caller Capacity\"},model:{value:(_vm.otherCallerCapacity),callback:function ($$v) {_vm.otherCallerCapacity=$$v},expression:\"otherCallerCapacity\"}}),_c('dynamic-ui-text',{attrs:{\"name\":\"Company\"},model:{value:(_vm.otherCompany),callback:function ($$v) {_vm.otherCompany=$$v},expression:\"otherCompany\"}}),_c('dynamic-ui-phonenumber',{attrs:{\"dontOpenWindow\":false,\"name\":\"Phone number\",\"showPhone\":false},model:{value:(_vm.otherNumber),callback:function ($$v) {_vm.otherNumber=$$v},expression:\"otherNumber\"}})]],2)]),_c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"group\"},[_c('h4',{staticClass:\"group-title\"},[_vm._v(\"Conversation\")]),_c('dynamic-ui-text',{attrs:{\"name\":\"Subject\",\"maxLength\":40,\"minLength\":3,\"title\":_vm.subject},model:{value:(_vm.subject),callback:function ($$v) {_vm.subject=$$v},expression:\"subject\"}}),_c('dynamic-ui-textarea',{staticClass:\"conversation\",attrs:{\"spellCheck\":\"true\",\"name\":\"\",\"minLength\":1},model:{value:(_vm.conversation),callback:function ($$v) {_vm.conversation=$$v},expression:\"conversation\"}}),(_vm.requiredFields)?_c('div',{staticClass:\"info-text\",domProps:{\"innerHTML\":_vm._s(_vm.requiredFields)}}):_vm._e()],1)]),_c('div',{staticClass:\"controls\"},[_c('btn',{staticClass:\"secondary\",on:{\"click\":_vm.closeWindow}},[_vm._v(\"Cancel\")]),_c('btn',{staticClass:\"primary\",attrs:{\"disabled\":!_vm.canSave || _vm.isLoading},on:{\"click\":_vm.save}},[_vm._v(\"Save record\")])],1)]),(_vm.isLoading)?_c('loading'):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\nimport * as STORE from 'common/store/storepaths';\r\nimport { TimeZone, timeZones } from 'common/util/timezones';\r\nimport clientApi from 'common/api/clientsApi';\r\nimport moment from '~/moment';\r\nimport { Component, Vue, Prop } from '~/vue-property-decorator';\r\n\r\n@Component({\r\n    name: 'client-telephone-conversation',\r\n    components: { },\r\n})\r\nexport default class ClientTelephoneConversation extends Vue {\r\n    @Prop()\r\n    value!: boolean;\r\n\r\n    conversation= '';\r\n\r\n    incomingCall= true;\r\n\r\n    isLoading = false;\r\n\r\n    otherCallerCapacity= '';\r\n\r\n    otherCompany= '';\r\n\r\n    otherName= '';\r\n\r\n    otherNumber= '';\r\n\r\n    subject= '';\r\n\r\n    timeOfCall: Date = new Date();\r\n\r\n    timeZones: Array<TimeZone>= timeZones;\r\n\r\n    title = `Member Data - Telephone conversation - ${this.currentClient.name} - ${this.formatDate(this.timeOfCall)}`;\r\n\r\n    callOptions = [\r\n        { id: true, name: 'Incoming call' },\r\n        { id: false, name: 'Outgoing call' },\r\n    ]\r\n\r\n    mounted () {\r\n        window.document.title = this.title;\r\n    }\r\n\r\n    get requiredFields () {\r\n        const fieldsRequired = [];\r\n\r\n        if (!this.otherName.length) {\r\n            fieldsRequired.push('enter the <b>name</b> for the call');\r\n        }\r\n\r\n        if (!this.otherNumber.length) {\r\n            fieldsRequired.push('enter the <b>phone number</b> for the call');\r\n        }\r\n\r\n        if (!this.subject.length) {\r\n            fieldsRequired.push('enter a <b>subject</b>');\r\n        }\r\n\r\n        if (!this.conversation.length) {\r\n            fieldsRequired.push('enter details for the <b>conversation</b>');\r\n        }\r\n\r\n        if (!fieldsRequired.length) {\r\n            return null;\r\n        }\r\n\r\n        const fields = fieldsRequired.length === 1 ? fieldsRequired[0] : `${fieldsRequired.slice(0, -1).join(', ')} and ${fieldsRequired[fieldsRequired.length - 1]}`;\r\n        return `Please ${fields} to submit the form`;\r\n    }\r\n\r\n    get canSave () {\r\n        return !this.requiredFields;\r\n    }\r\n\r\n    get currentClient () {\r\n        return this.$store.getters[STORE.GET_CURRENT_CLIENT];\r\n    }\r\n\r\n    closeWindow () {\r\n        window.close();\r\n    }\r\n\r\n    formatDate (date: Date) {\r\n        return moment(date).format('DD/MM/YYYY HH:mm');\r\n    }\r\n\r\n    save () {\r\n        const phoneCallData = {\r\n            time: moment(this.timeOfCall, 'YYYY/MM/DD HH:mm').format('YYYY-MM-DDTHH:mm:ss'),\r\n            data: {\r\n                conversation: this.conversation,\r\n                incomingCall: this.incomingCall,\r\n                isMember: false,\r\n                otherCallerDetails: {\r\n                    capacity: this.otherCallerCapacity,\r\n                    name: this.otherName,\r\n                    company: this.otherCompany,\r\n                    number: this.otherNumber,\r\n                },\r\n                subject: this.subject,\r\n            },\r\n        };\r\n\r\n        this.isLoading = true;\r\n\r\n        clientApi.createClientCall(this.currentClient.clientId, phoneCallData)\r\n            .then(() => {\r\n                this.isLoading = false;\r\n                this.closeWindow();\r\n            }).catch((err) => {\r\n                this.$store.dispatch('messages/addError', err, { root: true });\r\n                this.isLoading = false;\r\n            });\r\n    }\r\n}\r\n\r\n","import mod from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./client-telephone-conversation.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./client-telephone-conversation.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./client-telephone-conversation.vue?vue&type=template&id=6416deb6&scoped=true&\"\nimport script from \"./client-telephone-conversation.vue?vue&type=script&lang=ts&\"\nexport * from \"./client-telephone-conversation.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./client-telephone-conversation.vue?vue&type=style&index=0&id=6416deb6&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"6416deb6\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('input',{attrs:{\"readonly\":\"\",\"id\":\"urlToCopy\"},domProps:{\"value\":_vm.url}}),_c('btn',{staticClass:\"primary copy\",attrs:{\"icon\":\"copy\",\"text\":\"Copy link\"},on:{\"click\":_vm.copyLink}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Prop } from '~/vue-property-decorator';\r\n\r\n@Component({\r\n    name: 'copyLinkButton',\r\n    components: { },\r\n})\r\nexport default class CopyLinkbutton extends Vue {\r\n    @Prop()\r\n    url!: string;\r\n\r\n    copyLink () {\r\n        const copyText = document.getElementById('urlToCopy')! as HTMLInputElement;\r\n\r\n        copyText.select();\r\n        copyText.setSelectionRange(0, 99999);\r\n        document.execCommand('copy');\r\n\r\n        this.$store.dispatch('messages/addMessage', {\r\n            status: 'Success', title: 'Copy successful', popup: true, message: `Link has been copied to the clipboard:<br/><br/><span class=\"select\">${copyText.value}</span>`,\r\n        });\r\n    }\r\n}\r\n\r\n","import mod from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./copy-link-button.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./copy-link-button.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./copy-link-button.vue?vue&type=template&id=779faa10&\"\nimport script from \"./copy-link-button.vue?vue&type=script&lang=ts&\"\nexport * from \"./copy-link-button.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./copy-link-button.vue?vue&type=style&index=0&id=779faa10&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"job\"},[(_vm.assignedJob)?_c('label',[_vm._v(\"Assigned job\")]):_vm._e(),(_vm.assignedJob)?_c('div',{staticClass:\"row no-wrap assigned-job\",attrs:{\"title\":_vm.assignedJob.name}},[_c('div',{staticClass:\"job-status\",style:(`background-color: ${_vm.getColor(_vm.assignedJob.status)};`)},[_c('font-awesome-icon',{attrs:{\"icon\":_vm.getIcon(_vm.assignedJob.status)}})],1),_c('div',{staticClass:\"job-number\"},[_vm._v(_vm._s(_vm.assignedJob.reference))]),_c('div',{staticClass:\"job-name\",attrs:{\"title\":_vm.assignedJob.definitionName}},[_vm._v(_vm._s(_vm.assignedJob.definitionName))]),(_vm.assignedJob.targetDate)?_c('div',{staticClass:\"job-target-date\"},[_vm._v(_vm._s(_vm.formatDate(_vm.assignedJob.targetDate, true)))]):_vm._e()]):_vm._e(),(_vm.assignedJob && _vm.showAssignmentOptions)?_c('btn',{staticClass:\"secondary\",attrs:{\"text\":\"Unassign\",\"confirmationTitle\":\"Unassign?\",\"confirmButtonText\":\"Unassign\",\"confirmationMessage\":\"Are you sure you want to unassign from this job?\"},on:{\"click\":_vm.showJobUnassignJob}}):_vm._e(),(_vm.showAssignmentOptions)?_c('btn',{staticClass:\"primary\",attrs:{\"text\":_vm.assignedJob ? 'Reassign' : 'Assign to a job'},on:{\"click\":_vm.showJobAssignModal}}):_vm._e(),(_vm.assignedJob && _vm.showAssignmentOptions && !_vm.hideReturnToIndex)?_c('btn',{staticClass:\"tertiary\",attrs:{\"text\":\"Return to indexing\",\"confirmationTitle\":\"Return to indexing?\",\"confirmButtonText\":\"Return to indexing\",\"confirmationMessage\":\"Are you sure you want to return this to indexing?\"},on:{\"click\":_vm.showReturnToIndex}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport JobSummary from 'common/models/jobSummary';\r\nimport Status from 'common/util/pulseStatusEnum';\r\nimport moment from '~/moment';\r\nimport {\r\n    Component, Vue, Prop,\r\n} from '~/vue-property-decorator';\r\n\r\n@Component({\r\n    name: 'CorrespondenceJob',\r\n    components: {},\r\n})\r\n\r\nexport default class CorrespondenceJob extends Vue {\r\n    @Prop()\r\n    assignedJob?: JobSummary;\r\n\r\n    @Prop()\r\n    showAssignmentOptions?: boolean;\r\n\r\n    @Prop()\r\n    hideReturnToIndex?: boolean;\r\n\r\n    getColor (status: string) {\r\n        const color = Status.getColour(status);\r\n        return color;\r\n    }\r\n\r\n    getIcon (status: string) {\r\n        const icon = Status.getIcon(status);\r\n        return icon;\r\n    }\r\n\r\n    getName (status: string) {\r\n        const name = Status.getName(status);\r\n        return name;\r\n    }\r\n\r\n    formatDate (date: Date, noHours = false) {\r\n        if (noHours) {\r\n            return moment(date).utc().format('DD/MM/YYYY');\r\n        }\r\n        return moment(date).utc().format('DD/MM/YYYY HH:mm');\r\n    }\r\n\r\n    showJobAssignModal () {\r\n        this.$emit('jobAssignment');\r\n    }\r\n\r\n    showJobUnassignJob () {\r\n        this.$emit('jobUnassignment');\r\n    }\r\n\r\n    showReturnToIndex () {\r\n        this.$emit('returnToIndex');\r\n    }\r\n}\r\n","import mod from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./correspondence-job.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./correspondence-job.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./correspondence-job.vue?vue&type=template&id=59310a84&scoped=true&\"\nimport script from \"./correspondence-job.vue?vue&type=script&lang=ts&\"\nexport * from \"./correspondence-job.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./correspondence-job.vue?vue&type=style&index=0&id=59310a84&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"59310a84\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"death-form\"},[_c('div',{staticClass:\"content-wrapper\"},[_c('div',{staticClass:\"group header\"},[_c('h4',{staticClass:\"group-title\"},[_vm._v(\"Details\")]),_c('dynamic-ui-boolean',{attrs:{\"name\":\"Is this a telephone notification?\"},model:{value:(_vm.deathNotification.isTelephoneNotification),callback:function ($$v) {_vm.$set(_vm.deathNotification, \"isTelephoneNotification\", $$v)},expression:\"deathNotification.isTelephoneNotification\"}}),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-4\"},[_c('dynamic-ui-date',{attrs:{\"exportFormat\":\"YYYY-MM-DD\",\"name\":\"Date of death\",\"readOnly\":_vm.deathNotification.isDateOfDeathUnknown},model:{value:(_vm.deathNotification.dateOfDeath),callback:function ($$v) {_vm.$set(_vm.deathNotification, \"dateOfDeath\", $$v)},expression:\"deathNotification.dateOfDeath\"}})],1),_c('div',{staticClass:\"col-4\"},[_c('dynamic-ui-boolean',{attrs:{\"valueKey\":\"value\",\"name\":\"Date of death unknown?\"},model:{value:(_vm.deathNotification.isDateOfDeathUnknown),callback:function ($$v) {_vm.$set(_vm.deathNotification, \"isDateOfDeathUnknown\", $$v)},expression:\"deathNotification.isDateOfDeathUnknown\"}})],1)]),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-6\"},[_c('dynamic-ui-stringdropdown',{attrs:{\"options\":_vm.yesNoUnknownOptions,\"valueKey\":\"value\",\"name\":\"Deceased's bank account still open?\"},model:{value:(_vm.deathNotification.isDeceasedBankAccountOpen),callback:function ($$v) {_vm.$set(_vm.deathNotification, \"isDeceasedBankAccountOpen\", $$v)},expression:\"deathNotification.isDeceasedBankAccountOpen\"}})],1),(_vm.showSpouseOrCivilPartnerForm)?_c('div',{staticClass:\"col-6\"},[_c('dynamic-ui-stringdropdown',{attrs:{\"options\":_vm.yesNoDontKnowOptions,\"valueKey\":\"value\",\"name\":\"Is there a Spouse/Civil Partner?\"},on:{\"input\":_vm.changeShowSpouseOrCivilPartnerContactOption},model:{value:(_vm.deathNotification.hasSpouseOrCivilPartner),callback:function ($$v) {_vm.$set(_vm.deathNotification, \"hasSpouseOrCivilPartner\", $$v)},expression:\"deathNotification.hasSpouseOrCivilPartner\"}})],1):_vm._e()]),(_vm.showSpouseOrCivilPartnerForm)?_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-6\"},[_c('dynamic-ui-stringdropdown',{attrs:{\"options\":_vm.yesNoDontKnowOptions,\"valueKey\":\"value\",\"name\":\"Are there children under 23?\"},model:{value:(_vm.deathNotification.hasChildrenUnder23),callback:function ($$v) {_vm.$set(_vm.deathNotification, \"hasChildrenUnder23\", $$v)},expression:\"deathNotification.hasChildrenUnder23\"}})],1),_c('div',{staticClass:\"col-6\"},[_c('dynamic-ui-stringdropdown',{attrs:{\"options\":_vm.yesNoDontKnowOptions,\"valueKey\":\"value\",\"name\":\"Are there other financial dependants (other than spouse / civil partner)?\"},model:{value:(_vm.deathNotification.hasOtherFinancialDependants),callback:function ($$v) {_vm.$set(_vm.deathNotification, \"hasOtherFinancialDependants\", $$v)},expression:\"deathNotification.hasOtherFinancialDependants\"}})],1)]):_vm._e(),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12\"},[_c('dynamic-ui-textarea',{key:\"furtherInformation\",attrs:{\"spellCheck\":\"true\",\"name\":\"Further information\",\"minLength\":1},model:{value:(_vm.deathNotification.furtherInformation),callback:function ($$v) {_vm.$set(_vm.deathNotification, \"furtherInformation\", $$v)},expression:\"deathNotification.furtherInformation\"}})],1)])],1),_c('div',{staticClass:\"group\"},[_c('h4',{staticClass:\"group-title\"},[_vm._v(\"Informant\")]),_c('InformantContactDetailsVue',{attrs:{\"contactDetails\":_vm.deathNotification.informantContactDetails}})],1),_c('div',{staticClass:\"group header\"},[_c('h4',{staticClass:\"group-title\"},[_vm._v(\"Future Correspondence\")]),_c('dynamic-ui-boolean',{attrs:{\"name\":\"Future correspondence contact details differ from the informant?\"},model:{value:(_vm.deathNotification.futureCorrespondenceDiffers),callback:function ($$v) {_vm.$set(_vm.deathNotification, \"futureCorrespondenceDiffers\", $$v)},expression:\"deathNotification.futureCorrespondenceDiffers\"}})],1),(_vm.showFutureCorrespondenceDetails)?_c('div',{staticClass:\"group\"},[_c('FutureCorrespondenceContactDetailsVue',{attrs:{\"contactDetails\":_vm.deathNotification.futureCorrespondenceContactDetails}})],1):_vm._e(),_c('div',{staticClass:\"group header\"},[_c('h4',{staticClass:\"group-title\"},[_vm._v(\"Spouse / Civil Partner\")]),(_vm.showSpouseOrCivilPartnerForm)?_c('div',[(_vm.showSpouseOrCivilPartnerContactOption)?_c('dynamic-ui-enumdropdown',{attrs:{\"options\":_vm.spouseOrCivilPartnerContactOptions,\"name\":\"Do contact details differ from either the informant or the future correspondence?\",\"valueKey\":\"value\"},model:{value:(_vm.deathNotification.spouseOrCivilPartnerContactOption),callback:function ($$v) {_vm.$set(_vm.deathNotification, \"spouseOrCivilPartnerContactOption\", $$v)},expression:\"deathNotification.spouseOrCivilPartnerContactOption\"}}):_vm._e(),(!_vm.showSpouseOrCivilPartnerContactOption)?_c('div',{staticClass:\"information\"},[_c('p',[_vm._v(\"Not applicable\")])]):_vm._e()],1):_c('div',{staticClass:\"information\"},[_c('p',[_vm._v(\"Member is a dependant\")])])]),(_vm.showSpouseOrCivilPartnerDetails)?_c('div',{staticClass:\"group\"},[_c('SpouseOrCivilPartnerContactDetailsVue',{attrs:{\"contactDetails\":_vm.deathNotification.spouseOrCivilPartnerContactDetails}})],1):_vm._e()]),(_vm.validationFailedMessage)?_c('div',{staticClass:\"group validation-failed\",domProps:{\"innerHTML\":_vm._s(_vm.validationFailedMessage)}}):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { IDeathContactDetails } from './deathContactDetails';\r\n\r\nexport default class DeathFutureCorespondenceContactDetails implements IDeathContactDetails {\r\n    forenames = '';\r\n\r\n    surname = '';\r\n\r\n    title = '';\r\n\r\n    email = '';\r\n\r\n    addressLine1 = '';\r\n\r\n    addressLine2 = '';\r\n\r\n    addressLine3 = '';\r\n\r\n    addressLine4 = '';\r\n\r\n    addressPostCode = '';\r\n\r\n    addressCountry = '';\r\n\r\n    telephoneNumber = '';\r\n\r\n    relationshipToDeceased = '';\r\n\r\n    contactPreference = '';\r\n}\r\n","import { IDeathContactDetails } from './deathContactDetails';\r\n\r\nexport default class DeathSpouseOrCivilPartnerContactDetails implements IDeathContactDetails {\r\n    forenames = '';\r\n\r\n    surname = '';\r\n\r\n    title = '';\r\n\r\n    email = '';\r\n\r\n    addressLine1 = '';\r\n\r\n    addressLine2 = '';\r\n\r\n    addressLine3 = '';\r\n\r\n    addressLine4 = '';\r\n\r\n    addressPostCode = '';\r\n\r\n    addressCountry = '';\r\n\r\n    telephoneNumber = '';\r\n\r\n    contactPreference = '';\r\n}\r\n","\r\n\r\nimport DeathNotification from 'common/models/deathNotification';\r\nimport {\r\n    YesNoUnknown, YesNoDontKnow, RelationshipToDeceased, SpouseOrCivilPartnerContactOptions, ContactPreferences,\r\n} from 'common/models/deathEnums';\r\nimport InformantContactDetailsVue from 'common/components/death-notification-informant-contact-details.vue';\r\nimport FutureCorrespondenceContactDetailsVue from 'common/components/death-notification-futurecorrespondence-contact-details.vue';\r\nimport SpouseOrCivilPartnerContactDetailsVue from 'common/components/death-notification-spouseorcivilpartner-contact-details.vue';\r\nimport FutureCorrespondenceContactDetails from 'common/models/deathFutureCorrespondenceContactDetails';\r\nimport SpouseOrCivilPartnerContactDetails from 'common/models/deathSpouseOrCivilPartnerContactDetails';\r\nimport { IDeathContactDetails } from 'common/models/deathContactDetails';\r\nimport {\r\n    Component, Vue, Prop, Watch,\r\n} from '~/vue-property-decorator';\r\nimport { EMAIL_REGEX } from 'common/util/emailHelper';\r\n\r\n@Component({\r\n    name: 'death-notification-form',\r\n    components: { InformantContactDetailsVue, FutureCorrespondenceContactDetailsVue, SpouseOrCivilPartnerContactDetailsVue },\r\n})\r\nexport default class DeathNotificationForm extends Vue {\r\n    @Prop() memberId!: string;\r\n\r\n    @Prop() deathNotification!: DeathNotification;\r\n\r\n    @Prop() showSpouseOrCivilPartnerForm!: boolean;\r\n\r\n    isDirty = true;\r\n\r\n    showSpouseOrCivilPartnerContactOption=false;\r\n\r\n    yesNoUnknownOptions= Object.keys(YesNoUnknown).map((a) => ({ name: a, value: YesNoUnknown[a as keyof typeof YesNoUnknown] }));\r\n\r\n    yesNoDontKnowOptions= Object.keys(YesNoDontKnow).map((a) => ({ name: a, value: YesNoDontKnow[a as keyof typeof YesNoDontKnow] }));\r\n\r\n    spouseOrCivilPartnerContactOptions= Object.keys(SpouseOrCivilPartnerContactOptions).map((a) => ({ name: a, value: SpouseOrCivilPartnerContactOptions[a as keyof typeof SpouseOrCivilPartnerContactOptions] }));\r\n\r\n    mounted () {\r\n        this.$emit('validChanged', false);\r\n    }\r\n\r\n    get showFutureCorrespondenceDetails () {\r\n        return this.deathNotification!.futureCorrespondenceDiffers;\r\n    }\r\n\r\n    changeShowSpouseOrCivilPartnerContactOption () {\r\n        this.showSpouseOrCivilPartnerContactOption = this.deathNotification!.hasSpouseOrCivilPartner === YesNoDontKnow.Yes;\r\n\r\n        if (this.deathNotification!.hasSpouseOrCivilPartner !== YesNoDontKnow.Yes) {\r\n            this.deathNotification!.spouseOrCivilPartnerContactOption = null;\r\n        } else {\r\n            this.deathNotification!.spouseOrCivilPartnerContactOption = SpouseOrCivilPartnerContactOptions['No - same as informant'];\r\n        }\r\n    }\r\n\r\n    get showSpouseOrCivilPartnerDetails () {\r\n        return this.deathNotification!.spouseOrCivilPartnerContactOption === SpouseOrCivilPartnerContactOptions.Yes;\r\n    }\r\n\r\n    hasSpouseOrCivilPartnerCheck () {\r\n        if (this.deathNotification!.hasSpouseOrCivilPartner === null) {\r\n            return;\r\n        }\r\n\r\n        const informantRelationship = this.deathNotification!.informantContactDetails.relationshipToDeceased;\r\n        const fututeCorrespondenceRelationship = this.deathNotification!.futureCorrespondenceContactDetails?.relationshipToDeceased;\r\n\r\n        if (informantRelationship === RelationshipToDeceased['Widow(er)']\r\n            || informantRelationship === RelationshipToDeceased['Civil Partner']\r\n            || fututeCorrespondenceRelationship === RelationshipToDeceased['Widow(er)']\r\n            || fututeCorrespondenceRelationship === RelationshipToDeceased['Civil Partner']) {\r\n            this.deathNotification!.hasSpouseOrCivilPartner = YesNoDontKnow.Yes;\r\n        }\r\n    }\r\n\r\n    @Watch('deathNotification.informantContactDetails.relationshipToDeceased')\r\n    @Watch('deathNotification.futureCorrespondenceContactDetails.relationshipToDeceased')\r\n    relationshipChanged () {\r\n        this.hasSpouseOrCivilPartnerCheck();\r\n    }\r\n\r\n    @Watch('deathNotification', { deep: true })\r\n    deathNotificationChanged () {\r\n        this.isDirty = true;\r\n    }\r\n\r\n    @Watch('deathNotification.futureCorrespondenceDiffers')\r\n    futureCorrespondenceDiffersChanged (val: boolean) {\r\n        if (val) {\r\n            this.deathNotification.futureCorrespondenceContactDetails = new FutureCorrespondenceContactDetails();\r\n            this.deathNotification.futureCorrespondenceContactDetails!.contactPreference = ContactPreferences.Email;\r\n        } else {\r\n            this.deathNotification.futureCorrespondenceContactDetails = null;\r\n        }\r\n    }\r\n\r\n    @Watch('deathNotification.hasSpouseOrCivilPartner')\r\n    hasSpouseOrCivilPartnerChanged (val: YesNoDontKnow) {\r\n        if (val === YesNoDontKnow.Yes) {\r\n            this.deathNotification.spouseOrCivilPartnerContactDetails = new SpouseOrCivilPartnerContactDetails();\r\n            this.deathNotification.spouseOrCivilPartnerContactDetails!.contactPreference = ContactPreferences.Email;\r\n        } else {\r\n            this.deathNotification.spouseOrCivilPartnerContactDetails = null;\r\n        }\r\n    }\r\n\r\n    @Watch('deathNotification.spouseOrCivilPartnerContactOption')\r\n    spouseOrCivilPartnerContactOptionChanged (val: SpouseOrCivilPartnerContactOptions) {\r\n        if (val === SpouseOrCivilPartnerContactOptions.Yes) {\r\n            this.deathNotification.spouseOrCivilPartnerContactDetails = new SpouseOrCivilPartnerContactDetails();\r\n            this.deathNotification.spouseOrCivilPartnerContactDetails!.contactPreference = ContactPreferences.Email;\r\n        } else {\r\n            this.deathNotification.spouseOrCivilPartnerContactDetails = null;\r\n        }\r\n    }\r\n\r\n    @Watch('validationFailedMessage')\r\n    validationFailedMessageChanged () {\r\n        this.$emit('validChanged', !this.validationFailedMessage);\r\n    }\r\n\r\n    @Watch('deathNotification.isDateOfDeathUnknown')\r\n    isDateOfDeathUnknownChanged () {\r\n        this.deathNotification.dateOfDeath = null;\r\n    }\r\n\r\n    get validationFailedMessage () {\r\n        const errors = [];\r\n        const dn = this.deathNotification;\r\n\r\n        if (dn.isDateOfDeathUnknown === false) {\r\n            if (!dn.dateOfDeath) {\r\n                errors.push('<li><b>Date of death</b> required</li>');\r\n            } else if (new Date(dn.dateOfDeath) > new Date()) {\r\n                errors.push('<li><b>Date of death cannot be in the future</b> </li>');\r\n            }\r\n        }\r\n\r\n        if (this.showSpouseOrCivilPartnerForm) {\r\n            if (!dn.hasChildrenUnder23) {\r\n                errors.push('<li><b>Are there children under 23?</b> required</li>');\r\n            }\r\n\r\n            if (!dn.isDeceasedBankAccountOpen) {\r\n                errors.push('<li><b>Deceased\\'s bank account still open?</b> required</li>');\r\n            }\r\n        }\r\n\r\n        const informantErrors = this.checkContactDetails(dn.informantContactDetails, true);\r\n\r\n        if (informantErrors) {\r\n            errors.push(`<li><b>Informant details</b> (${informantErrors})</li>`);\r\n        }\r\n\r\n        if (!dn.informantContactDetails.relationshipToDeceased) {\r\n            errors.push('<li><b>Informant relationship to deceased</b> is required</li>');\r\n        }\r\n\r\n        if (dn.futureCorrespondenceDiffers) {\r\n            const futureCorrespondenceErrors = this.checkContactDetails(dn.futureCorrespondenceContactDetails!, false);\r\n\r\n            if (futureCorrespondenceErrors) {\r\n                errors.push(`<li><b>Future correspondence details</b> (${futureCorrespondenceErrors})</li>`);\r\n            }\r\n\r\n            if (!dn.futureCorrespondenceContactDetails!.relationshipToDeceased) {\r\n                errors.push('<li><b>Future correspondence relationship to deceased</b> is required</li>');\r\n            }\r\n        }\r\n\r\n        if (this.showSpouseOrCivilPartnerForm === true) {\r\n            if (dn.hasSpouseOrCivilPartner === undefined || dn.hasSpouseOrCivilPartner === null) {\r\n                errors.push('<li><b>Is there a Spouse/Civil Partner?</b> required</li>');\r\n            }\r\n\r\n            if (dn.hasSpouseOrCivilPartner === YesNoDontKnow.Yes && dn.spouseOrCivilPartnerContactOption === SpouseOrCivilPartnerContactOptions.Yes) {\r\n                const spouseOrCivilPartnerErrors = this.checkContactDetails(dn.spouseOrCivilPartnerContactDetails!, false);\r\n\r\n                if (spouseOrCivilPartnerErrors) {\r\n                    errors.push(`<li><b>Spouse / civil partner details</b> (${spouseOrCivilPartnerErrors})</li>`);\r\n                }\r\n            }\r\n\r\n            if (dn.hasSpouseOrCivilPartner === YesNoDontKnow.Yes && dn.spouseOrCivilPartnerContactOption === SpouseOrCivilPartnerContactOptions['No - same as future correspondence']) {\r\n                if (!dn.futureCorrespondenceDiffers) {\r\n                    errors.push('<li><b>Spouse/Civil Partner set to use Future Correspondence contact details, but Future Correspondence contact details</b> not set</li>');\r\n                }\r\n            }\r\n        }\r\n\r\n        if (!errors.length) {\r\n            return null;\r\n        }\r\n\r\n        return `<ul>${errors.join('')}</ul>`;\r\n    }\r\n\r\n    checkContactDetails (contactDetails: IDeathContactDetails, isInformant: boolean): string | null {\r\n        const errors = [];\r\n\r\n        if (!contactDetails.forenames) {\r\n            errors.push('<b>forename</b> required');\r\n        }\r\n\r\n        if (!contactDetails.title) {\r\n            errors.push('<b>title</b> required');\r\n        }\r\n\r\n        if (!contactDetails.surname) {\r\n            errors.push('<b>surname</b> required');\r\n        }\r\n\r\n        if (!contactDetails.addressLine1) {\r\n            errors.push('<b>address line 1</b> required');\r\n        }\r\n\r\n        if (!contactDetails.addressPostCode) {\r\n            errors.push('<b>post code</b> required');\r\n        }\r\n\r\n        if (!contactDetails.addressCountry) {\r\n            errors.push('<b>country</b> required');\r\n        }\r\n\r\n        if (isInformant && !contactDetails.telephoneNumber) {\r\n            errors.push('<b>telephone number</b> required');\r\n        }\r\n\r\n        if (contactDetails.contactPreference === undefined || contactDetails.contactPreference === null) {\r\n            errors.push('<b>contact preference</b> required');\r\n        }\r\n\r\n        if (contactDetails.contactPreference === ContactPreferences.Email && !contactDetails.email) {\r\n            errors.push('<b>contact preference set to email, but email not set</b>');\r\n        }\r\n\r\n        if (contactDetails.email) {\r\n            if (!contactDetails.email.match(EMAIL_REGEX)) {\r\n                errors.push('<b>email</b> invalid');\r\n            }\r\n        }\r\n\r\n        if (errors.length) {\r\n            return errors.length === 1 ? errors[0] : `${errors.slice(0, -1).join(', ')} and ${errors[errors.length - 1]}`;\r\n        }\r\n\r\n        return null;\r\n    }\r\n}\r\n\r\n","import mod from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./death-notification-form.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./death-notification-form.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./death-notification-form.vue?vue&type=template&id=d994f5f4&scoped=true&\"\nimport script from \"./death-notification-form.vue?vue&type=script&lang=ts&\"\nexport * from \"./death-notification-form.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./death-notification-form.vue?vue&type=style&index=0&id=d994f5f4&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"d994f5f4\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"row group\"},[_c('div',{staticClass:\"col\"},[_c('dynamic-ui-text',{attrs:{\"name\":\"Forename\"},model:{value:(_vm.contactDetails.forenames),callback:function ($$v) {_vm.$set(_vm.contactDetails, \"forenames\", $$v)},expression:\"contactDetails.forenames\"}}),_c('dynamic-ui-text',{attrs:{\"name\":\"Surname\"},model:{value:(_vm.contactDetails.surname),callback:function ($$v) {_vm.$set(_vm.contactDetails, \"surname\", $$v)},expression:\"contactDetails.surname\"}}),_c('dynamic-ui-stringdropdown',{attrs:{\"options\":_vm.memberTitleOptions,\"name\":\"Title\"},model:{value:(_vm.contactDetails.title),callback:function ($$v) {_vm.$set(_vm.contactDetails, \"title\", $$v)},expression:\"contactDetails.title\"}}),_c('dynamic-ui-text',{attrs:{\"name\":\"Email\",\"validationMessage\":\"Invalid email\",\"regexValidation\":_vm.emailRegex},model:{value:(_vm.contactDetails.email),callback:function ($$v) {_vm.$set(_vm.contactDetails, \"email\", $$v)},expression:\"contactDetails.email\"}}),_c('dynamic-ui-stringdropdown',{attrs:{\"valueKey\":\"value\",\"options\":_vm.relationshipToDeceasedOptions,\"name\":\"Relation to deceased\"},model:{value:(_vm.contactDetails.relationshipToDeceased),callback:function ($$v) {_vm.$set(_vm.contactDetails, \"relationshipToDeceased\", $$v)},expression:\"contactDetails.relationshipToDeceased\"}}),_c('dynamic-ui-phonenumber',{attrs:{\"dontOpenWindow\":true,\"showPhone\":false,\"name\":\"Telephone\"},model:{value:(_vm.contactDetails.telephoneNumber),callback:function ($$v) {_vm.$set(_vm.contactDetails, \"telephoneNumber\", $$v)},expression:\"contactDetails.telephoneNumber\"}}),_c('dynamic-ui-stringdropdown',{attrs:{\"valueKey\":\"value\",\"options\":_vm.contactPreferenceOptions,\"name\":\"Contact preference\"},model:{value:(_vm.contactDetails.contactPreference),callback:function ($$v) {_vm.$set(_vm.contactDetails, \"contactPreference\", $$v)},expression:\"contactDetails.contactPreference\"}})],1),_c('address-component',{model:{value:(_vm.contactDetails),callback:function ($$v) {_vm.contactDetails=$$v},expression:\"contactDetails\"}}),(_vm.isLoading)?_c('loading'):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\nimport * as STORE from 'common/store/storepaths';\r\nimport FutureCorrespondenceContactDetails from 'common/models/deathFutureCorrespondenceContactDetails';\r\nimport { ContactPreferences, RelationshipToDeceased } from 'common/models/deathEnums';\r\nimport { Component, Vue, Prop } from '~/vue-property-decorator';\r\nimport AddressComponent from './addressComponent.vue';\r\nimport { EMAIL_REGEX } from 'common/util/emailHelper';\r\n\r\n@Component({\r\n    name: 'death-notification-futurecorrespondence-contact-details',\r\n    components: { AddressComponent },\r\n})\r\nexport default class DeathNotificationFutureCorrespondenceContactDetails extends Vue {\r\n    @Prop() memberId!: string;\r\n\r\n    @Prop() contactDetails!: FutureCorrespondenceContactDetails\r\n\r\n    isLoading = false;\r\n\r\n    emailRegex = EMAIL_REGEX;\r\n\r\n    memberTitleOptions: Array<string> = [];\r\n\r\n    contactPreferenceOptions= Object.keys(ContactPreferences).map((a) => ({ name: a, value: ContactPreferences[a as keyof typeof ContactPreferences] }));\r\n\r\n    relationshipToDeceasedOptions= Object.keys(RelationshipToDeceased).map((a) => ({ name: a, value: RelationshipToDeceased[a as keyof typeof RelationshipToDeceased] }));\r\n\r\n    async mounted () {\r\n        this.isLoading = true;\r\n        await this.loadMemberTitles();\r\n        this.isLoading = false;\r\n    }\r\n\r\n    get pulseApiUrl () {\r\n        return this.$store.getters[STORE.GET_SITE_CONFIGURATION][STORE.PULSE_API_URL] ?? '';\r\n    }\r\n\r\n    async loadMemberTitles () {\r\n        const list = this.$store.getters[STORE.GET_TITLES];\r\n        if (list == null) {\r\n            this.memberTitleOptions = await this.$store.dispatch(STORE.LOAD_TITLES, this.pulseApiUrl);\r\n        } else {\r\n            this.memberTitleOptions = list;\r\n        }\r\n    }\r\n}\r\n\r\n","import mod from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./death-notification-futurecorrespondence-contact-details.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./death-notification-futurecorrespondence-contact-details.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./death-notification-futurecorrespondence-contact-details.vue?vue&type=template&id=7e6e472a&scoped=true&\"\nimport script from \"./death-notification-futurecorrespondence-contact-details.vue?vue&type=script&lang=ts&\"\nexport * from \"./death-notification-futurecorrespondence-contact-details.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./death-notification-futurecorrespondence-contact-details.vue?vue&type=style&index=0&id=7e6e472a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"7e6e472a\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"row group\"},[_c('div',{staticClass:\"col\"},[_c('dynamic-ui-text',{attrs:{\"name\":\"Forename\"},model:{value:(_vm.contactDetails.forenames),callback:function ($$v) {_vm.$set(_vm.contactDetails, \"forenames\", $$v)},expression:\"contactDetails.forenames\"}}),_c('dynamic-ui-text',{attrs:{\"name\":\"Surname\"},model:{value:(_vm.contactDetails.surname),callback:function ($$v) {_vm.$set(_vm.contactDetails, \"surname\", $$v)},expression:\"contactDetails.surname\"}}),_c('dynamic-ui-stringdropdown',{attrs:{\"options\":_vm.memberTitleOptions,\"name\":\"Title\"},model:{value:(_vm.contactDetails.title),callback:function ($$v) {_vm.$set(_vm.contactDetails, \"title\", $$v)},expression:\"contactDetails.title\"}}),_c('dynamic-ui-text',{attrs:{\"name\":\"Email\",\"validationMessage\":\"Invalid email\",\"regexValidation\":_vm.emailRegex},model:{value:(_vm.contactDetails.email),callback:function ($$v) {_vm.$set(_vm.contactDetails, \"email\", $$v)},expression:\"contactDetails.email\"}}),_c('dynamic-ui-stringdropdown',{attrs:{\"valueKey\":\"value\",\"options\":_vm.relationshipToDeceasedOptions,\"name\":\"Relation to deceased\"},model:{value:(_vm.contactDetails.relationshipToDeceased),callback:function ($$v) {_vm.$set(_vm.contactDetails, \"relationshipToDeceased\", $$v)},expression:\"contactDetails.relationshipToDeceased\"}}),_c('dynamic-ui-phonenumber',{attrs:{\"dontOpenWindow\":true,\"showPhone\":false,\"name\":\"Telephone\"},model:{value:(_vm.contactDetails.telephoneNumber),callback:function ($$v) {_vm.$set(_vm.contactDetails, \"telephoneNumber\", $$v)},expression:\"contactDetails.telephoneNumber\"}}),_c('dynamic-ui-stringdropdown',{attrs:{\"valueKey\":\"value\",\"options\":_vm.contactPreferenceOptions,\"name\":\"Contact preference\"},model:{value:(_vm.contactDetails.contactPreference),callback:function ($$v) {_vm.$set(_vm.contactDetails, \"contactPreference\", $$v)},expression:\"contactDetails.contactPreference\"}})],1),_c('address-component',{model:{value:(_vm.contactDetails),callback:function ($$v) {_vm.contactDetails=$$v},expression:\"contactDetails\"}}),(_vm.isLoading)?_c('loading'):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\nimport * as STORE from 'common/store/storepaths';\r\nimport InformantContactDetails from 'common/models/deathInformantContactDetails';\r\nimport { ContactPreferences, RelationshipToDeceased } from 'common/models/deathEnums';\r\nimport { Component, Vue, Prop } from '~/vue-property-decorator';\r\nimport AddressComponent from './addressComponent.vue';\r\nimport { EMAIL_REGEX } from 'common/util/emailHelper';\r\n\r\n@Component({\r\n    name: 'death-notification-informant-contact-details',\r\n    components: {\r\n        AddressComponent,\r\n    },\r\n})\r\nexport default class DeathNotificationInformantContactDetails extends Vue {\r\n    @Prop() memberId!: string;\r\n\r\n    @Prop() contactDetails!: InformantContactDetails\r\n\r\n    isLoading = false;\r\n\r\n    memberTitleOptions: Array<string> = [];\r\n\r\n    contactPreferenceOptions= Object.keys(ContactPreferences).map((a) => ({ name: a, value: ContactPreferences[a as keyof typeof ContactPreferences] }));\r\n\r\n    relationshipToDeceasedOptions= Object.keys(RelationshipToDeceased).map((a) => ({ name: a, value: RelationshipToDeceased[a as keyof typeof RelationshipToDeceased] }));\r\n\r\n    emailRegex = EMAIL_REGEX;\r\n\r\n    async mounted () {\r\n        this.isLoading = true;\r\n        await this.loadMemberTitles();\r\n        this.isLoading = false;\r\n    }\r\n\r\n    get pulseApiUrl () {\r\n        return this.$store.getters[STORE.GET_SITE_CONFIGURATION][STORE.PULSE_API_URL] ?? '';\r\n    }\r\n\r\n    async loadMemberTitles () {\r\n        const list = this.$store.getters[STORE.GET_TITLES];\r\n        if (list == null) {\r\n            this.memberTitleOptions = await this.$store.dispatch(STORE.LOAD_TITLES, this.pulseApiUrl);\r\n        } else {\r\n            this.memberTitleOptions = list;\r\n        }\r\n    }\r\n}\r\n\r\n","import mod from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./death-notification-informant-contact-details.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./death-notification-informant-contact-details.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./death-notification-informant-contact-details.vue?vue&type=template&id=dc36db6a&scoped=true&\"\nimport script from \"./death-notification-informant-contact-details.vue?vue&type=script&lang=ts&\"\nexport * from \"./death-notification-informant-contact-details.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./death-notification-informant-contact-details.vue?vue&type=style&index=0&id=dc36db6a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"dc36db6a\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"row group\"},[_c('div',{staticClass:\"col\"},[_c('dynamic-ui-text',{attrs:{\"name\":\"Forename\"},model:{value:(_vm.contactDetails.forenames),callback:function ($$v) {_vm.$set(_vm.contactDetails, \"forenames\", $$v)},expression:\"contactDetails.forenames\"}}),_c('dynamic-ui-text',{attrs:{\"name\":\"Surname\"},model:{value:(_vm.contactDetails.surname),callback:function ($$v) {_vm.$set(_vm.contactDetails, \"surname\", $$v)},expression:\"contactDetails.surname\"}}),_c('dynamic-ui-stringdropdown',{attrs:{\"options\":_vm.memberTitleOptions,\"name\":\"Title\"},model:{value:(_vm.contactDetails.title),callback:function ($$v) {_vm.$set(_vm.contactDetails, \"title\", $$v)},expression:\"contactDetails.title\"}}),_c('dynamic-ui-text',{attrs:{\"name\":\"Email\",\"validationMessage\":\"Invalid email\",\"regexValidation\":_vm.emailRegex},model:{value:(_vm.contactDetails.email),callback:function ($$v) {_vm.$set(_vm.contactDetails, \"email\", $$v)},expression:\"contactDetails.email\"}}),_c('dynamic-ui-phonenumber',{attrs:{\"dontOpenWindow\":true,\"showPhone\":false,\"name\":\"Telephone\"},model:{value:(_vm.contactDetails.telephoneNumber),callback:function ($$v) {_vm.$set(_vm.contactDetails, \"telephoneNumber\", $$v)},expression:\"contactDetails.telephoneNumber\"}}),_c('dynamic-ui-stringdropdown',{attrs:{\"valueKey\":\"value\",\"options\":_vm.contactPreferenceOptions,\"name\":\"Contact preference\"},model:{value:(_vm.contactDetails.contactPreference),callback:function ($$v) {_vm.$set(_vm.contactDetails, \"contactPreference\", $$v)},expression:\"contactDetails.contactPreference\"}})],1),_c('address-component',{model:{value:(_vm.contactDetails),callback:function ($$v) {_vm.contactDetails=$$v},expression:\"contactDetails\"}}),(_vm.isLoading)?_c('loading'):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\nimport * as STORE from 'common/store/storepaths';\r\nimport SpouseOrCivilPartnerContactDetails from 'common/models/deathSpouseOrCivilPartnerContactDetails';\r\nimport { ContactPreferences } from 'common/models/deathEnums';\r\nimport { Component, Vue, Prop } from '~/vue-property-decorator';\r\nimport AddressComponent from './addressComponent.vue';\r\nimport { EMAIL_REGEX } from 'common/util/emailHelper';\r\n\r\n@Component({\r\n    name: 'death-notification-spouseorcivilpartner-contact-details',\r\n    components: {\r\n        AddressComponent,\r\n    },\r\n})\r\nexport default class DeathNotificationSpouseorCivilPartnerContactDetails extends Vue {\r\n    @Prop() memberId!: string;\r\n\r\n    @Prop() contactDetails!: SpouseOrCivilPartnerContactDetails\r\n\r\n    isLoading = false;\r\n\r\n    memberTitleOptions: Array<string> = [];\r\n\r\n    contactPreferenceOptions= Object.keys(ContactPreferences).map((a) => ({ name: a, value: ContactPreferences[a as keyof typeof ContactPreferences] }));\r\n\r\n    emailRegex = EMAIL_REGEX;\r\n\r\n    async mounted () {\r\n        this.isLoading = true;\r\n        await this.loadMemberTitles();\r\n        this.isLoading = false;\r\n    }\r\n\r\n    get pulseApiUrl () {\r\n        return this.$store.getters[STORE.GET_SITE_CONFIGURATION][STORE.PULSE_API_URL] ?? '';\r\n    }\r\n\r\n    async loadMemberTitles () {\r\n        const list = this.$store.getters[STORE.GET_TITLES];\r\n        if (list == null) {\r\n            this.memberTitleOptions = await this.$store.dispatch(STORE.LOAD_TITLES, this.pulseApiUrl);\r\n        } else {\r\n            this.memberTitleOptions = list;\r\n        }\r\n    }\r\n}\r\n\r\n","import mod from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./death-notification-spouseorcivilpartner-contact-details.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./death-notification-spouseorcivilpartner-contact-details.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./death-notification-spouseorcivilpartner-contact-details.vue?vue&type=template&id=b37896ea&scoped=true&\"\nimport script from \"./death-notification-spouseorcivilpartner-contact-details.vue?vue&type=script&lang=ts&\"\nexport * from \"./death-notification-spouseorcivilpartner-contact-details.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./death-notification-spouseorcivilpartner-contact-details.vue?vue&type=style&index=0&id=b37896ea&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"b37896ea\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"preview-modal\"},[_c('div',{staticClass:\"input-area\"},[_c('div',{staticClass:\"group document-details\"},[_c('h2',[_vm._v(\"Document details\")]),_c('div',{staticClass:\"source\"},[(_vm.documentEdited.source.isUser)?_c('font-awesome-icon',{attrs:{\"icon\":\"user\",\"title\":\"User uploaded document\"}}):_vm._e(),(_vm.documentEdited.source.isScanning)?_c('font-awesome-icon',{attrs:{\"icon\":\"scanner-image\",\"title\":\"Scanned document\"}}):_vm._e(),(_vm.documentEdited.source.isEmail)?_c('font-awesome-icon',{attrs:{\"icon\":\"envelope\",\"title\":\"Email attachment\"}}):_vm._e()],1),_c('div',{staticClass:\"row no-wrap\"},[_c('dynamic-ui-text',{attrs:{\"name\":\"Description\",\"disabled\":!_vm.editingAvailable || !_vm.canRename},model:{value:(_vm.documentEdited.name),callback:function ($$v) {_vm.$set(_vm.documentEdited, \"name\", $$v)},expression:\"documentEdited.name\"}}),_vm._m(0)],1),_c('dynamic-ui-stringdropdown',{attrs:{\"options\":_vm.filteredCategories,\"valueKey\":\"name\",\"textKey\":\"name\",\"name\":\"Category\",\"disabled\":!_vm.editingAvailable},model:{value:(_vm.documentEdited.category),callback:function ($$v) {_vm.$set(_vm.documentEdited, \"category\", $$v)},expression:\"documentEdited.category\"}}),_c('dynamic-ui-date',{attrs:{\"includeTime\":false,\"name\":\"Effective Date\",\"exportFormat\":\"YYYY-MM-DDTHH:mm:ss\"},model:{value:(_vm.documentEdited.effectiveDate),callback:function ($$v) {_vm.$set(_vm.documentEdited, \"effectiveDate\", $$v)},expression:\"documentEdited.effectiveDate\"}}),(_vm.invalidFileDetailsMessage)?_c('div',{staticClass:\"errorMessage\"},[_vm._v(\" \"+_vm._s(_vm.invalidFileDetailsMessage)+\" \")]):_vm._e(),_c('btn',{staticClass:\"primary\",attrs:{\"text\":\"Save\",\"icon\":\"save\",\"disabled\":!_vm.fileDetailsChanged || !!_vm.invalidFileDetailsMessage || !_vm.documentEdited.category || !_vm.documentEdited.name || !_vm.documentEdited.name.trim() || !_vm.documentEdited.effectiveDate},on:{\"click\":function($event){return _vm.saveFileDetails()}}})],1),(_vm.hasWorkmanagement && _vm.documentStatus !== 'Withdrawn')?_c('div',{staticClass:\"group misc-buttons\"},[(_vm.documentStatus === 'Final' && _vm.isValidExcelDocumentExtension && _vm.canDuplicateFinalised)?_c('btn',{staticClass:\"primary\",on:{\"click\":function($event){_vm.showDuplicateFinalised = true}}},[_vm._v(\"Duplicate\")]):_vm._e(),_c('correspondenceJob',{attrs:{\"assignedJob\":_vm.job,\"showAssignmentOptions\":true,\"hideReturnToIndex\":true},on:{\"jobAssignment\":function($event){_vm.showJobAssign = true},\"jobUnassignment\":_vm.unassignJob}})],1):_vm._e(),_c('div',{staticClass:\"group\"},[_c('h2',[_vm._v(\"Status\")]),(_vm.documentStatus !== 'Withdrawn')?_c('div',{staticClass:\"status-timeline\"},[_c('btn',{staticClass:\"status delete interactive\",attrs:{\"title\":\"Delete document\",\"confirmationTitle\":\"Delete?\",\"confirmButtonText\":\"Delete document\",\"confirmationMessage\":\"Are you sure you want to delete this document?\"},on:{\"click\":_vm.deleteDocument}},[_c('font-awesome-icon',{staticClass:\"icon\",attrs:{\"icon\":\"trash-alt\"}})],1),_c('div',{staticClass:\"status draft\",class:{ active: _vm.documentStatus === 'Draft', previous: _vm.documentStatus !== 'Draft', interactive: _vm.workingDocument && (!_vm.job || _vm.job.status !== 'Complete') && _vm.documentStatus === 'Final' },attrs:{\"title\":\"Revert to draft\"},on:{\"click\":function($event){_vm.showRevertToDraftDialog = true}}},[_c('font-awesome-icon',{class:`icon`,attrs:{\"icon\":_vm.draftIcon}}),_c('div',{staticClass:\"status-text\"},[_vm._v(\"Draft\")]),(_vm.versionHistory && _vm.createdBy)?_c('profile-photo',{staticClass:\"profile\",attrs:{\"id\":_vm.createdBy,\"color\":true}}):_vm._e()],1),(_vm.documentStatus === 'Online')?_c('div',{staticClass:\"status final previous interactive\",attrs:{\"title\":\"Remove online access\"},on:{\"click\":function($event){return _vm.updateOnlineStatus(false)}}},[_c('font-awesome-icon',{staticClass:\"icon\",attrs:{\"icon\":\"file-pdf\"}}),_c('div',{staticClass:\"status-text\"},[_vm._v(\"Final\")]),(_vm.versionHistory && _vm.finalisedBy)?_c('profile-photo',{staticClass:\"profile\",attrs:{\"id\":_vm.finalisedBy,\"color\":true}}):_vm._e()],1):_c('div',{staticClass:\"status final\",class:{ active: _vm.documentStatus === 'Final', previous: _vm.documentStatus === 'Online', interactive: _vm.documentStatus !== 'Final' && _vm.documentStatus !== 'Withdrawn' && !_vm.fileDetailsChanged },attrs:{\"title\":\"Make final\"},on:{\"click\":function($event){_vm.onlineAvailable ? _vm.showFinalConfirmation = true : _vm.makeFinal()}}},[_c('font-awesome-icon',{staticClass:\"icon\",attrs:{\"icon\":\"file-pdf\"}}),_c('div',{staticClass:\"status-text\"},[_vm._v(\"Final\")]),(_vm.versionHistory && _vm.finalisedBy)?_c('profile-photo',{staticClass:\"profile\",attrs:{\"id\":_vm.finalisedBy,\"color\":true}}):_vm._e()],1),(_vm.onlineAvailable)?_c('div',{staticClass:\"status online\",class:{ active: _vm.documentStatus === 'Online', interactive: _vm.onlineAvailable && _vm.userCanMakeOnline && _vm.documentStatus === 'Final' },attrs:{\"title\":\"Make available online\"},on:{\"click\":function($event){return _vm.updateOnlineStatus(true)}}},[_c('div',{staticClass:\"notification-status\",attrs:{\"title\":'Notification email status: ' + _vm.documentPreEdit.notificationStatus}},[_c('font-awesome-icon',{attrs:{\"icon\":\"envelope\"}}),(_vm.documentPreEdit.notificationStatus === 'Requested')?_c('font-awesome-icon',{staticClass:\"sub requested\",attrs:{\"icon\":\"hourglass-start\"}}):_vm._e(),(_vm.documentPreEdit.notificationStatus === 'Pending')?_c('font-awesome-icon',{staticClass:\"sub pending\",attrs:{\"icon\":\"spinner\"}}):_vm._e(),(_vm.documentPreEdit.notificationStatus === 'Sent')?_c('font-awesome-icon',{staticClass:\"sub sent\",attrs:{\"icon\":\"check\"}}):_vm._e()],1),_c('font-awesome-icon',{staticClass:\"icon\",attrs:{\"icon\":\"cloud\"}}),_c('div',{staticClass:\"status-text\"},[_vm._v(\"Online\")]),(_vm.versionHistory && _vm.onlineBy && _vm.documentStatus === 'Online')?_c('profile-photo',{staticClass:\"profile\",attrs:{\"id\":_vm.onlineBy,\"color\":true}}):_vm._e()],1):_vm._e()],1):_c('div',{staticClass:\"withdrawn\"},[_c('div',[_vm._v(\"Withdrawn\")])]),(_vm.documentStatus === 'Final' && _vm.onlineAvailable && !_vm.userCanMakeOnline)?_c('p',{staticClass:\"note\"},[_vm._v(\" Note: A different user is required to make this document available online \")]):_vm._e()]),(_vm.documentEdited.calculationLogId)?_c('div',{staticClass:\"calculations group\",class:{ clickable: _vm.documentEdited.calculationId },attrs:{\"title\":_vm.documentEdited.calculationId ? 'View calculation' : ''},on:{\"click\":function($event){return _vm.gotoCalc(_vm.documentEdited.calculationId)}}},[_c('h2',[_vm._v(\"Calculation\")]),_c('div',{staticClass:\"row\"},[_c('font-awesome-icon',{attrs:{\"icon\":\"calculator\"}}),_c('span',[_vm._v(_vm._s(_vm.documentEdited.calculationLogId))])],1)]):_vm._e(),_c('div',{staticClass:\"group\"},[(_vm.workingDocument && (_vm.fileExtension === 'docx' || _vm.fileExtension === 'docm' || _vm.fileExtension === 'xlsx'|| _vm.fileExtension === 'xlsm'))?_c('btn',{staticClass:\"tertiary\",attrs:{\"text\":_vm.workingDocument ? 'Edit' : 'Open',\"icon\":\"pencil-alt\"},on:{\"click\":_vm.editDocument}}):_vm._e(),_c('btn',{staticClass:\"primary copy\",attrs:{\"icon\":\"copy\",\"text\":\"Copy link\"},on:{\"click\":_vm.copyLink}}),(_vm.documentEdited.source.isScanning)?_c('btn',{staticClass:\"secondary\",attrs:{\"icon\":\"undo\",\"text\":\"Return to indexing\",\"confirmationTitle\":\"Return to indexing?\",\"confirmButtonText\":\"Return to indexing\",\"confirmationMessage\":\"This will remove the document from the member and return it to indexing\"},on:{\"click\":_vm.returnToIndex}}):_vm._e(),_c('btn',{staticClass:\"primary refresh\",attrs:{\"icon\":\"redo\",\"title\":\"Refresh document\"},on:{\"click\":_vm.getDocument}}),_c('input',{attrs:{\"readonly\":\"\",\"id\":\"urlToCopy\"},domProps:{\"value\":_vm.linkUrl}})],1),_c('div',{staticClass:\"group\"},[_c('h2',[_vm._v(\"History\")]),(_vm.versionHistory)?_c('div',{staticClass:\"bubble-list\",staticStyle:{\"overflow-y\":\"auto\",\"max-height\":\"215px\",\"margin-top\":\"1rem\"}},[_c('ul',_vm._l((_vm.reversedVersionHistory),function(activity,index){return _c('li',{key:index,staticClass:\"item\"},[_c('div',{staticClass:\"profiles\"},[_c('profile-photo',{attrs:{\"id\":activity.updatedBy,\"color\":true}})],1),_c('div',{staticClass:\"name\"},[_vm._v(\" \"+_vm._s(activity.text || activity.type)+\" at \"),_c('b',[_vm._v(_vm._s(_vm.formatDate(activity.updated)))]),_vm._v(\" by \"),_c('b',[_vm._v(_vm._s(_vm.getUser(activity.updatedBy)))])])])}),0)]):_vm._e()]),(_vm.loading)?_c('loading'):_vm._e()],1),_c('div',{staticClass:\"preview-area\"},[(!_vm.loading && _vm.previewUrl && _vm.previewUrl && _vm.previewUrl.indexOf('sharepoint.com') > -1)?_c('iframe',{staticClass:\"iframe\",attrs:{\"sandbox\":\"allow-scripts allow-same-origin allow-forms\",\"src\":_vm.previewUrl}}):_vm._e(),(!_vm.loading && _vm.previewUrl && _vm.previewUrl.indexOf('sharepoint.com') === -1)?_c('document-preview',{attrs:{\"previewUrl\":_vm.previewUrl,\"fileExtension\":_vm.fileExtension},on:{\"reload\":_vm.getPreview}}):_vm._e(),(!_vm.loading && _vm.loadingPreview)?_c('loading'):_vm._e()],1),_c('modal',{staticClass:\"confirmation\",attrs:{\"title\":\"Duplicate\",\"icon\":\"file-pdf\"},model:{value:(_vm.showDuplicateFinalised),callback:function ($$v) {_vm.showDuplicateFinalised=$$v},expression:\"showDuplicateFinalised\"}},[_c('template',{slot:\"content\"},[_c('p',[_vm._v(\"Please enter a new name for the document:\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.newDocumentName),expression:\"newDocumentName\"}],attrs:{\"type\":\"text\",\"minlength\":\"1\"},domProps:{\"value\":(_vm.newDocumentName)},on:{\"input\":function($event){if($event.target.composing)return;_vm.newDocumentName=$event.target.value}}})]),_c('template',{slot:\"footer\"},[_c('div',{staticClass:\"controls\"},[_c('btn',{staticClass:\"secondary\",attrs:{\"text\":\"Cancel\"},on:{\"click\":function($event){_vm.showDuplicateFinalised = false}}}),_c('btn',{staticClass:\"primary\",attrs:{\"disabled\":_vm.newDocumentName.length==0,\"text\":\"Duplicate\"},on:{\"click\":_vm.duplicateFinalisedDocument}})],1)])],2),_c('modal',{staticClass:\"confirmation\",attrs:{\"title\":\"Really make final?\",\"icon\":\"file-pdf\"},model:{value:(_vm.showFinalConfirmation),callback:function ($$v) {_vm.showFinalConfirmation=$$v},expression:\"showFinalConfirmation\"}},[_c('template',{slot:\"content\"},[_c('p',[_vm._v(\"This document can be made available online and will be shown as: '\"+_vm._s(_vm.documentPreEdit.name)+\"'. Another user will need to approve once finalised.\")])]),_c('template',{slot:\"footer\"},[_c('div',{staticClass:\"controls\"},[_c('btn',{staticClass:\"secondary\",attrs:{\"text\":\"Cancel\"},on:{\"click\":function($event){_vm.showFinalConfirmation = false}}}),_c('btn',{staticClass:\"primary\",attrs:{\"text\":\"Confirm make final\"},on:{\"click\":_vm.makeFinal}})],1)])],2),_c('modal',{staticClass:\"confirmation\",attrs:{\"title\":\"Effective date changed\"},model:{value:(_vm.showEffectiveDateChangeNotification),callback:function ($$v) {_vm.showEffectiveDateChangeNotification=$$v},expression:\"showEffectiveDateChangeNotification\"}},[_c('template',{slot:\"content\"},[_c('p',[_vm._v(\"Updating effective date to today (\"+_vm._s(_vm.today)+\") - edit if necessary\")])]),_c('template',{slot:\"footer\"},[_c('div',{staticClass:\"controls\"},[_c('btn',{staticClass:\"primary\",attrs:{\"text\":\"Ok\"},on:{\"click\":function($event){_vm.showEffectiveDateChangeNotification = false}}})],1)])],2),_c('modal',{staticClass:\"confirmation\",attrs:{\"title\":\"Revert to draft\"},model:{value:(_vm.showRevertToDraftDialog),callback:function ($$v) {_vm.showRevertToDraftDialog=$$v},expression:\"showRevertToDraftDialog\"}},[_c('template',{slot:\"content\"},[_c('p',[_vm._v(\"Reverting to draft withdraws the existing document and creates a new document. However, the reference in the description and in the new document itself will not be updated. Please update manually if required.\")])]),_c('template',{slot:\"footer\"},[_c('div',{staticClass:\"controls\"},[_c('btn',{staticClass:\"primary\",attrs:{\"text\":\"OK\"},on:{\"click\":_vm.revertToDraft}})],1)])],2),_c('modal',{attrs:{\"title\":_vm.job ? 'Reassign?' : 'Assign?',\"width\":\"800\"},model:{value:(_vm.showJobAssign),callback:function ($$v) {_vm.showJobAssign=$$v},expression:\"showJobAssign\"}},[_c('template',{slot:\"content\"},[(_vm.storeCurrentClient)?_c('job-selector-pulse',{attrs:{\"reassigning\":!!_vm.job,\"clientLevel\":_vm.isClientDoc,\"removePrefix\":_vm.jobPrefix,\"systemMemberId\":_vm.systemMemberId,\"hideFinal\":_vm.documentStatus === 'Draft'},model:{value:(_vm.newJobId),callback:function ($$v) {_vm.newJobId=$$v},expression:\"newJobId\"}}):_vm._e()],1),_c('template',{slot:\"footer\"},[_c('div',{staticClass:\"controls\"},[_c('btn',{staticClass:\"secondary\",attrs:{\"text\":\"Cancel\",\"disabled\":_vm.loading},on:{\"click\":function($event){_vm.showJobAssign = false}}}),_c('btn',{staticClass:\"primary\",attrs:{\"text\":_vm.job ? 'Reassign' : 'Assign',\"disabled\":_vm.loading || !_vm.newJobId || _vm.newJobId === _vm.documentPreEdit.jobId},on:{\"click\":_vm.assignJob}})],1)])],2)],1)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tooltip\"},[_c('div',[_vm._v(\"Document description can only be changed before it is first edited or after being finalised\")])])\n}]\n\nexport { render, staticRenderFns }","import Guid from 'common/util/guid';\r\n\r\nexport default class Document {\r\n    canEdit!: boolean;\r\n\r\n    category = 'Not set';\r\n\r\n    categoryName!: string;\r\n\r\n    documentCategoryId!: Guid;\r\n\r\n    documentId!: Guid;\r\n\r\n    documentSourceId!: Guid;\r\n\r\n    fileName!: string;\r\n\r\n    effectiveDate: Date = new Date();\r\n\r\n    fileType!: {\r\n        canEdit: boolean;\r\n        contentType: string;\r\n        extension: string;\r\n        id: Guid;\r\n        isAvailableOnline: boolean;\r\n        name: string;\r\n        status: string;\r\n    }\r\n\r\n    history: Array<{\r\n        documentHistoryId: Guid;\r\n        type: string;\r\n        updated: Date;\r\n        updatedBy: Guid;\r\n    }> = []\r\n\r\n    jobId!: Guid | null;\r\n\r\n    jobs?: Array<{\r\n        jobDocumentId: Guid;\r\n        jobId: Guid;\r\n    }>\r\n\r\n    memberId?: Guid;\r\n\r\n    name!: string;\r\n\r\n    sequence!: number;\r\n\r\n    source: {\r\n        canEdit: boolean;\r\n        id?: Guid;\r\n        isEmail: boolean;\r\n        isScanning: boolean;\r\n        isUser: boolean;\r\n        name: string;\r\n    } = {\r\n        canEdit: false,\r\n        isEmail: false,\r\n        isScanning: false,\r\n        isUser: false,\r\n        name: '',\r\n    }\r\n\r\n    sourceName!: string;\r\n\r\n    sourceType!: string;\r\n\r\n    status!: string;\r\n\r\n    updated!: Date;\r\n\r\n    updatedBy!: Guid;\r\n}\r\n","export default class CreateDocumentResponse {\r\n    filename!: string;\r\n\r\n    sequence!: number;\r\n\r\n    mergeFields!: Record<string, string>\r\n\r\n    missingMergeFields!: Array<string>\r\n}\r\n","import Document from 'common/models/correspondence/document';\r\nimport DocumentCatgeory from 'common/models/correspondence/documentCategory';\r\nimport AvailableDocuments from 'common/models/mergeDocument/availableDocuments';\r\nimport CreateDocumentResponse from 'common/models/mergeDocument/createDocumentResponse';\r\nimport Guid from 'common/util/guid';\r\nimport Http from './apiHelper';\r\n\r\nconst apiVersion = 'v1.0';\r\nexport default class DocumentsApi {\r\n    static getDocuments (clientId: Guid, memberId: Guid, filter: string, pulseApiUrl = '') {\r\n        return Http.get(`${pulseApiUrl}${apiVersion}/client/${clientId}/member/${memberId}/document?type=${filter}`, undefined, {\r\n            useBasePath: !pulseApiUrl,\r\n        });\r\n    }\r\n\r\n    static previewDocument (clientId: Guid, documentId: Guid, pulseApiUrl = '') {\r\n        return Http.get<{ url: string }>(`${pulseApiUrl}${apiVersion}/client/${clientId}/document/${documentId}/preview`, undefined, {\r\n            useBasePath: !pulseApiUrl,\r\n        });\r\n    }\r\n\r\n    static getDocumentCategories (pulseApiUrl = '') {\r\n        return Http.getAsArray<DocumentCatgeory>(`${pulseApiUrl}${apiVersion}/documentCategory`, DocumentCatgeory, {\r\n            useBasePath: !pulseApiUrl,\r\n        });\r\n    }\r\n\r\n    static getLinkForEdit (clientId: Guid, documentId: Guid, pulseApiUrl = '') {\r\n        return Http.get<{ url: string }>(`${pulseApiUrl}${apiVersion}/client/${clientId}/document/${documentId}/edit`, undefined, {\r\n            useBasePath: !pulseApiUrl,\r\n        });\r\n    }\r\n\r\n    static makeFinal (clientId: Guid, documentId: Guid, pulseApiUrl = '') {\r\n        return Http.post<Document>(`${pulseApiUrl}${apiVersion}/client/${clientId}/document/${documentId}/finalise`, null, undefined, {\r\n            useBasePath: !pulseApiUrl,\r\n        });\r\n    }\r\n\r\n    static revertToDraft (clientId: Guid, documentId: Guid, request: unknown, pulseApiUrl = '') {\r\n        return Http.post<Document>(`${pulseApiUrl}${apiVersion}/client/${clientId}/document/${documentId}/draft`, request, undefined, {\r\n            useBasePath: !pulseApiUrl,\r\n        });\r\n    }\r\n\r\n    static duplicate (clientId: Guid, documentId: Guid, request: unknown, pulseApiUrl = '') {\r\n        return Http.put<Document>(`${pulseApiUrl}${apiVersion}/client/${clientId}/document/${documentId}/duplicate`, request, undefined, {\r\n            useBasePath: !pulseApiUrl,\r\n        });\r\n    }\r\n\r\n    static delete (clientId: Guid, documentId: Guid, pulseApiUrl = '') {\r\n        return Http.delete(`${pulseApiUrl}${apiVersion}/client/${clientId}/document/${documentId}/delete`, null, undefined, {\r\n            useBasePath: !pulseApiUrl,\r\n        });\r\n    }\r\n\r\n    static updateOnlineStatus (clientId: Guid, documentId: Guid, request: unknown, pulseApiUrl = '') {\r\n        return Http.put(`${pulseApiUrl}${apiVersion}/client/${clientId}/document/${documentId}/online`, request, undefined, {\r\n            useBasePath: !pulseApiUrl,\r\n        });\r\n    }\r\n\r\n    static updateFileDetails (clientId: Guid, documentId: Guid, request: unknown, pulseApiUrl = '') {\r\n        return Http.put(`${pulseApiUrl}${apiVersion}/client/${clientId}/document/${documentId}`, request, Document, {\r\n            useBasePath: !pulseApiUrl,\r\n        });\r\n    }\r\n\r\n    static getFileDetails (clientId: Guid, documentId: string, pulseApiUrl = '') {\r\n        return Http.get(`${pulseApiUrl}${apiVersion}/client/${clientId}/document/${documentId}`, Document, {\r\n            useBasePath: !pulseApiUrl,\r\n        });\r\n    }\r\n\r\n    static getMemberFileDetails (clientId: Guid, documentId: string, memberId: number, pulseApiUrl = '') {\r\n        return Http.get(`${pulseApiUrl}${apiVersion}/client/${clientId}/member/${memberId}/document/${documentId}`, Document, {\r\n            useBasePath: !pulseApiUrl,\r\n        });\r\n    }\r\n\r\n    static uploadDocument (clienId: Guid, memberId: Guid, request: unknown, pulseApiUrl = '') {\r\n        return Http.post(`${pulseApiUrl}${apiVersion}/client/${clienId}/member/${memberId}/document`, request, undefined, {\r\n            useBasePath: !pulseApiUrl,\r\n            useToken: true,\r\n            config: {\r\n                headers: {\r\n                    'Content-Type': 'multipart/form-data',\r\n                },\r\n            },\r\n        })\r\n            .then((r) => r);\r\n    }\r\n\r\n    static uploadClientDocument (clienId: Guid, request: unknown, pulseApiUrl = '') {\r\n        return Http.post(`${pulseApiUrl}${apiVersion}/client/${clienId}/document/create`, request, undefined, {\r\n            useBasePath: !pulseApiUrl,\r\n            useToken: true,\r\n            config: {\r\n                headers: {\r\n                    'Content-Type': 'multipart/form-data',\r\n                },\r\n            },\r\n        })\r\n            .then((r) => r);\r\n    }\r\n\r\n    static assignJob (jobId: Guid, documentId: Guid, pulseApiUrl = '', reassigned = false) {\r\n        return Http.post(`${pulseApiUrl}${apiVersion}/job/${jobId}/document/${documentId}/assign`, null, undefined, {\r\n            useBasePath: !pulseApiUrl,\r\n            showSuccessMessage: true,\r\n            showPopup: true,\r\n            successTitle: `Document ${reassigned ? 'reassigned' : 'assigned'}`,\r\n            message: `Document ${reassigned ? 'reassigned' : 'assigned'} to job`,\r\n        });\r\n    }\r\n\r\n    static unAssignJob (jobId: Guid, jobDocumentId: Guid, pulseApiUrl = '') {\r\n        return Http.post(`${pulseApiUrl}${apiVersion}/job/${jobId}/document/${jobDocumentId}/unassign`, null, undefined, {\r\n            useBasePath: !pulseApiUrl,\r\n            showSuccessMessage: true,\r\n            message: 'Document unassigned from job',\r\n            showPopup: true,\r\n            successTitle: 'Document unassigned',\r\n        });\r\n    }\r\n\r\n    static getJobs (clientId: Guid, memberId: Guid, pulseApiUrl = '') {\r\n        return Http.get(`${pulseApiUrl}${apiVersion}/client/${clientId}/member/${memberId}/job`, undefined, {\r\n            useBasePath: !pulseApiUrl,\r\n        });\r\n    }\r\n\r\n    static getClientJobs (clientId: Guid, pulseApiUrl = '') {\r\n        return Http.get(`${pulseApiUrl}${apiVersion}/client/${clientId}/job?type=Active`, undefined, {\r\n            useBasePath: !pulseApiUrl,\r\n        });\r\n    }\r\n\r\n    static returnToIndex (clientId: Guid, documentId: Guid, pulseApiUrl = '') {\r\n        return Http.post(`${pulseApiUrl}${apiVersion}/client/${clientId}/document/${documentId}/indexing`, null, undefined, {\r\n            useBasePath: !pulseApiUrl,\r\n        });\r\n    }\r\n\r\n    static getDocumentsAvailableToCreate (clientId: Guid, memberId: number, servicePeriodId: number) {\r\n        return Http.get<AvailableDocuments>(`${apiVersion}/client/${clientId}/member/${memberId}/servicePeriod/${servicePeriodId}/document/type`);\r\n    }\r\n\r\n    static createMergedDocument (clientId: Guid, memberId: number, servicePeriodId: number,\r\n        data: { documentId: string; calculationId?: Guid; errorIfMissingMergeFields: boolean; useLatestAvailableData: boolean; effectiveDate?: Date | undefined }) {\r\n        return Http.post(`${apiVersion}/client/${clientId}/member/${memberId}/servicePeriod/${servicePeriodId}/document`, data, CreateDocumentResponse);\r\n    }\r\n}\r\n","\r\n/* eslint-disable no-restricted-globals */\r\n\r\nimport documentsApi from 'common/api/documentsApi';\r\nimport cloneDeep from 'common/util/cloneDeep';\r\nimport Status from 'common/util/pulseStatusEnum';\r\nimport * as STORE from 'common/store/storepaths';\r\nimport Guid from 'common/util/guid';\r\nimport Document from 'common/models/correspondence/document';\r\nimport DocumentCatgeory from 'common/models/correspondence/documentCategory';\r\nimport Client from 'common/models/client';\r\nimport User from 'common/models/user';\r\nimport JobSummary from 'common/models/jobSummary';\r\nimport moment from '~/moment';\r\nimport {\r\n    Component, Vue, Prop, Watch,\r\n} from '~/vue-property-decorator';\r\n\r\n@Component({\r\n    components: { },\r\n})\r\nexport default class EditDocument extends Vue {\r\n    @Prop()\r\n    disableRevert!: boolean;\r\n\r\n    @Prop()\r\n    docId!: string;\r\n\r\n    @Prop({ default: () => [] })\r\n    existingFilenames!: Array<string>;\r\n\r\n    @Prop()\r\n    documentMemberId!: number;\r\n\r\n    @Prop()\r\n    canDuplicateFinalised!: boolean;\r\n\r\n    loading = true;\r\n\r\n    loadingVersionHistory = true;\r\n\r\n    loadingPreview = false;\r\n\r\n    previewUrl: string | null = null;\r\n\r\n    documentEdited = new Document();\r\n\r\n    documentPreEdit = new Document();\r\n\r\n    showFinalConfirmation = false;\r\n\r\n    showDuplicateFinalised = false;\r\n\r\n    showRevertToDraftDialog = false;\r\n\r\n    newDocumentName = \"\";\r\n\r\n    documentCategories: Array<DocumentCatgeory> = [];\r\n\r\n    showJobAssign = false;\r\n\r\n    newJobId: Guid | null = null;\r\n\r\n    showEffectiveDateChangeNotification = false;\r\n\r\n    today = moment(new Date()).format('DD/MM/YYYY');\r\n\r\n    jobs: Array<JobSummary> = [];\r\n\r\n    async mounted () {\r\n        if (!this.clients?.length) {\r\n            await this.$store.dispatch('client/getUserClients');\r\n        }\r\n        if (this.currentClient && !this.storeCurrentClient) {\r\n            await this.$store.dispatch(STORE.SET_CURRENT_CLIENT, this.currentClient);\r\n        }\r\n        if (!this.users?.length) {\r\n            this.$store.dispatch('users/getAllUsers', this.apiUrl);\r\n        }\r\n        if (this.docId) {\r\n            await this.getDocument();\r\n        }\r\n\r\n        this.getCategories();\r\n    }\r\n\r\n    get fileExtension () {\r\n        const arr = this.documentPreEdit?.fileName?.split('.') ?? [];\r\n        return arr[arr.length - 1];\r\n    }\r\n\r\n    get draftIcon () {\r\n        switch (this.fileExtension) {\r\n            case 'doc':\r\n            case 'docx':\r\n            case 'docm':\r\n                return 'file-word';\r\n            case 'xls':\r\n            case 'xlsx':\r\n            case 'xlsm':\r\n                return 'file-excel';\r\n            case 'pdf':\r\n                return 'file-pdf';\r\n            case 'txt':\r\n                return 'file-alt';\r\n            case 'msg':\r\n                return 'envelope';\r\n            case 'png':\r\n            case 'bmp':\r\n            case 'jpeg':\r\n            case 'jpg':\r\n            case 'gif':\r\n            case 'tif':\r\n                return 'image';\r\n            default:\r\n                return 'file';\r\n        }\r\n    }\r\n\r\n    get apiUrl () {\r\n        return this.$store.getters[STORE.GET_SITE_CONFIGURATION][STORE.PULSE_API_URL] ?? '';\r\n    }\r\n\r\n    get canRename () {\r\n        return !this.previewUrl || this.previewUrl.indexOf('sharepoint.com') === -1;\r\n    }\r\n\r\n    get usersById () {\r\n        return this.$store.getters[STORE.GET_ALL_USERS_BY_ID] as Record<string, User>;\r\n    }\r\n\r\n    get users () {\r\n        return this.$store.getters[STORE.GET_ALL_USERS] as Array<User> | undefined;\r\n    }\r\n\r\n    get isIframed () {\r\n        return this.$route?.query?.hideIntro;\r\n    }\r\n\r\n    get filteredCategories () {\r\n        const categories = this.documentCategories.map((category) => ({\r\n            name: category.name,\r\n            id: category.id,\r\n            isUser: category.isUser,\r\n            isScanning: category.isScanning,\r\n            isEmail: category.isEmail,\r\n            disabled: !category.isEnabled,\r\n        }));\r\n        return categories.filter((a) => {\r\n            if (this.documentPreEdit?.source.isUser) return a.isUser;\r\n            if (this.documentPreEdit?.source.isScanning) return a.isScanning;\r\n            if (this.documentPreEdit?.source.isEmail) return a.isEmail;\r\n            return true;\r\n        });\r\n    }\r\n\r\n    get isClientDoc () {\r\n        return this.itemDetails?.length && this.itemDetails[1].startsWith('J') || this.itemDetails.length === 2;\r\n    }\r\n\r\n    get availableJobs () {\r\n        if (this.jobs) return this.jobs;\r\n        return [];\r\n    }\r\n\r\n    get systemMemberId () {\r\n        return this.documentPreEdit.memberId;\r\n    }\r\n\r\n    get memberData () {\r\n        const memberData = this.$store.getters['memberData/memberData'](this.clientName, this.memberId);\r\n        return memberData;\r\n    }\r\n\r\n    get job () {\r\n        const jobs = this.documentEdited.jobs;\r\n        if (jobs && jobs.length > 0) {\r\n            return this.availableJobs.find((a) => a.jobId === jobs![0].jobId);\r\n        }\r\n        return null;\r\n    }\r\n\r\n    get linkUrl () {\r\n        let docId;\r\n        if (this.memberId) {\r\n            docId = this.memberId;\r\n        } else if (this.job?.reference) {\r\n            docId = this.job.reference;\r\n        } else {\r\n            docId = '';\r\n        }\r\n\r\n        return `${this.hostUrl}/docs/${this.currentClient?.code}-${docId}-${this.documentEdited.sequence}?hideIntro=true`;\r\n    }\r\n\r\n    get documentId () {\r\n        return this.documentPreEdit?.documentId;\r\n    }\r\n\r\n    get reversedVersionHistory () {\r\n        return [...this.versionHistory].sort((a, b) => (a.updated < b.updated ? 1 : -1));\r\n    }\r\n\r\n    get versionHistory () {\r\n        return this.documentPreEdit?.history || [];\r\n    }\r\n\r\n    get createdBy () {\r\n        return this.versionHistory?.find((a) => a.type === 'Created')?.updatedBy;\r\n    }\r\n\r\n    get finalisedBy () {\r\n        return [...this.versionHistory].reverse().find((a) => a.type === 'SetToFinal')?.updatedBy;\r\n    }\r\n\r\n    get onlineBy () {\r\n        return [...this.versionHistory].reverse().find((a) => a.type === 'MadeAvailableOnline')?.updatedBy;\r\n    }\r\n\r\n    get isProduction () {\r\n        return this.environment === 'live';\r\n    }\r\n\r\n    get hasWorkmanagement () {\r\n        return this.clients.find((a) => a.name === this.clientName)?.workManagement;\r\n    }\r\n\r\n    get environment () { return process.env.VUE_APP_ENVIRONMENT; }\r\n\r\n    get userInfo () {\r\n        return this.$store.getters['auth/userInfo'];\r\n    }\r\n\r\n    get hostUrl () {\r\n        return `${window.location.protocol}//${window.location.host}`;\r\n    }\r\n\r\n    get workingDocument () {\r\n        return this.documentEdited.canEdit;\r\n    }\r\n\r\n    get fileDetailsChanged () {\r\n        return this.documentPreEdit.category !== this.documentEdited.category\r\n                  || this.documentPreEdit.name !== this.documentEdited.name\r\n                  || moment(this.documentPreEdit.effectiveDate).format('DD MM YYYY') !== moment(this.documentEdited.effectiveDate).format('DD MM YYYY');\r\n    }\r\n\r\n    get invalidFileDetailsMessage () {\r\n        if (!this.documentEdited || !this.documentEdited.name) return null;\r\n        if (this.documentEdited.name?.toUpperCase() === this.documentPreEdit.name?.toUpperCase()) return null;\r\n        const invalidCharacters = [':', '?', '!', '<', '>', '/', '\\\\', '*', '\"', '|'];\r\n        for (let i = 0; i < invalidCharacters.length; i += 1) {\r\n            if (this.documentEdited.name.includes(invalidCharacters[i])) return `Invalid character ${invalidCharacters[i]}`;\r\n        }\r\n\r\n        if (this.existingFileNamesUpperCase.indexOf(this.documentEdited.name?.toUpperCase()) > -1) return 'A document with this name already exists';\r\n\r\n        return null;\r\n    }\r\n\r\n    get existingFileNamesUpperCase () {\r\n        return this.existingFilenames.map((t) => t?.toUpperCase());\r\n    }\r\n\r\n    get itemDetails () {\r\n        return this.docId.split('-');\r\n    }\r\n\r\n    get editingAvailable () {\r\n        return this.documentEdited.status !== 'Online' && this.documentEdited.status !== 'Withdrawn';\r\n    }\r\n\r\n    get onlineAvailable () {\r\n        const category = this.documentCategories.find((t) => t.name === this.documentPreEdit.categoryName);\r\n        if (!category) return false;\r\n        return category.isAvailableOnline && this.documentPreEdit.fileType.isAvailableOnline;\r\n    }\r\n\r\n    get userCanMakeOnline () {\r\n        return this.finalisedBy !== this.userInfo.oid;\r\n    }\r\n\r\n    get currentClient () {\r\n        if (this.clients && this.itemDetails.length) {\r\n            const id = this.itemDetails[0];\r\n            const found = this.clients.find((a) => a.code === id);\r\n            if (found) return found;\r\n        }\r\n        return null;\r\n    }\r\n\r\n    get storeCurrentClient () {\r\n        return this.$store.getters[STORE.GET_CURRENT_CLIENT];\r\n    }\r\n\r\n    get clients () {\r\n        return this.$store.getters[STORE.GET_CLIENTS] as Array<Client>;\r\n    }\r\n\r\n    get clientId () {\r\n        return this.currentClient?.clientId;\r\n    }\r\n\r\n    get clientName () {\r\n        return this.currentClient?.name;\r\n    }\r\n\r\n    get memberId () {\r\n        if (this.itemDetails.length) {\r\n            if (this.itemDetails[1].startsWith('J')) {\r\n                return null;\r\n            }\r\n            if (this.itemDetails.length <= 2 && !this.documentMemberId) {\r\n                return null;\r\n            }\r\n            return Number(this.itemDetails[1]);\r\n        }\r\n        return null;\r\n    }\r\n\r\n    get docReference () {\r\n        return this.itemDetails[this.itemDetails.length - 1];\r\n    }\r\n\r\n    get documentStatus () {\r\n        return this.documentEdited.status;\r\n    }\r\n\r\n    get jobPrefix () {\r\n        return `J-${this.currentClient?.code}-`;\r\n    }\r\n\r\n    get isValidExcelDocumentExtension () {\r\n        return this.documentPreEdit.fileType.extension === 'xlsx'\r\n            || this.documentPreEdit.fileType.extension === 'xls'\r\n            || this.documentPreEdit.fileType.extension === 'xlsm'\r\n            || this.documentPreEdit.fileType.extension === 'xlsb';\r\n    }\r\n\r\n    getColor (status: string) {\r\n        const color = Status.getColour(status);\r\n        return color;\r\n    }\r\n\r\n    getIcon (status: string) {\r\n        const icon = Status.getIcon(status);\r\n        return icon;\r\n    }\r\n\r\n    getName (status: string) {\r\n        const name = Status.getName(status);\r\n        return name;\r\n    }\r\n\r\n    gotoCalc (calcId: string) {\r\n        if (!calcId) return;\r\n        window.open(`/${this.currentClient?.name}/memberData/${this.memberId}/calculationHistory/${calcId}`, '_blank');\r\n    }\r\n\r\n    async getDocument () {\r\n        if (!this.clientId) return;\r\n        if (this.memberId) {\r\n            await documentsApi.getMemberFileDetails(this.clientId, this.docReference, this.memberId, this.apiUrl).then(async (result) => {\r\n                this.initialiseForDocument(result);\r\n                this.loading = true;\r\n                this.findJob(result);\r\n                if (this.newJobId && this.systemMemberId) {\r\n                    await this.getJob(this.newJobId);\r\n                }\r\n                this.performParentMessage();\r\n                this.loading = false;\r\n            }).finally(() => {\r\n                this.loading = false;\r\n            });\r\n        } else {\r\n            await documentsApi.getFileDetails(this.clientId, this.docReference, this.apiUrl).then(async (result) => {\r\n                this.initialiseForDocument(result);\r\n                this.loading = true;\r\n                this.findJob(result);\r\n                if (this.newJobId) {\r\n                    await this.getJob(this.newJobId);\r\n                }\r\n                this.performParentMessage();\r\n                this.loading = false;\r\n            }).finally(() => {\r\n                this.loading = false;\r\n            });\r\n        }\r\n    }\r\n\r\n    findJob (document: Document) {\r\n        document.jobId = document.jobs?.length ? document.jobs[0].jobId : null;\r\n        this.newJobId = document.jobId;\r\n    }\r\n\r\n    async getJob (jobId: Guid) {\r\n        this.jobs = [await this.$store.dispatch('jobs/getJob', { jobId, pulseApiUrl: this.apiUrl }) ];\r\n    }\r\n\r\n    initialiseForDocument (document: Document) {\r\n        this.documentEdited = cloneDeep(document);\r\n        this.documentPreEdit = cloneDeep(document);\r\n        Vue.set(this.documentEdited, 'category', this.documentEdited.categoryName);\r\n        Vue.set(this.documentPreEdit, 'category', this.documentPreEdit.categoryName);\r\n        Vue.set(this.documentEdited, 'effectiveDate', this.documentEdited.effectiveDate);\r\n        Vue.set(this.documentPreEdit, 'effectiveDate', this.documentPreEdit.effectiveDate);\r\n\r\n        this.getPreview();\r\n    }\r\n\r\n    performParentMessage () {\r\n        if (parent) {\r\n            parent.postMessage('loaded', '*');\r\n        }\r\n    }\r\n\r\n    makeFinal () {\r\n        this.loading = true;\r\n        this.showFinalConfirmation = false;\r\n        if (!this.clientId) return;\r\n        documentsApi.makeFinal(this.clientId, this.documentId, this.apiUrl).then((result: Document) => {\r\n            if (this.documentPreEdit.effectiveDate < result.effectiveDate) {\r\n                this.showEffectiveDateChangeNotification = true;\r\n            }\r\n            this.getDocument();\r\n            this.loading = false;\r\n            this.reloadParentWindow();\r\n        }).finally(() => {\r\n            this.loading = false;\r\n        });\r\n    }\r\n\r\n    reloadParentWindow () {\r\n        if (parent) {\r\n            parent.postMessage('reload', '*');\r\n            this.$emit('documentChanged', this.documentEdited);\r\n        }\r\n    }\r\n\r\n    duplicateFinalisedDocument () {\r\n        this.loading = true;\r\n        if (!this.clientId) {\r\n            return\r\n        }\r\n        documentsApi.duplicate(this.clientId, this.documentId, this.newDocumentName, this.apiUrl).then((result) => {\r\n            this.loading = false;\r\n            if (this.isIframed) {\r\n                window.location.href = `${this.itemDetails[0]}-${this.itemDetails[1]}-${result.sequence}?hideIntro=true`;\r\n            }\r\n            this.documentEdited = result;\r\n            this.documentPreEdit = cloneDeep(result);\r\n            this.reloadParentWindow();\r\n            this.$emit('select', result);\r\n            this.$emit('close');\r\n            this.showRevertToDraftDialog = false;\r\n        }).finally(() => {\r\n            this.loading = false;\r\n            this.newDocumentName = \"\";\r\n            this.showDuplicateFinalised = false;\r\n        });\r\n    }\r\n\r\n    revertToDraft () {\r\n        this.loading = true;\r\n        if (!this.clientId) return;\r\n        const request = { effectiveDate: this.documentEdited.effectiveDate };\r\n        documentsApi.revertToDraft(this.clientId, this.documentId, request, this.apiUrl).then((result) => {\r\n            this.loading = false;\r\n            if (this.isIframed) {\r\n                window.location.href = `${this.itemDetails[0]}-${this.itemDetails[1]}-${result.sequence}?hideIntro=true`;\r\n            }\r\n            this.documentEdited = result;\r\n            this.documentPreEdit = cloneDeep(result);\r\n            this.reloadParentWindow();\r\n            this.$emit('select', result);\r\n            this.$emit('close');\r\n            this.showRevertToDraftDialog = false;\r\n        }).finally(() => {\r\n            this.loading = false;\r\n        });\r\n    }\r\n\r\n    deleteDocument () {\r\n        this.loading = true;\r\n        if (!this.clientId) return;\r\n        documentsApi.delete(this.clientId, this.documentId, this.apiUrl).then(() => {\r\n            this.loading = false;\r\n            // eslint-disable-next-line no-restricted-globals\r\n            if (parent) {\r\n                // eslint-disable-next-line no-restricted-globals\r\n                parent.postMessage('close', '*');\r\n            }\r\n            this.$emit('documentDeleted', this.documentEdited);\r\n            this.$emit('close');\r\n        }).finally(() => {\r\n            this.loading = false;\r\n        });\r\n    }\r\n\r\n    updateOnlineStatus (isAvailableOnline: boolean) {\r\n        if (isAvailableOnline && this.documentStatus !== 'Final') return;\r\n        this.loading = true;\r\n        const request = { isAvailableOnline };\r\n        if (!this.clientId) return;\r\n        documentsApi.updateOnlineStatus(this.clientId, this.documentId, request, this.apiUrl).then(() => {\r\n            this.getDocument();\r\n            this.loading = false;\r\n            this.reloadParentWindow();\r\n        }).finally(() => {\r\n            this.loading = false;\r\n        });\r\n    }\r\n\r\n    saveFileDetails () {\r\n        this.loading = true;\r\n        const request: { docId: string; fileName?: string; documentCategoryId?: Guid; effectiveDate?: Date } = {\r\n            docId: this.docId,\r\n        };\r\n        request.fileName = this.documentEdited.name;\r\n        request.documentCategoryId = this.documentCategories.find((a) => a.name === this.documentEdited.category)!.id;\r\n        request.effectiveDate = this.documentEdited.effectiveDate;\r\n\r\n        if (!this.clientId) return;\r\n        documentsApi.updateFileDetails(this.clientId, this.documentId, request, this.apiUrl).then((result) => {\r\n            const history = [...this.documentEdited.history];\r\n            result.history = history;\r\n            this.documentEdited = result;\r\n            this.documentPreEdit = cloneDeep(result);\r\n            this.loading = false;\r\n            this.getPreview();\r\n            this.reloadParentWindow();\r\n            this.getDocument();\r\n            this.$emit('loadCorrespondence');\r\n        }).finally(() => {\r\n            this.loading = false;\r\n        });\r\n    }\r\n\r\n    getPreview () {\r\n        this.previewUrl = null;\r\n        if (!this.clientId) return;\r\n        this.loadingPreview = true;\r\n        documentsApi.previewDocument(this.clientId, this.documentId, this.apiUrl).then((result) => {\r\n            const suffix = result.url.indexOf('sharepoint') > -1 ? '' : '#toolbar=0';\r\n            if (this.documentStatus === 'Draft') this.previewUrl = `${result.url}${suffix}`;\r\n            else this.previewUrl = result.url;\r\n        }).finally(() => {\r\n            this.loadingPreview = false;\r\n        });\r\n    }\r\n\r\n    editDocument () {\r\n        this.loading = true;\r\n        if (!this.clientId) return;\r\n        documentsApi.getLinkForEdit(this.clientId, this.documentId, this.apiUrl).then((result) => {\r\n            window.open(result.url, '_blank');\r\n            this.getPreview();\r\n            this.loading = false;\r\n        }).finally(() => {\r\n            this.loading = false;\r\n        });\r\n    }\r\n\r\n    formatDate (date: Date | string, noHours = false) {\r\n        if (noHours) {\r\n            return moment(date).format('DD/MM/YYYY');\r\n        }\r\n        return moment(date).format('DD/MM/YYYY HH:mm');\r\n    }\r\n\r\n    copyLink () {\r\n        const copyText = document.getElementById('urlToCopy') as HTMLInputElement;\r\n        if (copyText) {\r\n            copyText.select();\r\n            copyText.setSelectionRange(0, 99999);\r\n            document.execCommand('copy');\r\n        }\r\n\r\n        this.$store.dispatch('messages/addMessage', {\r\n            status: 'Success', title: 'Copy successful', popup: true, message: `Link has been copied to the clipboard:<br/><br/><span class=\"select\">${copyText.value}</span>`,\r\n        });\r\n    }\r\n\r\n    assignJob () {\r\n        this.loading = true;\r\n        if (this.newJobId) {\r\n            documentsApi.assignJob(this.newJobId, this.documentId, this.apiUrl, !!this.job).then(() => {\r\n                this.loading = false;\r\n                this.showJobAssign = false;\r\n                this.getDocument();\r\n                this.reloadParentWindow();\r\n            }).finally(() => {\r\n                this.loading = false;\r\n            });\r\n        }\r\n    }\r\n\r\n    unassignJob () {\r\n        if (!this.documentEdited?.jobs?.length) return;\r\n        documentsApi.unAssignJob(this.documentEdited.jobs[0].jobId, this.documentEdited.jobs[0].jobDocumentId, this.apiUrl).then(() => {\r\n            this.loading = false;\r\n            this.getDocument();\r\n            this.reloadParentWindow();\r\n        }).finally(() => {\r\n            this.loading = false;\r\n        });\r\n    }\r\n\r\n    getCategories () {\r\n        documentsApi.getDocumentCategories(this.apiUrl).then((result) => {\r\n            this.documentCategories = result;\r\n        });\r\n    }\r\n\r\n    returnToIndex () {\r\n        this.loading = true;\r\n        if (!this.clientId) return;\r\n        documentsApi.returnToIndex(this.clientId, this.documentId, this.apiUrl).then(() => {\r\n            this.loading = false;\r\n            this.$emit('documentDeleted', this.documentEdited);\r\n            if (parent) {\r\n                parent.postMessage('close', '*');\r\n            }\r\n        }).finally(() => {\r\n            this.loading = false;\r\n        });\r\n    }\r\n\r\n    getUser (userId: Guid) {\r\n        const user = this.usersById[userId.toString()];\r\n        if (!user) return 'System';\r\n        return `${user.forenames} ${user.surname}`;\r\n    }\r\n\r\n    @Watch('docId')\r\n    docIdChanged () {\r\n        if (this.docId) {\r\n            this.getDocument();\r\n        }\r\n    }\r\n\r\n    @Watch('fileDetailsChanged')\r\n    hasFileDetailsChanged () {\r\n        this.$emit('dirtyChanged', this.fileDetailsChanged);\r\n    }\r\n}\r\n","import mod from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./document-edit.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./document-edit.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./document-edit.vue?vue&type=template&id=3cef4711&scoped=true&\"\nimport script from \"./document-edit.vue?vue&type=script&lang=ts&\"\nexport * from \"./document-edit.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./document-edit.vue?vue&type=style&index=0&id=3cef4711&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"3cef4711\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"email-frame\"},[_c('div',{staticClass:\"row\"},[(_vm.email)?_c('div',{staticClass:\"viewer\",class:{ embedded: _vm.isEmbedded }},[_c('div',{staticClass:\"viewer-controls\"},[_c('div',{staticClass:\"row no-wrap\"},[_c('btn',{staticClass:\"tertiary\",attrs:{\"text\":\"Open In Outlook\",\"icon\":\"envelope\"},on:{\"click\":function($event){return _vm.openWebLink(_vm.email.webLink)}}}),_c('btn',{staticClass:\"secondary delete\",attrs:{\"text\":\"Delete\",\"icon\":\"trash-alt\",\"confirmationMessage\":\"Are you sure you want to permanently delete this email?\",\"confirmationTitle\":\"Delete email?\",\"confirmButtonText\":\"Delete\"},on:{\"click\":_vm.deleteEmail}}),(_vm.hasEmailHistory)?_c('btn',{staticClass:\"primary view-history\",attrs:{\"icon\":\"history\",\"text\":_vm.historyButtonText},on:{\"click\":function($event){_vm.viewHistory = !_vm.viewHistory}}}):_vm._e(),_c('correspondenceJob',{attrs:{\"assignedJob\":_vm.assignedJob,\"showAssignmentOptions\":false},on:{\"jobAssignment\":function($event){_vm.showJobAssign = true}}})],1),(_vm.assignedJob)?_c('btn',{staticClass:\"tertiary goto-job\",attrs:{\"text\":\"Go to Job\"},on:{\"click\":_vm.openJob}}):_vm._e(),(_vm.assignedJob)?_c('btn',{staticClass:\"tertiary return-to-indexing\",attrs:{\"text\":\"Return to indexing\",\"confirmationMessage\":\"Are you sure you want to return this email to indexing?\",\"confirmationTitle\":\"Return email to indexing?\",\"confirmButtonText\":\"Return to indexing\"},on:{\"click\":_vm.returnToIndexing}}):_vm._e(),_c('btn',{staticClass:\"primary copy\",attrs:{\"icon\":\"copy\",\"text\":\"Copy link\"},on:{\"click\":_vm.copyLink}}),_c('input',{attrs:{\"readonly\":\"\",\"id\":\"urlToCopy\"},domProps:{\"value\":_vm.emailUrl}})],1),_c('div',{staticClass:\"description\"},[_c('div',{staticClass:\"row no-wrap\"},[_c('dynamic-ui-text',{attrs:{\"maxLength\":255,\"name\":\"Description\"},model:{value:(_vm.email.description),callback:function ($$v) {_vm.$set(_vm.email, \"description\", $$v)},expression:\"email.description\"}}),_c('btn',{staticClass:\"primary\",attrs:{\"text\":\"Save\",\"icon\":\"save\",\"disabled\":!_vm.isDescriptionSet || !_vm.hasEmailDetailsChanged},on:{\"click\":function($event){return _vm.saveEmailDetails()}}})],1)]),_c('div',{staticClass:\"email-body\"},[(!_vm.viewHistory)?_c('div',{staticClass:\"email\"},[_c('div',{staticClass:\"email-headings\"},[(_vm.email.from && _vm.email.from.emailAddress)?_c('div',{staticClass:\"from\"},[_c('span',{staticClass:\"heading\"},[_vm._v(\"From\")]),_c('span',{staticClass:\"recipient\"},[_vm._v(_vm._s(_vm.email.from.emailAddress.address)+\" (\"+_vm._s(_vm.email.from.emailAddress.name)+\")\")])]):_vm._e(),(_vm.email.toRecipients)?_c('div',{staticClass:\"to\"},[_c('span',{staticClass:\"heading\"},[_vm._v(\"To\")]),_vm._l((_vm.email.toRecipients),function(to){return _c('span',{key:to.emailAddress.address,staticClass:\"recipient\"},[_vm._v(_vm._s(to.emailAddress.address))])})],2):_vm._e(),(_vm.email.ccRecipients)?_c('div',{staticClass:\"cc\"},[_c('span',{staticClass:\"heading\"},[_vm._v(\"CC\")]),_vm._l((_vm.email.ccRecipients),function(cc){return _c('span',{key:cc.emailAddress.address,staticClass:\"recipient\"},[_vm._v(_vm._s(cc.emailAddress.address))])})],2):_vm._e(),_c('div',{staticClass:\"date\"},[_c('span',[_vm._v(_vm._s(_vm._f(\"localDateTime\")(_vm.email.receivedDateTime)))])]),_c('div',{staticClass:\"subject\"},[_vm._v(\" \"+_vm._s(_vm.email.subject)+\" \")])]),(_vm.allInlineLoaded)?_c('iframe',{staticClass:\"htmlView\",attrs:{\"srcdoc\":_vm.emailContent}}):_vm._e(),(_vm.email.hasAttachments)?_c('div',{staticClass:\"attachments\"},[_vm._v(\" Attachments: \"),_vm._l((_vm.filteredAttachments),function(at){return _c('span',{key:at.id,staticClass:\"attachment\",on:{\"click\":function($event){return _vm.downloadAttachment(at.id)}}},[_c('div',{staticClass:\"attachment-icon\"},[_c('font-awesome-icon',{attrs:{\"icon\":_vm.getDocumentType(at)}})],1),(at.isInline === false)?_c('a',[_vm._v(_vm._s(at.name)+\" (\"+_vm._s(_vm.getFileSize(at.size))+\"mb)\")]):_vm._e()])})],2):_vm._e()]):_c('div',{staticClass:\"history\"},[_c('h2',{staticClass:\"center\"},[_vm._v(\"History\")]),_c('div',{staticClass:\"bubble-list\"},[_c('ul',_vm._l((_vm.versionHistory),function(activity,index){return _c('li',{key:index,staticClass:\"item\"},[_c('div',{staticClass:\"name\"},[_vm._v(\" \"+_vm._s(activity.text)+\" at \"),_c('b',[_vm._v(_vm._s(_vm.formatDate(activity.created)))]),_vm._v(\" by \"),_c('b',[_vm._v(_vm._s(_vm.getUser(activity.createdBy)))])])])}),0)])])])]):_vm._e(),(_vm.loading)?_c('loading'):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default class EmailAttachment {\r\n    contentType!: string;\r\n\r\n    id!: string;\r\n\r\n    contentId?: string;\r\n\r\n    isInline!: boolean;\r\n\r\n    name!: string;\r\n\r\n    size!: number;\r\n\r\n    oDataType!: string;\r\n\r\n    contentBytes!: Uint16Array[];\r\n}\r\n","\r\nimport MembersApi from 'common/api/member';\r\nimport ClientsApi from 'common/api/clientsApi';\r\nimport inboxApi from 'common/api/inboxApi';\r\nimport Client from 'common/models/client';\r\nimport * as STORE from 'common/store/storepaths';\r\nimport CorrespondenceEmail from 'common/models/correspondence/email';\r\nimport EmailAttachment from 'common/models/correspondence/emailAttachment';\r\nimport EmailHistory from 'common/models/correspondence/emailHistory';\r\nimport JobSummary from 'common/models/jobSummary';\r\nimport User from 'common/models/user';\r\nimport Status from 'common/util/pulseStatusEnum';\r\nimport Guid from 'common/util/guid';\r\nimport correspondenceJob from './correspondence-job.vue';\r\nimport moment from '~/moment';\r\nimport {\r\n    Component, Vue, Prop, Watch,\r\n} from '~/vue-property-decorator';\r\n\r\n@Component({\r\n    name: 'EmailViewer',\r\n    components: {\r\n        correspondenceJob,\r\n    },\r\n})\r\n\r\nexport default class EmailViewer extends Vue {\r\n    @Prop()\r\n    emailId!: string;\r\n\r\n    @Prop()\r\n    jobReference!: string;\r\n\r\n    @Prop()\r\n    emailMemberId!: string;\r\n\r\n    @Prop()\r\n    isQuickPreview: boolean = false;\r\n\r\n    email: CorrespondenceEmail | null = null;\r\n\r\n    isSaving = false;\r\n\r\n    assignedJob?: JobSummary | null = null;\r\n\r\n    assignedJobId?: string = '';\r\n\r\n    showJobAssign = false;\r\n\r\n    newJobId?: Guid | null = null;\r\n\r\n    loading = false;\r\n\r\n    jobs: Array<JobSummary> = [];\r\n\r\n    originalDescription?: string = '';\r\n\r\n    versionHistory: Array<EmailHistory> = [];\r\n\r\n    viewHistory = false;\r\n\r\n    async mounted () {\r\n        if (!this.clients?.length) {\r\n            await this.$store.dispatch('client/getClients');\r\n        }\r\n        if (this.currentClient && !this.$store.getters[STORE.GET_CURRENT_CLIENT]) {\r\n            await this.$store.dispatch(STORE.SET_CURRENT_CLIENT, this.currentClient);\r\n        }\r\n        if (!this.users?.length) {\r\n            this.$store.dispatch('users/getAllUsers', this.pulseUrl);\r\n        }\r\n\r\n        this.getEmail();\r\n        this.getJob(this.jobReference);\r\n    }\r\n\r\n    get currentClient () {\r\n        if (this.clients && this.itemDetails.length) {\r\n            const id = this.itemDetails[0];\r\n            const found = this.clients.find((a) => a.code === id);\r\n            if (found) return found;\r\n        }\r\n        return null;\r\n    }\r\n\r\n    get itemDetails () {\r\n        return this.emailId.split('-');\r\n    }\r\n\r\n    get clients () {\r\n        return this.$store.getters[STORE.GET_CLIENTS] as Array<Client>;\r\n    }\r\n\r\n    get memberId () {\r\n        if (this.emailMemberId) return Number(this.emailMemberId);\r\n        if (this.$route.query.memberId) return Number(this.$route.query?.memberId);\r\n        return Number(this.itemDetails[1]);\r\n    }\r\n\r\n    get emailReference () {\r\n        return this.emailId;\r\n    }\r\n\r\n    get isEmbedded () {\r\n        return this.$route.query.wm;\r\n    }\r\n\r\n    get hasWorkmanagement () {\r\n        return this.$store.getters['clients/clients']?.find((a: Client) => a.name === this.currentClient!.name)?.workManagement;\r\n    }\r\n\r\n    get emailUrl () {\r\n        return `${window.location.protocol}//${window.location.host}${this.$route.path}`;\r\n    }\r\n\r\n    get emailContent () {\r\n        if (!this.email?.body?.content) return '';\r\n        let content = this.email.body.content\r\n            .replace(/<a href=\"file:\\/\\//g, '<a class=\"no-link\" href=\"file:\\\\\\\\')\r\n            .replace(/<a href/g, '<a target=\"_blank\" href');\r\n\r\n        content += '<style>a.no-link {pointer-events: none;text-decoration: none;color: #333;}</style>';\r\n        return content;\r\n    }\r\n\r\n    get filteredAttachments () {\r\n        return this.email?.attachments?.filter((a: EmailAttachment) => !a.isInline);\r\n    }\r\n\r\n    get jobCount () {\r\n        return this.jobs?.length ?? 0;\r\n    }\r\n\r\n    get pulseUrl () {\r\n        return this.$store.getters[STORE.GET_SITE_CONFIGURATION]['pulse-api.url'];\r\n    }\r\n\r\n    get memberDataApiUrl () {\r\n        return this.$store.getters['configuration/site']['memberdata.api.url'];\r\n    }\r\n    \r\n    get isDescriptionSet () {\r\n        return this.email?.description?.length;\r\n    }\r\n\r\n    get setOriginalDescription () {\r\n       return this.originalDescription = this.email?.description;\r\n    }\r\n\r\n    get hasEmailDetailsChanged () {\r\n       return this.email?.description !== this.originalDescription;\r\n    }\r\n\r\n    get usersById () {\r\n        return this.$store.getters[STORE.GET_ALL_USERS_BY_ID] as Record<string, User>;\r\n    }\r\n\r\n    get users () {\r\n        return this.$store.getters[STORE.GET_ALL_USERS] as Array<User> | undefined;\r\n    }\r\n\r\n    get historyButtonText () {\r\n        return this.viewHistory ? 'View Email' : 'View History'\r\n    }\r\n\r\n    get hasEmailHistory () {\r\n        return this.versionHistory.length > 0;\r\n    }\r\n\r\n    async getJob (jobId: string) {\r\n        this.jobs = [await this.$store.dispatch('jobs/getJob', { jobId: jobId, pulseApiUrl: this.pulseUrl }) ];\r\n    }\r\n\r\n    async getEmail(){\r\n        if (this.memberId) {\r\n            await MembersApi.getEmail(this.currentClient!.clientId, this.memberId, this.emailReference, this.memberDataApiUrl)\r\n                .then((result) => {\r\n                    this.email = result;\r\n                    this.getInlineAttachments();\r\n                    this.setOriginalDescription;\r\n                });\r\n                await MembersApi.getEmailHistory(this.currentClient!.clientId, this.memberId, this.emailReference, this.memberDataApiUrl)\r\n                    .then((result) => {\r\n                this.versionHistory = result;\r\n            });\r\n        } else {\r\n            await ClientsApi.getClientEmail(this.currentClient!.clientId, this.emailReference, this.memberDataApiUrl)\r\n                .then((result) => {\r\n                    this.email = result;\r\n                    this.getInlineAttachments();\r\n                    this.setOriginalDescription;\r\n                });\r\n            await ClientsApi.getClientEmailHistory(this.currentClient!.clientId, this.emailReference, this.memberDataApiUrl)\r\n                .then((result) => {\r\n                this.versionHistory = result;\r\n            });\r\n        }\r\n    }\r\n\r\n    getInlineAttachments () {\r\n        if (this.email?.attachments) {\r\n            const unloaded = this.email.attachments.filter((i) => !i.contentBytes && i.isInline);\r\n            if (unloaded.length > 0) {\r\n                let content = this.email.body.content;\r\n                unloaded.forEach((attachment) => {\r\n                    if (this.email?.attachments && this.memberId) {\r\n                        MembersApi.getEmailAttachment(this.currentClient!.clientId, this.memberId, this.emailReference, attachment.id, this.memberDataApiUrl).then((result) => {\r\n                            Vue.set(attachment, 'contentBytes', result.contentBytes);\r\n                            content = content.replace(`cid:${result.contentId}`, `data:image;base64, ${result.contentBytes}`);\r\n                            this.email!.body.content = content;\r\n                        });\r\n                    } else if (this.email?.attachments && !this.memberId) {\r\n                        ClientsApi.getClientEmailAttachment(this.currentClient!.clientId, this.emailReference, attachment.id, this.memberDataApiUrl).then((result) => {\r\n                            Vue.set(attachment, 'contentBytes', result.contentBytes);\r\n                            content = content.replace(`cid:${result.contentId}`, `data:image;base64, ${result.contentBytes}`);\r\n                            this.email!.body.content = content;\r\n                        });\r\n                    }\r\n                });\r\n            }\r\n            // eslint-disable-next-line no-restricted-globals\r\n            if (parent) {\r\n                // eslint-disable-next-line no-restricted-globals\r\n                parent.postMessage('loaded', '*');\r\n            }\r\n        }\r\n    }\r\n\r\n    getJobByReference (jobReference: string) {\r\n        if (!this.jobs?.length) {\r\n            return null;\r\n        }\r\n\r\n        return (this.jobs.find((job: JobSummary) => job.reference === jobReference) as JobSummary) || null;\r\n    }\r\n\r\n    get allInlineLoaded () {\r\n        if (!this.email?.attachments) {\r\n            return true;\r\n        }\r\n        const unloaded = this.email.attachments.filter((i: { contentBytes: unknown; isInline: boolean}) => !i.contentBytes && i.isInline);\r\n        return unloaded.length === 0;\r\n    }\r\n\r\n    getDocumentType (attachment: { name: string }) {\r\n        const fileArr = attachment.name.split('.');\r\n        const fileType = fileArr[fileArr.length - 1];\r\n        switch (fileType) {\r\n            case 'doc':\r\n            case 'docx':\r\n            case 'docm':\r\n                return 'file-word';\r\n            case 'xls':\r\n            case 'xlsx':\r\n            case 'xlsm':\r\n                return 'file-excel';\r\n            case 'pdf':\r\n                return 'file-pdf';\r\n            case 'txt':\r\n                return 'file';\r\n            case 'msg':\r\n                return 'envelope';\r\n            case 'png':\r\n            case 'jpg':\r\n            case 'jpeg':\r\n            case 'bmp':\r\n            case 'gif':\r\n                return 'image';\r\n            default:\r\n                return 'file';\r\n        }\r\n    }\r\n\r\n    getFileSize (size: number) {\r\n        return Math.floor((size / 1024 / 1024) * 100) / 100;\r\n    }\r\n\r\n    openWebLink (link: string) {\r\n        window.open(link, '_blank');\r\n    }\r\n\r\n    deleteEmail () {\r\n        if (this.emailMemberId) {\r\n            MembersApi.deleteEmail(this.currentClient!.clientId, this.memberId, this.emailReference).then(() => {\r\n                this.email = null;\r\n                this.$emit('emailDeleted', this.emailReference);\r\n            }).catch((err) => {\r\n                this.$store.dispatch('messages/addError', err, { root: true });\r\n                this.isSaving = false;\r\n            });\r\n        } else {\r\n            ClientsApi.deleteClientEmail(this.currentClient!.clientId, this.emailReference).then(() => {\r\n                this.email = null;\r\n                this.$emit('emailDeleted', this.emailReference);\r\n            }).catch((err) => {\r\n                this.$store.dispatch('messages/addError', err, { root: true });\r\n                this.isSaving = false;\r\n            });\r\n        }\r\n    }\r\n\r\n    async saveEmailDetails () {\r\n        this.loading = true;\r\n          if (this.emailMemberId) {\r\n            await MembersApi.updateEmail(this.currentClient!.clientId, this.memberId, this.emailReference, this.memberDataApiUrl, {description: this.email?.description}).then(() => {\r\n                this.$emit('emailUpdated', this.emailReference, this.email?.description);\r\n                this.getEmail();\r\n                if (!this.isQuickPreview) {\r\n                    this.reloadParentWindow(\"reload email\");\r\n                }\r\n            }).catch((err) => {\r\n                this.loading = false;\r\n                this.$store.dispatch('messages/addError', err, { root: true });\r\n                \r\n            });\r\n        } else {\r\n            await ClientsApi.updateClientEmail(this.currentClient!.clientId, this.emailReference, this.memberDataApiUrl, {description: this.email?.description}).then(() => {\r\n                this.$emit('emailUpdated', this.emailReference, this.email?.description);\r\n                this.getEmail();\r\n                if (!this.isQuickPreview) {\r\n                    this.reloadParentWindow(\"reload email\");\r\n                }\r\n            }).catch((err) => {\r\n                this.loading = false;\r\n                this.$store.dispatch('messages/addError', err, { root: true });\r\n            });\r\n        }\r\n        this.loading = false;\r\n    }\r\n\r\n    async downloadAttachment (attachmentId: string) {\r\n        let emailAttachmentResult = new EmailAttachment();\r\n        if (this.email?.attachments && this.memberId) {\r\n            await MembersApi.getEmailAttachment(this.currentClient!.clientId, this.memberId, this.emailReference, attachmentId).then((result) => {\r\n                emailAttachmentResult = result;\r\n            });\r\n        } else if (this.email?.attachments && !this.memberId) {\r\n            await ClientsApi.getClientEmailAttachment(this.currentClient!.clientId, this.emailReference, attachmentId).then((result) => {\r\n                emailAttachmentResult = result;\r\n            });\r\n        }\r\n        const linkSource = `data:${emailAttachmentResult.contentType};base64,${emailAttachmentResult.contentBytes}`;\r\n        const downloadLink = document.createElement('a');\r\n        const fileName = emailAttachmentResult.name;\r\n\r\n        downloadLink.href = linkSource;\r\n        downloadLink.download = fileName;\r\n        downloadLink.click();\r\n    }\r\n\r\n    copyLink () {\r\n        const copyText = document.getElementById('urlToCopy') as HTMLInputElement;\r\n        if (copyText) {\r\n            copyText.select();\r\n            copyText.setSelectionRange(0, 99999);\r\n            document.execCommand('copy');\r\n\r\n            this.$store.dispatch('messages/addMessage', {\r\n                status: 'Success', title: 'Copy successful', popup: true, message: `Link has been copied to the clipboard:<br/><br/><span class=\"select\">${copyText.value}</span>`,\r\n            });\r\n        }\r\n    }\r\n\r\n    getColor (status: string) {\r\n        const color = Status.getColour(status);\r\n        return color;\r\n    }\r\n\r\n    getIcon (status: string) {\r\n        const icon = Status.getIcon(status);\r\n        return icon;\r\n    }\r\n\r\n    getName (status: string) {\r\n        const name = Status.getName(status);\r\n        return name;\r\n    }\r\n\r\n    getUser (userId: Guid) {\r\n        const user = this.usersById[userId.toString()];\r\n        if (!user) return 'System';\r\n        return `${user.forenames} ${user.surname}`;\r\n    }\r\n\r\n    formatDate (date: Date, noHours = false) {\r\n        if (noHours) {\r\n            return moment(date).format('DD/MM/YYYY');\r\n        }\r\n        return moment(date).format('DD/MM/YYYY HH:mm');\r\n    }\r\n\r\n    openJob () {\r\n        const url = `${this.$store.getters[STORE.GET_SITE_CONFIGURATION]['workmanagement.url']}/${this.currentClient?.name}/jobs/${this.jobReference}`;\r\n        window.open(url, '_blank');\r\n    }\r\n\r\n    async returnToIndexing () {\r\n        this.loading = true;\r\n        try {\r\n            await inboxApi.returnEmailToIndexing(this.currentClient!.clientId, this.emailReference, this.assignedJob?.jobId, this.pulseUrl);\r\n            this.showJobAssign = false;\r\n            this.assignedJob = null;\r\n            this.jobReference = '';\r\n            this.newJobId = null;\r\n            this.reloadParentWindow(\"reload\");\r\n        } finally {\r\n            this.loading = false;\r\n        }\r\n    }\r\n\r\n    reloadParentWindow (message: string) {\r\n        if (window.parent) {\r\n            window.parent.postMessage(message, '*');\r\n            this.$emit('loadCorrespondence');\r\n        }\r\n    }\r\n\r\n    @Watch('jobCount')\r\n    jobsChanged () {\r\n        this.assignedJob = this.getJobByReference(this.jobReference);\r\n    }\r\n}\r\n\r\n","import mod from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./email-viewer.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./email-viewer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./email-viewer.vue?vue&type=template&id=b5c739e2&scoped=true&\"\nimport script from \"./email-viewer.vue?vue&type=script&lang=ts&\"\nexport * from \"./email-viewer.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./email-viewer.vue?vue&type=style&index=0&id=b5c739e2&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"b5c739e2\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"paging\",class:{pages: !_vm.errorMsg, 'pages-error': _vm.errorMsg}},[(_vm.errorMsg)?_c('div',[_vm._v(\" \"+_vm._s(_vm.errorMsg)+\" \")]):_vm._e(),(!_vm.errorMsg)?_c('div',{staticClass:\"pagesize-dropdown\"},[_c('label',{attrs:{\"for\":\"pageSizeDropdown\"}},[_vm._v(\"Page Size\")]),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.internalPageSize),expression:\"internalPageSize\"}],attrs:{\"id\":\"pageSizeDropdown\",\"disabled\":_vm.total <= 0},on:{\"change\":[function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.internalPageSize=$event.target.multiple ? $$selectedVal : $$selectedVal[0]},_vm.pageSizeChanged]}},_vm._l((_vm.getPageSizeOptions),function(pageSizeOption){return _c('option',{key:pageSizeOption,attrs:{\"val\":pageSizeOption}},[_vm._v(_vm._s(pageSizeOption))])}),0)]):_vm._e(),(!_vm.errorMsg)?_c('span',[_vm._v(\" Showing \"),_c('b',[_vm._v(_vm._s(_vm.total && _vm.total > 0 ? _vm.pageNumber * _vm.internalPageSize - _vm.internalPageSize + 1: 0))]),_vm._v(\" to \"),_c('b',[_vm._v(_vm._s(_vm.pageNumber * _vm.internalPageSize >= _vm.total ? _vm.total : _vm.pageNumber * _vm.internalPageSize))]),_vm._v(\" of \"),_c('b',[_vm._v(_vm._s(_vm.total))])]):_vm._e(),(!_vm.errorMsg)?_c('div',[_c('btn',{staticClass:\"primary\",attrs:{\"text\":\"Previous Page\",\"disabled\":_vm.pageNumber === 1 || _vm.areNavigationButtonsDisabled()},on:{\"click\":_vm.previousClick}}),_c('btn',{staticClass:\"primary\",attrs:{\"text\":\"Next Page\",\"disabled\":(_vm.pageNumber * _vm.internalPageSize >= _vm.total) || _vm.areNavigationButtonsDisabled()},on:{\"click\":_vm.nextClick}})],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue, Watch,\r\n} from '~/vue-property-decorator';\r\n\r\n@Component({\r\n    name: 'grid-paging',\r\n    components: {},\r\n})\r\nexport default class GridPaging extends Vue {\r\n    @Prop()\r\n    total!: number;\r\n\r\n    @Prop()\r\n    pageNumber!: number;\r\n\r\n    @Prop()\r\n    pageSize!: number;\r\n\r\n    @Prop()\r\n    pageSizeOptions!: Array<number>;\r\n\r\n    @Prop()\r\n    isLoading?: boolean;\r\n\r\n    internalPageSize = 0;\r\n\r\n    errorMsg = '';\r\n\r\n    mounted () {\r\n        if (this.getPageSizeOptions && this.internalPageSize && !this.getPageSizeOptions?.includes(this.internalPageSize)) {\r\n            this.errorMsg = `PageSizeOptions does not contain PageSize value of ${this.internalPageSize}`;\r\n            throw new Error(this.errorMsg);\r\n        }\r\n    }\r\n\r\n    areNavigationButtonsDisabled() {\r\n        if (this.isLoading == undefined || this.isLoading == null) {\r\n            return false;\r\n        }\r\n\r\n        return this.isLoading;\r\n    }\r\n\r\n    previousClick () {\r\n        this.$emit('pageNumberChanged', this.pageNumber - 1);\r\n    }\r\n\r\n    nextClick () {\r\n        this.$emit('pageNumberChanged', this.pageNumber + 1);\r\n    }\r\n\r\n    pageSizeChanged () {\r\n        this.$emit('pageSizeChanged', this.internalPageSize);\r\n    }\r\n\r\n    get getPageSizeOptions () {\r\n        return this.pageSizeOptions ?? [10, 20, 50];\r\n    }\r\n\r\n    @Watch('pageSize', { immediate: true })\r\n    pageSizePropChanged () {\r\n        this.internalPageSize = this.pageSize ?? this.getPageSizeOptions[0];\r\n    }\r\n}\r\n","import mod from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./grid-paging.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./grid-paging.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./grid-paging.vue?vue&type=template&id=b15b5aea&scoped=true&\"\nimport script from \"./grid-paging.vue?vue&type=script&lang=ts&\"\nexport * from \"./grid-paging.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./grid-paging.vue?vue&type=style&index=0&id=b15b5aea&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"b15b5aea\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('header',[_c('div',{staticClass:\"left\"},[_c('div',{staticClass:\"site-name\"},[_vm._t(\"path\",function(){return [(!_vm.hideHome)?_c('header-nav',{attrs:{\"path\":\"/\"}},[_c('font-awesome-icon',{attrs:{\"icon\":\"home\"}})],1):_vm._e(),(!_vm.hideNav)?_vm._l((_vm.routes),function(route){return _c('header-nav',{key:route.url,attrs:{\"path\":route.url}},[_c('span',{staticClass:\"route-name\"},[_vm._v(_vm._s(route.name))]),(route.isClientRoute)?_c('div',{staticClass:\"route-tooltip\"},[_vm._v(_vm._s(route.name))]):_vm._e()])}):_vm._e()]}),_vm._t(\"nav\")],2)]),_c('div',{staticClass:\"center\"},[_vm._t(\"center\"),(_vm.isDeathStatus || _vm.originalMemberId)?_c('div',{staticClass:\"data\",attrs:{\"title\":_vm.isDeathStatus && (!_vm.originalMemberId || _vm.memberId == _vm.originalMemberId)\n            ? `Go to Death Information`\n            : `Go to original member: ${_vm.originalMemberId} Death Information`}},[_c('btn',{staticClass:\"data-label\",on:{\"click\":_vm.goToMember}},[_c('font-awesome-icon',{staticClass:\"original-id\",attrs:{\"icon\":\"user\"}})],1)],1):_vm._e()],2),_c('div',{staticClass:\"right\"},[_vm._t(\"right\"),(_vm.environmentCode === 'Prod')?_c('img',{staticClass:\"lcp-logo\",attrs:{\"src\":require(\"./../assets/lcp-logo-white.svg\")}}):_c('div',{staticClass:\"environment-code\",class:[_vm.environmentCode]},[_vm._v(_vm._s(_vm.environmentCode))]),(_vm.isChristmas)?_c('img',{staticClass:\"santa-hat\",attrs:{\"src\":require(\"@/assets/santa hat.png\")}}):_vm._e(),_c('div',{staticClass:\"profile\"},[_c('div',{staticClass:\"profile-image\"},[_c('profile-photo',{staticClass:\"profile\",attrs:{\"id\":_vm.userInfo.oid,\"color\":true}})],1),_c('font-awesome-icon',{attrs:{\"icon\":\"caret-down\"}}),_c('div',{staticClass:\"profile-menu\"},[_c('btn',{attrs:{\"icon\":\"sign-out-alt\",\"text\":\"Sign out\"},on:{\"click\":_vm.signOut}})],1)],1)],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./header-bar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./header-bar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./header-bar.vue?vue&type=template&id=735e58e7&scoped=true&\"\nimport script from \"./header-bar.vue?vue&type=script&lang=js&\"\nexport * from \"./header-bar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./header-bar.vue?vue&type=style&index=0&id=735e58e7&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"735e58e7\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('router-link',{attrs:{\"to\":_vm.path}},[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./header-nav.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./header-nav.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./header-nav.vue?vue&type=template&id=5a87a96a&scoped=true&\"\nimport script from \"./header-nav.vue?vue&type=script&lang=js&\"\nexport * from \"./header-nav.vue?vue&type=script&lang=js&\"\nimport style0 from \"./header-nav.vue?vue&type=style&index=0&id=5a87a96a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"5a87a96a\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"job-selector\"},[(_vm.jobs)?_c('dynamic-ui-filterdropdown',{ref:\"search\",attrs:{\"name\":_vm.reassigning ? 'Reassign to' : 'Assign to',\"options\":_vm.jobs,\"value\":_vm.value ? _vm.value.trim() : null,\"valueKey\":\"jobId\",\"textKey\":\"t\",\"filterable\":true,\"disabled\":_vm.disabled,\"allowNull\":false},on:{\"input\":_vm.input,\"change\":_vm.jobSelected},scopedSlots:_vm._u([{key:\"option\",fn:function({ option }){return [(option)?_c('div',{staticClass:\"row no-wrap\",attrs:{\"title\":option.name}},[_c('div',{staticClass:\"job-status\",style:(`background-color: ${_vm.getColor(option.status)};`)},[_c('font-awesome-icon',{attrs:{\"icon\":_vm.getIcon(option.status)}})],1),_c('div',{staticClass:\"job-number\"},[_vm._v(_vm._s(option.reference))]),_c('div',{staticClass:\"job-name\"},[_vm._v(_vm._s(option.definitionName))]),(option.targetDate)?_c('div',{staticClass:\"job-target-date\"},[_vm._v(_vm._s(_vm.formatDate(option.targetDate)))]):_vm._e()]):_c('div',{staticClass:\"row no-wrap\"},[_c('div',{staticClass:\"job-status\",style:(`background-color: ${_vm.getColor(4)};`)},[_c('font-awesome-icon',{attrs:{\"icon\":\"times\"}})],1),_vm._v(\" Unassign / Return to inbox \")])]}},{key:\"selected-option\",fn:function({ option }){return [(option)?_c('div',{staticClass:\"selected-job row no-wrap\"},[_c('div',{staticClass:\"job-status\",style:(`background-color: ${_vm.getColor(option.status)};`)},[_c('font-awesome-icon',{attrs:{\"icon\":_vm.getIcon(option.status)}})],1),_c('div',{staticClass:\"job-number\"},[_vm._v(_vm._s(option.reference))]),_c('div',{staticClass:\"job-name\"},[_vm._v(_vm._s(option.definitionName))]),(option.targetDate)?_c('div',{staticClass:\"job-target-date\"},[_vm._v(_vm._s(_vm.formatDate(option.targetDate)))]):_vm._e()]):_vm._e()]}}],null,false,4095437526)}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Status from 'common/util/pulseStatusEnum';\r\nimport Client from 'common/models/client';\r\nimport * as STORE from 'common/store/storepaths';\r\nimport Guid from 'common/util/guid';\r\nimport JobSummary from 'common/models/jobSummary';\r\nimport moment from '~/moment';\r\n\r\nimport {\r\n    Component, Vue, Prop, Watch,\r\n} from '~/vue-property-decorator';\r\n\r\n@Component({\r\n    name: 'job-selector',\r\n    components: { },\r\n})\r\nexport default class JobSelector extends Vue {\r\n    @Prop()\r\n    memberId!: number;\r\n\r\n    @Prop()\r\n    systemMemberId!: number;\r\n\r\n    @Prop()\r\n    value!: string;\r\n\r\n    @Prop()\r\n    disabled!: boolean;\r\n\r\n    @Prop()\r\n    reassigning!: boolean;\r\n\r\n    @Prop()\r\n    name!: string;\r\n\r\n    @Prop()\r\n    removePrefix!: string;\r\n\r\n    @Prop()\r\n    hideFinal!: boolean;\r\n\r\n    @Prop()\r\n    clientLevel!: boolean;\r\n\r\n    showDropdown = false;\r\n\r\n    jobs: Array<JobSummary> = [];\r\n\r\n    get jobPrefix () {\r\n        return this.removePrefix;\r\n    }\r\n\r\n    get memberData () {\r\n        if (!this.currentClient) return {};\r\n        const memberData = this.$store.getters['memberData/memberData']?.(this.currentClient.name, this.memberId);\r\n        return memberData;\r\n    }\r\n\r\n    get storedSystemMemberId () {\r\n        return this.systemMemberId ?? (this.memberData ? this.memberData?.memberDetails?.systemMemberId : undefined);\r\n    }\r\n\r\n    get currentClient () {\r\n        return (this.$store.getters[STORE.GET_CURRENT_CLIENT] as Client);\r\n    }\r\n\r\n    get jobUrl () {\r\n        return this.$store.getters[STORE.GET_SITE_CONFIGURATION]['pulse-api.url'];\r\n    }\r\n\r\n    getColor (status: string) {\r\n        const color = Status.getColour(status);\r\n        return color;\r\n    }\r\n\r\n    getIcon (status: string) {\r\n        const icon = Status.getIcon(status);\r\n        return icon;\r\n    }\r\n\r\n    getName (status: string) {\r\n        const name = Status.getName(status);\r\n        return name;\r\n    }\r\n\r\n    formatDate (date: Date) {\r\n        return moment(date).format('DD/MM/YYYY');\r\n    }\r\n\r\n    input (val: unknown) {\r\n        this.$emit('input', val);\r\n    }\r\n\r\n    async getJobs () {\r\n        this.jobs = [];\r\n        if (this.currentClient.clientId && this.clientLevel) {\r\n            this.jobs = [...this.jobs, ...await this.$store.dispatch('jobs/getPulseClientJobs', { clientId: this.currentClient.clientId, jobUrl: this.jobUrl, filter: 'Active', commitJob: false })];\r\n            this.jobs = [...this.jobs, ...await this.$store.dispatch('jobs/getPulseClientJobs', { clientId: this.currentClient.clientId, jobUrl: this.jobUrl, filter: 'Upcoming', commitJob: false })];\r\n        } else if (this.storedSystemMemberId) {\r\n            this.jobs = [...this.jobs, ...await this.$store.dispatch('jobs/getPulseMemberJobs', { clientId: this.currentClient.clientId, memberId: this.storedSystemMemberId, jobUrl: this.jobUrl, filter: 'Active', commitJob: false })];\r\n            this.jobs = [...this.jobs, ...await this.$store.dispatch('jobs/getPulseMemberJobs', { clientId: this.currentClient.clientId, memberId: this.storedSystemMemberId, jobUrl: this.jobUrl, filter: 'Upcoming', commitJob: false })];\r\n        }\r\n        if (this.value) {\r\n            const currentJob = await this.$store.dispatch('jobs/getJob', { jobId: this.value, pulseApiUrl: this.jobUrl });\r\n            if (!this.jobs.find(a => a.jobId === currentJob.jobId)) this.jobs = [currentJob, ...this.jobs ];\r\n        }\r\n        const allowedStatuses = ['InProgress', 'Upcoming', 'ReferredInternal', 'ReferredExternal'];\r\n\r\n\r\n\r\n        this.jobs = this.jobs.filter((a) => a.jobId.toString() === this.value\r\n         || (allowedStatuses.includes(a.status) && (!this.clientLevel || (this.clientLevel && !a.memberId))))\r\n            .map((a) => ({ ...a, number: a.reference.replace(this.jobPrefix, '') }))\r\n            .sort((a, b) => (a.targetDate < b.targetDate ? -1 : 1))\r\n            .sort((a, b) => (a.status === 'Complete' && b.status !== 'Complete' ? 1 : -1));\r\n\r\n    }\r\n\r\n    jobSelected (row: PointerEvent, selectedJobId: Guid) {\r\n        this.$emit('change', selectedJobId);\r\n    }\r\n\r\n    @Watch('storedSystemMemberId')\r\n    memberIdChanged (val: boolean) {\r\n        if (val) {\r\n            this.getJobs();\r\n        }\r\n    }\r\n\r\n    @Watch('currentClient', { immediate: true })\r\n    currentClientChanged (val: boolean) {\r\n        if (val) {\r\n            this.getJobs();\r\n        }\r\n    }\r\n}\r\n\r\n","import mod from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./job-selector-pulse.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./job-selector-pulse.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./job-selector-pulse.vue?vue&type=template&id=2df751b5&scoped=true&\"\nimport script from \"./job-selector-pulse.vue?vue&type=script&lang=ts&\"\nexport * from \"./job-selector-pulse.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./job-selector-pulse.vue?vue&type=style&index=0&id=2df751b5&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"2df751b5\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"refresh\"},[_vm._v(\" Last refreshed \"),_c('strong',[_vm._v(_vm._s(_vm.formatDate(_vm.lastRefreshed)))]),_c('btn',{staticClass:\"primary\",attrs:{\"icon\":\"redo\",\"disabled\":_vm.isLoading},on:{\"click\":_vm.reload}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport moment from '~/moment';\r\nimport { Component, Prop, Vue } from '~/vue-property-decorator';\r\n\r\n@Component({\r\n    name: 'last-refreshed',\r\n    components: {},\r\n})\r\nexport default class LastRefreshed extends Vue {\r\n    @Prop()\r\n    isLoading!: boolean;\r\n\r\n    @Prop()\r\n    lastRefreshed!: string;\r\n\r\n    formatDate (date: string) {\r\n        return moment(date).format('DD/MM/YYYY HH:mm');\r\n    }\r\n\r\n    reload () {\r\n        this.$emit('reload');\r\n    }\r\n}\r\n","import mod from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./last-refreshed.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./last-refreshed.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./last-refreshed.vue?vue&type=template&id=58464130&scoped=true&\"\nimport script from \"./last-refreshed.vue?vue&type=script&lang=ts&\"\nexport * from \"./last-refreshed.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./last-refreshed.vue?vue&type=style&index=0&id=58464130&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"58464130\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"loading\",class:{ background: _vm.background }},[_c('div',{staticClass:\"spinner\"})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./loading.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./loading.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./loading.vue?vue&type=template&id=00a277d0&\"\nimport script from \"./loading.vue?vue&type=script&lang=js&\"\nexport * from \"./loading.vue?vue&type=script&lang=js&\"\nimport style0 from \"./loading.vue?vue&type=style&index=0&id=00a277d0&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"container\"},[_c('p',[_vm._v(_vm._s(_vm.environment)+\" \")]),_c('div',{staticClass:\"login\"},[_c('div',{staticClass:\"login-header\"},[_c('img',{attrs:{\"src\":require(\"@/assets/logo.svg\")}}),_c('div',{staticClass:\"title\"},[_vm._t(\"default\")],2)]),_c('div',{staticClass:\"controls\"},[(_vm.loaded)?_c('button',{on:{\"click\":_vm.login}},[_vm._v(\"Log in\")]):_c('loading')],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./login-page.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./login-page.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./login-page.vue?vue&type=template&id=412f6697&scoped=true&\"\nimport script from \"./login-page.vue?vue&type=script&lang=js&\"\nexport * from \"./login-page.vue?vue&type=script&lang=js&\"\nimport style0 from \"./login-page.vue?vue&type=style&index=0&id=412f6697&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"412f6697\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"member-search\"},[_c('div',{staticClass:\"search-container\"},[_c('span',[_vm._v(\"Enter either 'Member/Service Period ID'\")]),(_vm.showAdvancedSearchOptions)?_c('span',[_vm._v(\" or any combination of the other fields\")]):_vm._e(),_c('btn',{staticClass:\"primary float-right\",attrs:{\"text\":_vm.showAdvancedSearchOptions ? 'Show Simple Search' : 'Show Advanced Search'},on:{\"click\":function($event){_vm.showAdvancedSearchOptions = !_vm.showAdvancedSearchOptions}}}),_c('div',{staticClass:\"row memberid\"},[_c('dynamic-ui-text',{ref:\"memberId\",attrs:{\"disabled\":_vm.memberIdDisabled,\"name\":\"Member/Service Period ID\",\"validationMessage\":\"Please enter a numerical value\",\"regexValidation\":\"^[0-9]*$\",\"allowNull\":true},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.gotoMember.apply(null, arguments)},\"input\":function($event){_vm.willResetPage = true}},model:{value:(_vm.searchOptions.memberId),callback:function ($$v) {_vm.$set(_vm.searchOptions, \"memberId\", $$v)},expression:\"searchOptions.memberId\"}})],1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showAdvancedSearchOptions),expression:\"showAdvancedSearchOptions\"}],staticClass:\"search-options\"},[_c('dynamic-ui-text',{attrs:{\"disabled\":!!_vm.searchOptions.memberId,\"name\":\"Surname\",\"allowNull\":true},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.search.apply(null, arguments)},\"input\":function($event){_vm.willResetPage = true}},model:{value:(_vm.searchOptions.surname),callback:function ($$v) {_vm.$set(_vm.searchOptions, \"surname\", $$v)},expression:\"searchOptions.surname\"}}),_c('dynamic-ui-text',{attrs:{\"disabled\":!!_vm.searchOptions.memberId,\"name\":\"Forenames\",\"allowNull\":true},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.search.apply(null, arguments)},\"input\":function($event){_vm.willResetPage = true}},model:{value:(_vm.searchOptions.forenames),callback:function ($$v) {_vm.$set(_vm.searchOptions, \"forenames\", $$v)},expression:\"searchOptions.forenames\"}}),_c('dynamic-ui-text',{attrs:{\"disabled\":!!_vm.searchOptions.memberId,\"name\":\"NI number\",\"allowNull\":true},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.search.apply(null, arguments)},\"input\":function($event){_vm.willResetPage = true}},model:{value:(_vm.searchOptions.nino),callback:function ($$v) {_vm.$set(_vm.searchOptions, \"nino\", $$v)},expression:\"searchOptions.nino\"}}),_c('dynamic-ui-date',{attrs:{\"disabled\":!!_vm.searchOptions.memberId,\"name\":\"Date of birth\",\"exportFormat\":\"YYYY-MM-DD\",\"allowNull\":true},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.search.apply(null, arguments)},\"input\":function($event){_vm.willResetPage = true}},model:{value:(_vm.searchOptions.dateOfBirth),callback:function ($$v) {_vm.$set(_vm.searchOptions, \"dateOfBirth\", $$v)},expression:\"searchOptions.dateOfBirth\"}}),_c('dynamic-ui-text',{attrs:{\"disabled\":!!_vm.searchOptions.memberId,\"name\":\"Postcode\",\"allowNull\":true},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.search.apply(null, arguments)},\"input\":function($event){_vm.willResetPage = true}},model:{value:(_vm.searchOptions.postCode),callback:function ($$v) {_vm.$set(_vm.searchOptions, \"postCode\", $$v)},expression:\"searchOptions.postCode\"}}),_c('dynamic-ui-stringdropdown',{attrs:{\"disabled\":!!_vm.searchOptions.memberId,\"name\":\"Status\",\"options\":_vm.listFilterOptions,\"valueKey\":\"id\",\"textKey\":\"name\"},model:{value:(_vm.searchOptions.status),callback:function ($$v) {_vm.$set(_vm.searchOptions, \"status\", $$v)},expression:\"searchOptions.status\"}})],1),_c('btn',{staticClass:\"primary\",attrs:{\"icon\":\"search\",\"text\":\"Search\",\"disabled\":_vm.isSearchInvalid},on:{\"click\":_vm.onSearch}})],1),(_vm.loading)?_c('loading'):_vm._e(),(_vm.hasSearched)?_c('div',{staticClass:\"results\"},[(!_vm.loading && !_vm.loadedSearch)?_c('h2',[_vm._v(\"No members found that match these search options...\")]):(_vm.hasSearched && _vm.loading)?_c('h2',[_vm._v(\"Searching…\")]):_vm._e(),(_vm.searchResults && _vm.searchResults.length)?_c('div',{staticClass:\"table-container\"},[_c('filter-table',{attrs:{\"columns\":_vm.columns,\"tableData\":_vm.searchResults,\"hideSearch\":true,\"fakeScroll\":false,\"fixedHeader\":true,\"externalSort\":true},on:{\"sorted\":_vm.tableSorted,\"rowClicked\":r => _vm.selectedMember = r},scopedSlots:_vm._u([{key:\"td-status\",fn:function({ row }){return _vm._l((row.servicePeriods),function(servicePeriod){return _c('div',{key:servicePeriod.servicePeriodId,staticClass:\"service-periods\"},[_c('div',{staticClass:\"id\"},[_vm._v(_vm._s(servicePeriod.servicePeriodId))]),_c('div',{staticClass:\"status\"},[_vm._v(_vm._s(servicePeriod.status))])])})}},{key:\"td-statusDate\",fn:function({ row }){return _vm._l((row.servicePeriods),function(servicePeriod){return _c('div',{key:servicePeriod.servicePeriodId,staticClass:\"service-periods\"},[_c('div',{staticClass:\"small-label\"},[_vm._v(\"since\")]),_c('div',{staticClass:\"status-date\"},[_vm._v(_vm._s(_vm.formatDate(servicePeriod.statusDate)))])])})}}],null,false,3144924195)}),_c('grid-paging',{attrs:{\"pageNumber\":_vm.searchOptions.pageNumber,\"total\":_vm.totalResults},on:{\"pageNumberChanged\":_vm.pageNumberChanged,\"pageSizeChanged\":_vm.pageSizeChanged}})],1):_vm._e()]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport clientApi from 'common/api/clientsApi';\r\nimport MemberSummary from 'common/models/memberSummary';\r\nimport MemberSearchParams from 'common/models/memberSearchParams';\r\nimport GridPaging from 'common/components/grid-paging.vue';\r\nimport Guid from 'common/util/guid';\r\nimport * as STORE from 'common/store/storepaths';\r\nimport {\r\n    Component, Prop, Vue, Watch,\r\n} from '~/vue-property-decorator';\r\nimport moment from '~/moment';\r\nimport { debounce } from '~/lodash';\r\n\r\n@Component({\r\n    name: 'Search', components: { GridPaging },\r\n})\r\nexport default class Search extends Vue {\r\n    @Prop()\r\n    name!: string;\r\n\r\n    @Prop()\r\n    clientName!: string;\r\n\r\n    @Prop()\r\n    clientId!: Guid;\r\n\r\n    value!: MemberSummary;\r\n\r\n    loading = false;\r\n\r\n    hasSearched = false;\r\n\r\n    centered = true;\r\n\r\n    members: Array<MemberSummary> | null = null;\r\n\r\n    pendingGoto = NaN;\r\n\r\n    totalResults = 0;\r\n\r\n    willResetPage = false;\r\n\r\n    showAdvancedSearchOptions = true;\r\n\r\n    searchOptions: MemberSearchParams = {\r\n        memberId: undefined,\r\n        surname: '',\r\n        forenames: '',\r\n        dateOfBirth: undefined,\r\n        nino: '',\r\n        postCode: '',\r\n        status: 'all',\r\n        phoneNumber: '',\r\n        sort: 'memberId',\r\n        pageNumber: 1,\r\n        pageSize: 10,\r\n    }\r\n\r\n    listFilterOptions = [\r\n        { id: 'all', name: 'All' },\r\n        { id: 'active', name: 'Active' },\r\n        { id: 'deferred', name: 'Deferred' },\r\n        { id: 'pensioner', name: 'Pensioner' },\r\n        { id: 'dependant', name: 'Dependant' },\r\n        { id: 'exit', name: 'Exit' },\r\n    ];\r\n\r\n    mounted () {\r\n        this.$nextTick(() => {\r\n            this.$nextTick(() => {\r\n                ((this.$refs.memberId as Vue).$el.children[1].children[0] as HTMLInputElement).focus();\r\n            });\r\n        });\r\n    }\r\n\r\n    get selectedMember () {\r\n        return this.value;\r\n    }\r\n\r\n    set selectedMember (newValue) {\r\n        this.$emit('selectedMemberChange', newValue);\r\n    }\r\n\r\n    get isSearchInvalid () {\r\n        return !!this.searchOptions.memberId && !this.searchOptions.memberId?.toString().match('^[0-9]*$');\r\n    }\r\n\r\n    get searchResults () {\r\n        return this.results;\r\n    }\r\n\r\n    get results () {\r\n        return this.members;\r\n    }\r\n\r\n    get memberDataApiUrl () {\r\n        return this.$store.getters[STORE.GET_SITE_CONFIGURATION]['memberdata.api.url'] ?? '';\r\n    }\r\n\r\n    get loadedSearch () {\r\n        return this.hasSearched && !this.loading && this.members && this.members.length !== 0;\r\n    }\r\n\r\n    get getDebounce () {\r\n        return debounce(() => {\r\n            this.search();\r\n        }, 600);\r\n    }\r\n\r\n    get memberIdDisabled () {\r\n        return !!(this.searchOptions.surname?.length || this.searchOptions.forenames?.length\r\n        || this.searchOptions.dateOfBirth?.length || this.searchOptions.nino?.length\r\n        || this.searchOptions.postCode?.length || this.searchOptions.phoneNumber?.length\r\n        || this.searchOptions.status !== 'all');\r\n    }\r\n\r\n    get columns () {\r\n        return [\r\n            {\r\n                id: 'memberId', name: 'ID', prop: 'memberId', class: () => 'id', sortable: true, filterable: false,\r\n            },\r\n            {\r\n                id: 'surname', name: 'Surname', prop: 'surname', sortable: true, filterable: false,\r\n            },\r\n            {\r\n                id: 'forenames', name: 'Forenames', prop: 'forenames', sortable: true, filterable: false,\r\n            },\r\n            {\r\n                id: 'dob', name: 'Date of birth', sortValue: (r: MemberSummary) => r.dateBirth, value: (r: MemberSummary) => this.formatDate(r.dateBirth), sortable: true, filterable: false,\r\n            },\r\n            {\r\n                id: 'nino', name: 'NINO', prop: 'nino', sortable: true, filterable: false,\r\n            },\r\n            {\r\n                id: 'postCode', name: 'Postcode', prop: 'postCode', sortable: true, sortValue: (r: MemberSummary) => r.postCode?.toLowerCase() ?? '', filterable: false,\r\n            },\r\n            {\r\n                name: 'Status', id: 'status', prop: 'status', value: (r: MemberSummary) => (r.servicePeriods && r.servicePeriods.length ? r.servicePeriods[0].status : ''), sortable: false, filterable: false,\r\n            },\r\n            {\r\n                name: 'Status date', id: 'statusDate', sortValue: (r: MemberSummary) => (r.servicePeriods && r.servicePeriods.length ? r.servicePeriods[0].statusDate : ''), sortable: false, filterable: false,\r\n            },\r\n        ];\r\n    }\r\n\r\n    tableSorted (param: string, isAscending: boolean) {\r\n        this.searchOptions.pageNumber = 1;\r\n        this.searchOptions.sort = `${isAscending ? '-' : ''}${param}`;\r\n        this.search();\r\n    }\r\n\r\n    formatDate (date: Date) {\r\n        return moment(date).format('DD/MM/YYYY');\r\n    }\r\n\r\n    formatLcpDate (date: Date) {\r\n        if (!date) return null;\r\n        return `${date.getFullYear}-${date.getMonth}-${date.getDay}`;\r\n    }\r\n\r\n    pageNumberChanged (pageNumber: number) {\r\n        this.searchOptions.pageNumber = pageNumber;\r\n        this.search();\r\n    }\r\n\r\n    pageSizeChanged (pageSize: number) {\r\n        this.searchOptions.pageSize = pageSize;\r\n        this.search();\r\n    }\r\n\r\n    gotoMember () {\r\n        if (this.isInvalidMemberId()) {\r\n            this.loading = false;\r\n            this.willResetPage = false;\r\n            return;\r\n        }\r\n        this.onSearch();\r\n        if (this.loadedSearch && this.searchResults?.length === 1) {\r\n            this.selectedMember = this.searchResults[0];\r\n            return;\r\n        }\r\n        const searchNumber = Number(this.searchOptions.memberId);\r\n        this.pendingGoto = Number.isNaN(searchNumber) || searchNumber < 0\r\n            ? NaN\r\n            : searchNumber;\r\n        this.tryNavigateToMember();\r\n    }\r\n\r\n    tryNavigateToMember () {\r\n        if (this.searchResults && this.searchResults.length > 0 && this.searchResults[0].memberId === this.pendingGoto) {\r\n            this.selectedMember = this.searchResults[0];\r\n        }\r\n    }\r\n\r\n    onSearch () {\r\n        this.pendingGoto = NaN;\r\n        this.loading = true;\r\n        this.getDebounce();\r\n    }\r\n\r\n    isInvalidMemberId () {\r\n        const reg = /^[0-9]+$/;\r\n        return this.searchOptions.memberId && !reg.test(this.searchOptions.memberId.toString());\r\n    }\r\n\r\n    search () {\r\n        if (this.isInvalidMemberId()) {\r\n            this.loading = false;\r\n            this.willResetPage = false;\r\n            return;\r\n        }\r\n        this.loading = true;\r\n        if (this.willResetPage) {\r\n            this.willResetPage = false;\r\n            this.searchOptions.pageNumber = 1;\r\n        }\r\n        this.hasSearched = true;\r\n        clientApi.memberAdvancedSearch(this.clientId, this.searchOptions, this.memberDataApiUrl)\r\n            .then((result) => {\r\n                this.members = result;\r\n                this.loading = false;\r\n                this.tryNavigateToMember();\r\n                this.totalResults = result.headers['x-total-count'];\r\n            });\r\n    }\r\n\r\n    @Watch('searchOptions.status')\r\n    selectedOptionChanged(){\r\n        this.search();\r\n        this.willResetPage = true;\r\n    }\r\n}\r\n","import mod from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./member-advanced-search.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./member-advanced-search.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./member-advanced-search.vue?vue&type=template&id=8ace6152&scoped=true&\"\nimport script from \"./member-advanced-search.vue?vue&type=script&lang=ts&\"\nexport * from \"./member-advanced-search.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./member-advanced-search.vue?vue&type=style&index=0&id=8ace6152&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"8ace6152\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('btn',{staticClass:\"member-link\",attrs:{\"title\":_vm.title,\"text\":_vm.memberId},on:{\"click\":_vm.gotoMember}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport * as STORE from 'common/store/storepaths';\r\nimport Client from 'common/models/client';\r\nimport { Component, Prop, Vue } from '~/vue-property-decorator';\r\n\r\n@Component({\r\n    name: 'member-button',\r\n    components: {},\r\n})\r\nexport default class MemberButton extends Vue {\r\n    @Prop()\r\n    memberId!: string;\r\n\r\n    get currentClient () {\r\n        return (this.$store.getters[STORE.GET_CURRENT_CLIENT] as Client);\r\n    }\r\n\r\n    get title () {\r\n        return `Go to member ${this.memberId}`;\r\n    }\r\n\r\n    gotoMember () {\r\n        const routeData = this.$router.resolve(`/${this.currentClient.code}/memberData/${this.memberId}`);\r\n        window.open(routeData.href, '_blank');\r\n    }\r\n}\r\n","import mod from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./member-button.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./member-button.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./member-button.vue?vue&type=template&id=492e81fc&scoped=true&\"\nimport script from \"./member-button.vue?vue&type=script&lang=ts&\"\nexport * from \"./member-button.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./member-button.vue?vue&type=style&index=0&id=492e81fc&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"492e81fc\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"container\"},[_c('input',{attrs:{\"readonly\":\"\",\"id\":\"copyField\"},domProps:{\"value\":_vm.copyText}}),_c('header',[_c('h2',[_vm._v(_vm._s(_vm.title))])]),(_vm.memberDetailsForCall)?_c('div',{staticClass:\"row main-content\"},[_c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"group\",staticStyle:{\"flex\":\"0\"}},[_c('dynamic-ui-datetime',{attrs:{\"exportFormat\":\"YYYY-MM-DD HH:mm\",\"includeTime\":true,\"name\":\"Time of call\"},model:{value:(_vm.timeOfCall),callback:function ($$v) {_vm.timeOfCall=$$v},expression:\"timeOfCall\"}}),_c('div',{staticClass:\"radio-group\"},[_c('div',{staticClass:\"radio-2-button\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.incomingCall),expression:\"incomingCall\"}],attrs:{\"type\":\"radio\",\"name\":\"incomingCall\",\"id\":\"rincoming\"},domProps:{\"value\":true,\"checked\":_vm._q(_vm.incomingCall,true)},on:{\"change\":function($event){_vm.incomingCall=true}}}),_c('label',{attrs:{\"for\":\"rincoming\"}},[_vm._v(\"Incoming call\")])]),_c('div',{staticClass:\"radio-2-button\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.incomingCall),expression:\"incomingCall\"}],attrs:{\"type\":\"radio\",\"name\":\"incomingCall\",\"id\":\"routgoing\"},domProps:{\"value\":false,\"checked\":_vm._q(_vm.incomingCall,false)},on:{\"change\":function($event){_vm.incomingCall=false}}}),_c('label',{attrs:{\"for\":\"routgoing\"}},[_vm._v(\"Outgoing call\")])])])],1),_c('div',{staticClass:\"group\"},[_c('h4',{staticClass:\"group-title\"},[_vm._v(\"Contact details\")]),_c('div',{staticClass:\"radio-group\"},[_c('div',{staticClass:\"radio-3-button\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.contactDetails),expression:\"contactDetails\"}],attrs:{\"type\":\"radio\",\"name\":\"contactDetails\",\"value\":\"Member\",\"id\":\"rmember\"},domProps:{\"checked\":_vm._q(_vm.contactDetails,\"Member\")},on:{\"change\":function($event){_vm.contactDetails=\"Member\"}}}),_c('label',{staticClass:\"short-label\",attrs:{\"for\":\"rmember\"}},[_vm._v(\"Member\")])]),_c('div',{staticClass:\"radio-3-button\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.contactDetails),expression:\"contactDetails\"}],attrs:{\"type\":\"radio\",\"name\":\"contactDetails\",\"value\":\"Internal\",\"id\":\"rinternal\"},domProps:{\"checked\":_vm._q(_vm.contactDetails,\"Internal\")},on:{\"change\":function($event){_vm.contactDetails=\"Internal\"}}}),_c('label',{staticClass:\"short-label\",attrs:{\"for\":\"rinternal\"}},[_vm._v(\"Internal with LCP\")])]),_c('div',{staticClass:\"radio-3-button\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.contactDetails),expression:\"contactDetails\"}],attrs:{\"type\":\"radio\",\"name\":\"contactDetails\",\"value\":\"Other\",\"id\":\"rother\"},domProps:{\"checked\":_vm._q(_vm.contactDetails,\"Other\")},on:{\"change\":function($event){_vm.contactDetails=\"Other\"}}}),_c('label',{staticClass:\"short-label\",attrs:{\"for\":\"rother\"}},[_vm._v(\"Other\")])])]),(_vm.contactDetails === 'Member')?[(_vm.incomingCall && !_vm.selectedNumber)?_c('div',{staticClass:\"new-number\"},[(_vm.phoneNumberType !== 'Not recorded')?_c('dynamic-ui-phonenumber',{attrs:{\"dontOpenWindow\":true,\"showPhone\":!_vm.incomingCall,\"name\":\"Phone number\",\"allowNull\":true,\"disabled\":!!_vm.selectedNumber},on:{\"callClicked\":function($event){return _vm.callClicked(_vm.phoneNumber)}},model:{value:(_vm.phoneNumber),callback:function ($$v) {_vm.phoneNumber=$$v},expression:\"phoneNumber\"}}):_c('dynamic-ui-text',{attrs:{\"value\":'',\"name\":\"Phone number\",\"allowNull\":true,\"disabled\":true}}),_c('dynamic-ui-stringdropdown',{staticClass:\"number-type\",attrs:{\"hideLabel\":true,\"options\":_vm.telephoneTypes,\"disabled\":!!_vm.selectedNumber},model:{value:(_vm.phoneNumberType),callback:function ($$v) {_vm.phoneNumberType=$$v},expression:\"phoneNumberType\"}})],1):_vm._e(),(!_vm.selectedNumber && _vm.incomingCall && _vm.phoneNumberType === 'Other (Not saved)')?_c('div',{staticClass:\"note\"},[_vm._v(\"Phone number will not be saved\")]):(!_vm.selectedNumber && _vm.incomingCall && _vm.phoneNumberType === 'Not recorded')?_c('div',{staticClass:\"note\"},[_vm._v(\"Phone number will not be recorded\")]):(!_vm.selectedNumber && _vm.incomingCall)?_c('div',{staticClass:\"note\"},[_vm._v(_vm._s(_vm.phoneNumberType)+\" phone number will be saved to Contact Information\")]):_vm._e(),(_vm.incomingCall && _vm.hasExistingNumbers)?_c('span',{staticClass:\"or\"},[_vm._v(\"or\")]):_vm._e(),_vm._l((_vm.memberDetailsForCall.existingNumbers),function(number,type){return _c('div',{key:type,staticClass:\"existing-number\"},[_c('dynamic-ui-boolean',{attrs:{\"id\":type,\"disabled\":!!((!!_vm.selectedNumber && !number.selected) || !number.value || (_vm.phoneNumber.length && _vm.phoneNumberType !== 'Not recorded'))},model:{value:(number.selected),callback:function ($$v) {_vm.$set(number, \"selected\", $$v)},expression:\"number.selected\"}}),_c('dynamic-ui-phonenumber',{class:{ 'no-phone': (!!_vm.selectedNumber && !number.selected) || !number.value || (_vm.phoneNumber.length && _vm.phoneNumberType !== 'Not recorded') },attrs:{\"dontOpenWindow\":true,\"readOnly\":true,\"value\":number.value,\"name\":_vm.capitalize(type),\"showPhone\":!!number.value.length && !_vm.phoneNumber.length && !_vm.incomingCall},on:{\"callClicked\":function($event){return _vm.callClicked(number, true)}}}),(type === _vm.memberDetailsForCall.preferredPhoneNumber)?_c('font-awesome-icon',{staticClass:\"preferred\",attrs:{\"icon\":\"star\",\"title\":\"Preferred number\"}}):_vm._e()],1)}),(_vm.country && _vm.country !== 'United Kingdom')?_c('div',{staticClass:\"clocks\"},[_c('div',{staticClass:\"clock world\"},[_c('span',{style:(_vm.getClockMarkerPos(1))}),_c('span',{style:(_vm.getClockMarkerPos(2))}),_c('span',{style:(_vm.getClockMarkerPos(3))}),_c('span',{style:(_vm.getClockMarkerPos(4))}),_c('span',{style:(_vm.getClockMarkerPos(5))}),_c('span',{style:(_vm.getClockMarkerPos(6))}),_c('span',{style:(_vm.getClockMarkerPos(7))}),_c('span',{style:(_vm.getClockMarkerPos(8))}),_c('span',{style:(_vm.getClockMarkerPos(9))}),_c('span',{style:(_vm.getClockMarkerPos(10))}),_c('span',{style:(_vm.getClockMarkerPos(11))}),_c('span',{style:(_vm.getClockMarkerPos(12))}),_c('div',{staticClass:\"hour\",style:(_vm.memberHourAngle)}),_c('div',{staticClass:\"minute\",style:(_vm.memberMinuteAngle)}),_c('div',{staticClass:\"digital-clock\"},[_vm._v(_vm._s(_vm.fullTime(_vm.memberTime)))]),_c('div',{staticClass:\"local-time\"},[_vm._v(\"Member Time \"),_c('br'),_vm._v(\"(\"+_vm._s(_vm.country)+\")\")])])]):_vm._e()]:_vm._e(),(_vm.contactDetails === 'Internal')?[(!_vm.selectedUser)?_c('div',{staticClass:\"internal\"},[_c('p',[_vm._v(\"Select Internal LCP contact\")]),_c('filter-table',{staticClass:\"user-select\",attrs:{\"columns\":_vm.columns,\"tableData\":_vm.users,\"fixedHeader\":false,\"showAll\":false,\"searchPlaceholder\":\"Filter users...\",\"height\":\"calc(100% - 2rem)\"},on:{\"rowClicked\":_vm.selectUser}})],1):_c('div',{staticClass:\"internal\"},[_c('label',[_vm._v(\"Internal LCP contact\")]),_c('div',{staticClass:\"selected-user\"},[_c('profile-photo',{attrs:{\"id\":_vm.selectedUser.userId,\"email\":_vm.selectedUser.email,\"color\":true}}),_c('label',[_vm._v(_vm._s(`${_vm.selectedUser.forenames} ${_vm.selectedUser.surname}`))]),(!_vm.incomingCall)?_c('btn',{staticClass:\"internal-phone\",attrs:{\"icon\":\"phone\"},on:{\"click\":function($event){return _vm.callClicked(_vm.selectedUser.email)}}}):_vm._e(),_c('btn',{staticClass:\"tertiary\",attrs:{\"icon\":\"times\"},on:{\"click\":function($event){return _vm.resetUser()}}},[_vm._v(\"Reselect\")])],1)])]:_vm._e(),(_vm.contactDetails === 'Other')?[_c('dynamic-ui-text',{attrs:{\"name\":\"Name\"},model:{value:(_vm.otherName),callback:function ($$v) {_vm.otherName=$$v},expression:\"otherName\"}}),_c('dynamic-ui-text',{attrs:{\"name\":\"Caller Capacity\"},model:{value:(_vm.otherCallerCapacity),callback:function ($$v) {_vm.otherCallerCapacity=$$v},expression:\"otherCallerCapacity\"}}),_c('dynamic-ui-text',{attrs:{\"name\":\"Company\"},model:{value:(_vm.otherCompany),callback:function ($$v) {_vm.otherCompany=$$v},expression:\"otherCompany\"}}),_c('dynamic-ui-phonenumber',{attrs:{\"dontOpenWindow\":true,\"name\":\"Phone number\",\"showPhone\":_vm.otherNumber.length && !_vm.incomingCall},on:{\"callClicked\":function($event){return _vm.callClicked(_vm.otherNumber)}},model:{value:(_vm.otherNumber),callback:function ($$v) {_vm.otherNumber=$$v},expression:\"otherNumber\"}})]:_vm._e()],2),(_vm.contactDetails === 'Other')?_c('div',{staticClass:\"group\"},[_c('dynamic-ui-boolean',{staticClass:\"wide-label\",attrs:{\"name\":\"Identity and authorisation checked\"},model:{value:(_vm.authChecked),callback:function ($$v) {_vm.authChecked=$$v},expression:\"authChecked\"}})],1):_vm._e(),(_vm.contactDetails === 'Other')?_c('div',{staticClass:\"help-text\"},[_vm._v(\" We must have written authorisation or authorisation from the member during the call to disclose information to an individual (eg a relative or advisor) and their identity must be checked. You should always make sure that the member's authorisation is wide enough to cover the information you are being asked to disclose and ideally you should check the member's file before providing any information and call them back on the telephone number provided on the member's written authority. \")]):_vm._e()]),_c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"group\"},[_c('h4',{staticClass:\"group-title\"},[_vm._v(\"Security\")]),_c('div',{staticClass:\"radio-group\"},[_c('div',{staticClass:\"radio-2-button\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.securityRequired),expression:\"securityRequired\"}],attrs:{\"type\":\"radio\",\"name\":\"security\",\"id\":\"rrequired\"},domProps:{\"value\":true,\"checked\":_vm._q(_vm.securityRequired,true)},on:{\"change\":function($event){_vm.securityRequired=true}}}),_c('label',{attrs:{\"for\":\"rrequired\"}},[_vm._v(\"Required\")])]),_c('div',{staticClass:\"radio-2-button\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.securityRequired),expression:\"securityRequired\"}],attrs:{\"type\":\"radio\",\"name\":\"security\",\"id\":\"rnotrequired\"},domProps:{\"value\":false,\"checked\":_vm._q(_vm.securityRequired,false)},on:{\"change\":function($event){_vm.securityRequired=false}}}),_c('label',{attrs:{\"for\":\"rnotrequired\"}},[_vm._v(\"Not required / completed\")])])]),(!_vm.securityPassed && _vm.contactDetails !== 'Internal')?_c('div',{staticClass:\"warning-text\"},[_vm._v(\" Security checks not yet complete: do not discuss any member specific details or information with the caller \")]):_vm._e(),(_vm.securityRequired)?[(_vm.contactDetails === 'Other')?_c('div',{staticClass:\"info-text\"},[_vm._v(\" The caller must be able to provide 4 of the following 5 pieces of information. \")]):_c('div',{staticClass:\"info-text\"},[_vm._v(\" The caller must be able to provide the following 5 pieces of information \")]),_c('div',{staticClass:\"security-detail\"},[_c('dynamic-ui-boolean',{attrs:{\"id\":\"FullName\"},model:{value:(_vm.securityChecks.fullName),callback:function ($$v) {_vm.$set(_vm.securityChecks, \"fullName\", $$v)},expression:\"securityChecks.fullName\"}}),_c('dynamic-ui-text',{attrs:{\"readOnly\":true,\"name\":\"Full name\"},model:{value:(_vm.memberDetailsForCall.security.fullName),callback:function ($$v) {_vm.$set(_vm.memberDetailsForCall.security, \"fullName\", $$v)},expression:\"memberDetailsForCall.security.fullName\"}})],1),_c('div',{staticClass:\"security-detail\"},[_c('dynamic-ui-boolean',{attrs:{\"id\":\"NINumber\"},model:{value:(_vm.securityChecks.niNumber),callback:function ($$v) {_vm.$set(_vm.securityChecks, \"niNumber\", $$v)},expression:\"securityChecks.niNumber\"}}),_c('dynamic-ui-text',{attrs:{\"readOnly\":true,\"name\":\"NI Number\"},model:{value:(_vm.memberDetailsForCall.security.niNumber),callback:function ($$v) {_vm.$set(_vm.memberDetailsForCall.security, \"niNumber\", $$v)},expression:\"memberDetailsForCall.security.niNumber\"}})],1),_c('div',{staticClass:\"security-detail\"},[_c('dynamic-ui-boolean',{attrs:{\"id\":\"DateOfBirth\"},model:{value:(_vm.securityChecks.dateOfBirth),callback:function ($$v) {_vm.$set(_vm.securityChecks, \"dateOfBirth\", $$v)},expression:\"securityChecks.dateOfBirth\"}}),_c('dynamic-ui-date',{attrs:{\"readOnly\":true,\"name\":\"Date of birth\"},model:{value:(_vm.memberDetailsForCall.security.dateOfBirth),callback:function ($$v) {_vm.$set(_vm.memberDetailsForCall.security, \"dateOfBirth\", $$v)},expression:\"memberDetailsForCall.security.dateOfBirth\"}})],1),_c('div',{staticClass:\"security-detail\"},[_c('dynamic-ui-boolean',{staticClass:\"inFront\",attrs:{\"id\":\"Address\"},model:{value:(_vm.securityChecks.address),callback:function ($$v) {_vm.$set(_vm.securityChecks, \"address\", $$v)},expression:\"securityChecks.address\"}}),_c('dynamic-ui-textarea',{staticClass:\"behind\",attrs:{\"readOnly\":true,\"name\":\"Address\",\"rows\":5},model:{value:(_vm.memberDetailsForCall.security.address),callback:function ($$v) {_vm.$set(_vm.memberDetailsForCall.security, \"address\", $$v)},expression:\"memberDetailsForCall.security.address\"}})],1),_c('div',{staticClass:\"note key-date-note\"},[_vm._v(\"One of the following dates (caller may only be able to give a rough date)\")]),_c('tabs',_vm._l((_vm.memberDetailsForCall.security.keyDates),function(servicePeriod){return _c('tab',{key:servicePeriod.description,staticClass:\"key-dates\",attrs:{\"title\":servicePeriod.description}},_vm._l((servicePeriod.keyDates),function(date,name){return _c('div',{key:name,staticClass:\"key-dates\"},[(date)?_c('dynamic-ui-boolean',{attrs:{\"id\":_vm.capitalize(name)},model:{value:(_vm.securityChecks['date-' + servicePeriod.description + ': ' + name]),callback:function ($$v) {_vm.$set(_vm.securityChecks, 'date-' + servicePeriod.description + ': ' + name, $$v)},expression:\"securityChecks['date-' + servicePeriod.description + ': ' + name]\"}}):_vm._e(),(date)?_c('dynamic-ui-date',{attrs:{\"readOnly\":true,\"name\":_vm.capitalize(name)},model:{value:(servicePeriod.keyDates[name]),callback:function ($$v) {_vm.$set(servicePeriod.keyDates, name, $$v)},expression:\"servicePeriod.keyDates[name]\"}}):_vm._e()],1)}),0)}),1)]:_vm._e()],2)]),_c('div',{staticClass:\"col\",class:{ 'wider': false }},[_c('div',{staticClass:\"group\"},[_c('h4',{staticClass:\"group-title\"},[_vm._v(\"Conversation\")]),(_vm.recordCalls && !_vm.incomingCall)?_c('div',{staticClass:\"call-recorded\"},[_c('dynamic-ui-boolean',{attrs:{\"name\":\"Informed individual that call would be recorded for training and monitoring purposes\"},model:{value:(_vm.informedRecording),callback:function ($$v) {_vm.informedRecording=$$v},expression:\"informedRecording\"}})],1):_vm._e(),_c('dynamic-ui-text',{attrs:{\"name\":\"Subject\",\"maxLength\":40,\"minLength\":3,\"title\":_vm.subject},model:{value:(_vm.subject),callback:function ($$v) {_vm.subject=$$v},expression:\"subject\"}}),_c('dynamic-ui-textarea',{key:\"conversation\",staticClass:\"conversation\",attrs:{\"spellCheck\":\"true\",\"name\":\"\",\"minLength\":1},model:{value:(_vm.conversation),callback:function ($$v) {_vm.conversation=$$v},expression:\"conversation\"}}),(_vm.requiredFields)?_c('div',{staticClass:\"info-text\",domProps:{\"innerHTML\":_vm._s(_vm.requiredFields)}}):_vm._e()],1)])]):_vm._e(),(_vm.isLoading)?_c('loading'):_vm._e(),_c('div',{staticClass:\"controls\"},[_c('div',[(_vm.createDeathNotificationButtonVisible)?_c('btn',{staticClass:\"primary death\",attrs:{\"text\":\"Create Death Notification\",\"icon\":\"coffin-cross\",\"confirmationTitle\":\"Create Death Notification?\",\"confirmButtonText\":\"Create\",\"confirmationMessage\":\"Are you sure you want to close this dialog and show the Create Death Notification screen?\",\"title\":\"Create Death Notification?\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.switchToDeathNotification()}}}):_vm._e()],1),_c('div',[_c('btn',{staticClass:\"secondary\",on:{\"click\":_vm.closeWindow}},[_vm._v(\"Cancel\")]),_c('btn',{staticClass:\"primary\",attrs:{\"disabled\":!_vm.canSave},on:{\"click\":_vm.save}},[_vm._v(\"Save record\")])],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/* eslint-disable @typescript-eslint/ban-ts-ignore */\r\nimport Vue from '~/vue';\r\n\r\nexport default Vue.extend({\r\n    data () {\r\n        return {\r\n            // eslint-disable-next-line vue/no-reserved-keys\r\n            _confirmChanges: true,\r\n            dirtyFunction: null,\r\n            root: this.$root.$children[0],\r\n        };\r\n    },\r\n    mounted () {\r\n        this.root = this.$root.$children[0];\r\n    },\r\n    destroyed () {\r\n        // this.root.setupDirtyFunction(null);\r\n    },\r\n    methods: {\r\n        confirmLeaveSetupDirtyFunction (func: () => void) {\r\n            // @ts-ignore\r\n            this.root.setupDirtyFunction(func);\r\n        },\r\n        confirmLeaveSetupClearFunction (func: () => void) {\r\n            // @ts-ignore\r\n            this.root.setupClearFunction(func);\r\n        },\r\n        confirmLeavePrompt (next: () => void, stop: unknown) {\r\n            // @ts-ignore\r\n\r\n            this.root.confirmUnsavedChanges(next, stop);\r\n        },\r\n    },\r\n});\r\n","\r\n\r\nimport * as STORE from 'common/store/storepaths';\r\nimport memberApi from 'common/api/member';\r\nimport User from 'common/models/user';\r\nimport { TimeZone, timeZones } from 'common/util/timezones';\r\nimport ConfirmLeaveDialog from 'common/mixins/confirmLeaveDialog';\r\nimport MemberPhoneCallDetails, { ExistingNumberValue } from 'common/models/memberPhoneCallDetails';\r\nimport { mixins } from '~/vue-class-component';\r\nimport { Column } from '~/@lcp/vue-filter-table';\r\nimport moment from '~/moment';\r\nimport {\r\n    Component, Vue, Prop, Watch,\r\n} from '~/vue-property-decorator';\r\nimport { capitalize } from '~/lodash';\r\n\r\n@Component({\r\n    name: 'member-telephone-conversation',\r\n    components: { },\r\n})\r\nexport default class MemberTelephoneConversation extends mixins(ConfirmLeaveDialog) {\r\n    @Prop() memberId!: string;\r\n\r\n    authChecked = false;\r\n\r\n    copyText = '';\r\n\r\n    columns= [\r\n        {\r\n            component: (row: User) => ({\r\n                component: 'profile-photo',\r\n                props: {\r\n                    id: row.userId,\r\n                    email: row.email,\r\n                    color: true,\r\n                },\r\n            }),\r\n        },\r\n        new Column<User>({\r\n            name: 'Name',\r\n            id: 'name',\r\n            value: (row) => `${row.forenames} ${row.surname}`,\r\n            filterable: true,\r\n        }),\r\n    ]\r\n\r\n    contactDetails = 'Member';\r\n\r\n    conversation = '';\r\n\r\n    incomingCall = true;\r\n\r\n    informedRecording = false;\r\n\r\n    isLoading = false;\r\n\r\n    jobId?: string;\r\n\r\n    localTime = moment();\r\n\r\n    localTimeUtc = moment().utc();\r\n\r\n    memberDetailsForCall: MemberPhoneCallDetails | null = null;\r\n\r\n    otherName = '';\r\n\r\n    otherCallerCapacity = '';\r\n\r\n    otherCompany = '';\r\n\r\n    otherNumber = '';\r\n\r\n    phoneNumber = '';\r\n\r\n    phoneNumberType = 'Not recorded';\r\n\r\n    isDirty = false;\r\n\r\n    securityChecks: Record<string, boolean> = {\r\n        address: false,\r\n        fullName: false,\r\n        niNumber: false,\r\n        dateOfBirth: false,\r\n    };\r\n\r\n    securityRequired= true;\r\n\r\n    selectedUser: User | null=null;\r\n\r\n    subject= '';\r\n\r\n    telephoneTypes: Array<string> = [\r\n        'Mobile',\r\n        'Work',\r\n        'Home',\r\n        'Other (Not saved)',\r\n        'Not recorded',\r\n    ];\r\n\r\n    timeOfCall: Date = new Date();\r\n\r\n    async mounted () {\r\n        memberApi.startCall(this.currentClient.clientId, Number(this.memberId))\r\n            .then((response: MemberPhoneCallDetails) => {\r\n                if (response.existingNumbers) {\r\n                    Object.keys(response.existingNumbers).forEach((numberType) => {\r\n                        if (response.existingNumbers[numberType]) {\r\n                            response.existingNumbers[numberType] = {\r\n                                value: response.existingNumbers[numberType] as string,\r\n                                selected: false,\r\n                            };\r\n                        } else {\r\n                            delete response.existingNumbers[numberType];\r\n                        }\r\n                    });\r\n                }\r\n\r\n                if (response.security) {\r\n                    response.security.keyDates.forEach((servicePeriod) => {\r\n                        Object.keys(servicePeriod.keyDates).forEach((date) => {\r\n                            if (servicePeriod.keyDates[date]) {\r\n                                Vue.set(this.securityChecks, `date-${servicePeriod.description}: ${date}`, false);\r\n                            }\r\n                        });\r\n                    });\r\n                }\r\n\r\n                this.memberDetailsForCall = response;\r\n                window.document.title = this.title;\r\n\r\n                this.getUsers();\r\n                this.isLoading = false;\r\n                this.$nextTick(() => {\r\n                    this.isDirty = false;\r\n                });\r\n            });\r\n\r\n        this.confirmLeaveSetupDirtyFunction(() => this.isDirty);\r\n        this.confirmLeaveSetupClearFunction(() => { this.isDirty = false; });\r\n    }\r\n\r\n    get title () {\r\n        return `Member Data - Telephone conversation - ${this.memberId} ${this.memberDetailsForCall?.security?.fullName ?? ''} - ${this.formatDate(this.timeOfCall)}`;\r\n    }\r\n\r\n    get canSave () {\r\n        return !this.requiredFields;\r\n    }\r\n\r\n    get country () {\r\n        return this.memberDetailsForCall?.country;\r\n    }\r\n\r\n    get currentClient () {\r\n        return this.$store.getters[STORE.GET_CURRENT_CLIENT];\r\n    }\r\n\r\n    get localSecondsAngle () {\r\n        return { transform: `rotate(${((360 / 60) * Number(this.localTime.format('s'))) + 180}deg)` };\r\n    }\r\n\r\n    get localMinuteAngle () {\r\n        return { transform: `rotate(${((360 / 60) * Number(this.localTime.format('m'))) + 180}deg)` };\r\n    }\r\n\r\n    get localHourAngle () {\r\n        return { transform: `rotate(${((360 / 12) * Number(this.localTime.format('h'))) + 180}deg)` };\r\n    }\r\n\r\n    get memberTime () {\r\n        return this.localTimeUtc.add(timeZones.find((a: TimeZone) => a.name === this.country)?.gmt || 0, 'hour');\r\n    }\r\n\r\n    get hasExistingNumbers () {\r\n        return Object.values(this.memberDetailsForCall?.existingNumbers || {}).filter((a) => a).length;\r\n    }\r\n\r\n    get memberSecondsAngle () {\r\n        return { transform: `rotate(${((360 / 60) * Number(this.memberTime.format('s'))) + 180}deg)` };\r\n    }\r\n\r\n    get memberMinuteAngle () {\r\n        return { transform: `rotate(${((360 / 60) * Number(this.memberTime.format('m'))) + 180}deg)` };\r\n    }\r\n\r\n    get memberHourAngle () {\r\n        return { transform: `rotate(${((360 / 12) * Number(this.memberTime.format('h'))) + 180}deg)` };\r\n    }\r\n\r\n    get numberToSave () {\r\n        if (this.contactDetails === 'Internal') {\r\n            return { number: '', type: '' };\r\n        }\r\n\r\n        if (this.selectedNumber && this.selectedNumber.number) {\r\n            return { number: this.selectedNumber.number, type: this.selectedNumber.type };\r\n        }\r\n\r\n        if (this.phoneNumberType === 'Other (Not saved)') {\r\n            return { number: this.phoneNumber, type: 'Other' };\r\n        }\r\n\r\n        return this.phoneNumberType !== 'Not recorded' ? { number: this.phoneNumber, type: this.phoneNumberType } : { number: '', type: 'Other' };\r\n    }\r\n\r\n    get recordCalls () {\r\n        return this.currentClient.name && this.currentClient.name.indexOf('Tetley') > -1;\r\n    }\r\n\r\n    get requiredFields () {\r\n        const fieldsRequired = [];\r\n\r\n        if (this.contactDetails === 'Member') {\r\n            if (!this.selectedNumber && !this.phoneNumber.length && this.phoneNumberType !== 'Not recorded') {\r\n                fieldsRequired.push('select or enter the <b>phone number</b> for the call');\r\n            }\r\n        } else if (this.contactDetails === 'Internal') {\r\n            if (!this.selectedUser) {\r\n                fieldsRequired.push('select an <b> LCP contact</b> for the call');\r\n            }\r\n        } else if (this.contactDetails === 'Other') {\r\n            if (!this.otherName.length) {\r\n                fieldsRequired.push('enter the <b>caller name</b> for the call');\r\n            }\r\n            if (!this.otherCallerCapacity.length) {\r\n                fieldsRequired.push('enter the <b>caller capacity</b> for the call');\r\n            }\r\n            if (!this.otherNumber.length) {\r\n                fieldsRequired.push('enter the <b>phone number</b> for the call');\r\n            }\r\n        }\r\n\r\n        if (!this.subject.length) {\r\n            fieldsRequired.push('enter a <b>subject</b>');\r\n        }\r\n\r\n        if (!this.conversation.length) {\r\n            fieldsRequired.push('enter details for the <b>conversation</b>');\r\n        }\r\n\r\n        if (this.contactDetails === 'Other' && !this.authChecked && this.securityRequired) {\r\n            fieldsRequired.push('make sure that <b>identity and authorisation</b> have been checked');\r\n        }\r\n\r\n        if (!this.securityPassed && this.securityRequired && this.memberId) {\r\n            fieldsRequired.push('ensure that <b>security</b> is passed or marked as \"Not required / completed\"');\r\n        }\r\n\r\n        if (!fieldsRequired.length) return null;\r\n\r\n        const fields = fieldsRequired.length === 1 ? fieldsRequired[0] : `${fieldsRequired.slice(0, -1).join(', ')} and ${fieldsRequired[fieldsRequired.length - 1]}`;\r\n\r\n        return `Please ${fields} to submit the form`;\r\n    }\r\n\r\n    get securityPassed () {\r\n        if (!this.securityRequired) {\r\n            return false;\r\n        }\r\n\r\n        let count = 0;\r\n        let hasDate = false;\r\n\r\n        Object.keys(this.securityChecks).forEach((key) => {\r\n            if (key.startsWith('date-')) {\r\n                if (hasDate && this.securityChecks[key]) {\r\n                    return;\r\n                } if (this.securityChecks[key]) {\r\n                    hasDate = true;\r\n                }\r\n            }\r\n            count += this.securityChecks[key] ? 1 : 0;\r\n        });\r\n        return (this.contactDetails === 'Other' && count > 3) || count > 4;\r\n    }\r\n\r\n    get selectedNumber () {\r\n        let selectedNumber = null;\r\n        let selectedNumberType = null;\r\n\r\n        if (this.memberDetailsForCall == null) {\r\n            return null;\r\n        }\r\n\r\n        const memberDetailsForCall = { ...this.memberDetailsForCall };\r\n\r\n        Object.keys(memberDetailsForCall.existingNumbers).forEach((numberType: string) => {\r\n            if ((memberDetailsForCall.existingNumbers[numberType] as ExistingNumberValue).selected) {\r\n                selectedNumber = (memberDetailsForCall.existingNumbers[numberType] as ExistingNumberValue).value;\r\n                selectedNumberType = numberType;\r\n            }\r\n        });\r\n        if (!selectedNumber || !selectedNumberType) return null;\r\n        return {\r\n            number: selectedNumber, type: selectedNumberType,\r\n        };\r\n    }\r\n\r\n    get users () {\r\n        return this.$store.getters[STORE.GET_ALL_USERS];\r\n    }\r\n\r\n    get userToSave () {\r\n        if (this.contactDetails !== 'Internal') {\r\n            return {\r\n                userId: null, email: '', forenames: '', surname: '',\r\n            };\r\n        }\r\n\r\n        return this.selectedUser;\r\n    }\r\n\r\n    get verifiedSecurityItems () {\r\n        const items: Record<string, boolean> = {};\r\n        Object.keys(this.securityChecks).forEach((key) => {\r\n            if (this.securityChecks[key]) {\r\n                items[key] = true;\r\n            }\r\n        });\r\n        return items;\r\n    }\r\n\r\n    callClicked (number: ExistingNumberValue | string, select: boolean) {\r\n        const phoneNumber = (number as ExistingNumberValue).value ? (number as ExistingNumberValue).value : number as string;\r\n        const telNo = phoneNumber.startsWith('0') ? phoneNumber.replace('0', '+44').replace(' ', '') : phoneNumber.replace(' ', '');\r\n        this.copyText = telNo;\r\n        if (!this.recordCalls) {\r\n            if (select) {\r\n                (number as ExistingNumberValue).selected = true;\r\n            }\r\n            this.copy(telNo);\r\n            return;\r\n        }\r\n\r\n        if (select) {\r\n            (number as ExistingNumberValue).selected = true;\r\n        }\r\n        window.open(`outboundcall:tel:${telNo};service=sip:lcp-tetley-outbound@emea.luware.cloud;activity=Outbound Call`, '_blank', 'location=0');\r\n    }\r\n\r\n    copy (text: string) {\r\n        this.copyText = text;\r\n        this.$nextTick(() => {\r\n            const copyText = document.getElementById('copyField') as HTMLInputElement;\r\n            copyText.select();\r\n            copyText.setSelectionRange(0, 99999);\r\n            document.execCommand('copy');\r\n\r\n            this.$store.dispatch('messages/addMessage', {\r\n                status: 'Success', title: 'Copy successful', popup: true, message: `Value has been copied to the clipboard<br/><br/><span class=\"select\">${text}</span>`,\r\n            });\r\n        });\r\n    }\r\n\r\n    capitalize (text: string) {\r\n        return capitalize(text);\r\n    }\r\n\r\n    closeWindow () {\r\n        window.close();\r\n    }\r\n\r\n    formatDate (date: Date) {\r\n        return moment(date).format('DD/MM/YYYY HH:mm');\r\n    }\r\n\r\n    fullTime (date: Date) {\r\n        return moment(date).format('ddd DD MMM YYYY hh:mm A');\r\n    }\r\n\r\n    getClockMarkerPos (index: number) {\r\n        const minDeg = (index / 12) * 360;\r\n        const minRad = minDeg * (Math.PI / 180);\r\n        const x = 55 * Math.cos(minRad) + 57;\r\n        const y = 55 * Math.sin(minRad) + 54;\r\n        return { transform: `translateX(${x}px) translateY(${y}px) rotate(${minDeg - 90}deg)` };\r\n    }\r\n\r\n    getUsers () {\r\n        if (!this.users.length) {\r\n            const pulseApiUrl = this.$store.getters[STORE.GET_SITE_CONFIGURATION]['pulse-api.url'];\r\n            this.$store.dispatch(STORE.SET_ALL_USERS, pulseApiUrl);\r\n        }\r\n    }\r\n\r\n    resetUser () {\r\n        this.selectedUser = null;\r\n    }\r\n\r\n    save () {\r\n        this.isLoading = true;\r\n        this.isDirty = false;\r\n        const postData = {\r\n            jobId: this.jobId,\r\n            time: moment(this.timeOfCall).format('YYYY-MM-DDTHH:mm:ssZ'),\r\n            data: {\r\n                number: this.numberToSave.number,\r\n                numberType: this.numberToSave.type,\r\n                internalContactId: this.userToSave ? this.userToSave?.userId : null,\r\n                internalContactName: this.userToSave ? `${this.userToSave.forenames} ${this.userToSave.surname}` : null,\r\n                internalContactEmail: this.userToSave?.email,\r\n                isMember: this.contactDetails === 'Member',\r\n                isInternal: this.contactDetails === 'Internal',\r\n                memberId: this.memberId,\r\n                otherCallerDetails: {\r\n                    capacity: this.otherCallerCapacity,\r\n                    name: this.otherName,\r\n                    company: this.otherCompany,\r\n                    number: this.otherNumber,\r\n                    identityChecked: this.authChecked,\r\n                },\r\n                subject: this.subject,\r\n                conversation: this.conversation,\r\n                securityRequired: this.securityRequired,\r\n                incomingCall: this.incomingCall,\r\n                informedRecording: this.informedRecording,\r\n                verifiedSecurityItems: this.securityRequired ? Object.keys(this.verifiedSecurityItems).map((a) => a.replace('date-', '')) : [],\r\n                identityAndAuthorisationChecked: this.authChecked,\r\n            },\r\n        };\r\n\r\n        memberApi.saveCall(this.currentClient.clientId, Number(this.memberId), postData).then(() => {\r\n            this.isLoading = false;\r\n            this.closeWindow();\r\n        }).catch(() => {\r\n            this.isLoading = false;\r\n        });\r\n    }\r\n\r\n    selectUser (row: User) {\r\n        this.selectedUser = row;\r\n    }\r\n\r\n    get pulseApiUrl () {\r\n        return this.$store.getters[STORE.GET_SITE_CONFIGURATION][STORE.PULSE_API_URL] ?? '';\r\n    }\r\n\r\n    get createDeathNotificationButtonVisible () {\r\n        return this.memberDetailsForCall?.canCreateDeathNotification === true\r\n            && this.$store.getters[STORE.GET_SITE_CONFIGURATION]['feature.md.death.enabled'] === 'true'\r\n            && !this.$route.query.hideIntro;\r\n    }\r\n\r\n    switchToDeathNotification () {\r\n        localStorage.setItem(`${this.memberId}-death`, 'true');\r\n        window.close();\r\n    }\r\n\r\n    @Watch('requiredFields')\r\n    @Watch('securityChecks', { deep: true })\r\n    @Watch('selectedNumber')\r\n    requiredFieldsChanged () {\r\n        this.isDirty = true;\r\n    }\r\n}\r\n\r\n","import mod from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./member-telephone-conversation.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./member-telephone-conversation.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./member-telephone-conversation.vue?vue&type=template&id=79a347a3&scoped=true&\"\nimport script from \"./member-telephone-conversation.vue?vue&type=script&lang=ts&\"\nexport * from \"./member-telephone-conversation.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./member-telephone-conversation.vue?vue&type=style&index=0&id=79a347a3&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"79a347a3\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"members-search\",class:{ disabled: _vm.disabled }},[_c('dynamic-ui-filterdropdown',{attrs:{\"value\":_vm.selectedMemberId,\"options\":_vm.options.length ? _vm.options : _vm.members,\"filterable\":!_vm.options.length,\"valueKey\":\"memberId\",\"filterMethod\":_vm.filterMethod,\"name\":_vm.name || 'Member',\"placeholder\":_vm.options.length ? '' : 'Search...',\"disabled\":_vm.disabled},on:{\"input\":_vm.selectMember,\"search\":_vm.onSearch},scopedSlots:_vm._u([{key:\"option\",fn:function({ option }){return [(option)?_c('div',{staticClass:\"member row no-wrap\",attrs:{\"title\":option.forenames + ' ' + option.surname}},[_c('div',{staticClass:\"member-id\"},[_vm._v(_vm._s(option.memberId))]),_c('div',{staticClass:\"names\"},[_vm._v(_vm._s(option.forenames)+\" \"+_vm._s(option.surname))]),_c('div',{staticClass:\"dob\"},[_vm._v(_vm._s(_vm._f(\"localDate\")(option.dateBirth)))])]):_vm._e()]}},{key:\"selected-option\",fn:function({ option }){return [(option)?_c('div',{staticClass:\"member selected-member row no-wrap\",attrs:{\"title\":option.forenames + ' ' + option.surname}},[_c('div',{staticClass:\"member-id\"},[_vm._v(_vm._s(option.memberId))]),_c('div',{staticClass:\"names\"},[_vm._v(_vm._s(option.forenames)+\" \"+_vm._s(option.surname))]),_c('div',{staticClass:\"dob\"},[_vm._v(_vm._s(_vm._f(\"localDate\")(option.dateBirth)))])]):_vm._e()]}}])}),_c('btn',{staticClass:\"primary advanced-search\",attrs:{\"icon\":\"user\",\"secondaryIcon\":\"search\",\"title\":\"Advanced search\"},on:{\"click\":function($event){_vm.showAdvancedSearch = true}}}),(_vm.loading)?_c('loading'):_vm._e(),(_vm.showAdvancedSearch)?_c('modal',{attrs:{\"title\":\"Advanced search\",\"width\":\"1000\",\"showFooter\":false,\"icon\":\"search\"},model:{value:(_vm.showAdvancedSearch),callback:function ($$v) {_vm.showAdvancedSearch=$$v},expression:\"showAdvancedSearch\"}},[_c('template',{slot:\"content\"},[_c('div',{staticClass:\"advanced-search-modal\"},[_c('member-advanced-search',{attrs:{\"clientId\":_vm.clientId},on:{\"selectedMemberChange\":_vm.advancedMemberSelected}})],1)])],2):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./members-dropdown.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./members-dropdown.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./members-dropdown.vue?vue&type=template&id=b326ec8c&scoped=true&\"\nimport script from \"./members-dropdown.vue?vue&type=script&lang=js&\"\nexport * from \"./members-dropdown.vue?vue&type=script&lang=js&\"\nimport style0 from \"./members-dropdown.vue?vue&type=style&index=0&id=b326ec8c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"b326ec8c\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (!_vm.popupMessage)?_c('ul',{staticClass:\"messages\"},[_c('input',{attrs:{\"readonly\":\"\",\"id\":\"messageToCopy\"},domProps:{\"value\":_vm.selectedError}}),_c('li',{staticClass:\"top-message\"},[(_vm.messages.length > 1)?_c('div',{staticClass:\"background\"},[_c('div',{staticClass:\"title-bar\"},[_vm._v(\" Messages \"),_c('button',{staticClass:\"close\",attrs:{\"title\":\"Close all messages.\"},on:{\"click\":_vm.dismissAllMessages}},[_c('font-awesome-icon',{attrs:{\"icon\":\"check-circle\"}})],1)])]):_vm._e()]),_vm._l((_vm.messages),function(message){return _c('li',{key:message.id,staticClass:\"message\",class:{ error: message.isError, warning: message.isWarning, permissions: message.status === 403 }},[_c('div',{staticClass:\"background\"},[_c('div',{staticClass:\"title-bar\"},[(message.status !== 403)?_c('span',[_vm._v(\" \"+_vm._s(message.isError ? 'Error' : message.title)+\" \")]):_c('span',[_vm._v(\" You do not have permission \")]),_c('button',{staticClass:\"close\",attrs:{\"title\":\"Close message\"},on:{\"click\":function($event){return _vm.dismissMessage(message.id)}}},[_c('font-awesome-icon',{attrs:{\"icon\":\"times\"}})],1)]),_c('div',{staticClass:\"message-text\"},[(message.status === 403)?_c('div',{staticClass:\"permissions-text\"},[_c('font-awesome-icon',{attrs:{\"icon\":\"lock\"}}),_vm._v(\" \"+_vm._s(message.data)+\" \")],1):_c('span',[_vm._v(\" \"+_vm._s(message.data ? message.data : message.message)+\" \")])]),(message.isError && message.status !== 403 && message.status !== 400)?_c('div',{staticClass:\"copy\",on:{\"click\":function($event){return _vm.copyMessage(message)}}},[_c('span',[_vm._v(\"Copy error to clipboard\")]),_c('font-awesome-icon',{attrs:{\"icon\":\"clipboard\"}})],1):_vm._e()])])})],2):_c('modal',{attrs:{\"title\":_vm.popupMessage.title,\"value\":true},on:{\"modalClosed\":function($event){return _vm.dismissMessage(_vm.popupMessage.id)}}},[_c('template',{slot:\"content\"},[_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.popupMessage.data ? _vm.popupMessage.data : _vm.popupMessage.message)}})]),_c('template',{slot:\"footer\"},[_c('btn',{staticClass:\"primary\",attrs:{\"text\":\"Ok\"},on:{\"click\":function($event){return _vm.dismissMessage(_vm.popupMessage.id)}}})],1)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./messages.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./messages.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./messages.vue?vue&type=template&id=6d762744&scoped=true&\"\nimport script from \"./messages.vue?vue&type=script&lang=js&\"\nexport * from \"./messages.vue?vue&type=script&lang=js&\"\nimport style0 from \"./messages.vue?vue&type=style&index=0&id=6d762744&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"6d762744\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.value),expression:\"value\"}],class:{ 'modal-container': !_vm.inline }},[_c('div',{class:{ modal: !_vm.inline },style:({ width: _vm.width + 'px'})},[(!_vm.inline)?_c('div',{staticClass:\"modal-header\"},[_c('h6',[_vm._v(_vm._s(_vm.title))]),(!_vm.disableClose)?_c('font-awesome-icon',{staticClass:\"close\",attrs:{\"icon\":\"times\"},on:{\"click\":_vm.closeModal}}):_vm._e(),(_vm.icon && _vm.icon.length)?_c('div',{staticClass:\"header-icon\"},[_c('font-awesome-icon',{attrs:{\"icon\":_vm.icon}}),(_vm.secondaryIcon)?_c('font-awesome-icon',{class:{ inverse: _vm.inverseSecondaryIcon },attrs:{\"icon\":_vm.secondaryIcon}}):_vm._e()],1):_vm._e()],1):_vm._e(),_c('div',{class:{ 'modal-content': !_vm.inline },style:({ height: _vm.contentHeight + 'px' })},[_vm._t(\"content\")],2),(_vm.showFooter)?_c('div',{class:{ 'modal-footer': !_vm.inline }},[_vm._t(\"footer\")],2):_vm._e()])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./modal.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./modal.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./modal.vue?vue&type=template&id=afa6ebf8&scoped=true&\"\nimport script from \"./modal.vue?vue&type=script&lang=js&\"\nexport * from \"./modal.vue?vue&type=script&lang=js&\"\nimport style0 from \"./modal.vue?vue&type=style&index=0&id=afa6ebf8&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"afa6ebf8\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"phone-log-container light\"},[(_vm.isLoading || _vm.isSaving)?_c('loading'):_vm._e(),_c('input',{attrs:{\"readonly\":\"\",\"id\":\"copyField\"},domProps:{\"value\":_vm.copyText}}),(_vm.selectedCall)?_c('div',{staticClass:\"row phone-viewer\"},[(_vm.isEmbedded)?_c('div',{staticClass:\"edit-buttons\"},[_c('div',{staticClass:\"left\"},[(!_vm.isEditing)?_c('btn',{staticClass:\"tertiary edit\",attrs:{\"icon\":\"edit\",\"text\":\"Edit\",\"disabled\":!_vm.canEdit},on:{\"click\":_vm.onEdit}}):_vm._e(),(!_vm.isEditing)?_c('btn',{staticClass:\"delete\",attrs:{\"icon\":\"times\",\"text\":\"Delete\",\"confirmationMessage\":\"Are you sure you want to delete this phone record?\",\"confirmationTitle\":\"Delete phone record?\",\"confirmButtonText\":\"Delete phone record\",\"disabled\":!_vm.canEdit},on:{\"click\":_vm.onDelete}}):_vm._e(),(!_vm.isEditing)?_c('btn',{staticClass:\"tertiary duplicate\",attrs:{\"icon\":\"copy\",\"confirmationMessage\":\"Are you sure you want to duplicate this phone record?\",\"confirmationTitle\":\"Duplicate phone record?\",\"confirmButtonText\":\"Duplicate phone record\",\"text\":\"Duplicate\",\"disabled\":!_vm.canEdit},on:{\"click\":_vm.onDuplicate}}):_vm._e(),(_vm.isEditing)?_c('btn',{staticClass:\"primary save\",attrs:{\"icon\":\"save\",\"text\":\"Save\",\"disabled\":!_vm.canSave},on:{\"click\":_vm.onSave}}):_vm._e(),(_vm.isEditing)?_c('btn',{staticClass:\"secondary cancel\",attrs:{\"icon\":\"times\",\"text\":\"Cancel\",\"disabled\":!_vm.isEditing},on:{\"click\":_vm.onCancel}}):_vm._e()],1),_c('div',{staticClass:\"right\"},[(_vm.history)?_c('div',{staticClass:\"edit-history\"},[_c('label',{staticClass:\"edit-history-label\"},[_vm._v(\"History\")]),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selectedHistory),expression:\"selectedHistory\"}],attrs:{\"disabled\":_vm.isEditing},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.selectedHistory=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.history),function(data,index){return _c('option',{key:index,domProps:{\"value\":data}},[_vm._v(\" \"+_vm._s(data.desc)+\" \")])}),0)]):_vm._e(),_c('copy-link-button',{attrs:{\"url\":_vm.copyLinkValue}})],1)]):_vm._e(),(_vm.selectedCall)?_c('div',{staticClass:\"row\"},[_c('correspondenceJob',{attrs:{\"assignedJob\":_vm.assignedJob,\"showAssignmentOptions\":true},on:{\"jobAssignment\":function($event){_vm.showJobAssign = true},\"jobUnassignment\":_vm.onUnassignJob,\"returnToIndex\":_vm.onReturnToIndex}})],1):_vm._e(),_c('div',{staticClass:\"col left-col\"},[(!_vm.isEmbedded)?_c('div',{staticClass:\"edit-buttons\"},[(!_vm.isEditing)?_c('btn',{staticClass:\"tertiary edit\",attrs:{\"icon\":\"edit\",\"text\":\"Edit\",\"disabled\":!_vm.canEdit},on:{\"click\":_vm.onEdit}}):_vm._e(),(!_vm.isEditing)?_c('btn',{staticClass:\"secondary delete\",attrs:{\"icon\":\"times\",\"text\":\"Delete\",\"disabled\":!_vm.canEdit},on:{\"click\":_vm.onDelete}}):_vm._e(),(!_vm.isEditing)?_c('btn',{staticClass:\"tertiary duplicate\",attrs:{\"icon\":\"copy\",\"text\":\"Duplicate\",\"disabled\":!_vm.canEdit},on:{\"click\":_vm.onDuplicate}}):_vm._e(),(_vm.isEditing)?_c('btn',{staticClass:\"primary save\",attrs:{\"icon\":\"save\",\"text\":\"Save\",\"disabled\":!_vm.canSave},on:{\"click\":_vm.onSave}}):_vm._e(),(_vm.isEditing)?_c('btn',{staticClass:\"secondary cancel\",attrs:{\"icon\":\"times\",\"text\":\"Cancel\",\"disabled\":!_vm.isEditing},on:{\"click\":_vm.onCancel}}):_vm._e(),(!_vm.isEmbedded)?_c('copy-link-button',{attrs:{\"url\":_vm.copyLinkValue}}):_vm._e()],1):_vm._e(),_c('modal',{attrs:{\"title\":_vm.assignedJob ? 'Reassign?' : 'Assign?',\"width\":800},model:{value:(_vm.showJobAssign),callback:function ($$v) {_vm.showJobAssign=$$v},expression:\"showJobAssign\"}},[_c('template',{slot:\"content\"},[_c('job-selector-pulse',{attrs:{\"reassigning\":!!_vm.assignedJob,\"removePrefix\":_vm.jobPrefix,\"memberId\":_vm.memberId,\"clientLevel\":!_vm.memberId,\"systemMemberId\":_vm.systemMemberId},on:{\"change\":_vm.jobSelectionChanged},model:{value:(_vm.newJobGuid),callback:function ($$v) {_vm.newJobGuid=$$v},expression:\"newJobGuid\"}})],1),_c('template',{slot:\"footer\"},[_c('div',{staticClass:\"controls\"},[_c('btn',{staticClass:\"secondary\",attrs:{\"text\":\"Cancel\",\"disabled\":_vm.isLoading},on:{\"click\":function($event){_vm.showJobAssign = false}}}),_c('btn',{staticClass:\"primary\",attrs:{\"text\":_vm.assignedJob ? 'Reassign' : 'Assign',\"disabled\":_vm.isLoading || _vm.reAssignMatches || !_vm.newJobGuid},on:{\"click\":_vm.onAssignJob}})],1)])],2),_c('dynamic-ui-text',{attrs:{\"name\":\"Subject\",\"disabled\":!_vm.isEditing,\"title\":_vm.selectedCall.data.subject},model:{value:(_vm.subject),callback:function ($$v) {_vm.subject=$$v},expression:\"subject\"}}),_c('dynamic-ui-textarea',{staticClass:\"conversation\",attrs:{\"name\":\"Conversation\",\"readOnly\":!_vm.isEditing},model:{value:(_vm.conversation),callback:function ($$v) {_vm.conversation=$$v},expression:\"conversation\"}})],1),_c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"date\"},[_vm._v(\" \"+_vm._s(_vm.formatDate(_vm.selectedCall.time))+\" \")]),_c('div',{staticClass:\"input-field\"},[_c('label',[_vm._v(\"Call logged by\")]),_c('profile-photo',{attrs:{\"id\":_vm.selectedCall.userId,\"color\":true}}),_c('span',{staticClass:\"name\"},[_vm._v(\" \"+_vm._s(_vm.callTakenByName)+\" \")])],1),_c('dynamic-ui-boolean',{attrs:{\"name\":\"Incoming call\",\"disabled\":true,\"value\":_vm.selectedCall.data.incomingCall}}),(_vm.contactType==='Member')?_c('div',[_c('dynamic-ui-text',{attrs:{\"name\":\"Call with\",\"value\":\"Member\",\"disabled\":true}}),_c('dynamic-ui-phonenumber',{attrs:{\"name\":\"Phone number\",\"disabled\":true,\"showPhone\":!!_vm.selectedCall.data.number,\"value\":_vm.selectedCall.data.number,\"dontOpenWindow\":true},on:{\"callClicked\":function($event){return _vm.callClicked(_vm.selectedCall.data.number)}}}),(_vm.selectedCall.data.number)?_c('dynamic-ui-text',{attrs:{\"name\":\"Phone number type\",\"disabled\":true,\"value\":_vm.selectedCall.data.numberType}}):_c('dynamic-ui-text',{attrs:{\"name\":\"Phone number type\",\"disabled\":true,\"value\":\"Not recorded\"}})],1):_vm._e(),(_vm.contactType==='Internal' || _vm.selectedCall.data.internalContactEmail)?_c('div',{staticClass:\"internal\"},[_c('dynamic-ui-text',{attrs:{\"name\":\"Call with\",\"value\":_vm.selectedCall.data.internalContactName,\"disabled\":true}}),_c('profile-photo',{attrs:{\"id\":_vm.selectedCall.data.internalContactId,\"email\":_vm.selectedCall.data.internalContactEmail,\"color\":true}})],1):_vm._e(),(_vm.contactType==='Other' && !_vm.selectedCall.data.internalContactEmail)?_c('div',[_c('dynamic-ui-text',{attrs:{\"name\":\"Call with\",\"value\":_vm.selectedCall.data.otherCallerDetails.name,\"disabled\":true}}),_c('dynamic-ui-text',{attrs:{\"name\":\"Caller capacity\",\"value\":_vm.selectedCall.data.otherCallerDetails.capacity,\"disabled\":true}}),_c('dynamic-ui-text',{attrs:{\"name\":\"Caller company\",\"value\":_vm.selectedCall.data.otherCallerDetails.company,\"disabled\":true}}),_c('dynamic-ui-text',{attrs:{\"name\":\"Phone number\",\"value\":_vm.selectedCall.data.otherCallerDetails.number,\"disabled\":true}}),(_vm.memberId)?_c('dynamic-ui-boolean',{attrs:{\"name\":\"Identity and Authorisation checked\",\"value\":_vm.selectedCall.data.otherCallerDetails.identityChecked,\"disabled\":true}}):_vm._e()],1):_vm._e(),(_vm.memberId)?_c('div',[(_vm.recordCalls && !_vm.selectedCall.data.incomingCall)?_c('dynamic-ui-boolean',{attrs:{\"name\":\"Informed individual that call would be recorded for training and monitoring purposes\",\"disabled\":true,\"value\":_vm.selectedCall.data.informedRecording}}):_vm._e(),_c('dynamic-ui-boolean',{attrs:{\"name\":\"Security checked\",\"disabled\":true,\"value\":_vm.selectedCall.data.securityRequired}}),(_vm.selectedCall.data.verifiedSecurityItems)?_c('dynamic-ui-textarea',{attrs:{\"value\":_vm.verifiedSecurityItems,\"name\":\"Verified security items\",\"rows\":_vm.selectedCall.data.verifiedSecurityItems.length + 2,\"readOnly\":true}}):_vm._e()],1):_vm._e()],1)]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport memberApi from 'common/api/member';\r\nimport jobApi from 'common/api/jobApi';\r\nimport inboxApi from 'common/api/inboxApi';\r\nimport Client from 'common/models/client';\r\nimport * as STORE from 'common/store/storepaths';\r\nimport PhoneCall from 'common/models/phoneCall';\r\nimport Status from 'common/util/pulseStatusEnum';\r\nimport JobSummary from 'common/models/jobSummary';\r\nimport Guid from 'common/util/guid';\r\nimport JobSelectorPulse from 'common/components/job-selector-pulse.vue';\r\nimport PhoneCallHistory from 'common/models/phoneCallHistory';\r\nimport PhoneCallDuplicatedInfo from 'common/models/phoneCallDuplicatedInfo';\r\nimport clientsApi from 'common/api/clientsApi';\r\nimport moment from '~/moment';\r\nimport {\r\n    Component, Vue, Prop, Watch,\r\n} from '~/vue-property-decorator';\r\n\r\n@Component({\r\n    name: 'phoneViewer',\r\n    components: {\r\n        JobSelectorPulse,\r\n    },\r\n})\r\nexport default class PhoneViewer extends Vue {\r\n    @Prop()\r\n    callNumber!: string;\r\n\r\n    @Prop()\r\n    phoneCallMemberId!: number;\r\n\r\n    selectedCall?: PhoneCall | null = null;\r\n\r\n    selectedHistory?: PhoneCallHistory | null = null;\r\n\r\n    isLoading = true;\r\n\r\n    isSaving = false;\r\n\r\n    isEditing = false;\r\n\r\n    subject = '';\r\n\r\n    conversation = '';\r\n\r\n    jobReference?: string;\r\n\r\n    oldSubject = '';\r\n\r\n    oldConversation = '';\r\n\r\n    newJobGuid?: Guid | null = null;\r\n\r\n    previousJobReference: unknown = null; // TODO\r\n\r\n    showJobAssign = false; // TODO\r\n\r\n    assignedJob: JobSummary | null = null\r\n\r\n    copyLinkValue = ''\r\n\r\n    copyText = '';\r\n\r\n    jobs: Array<JobSummary> = [];\r\n\r\n    async mounted () {\r\n        this.isLoading = true;\r\n        if (!this.clients?.length) {\r\n            await this.$store.dispatch('client/getClients');\r\n        }\r\n        if (this.currentClient && !this.$store.getters[STORE.GET_CURRENT_CLIENT]) {\r\n            await this.$store.dispatch(STORE.SET_CURRENT_CLIENT, this.currentClient);\r\n        }\r\n        if (this.memberId) {\r\n            memberApi.getCall(this.currentClient!.clientId, this.memberId, this.callId, this.memberDataApiUrl).then((response) => {\r\n                this.loadCall(response).then(async () => {\r\n                    if (response.jobId) {\r\n                        this.getJob(response.jobId);\r\n                    }\r\n                });\r\n                this.isLoading = false;\r\n            });\r\n        } else {\r\n            clientsApi.getClientCall(this.currentClient!.clientId, this.callId).then((response) => {\r\n                this.loadCall(response).then(async () => {\r\n                    if (response.jobId) {\r\n                        this.getJob(response.jobId);\r\n                    }\r\n                });\r\n\r\n                this.isLoading = false;\r\n            });\r\n        }\r\n    }\r\n\r\n    async getJob (jobId: string) {\r\n        this.jobs = [await this.$store.dispatch('jobs/getJob', { jobId: jobId, pulseApiUrl: this.jobUrl }) ];\r\n\r\n        const job = this.getJobByReference(jobId!) || this.jobs.find(a => a.jobId.toString() === jobId);\r\n        if (job) {\r\n            this.assignJob(job);\r\n        }\r\n    }\r\n\r\n    private assignJob (job: JobSummary) {\r\n        this.assignedJob = job;\r\n        this.newJobGuid = job.jobId;\r\n\r\n        if (job.reference) {\r\n            this.jobReference = job.reference;\r\n            this.selectedCall!.jobId = job.reference;\r\n        }\r\n\r\n    }\r\n\r\n    get memberId () {\r\n        if (this.phoneCallMemberId) {\r\n            return this.phoneCallMemberId;\r\n        }\r\n        if (this.$route.query.memberId) {\r\n            return Number(this.$route.query?.memberId);\r\n        }\r\n\r\n        return null;\r\n    }\r\n\r\n    get currentClient () {\r\n        if (this.clients && this.itemDetails.length) {\r\n            const id = this.itemDetails[0];\r\n            const found = this.clients.find((a) => a.code === id);\r\n            if (found) return found as Client;\r\n        }\r\n        return null;\r\n    }\r\n\r\n    get itemDetails () {\r\n        return this.callNumber.split('-');\r\n    }\r\n\r\n\r\n    get clients () {\r\n        return this.$store.getters[STORE.GET_CLIENTS] as Array<Client>;\r\n    }\r\n\r\n    get canEdit () {\r\n        return !this.isEditing && !this.isSaving && (!this.selectedHistory || (this.history && this.selectedHistory === this.history[0]));\r\n    }\r\n\r\n    get canSave () {\r\n        return !this.isSaving && this.isEditing && this.isDirty && this.subject.trim() !== '' && this.conversation.trim() !== '';\r\n    }\r\n\r\n    get callId () {\r\n        if (this.itemDetails.length <= 2 && !this.phoneCallMemberId) {\r\n            return Number(this.itemDetails[1]);\r\n        }\r\n\r\n        return Number(this.itemDetails[2]);\r\n    }\r\n\r\n    get contactType () {\r\n        if (!this.selectedCall || !this.selectedCall.data) {\r\n            return '';\r\n        }\r\n\r\n        if (this.selectedCall.data.isMember) {\r\n            return 'Member';\r\n        }\r\n\r\n        if (this.selectedCall.data.isInternal) {\r\n            return 'Internal';\r\n        }\r\n\r\n        return 'Other';\r\n    }\r\n\r\n    get jobPrefix () {\r\n        return `J-${this.currentClient?.code}-`;\r\n    }\r\n\r\n    get hasWorkmanagement () {\r\n        return this.currentClient?.workManagement;\r\n    }\r\n\r\n    get reAssignMatches () {\r\n        return this.newJobGuid === this.jobs.find((a) => a.reference === this.selectedCall?.jobReference)?.jobId;\r\n    }\r\n\r\n    get history () {\r\n        if (!this.selectedCall || !this.selectedCall.data || !this.selectedCall.data.history) {\r\n            return null;\r\n        }\r\n\r\n        let sorted: Array<PhoneCallHistory> = [];\r\n        this.selectedCall.data.history.forEach((c) => {\r\n            if (c.duplicateInfo) {\r\n                sorted.push({ ...c, lastModified: c.duplicateInfo.duplicatedDate, userName: c.duplicateInfo.fullName });\r\n            }\r\n            if (!c.duplicateInfo?.isDuplicate) {\r\n                sorted.push({ ...c, duplicateInfo: undefined });\r\n            }\r\n        });\r\n        sorted.push({\r\n            lastModified: this.selectedCall.lastModified,\r\n            conversation: this.selectedCall.data.conversation,\r\n            subject: this.selectedCall.data.subject,\r\n            userId: this.selectedCall.lastModifiedInfoUserId,\r\n            userName: this.selectedCall.lastModifiedInfoUsername,\r\n        });\r\n        sorted = sorted\r\n            .filter((a, i, list) => list.findIndex((b) => (this.formatHistoryDate(b.lastModified) === this.formatHistoryDate(a.lastModified))) === i)\r\n            .sort((a, b) => (a.lastModified > b.lastModified ? -1 : 1));\r\n\r\n        const getDuplicatedMessage = (item: PhoneCallDuplicatedInfo) => {\r\n            const formattedDate = this.formatHistoryDate(item.duplicatedDate);\r\n            const duplicatedBy = `${item.fullName} at ${formattedDate}`;\r\n\r\n            if (item.isDuplicate) {\r\n                return `Duplicate of P${item.originalCallId} by ${duplicatedBy}`;\r\n            }\r\n\r\n            return `Duplicate P${item.duplicatedCallId} created from this by ${duplicatedBy}`;\r\n        };\r\n\r\n        const getDescription = (item: PhoneCallHistory, i: number) => {\r\n            if (item.duplicateInfo) return getDuplicatedMessage(item.duplicateInfo);\r\n            return i === sorted.length - 1\r\n                ? `Created by ${item.userName} at ${this.formatHistoryDate(item.lastModified)}`\r\n                : `Edited by ${item.userName} at ${this.formatHistoryDate(item.lastModified)}`;\r\n        };\r\n\r\n        return sorted.map((item: PhoneCallHistory, i) => ({\r\n            desc: getDescription(item, i),\r\n            subject: item.subject,\r\n            conversation: item.conversation,\r\n            userId: item.userId,\r\n            userName: item.userName,\r\n            duplicateInfo: item.duplicateInfo,\r\n            lastModified: item.lastModified,\r\n        } as PhoneCallHistory));\r\n    }\r\n\r\n    get hostUrl () {\r\n        return `${window.location.protocol}//${window.location.host}`;\r\n    }\r\n\r\n    get pulseApiUrl () {\r\n        return this.$store.getters[STORE.GET_SITE_CONFIGURATION][STORE.PULSE_API_URL] ?? '';\r\n    }\r\n\r\n    get memberDataApiUrl () {\r\n        return this.$store.getters['configuration/site']['memberdata.api.url'];\r\n    }\r\n\r\n    get isDirty () {\r\n        return this.oldSubject.trim() !== this.subject.trim() || this.oldConversation.trim() !== this.conversation.trim();\r\n    }\r\n\r\n    get isProduction () {\r\n        return process.env.VUE_APP_ENVIRONMENT === 'live';\r\n    }\r\n\r\n    get recordCalls () {\r\n        return this.currentClient!.name && this.currentClient!.name.indexOf('Tetley') > -1;\r\n    }\r\n\r\n    // get jobs () {\r\n    //     if (this.memberId) {\r\n    //         return (this.$store.getters[STORE.GET_JOBS].jobs as Array<JobSummary>) || [];\r\n    //     }\r\n    //     return (this.$store.getters[STORE.GET_CLIENT_JOBS].jobs as Array<JobSummary>) || [];\r\n    // }\r\n\r\n    get jobUrl () {\r\n        return this.$store.getters[STORE.GET_SITE_CONFIGURATION][STORE.PULSE_API_URL];\r\n    }\r\n\r\n    get verifiedSecurityItems () {\r\n        if (!this.selectedCall || !this.selectedCall.data?.verifiedSecurityItems) {\r\n            return '';\r\n        }\r\n\r\n        return this.selectedCall.data.verifiedSecurityItems.map((a) => a.replace('address', 'Address')\r\n            .replace('fullName', 'Full name')\r\n            .replace('niNumber', 'NI Number')\r\n            .replace('dateOfBirth', 'Date of birth'))\r\n            .join('\\r\\n');\r\n    }\r\n\r\n    get callTakenByName () {\r\n        if (this.selectedCall) {\r\n            const user = this.usersById[this.selectedCall.userId.toString()];\r\n\r\n            if (user) {\r\n                return `${user.forenames} ${user.surname}`;\r\n            }\r\n        }\r\n\r\n        return '';\r\n    }\r\n\r\n    get usersById () {\r\n        return this.$store.getters[STORE.GET_ALL_USERS_BY_ID];\r\n    }\r\n\r\n    get systemMemberId () {\r\n        return this.selectedCall?.systemMemberId;\r\n    }\r\n\r\n    formatDate (date: Date, excludeTime: boolean) {\r\n        if (excludeTime) {\r\n            return moment(date).format('DD/MM/YYYY');\r\n        }\r\n        return this.$options.filters?.localDateTime(date);\r\n    }\r\n\r\n    formatHistoryDate (date: Date) {\r\n        return this.$options.filters?.localDateTimeHMS(date);\r\n    }\r\n\r\n    getColor (status: string) {\r\n        const color = Status.getColour(status);\r\n        return color;\r\n    }\r\n\r\n    copy (text: string) {\r\n        this.copyText = text;\r\n        this.$nextTick(() => {\r\n            const copyText = document.getElementById('copyField') as HTMLInputElement;\r\n            copyText.select();\r\n            copyText.setSelectionRange(0, 99999);\r\n            document.execCommand('copy');\r\n\r\n            this.$store.dispatch('messages/addMessage', {\r\n                status: 'Success', title: 'Copy successful', popup: true, message: `Value has been copied to the clipboard<br/><br/><span class=\"select\">${encodeURIComponent(text)}</span>`,\r\n            });\r\n        });\r\n    }\r\n\r\n    getIcon (status: string) {\r\n        const icon = Status.getIcon(status);\r\n        return icon;\r\n    }\r\n\r\n    getJobById (jobId: Guid) {\r\n        if (!this.jobs.length) {\r\n            return null;\r\n        }\r\n\r\n        return (this.jobs.find((job: JobSummary) => job.jobId === jobId) as JobSummary) || null;\r\n    }\r\n\r\n    getJobByReference (reference: string) {\r\n        if (!this.jobs.length) {\r\n            return null;\r\n        }\r\n\r\n        return (this.jobs.find((job: JobSummary) => job.reference === reference?.trim()) as JobSummary) || null;\r\n    }\r\n\r\n    isEmbedded () {\r\n        return this.$route.query.wm;\r\n    }\r\n\r\n    jobSelectionChanged (jobId: Guid) {\r\n        this.newJobGuid = jobId;\r\n    }\r\n\r\n    async loadCall (call: PhoneCall) {\r\n        this.selectedCall = call;\r\n        this.subject = call.data?.subject || '';\r\n        this.conversation = call.data?.conversation || '';\r\n        this.jobReference = call.jobReference;\r\n        if (this.memberId) {\r\n            this.copyLinkValue = `${this.hostUrl}?calls=${this.currentClient!.code}-${this.memberId}-${this.selectedCall.callId}`;\r\n        } else {\r\n            this.copyLinkValue = `${this.hostUrl}/calls-viewer/${this.currentClient!.code}-${this.selectedCall.callId}?hideIntro=true`;\r\n        }\r\n    }\r\n\r\n    callClicked (number: string) {\r\n        const telNo = number.startsWith('0') ? number.replace('0', '+44').replace(' ', '') : number.replace(' ', '');\r\n        this.copyText = telNo;\r\n        if (!this.recordCalls) {\r\n            this.copy(telNo);\r\n            return;\r\n        }\r\n\r\n        window.open(`outboundcall:tel:${telNo};service=sip:lcp-tetley-outbound@emea.luware.cloud;activity=Outbound Call`, '_blank', 'location=0');\r\n    }\r\n\r\n    onAssignJob () {\r\n        this.isLoading = true;\r\n        if (this.newJobGuid && this.selectedCall !== null && this.selectedCall !== undefined) {\r\n            jobApi.assignJobToPhoneCall(\r\n                this.currentClient!.clientId,\r\n                this.selectedCall.phoneCallId,\r\n                this.newJobGuid,\r\n                this.jobUrl,\r\n                !!this.assignedJob,\r\n            ).then(() => {\r\n                this.showJobAssign = false;\r\n\r\n                if (this.selectedCall) {\r\n                    if (this.newJobGuid) {\r\n                        this.getJob(this.newJobGuid.toString());\r\n                    }\r\n\r\n\r\n                }\r\n                this.$emit('loadCorrespondence');\r\n\r\n                this.isLoading = false;\r\n            }).finally(() => {\r\n                this.isLoading = false;\r\n            });\r\n        }\r\n    }\r\n\r\n    onCancel () {\r\n        this.subject = this.oldSubject;\r\n        this.conversation = this.oldConversation;\r\n        this.resetEditState();\r\n    }\r\n\r\n    onDelete () {\r\n        if (!this.canEdit) {\r\n            return;\r\n        }\r\n\r\n        this.isSaving = true;\r\n        if (this.memberId) {\r\n            memberApi.deleteCall(this.currentClient!.clientId, this.memberId, this.callId)\r\n                .then(() => {\r\n                    this.performDeletedCall();\r\n                    this.isSaving = false;\r\n                }).finally(() => {\r\n                    this.isSaving = false;\r\n                });\r\n        } else {\r\n            clientsApi.deleteClientCall(this.currentClient!.clientId, this.callId)\r\n                .then(() => {\r\n                    this.performDeletedCall();\r\n                    this.isSaving = false;\r\n                }).finally(() => {\r\n                    this.isSaving = false;\r\n                });\r\n        }\r\n    }\r\n\r\n    performDeletedCall () {\r\n        this.selectedCall = null;\r\n        this.subject = '';\r\n        this.conversation = '';\r\n        this.jobReference = '';\r\n        this.$emit('callDeleted', this.callId);\r\n    }\r\n\r\n    onDuplicate () {\r\n        if (!this.canEdit) {\r\n            return;\r\n        }\r\n        if (this.memberId) {\r\n            memberApi.duplicateCall(this.currentClient!.clientId, this.memberId, this.callId)\r\n                .then((response: PhoneCall) => {\r\n                    this.performDuplicatedCall(response);\r\n                }).finally(() => {\r\n                    this.isSaving = false;\r\n                });\r\n        } else {\r\n            clientsApi.duplicateClientCall(this.currentClient!.clientId, this.callId)\r\n                .then((response: PhoneCall) => {\r\n                    this.performDuplicatedCall(response);\r\n                }).finally(() => {\r\n                    this.isSaving = false;\r\n                });\r\n        }\r\n    }\r\n\r\n    performDuplicatedCall (response: PhoneCall) {\r\n        this.$emit('callDuplicated', response);\r\n        this.isSaving = false;\r\n        this.$store.dispatch('messages/addMessage', {\r\n            status: 'Success', title: 'Duplicate successful', popup: true, message: `Call P${response.callId} created as duplicate of P${this.callId}`,\r\n        });\r\n    }\r\n\r\n    onEdit () {\r\n        if (!this.canEdit) {\r\n            return;\r\n        }\r\n\r\n        this.oldSubject = this.subject;\r\n        this.oldConversation = this.conversation;\r\n        this.isEditing = true;\r\n    }\r\n\r\n    onSave () {\r\n        if (!this.canSave) {\r\n            return;\r\n        }\r\n\r\n        this.isSaving = true;\r\n\r\n        if (this.memberId) {\r\n            memberApi.amendCall(this.currentClient!.clientId, this.memberId, this.callId, {\r\n                subject: this.subject,\r\n                conversation: this.conversation,\r\n            }).then(async (response: PhoneCall) => {\r\n                this.performAmendedCall(response);\r\n            }).finally(() => {\r\n                this.isSaving = false;\r\n            });\r\n        } else {\r\n            clientsApi.amendClientCall(this.currentClient!.clientId, this.callId, {\r\n                subject: this.subject,\r\n                conversation: this.conversation,\r\n            }).then(async (response: PhoneCall) => {\r\n                this.performAmendedCall(response);\r\n            }).finally(() => {\r\n                this.isSaving = false;\r\n            });\r\n        }\r\n    }\r\n\r\n    performAmendedCall (response: PhoneCall) {\r\n        this.resetEditState();\r\n        this.loadCall(response);\r\n        this.isLoading = false;\r\n        this.isSaving = false;\r\n        this.$emit('callSaved', this.selectedCall);\r\n    }\r\n\r\n    onUnassignJob () {\r\n        this.isLoading = true;\r\n        if (this.assignedJob && this.selectedCall !== null && this.selectedCall !== undefined) {\r\n            jobApi.unassignJobToPhoneCall(\r\n                this.selectedCall.phoneCallId,\r\n                this.assignedJob?.jobId,\r\n                this.jobUrl,\r\n            ).then(() => {\r\n                this.showJobAssign = false;\r\n                this.assignedJob = null;\r\n                this.jobReference = '';\r\n                this.newJobGuid = null;\r\n                this.isLoading = false;\r\n                this.$emit('loadCorrespondence');\r\n            }).finally(() => {\r\n                this.isLoading = false;\r\n            });\r\n        }\r\n    }\r\n\r\n    async onReturnToIndex () {\r\n        this.isLoading = true;\r\n        try {\r\n            await inboxApi.returnCallToIndex(this.currentClient!.clientId, this.selectedCall!.phoneCallId, this.assignedJob?.jobId, this.pulseApiUrl);\r\n            this.showJobAssign = false;\r\n            this.assignedJob = null;\r\n            this.jobReference = '';\r\n            this.newJobGuid = null;\r\n            this.reloadParentWindow();\r\n        } finally {\r\n            this.isLoading = false;\r\n        }\r\n    }\r\n\r\n    reloadParentWindow () {\r\n        if (window.parent) {\r\n            window.parent.postMessage('reload', '*');\r\n            this.$emit('loadCorrespondence');\r\n        }\r\n    }\r\n\r\n    resetEditState () {\r\n        this.isEditing = false;\r\n        this.oldSubject = '';\r\n        this.oldConversation = '';\r\n    }\r\n\r\n    @Watch('history')\r\n    historyChanged () {\r\n        if (this.history === null) {\r\n            this.resetEditState();\r\n            this.selectedHistory = null;\r\n        } else {\r\n            this.selectedHistory = this.history[0];\r\n        }\r\n    }\r\n\r\n    @Watch('selectedHistory')\r\n    selectedHistoryChanged () {\r\n        if (this.selectedHistory === null) {\r\n            if (this.selectedCall?.data) {\r\n                this.subject = this.selectedCall.data.subject;\r\n                this.conversation = this.selectedCall.data.conversation;\r\n            } else {\r\n                this.subject = '';\r\n                this.conversation = '';\r\n            }\r\n        } else {\r\n            this.resetEditState();\r\n            if (this.selectedHistory) {\r\n                this.subject = this.selectedHistory.subject;\r\n                this.conversation = this.selectedHistory.conversation;\r\n            } else {\r\n                this.subject = '';\r\n                this.conversation = '';\r\n            }\r\n        }\r\n    }\r\n}\r\n\r\n","import mod from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./phone-viewer.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./phone-viewer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./phone-viewer.vue?vue&type=template&id=78214dde&scoped=true&\"\nimport script from \"./phone-viewer.vue?vue&type=script&lang=ts&\"\nexport * from \"./phone-viewer.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./phone-viewer.vue?vue&type=style&index=0&id=78214dde&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"78214dde\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('a',{staticClass:\"profile\",class:[_vm.prescence,{ disabled: _vm.disabled || !_vm.link || !_vm.link.length }],attrs:{\"href\":_vm.link,\"title\":_vm.hoverText}},[(!_vm.useFallback)?_c('img',{class:{ 'not-grayscale': _vm.color},attrs:{\"src\":`${_vm.userUrl}${_vm.id}.jpg`},on:{\"error\":function($event){_vm.useFallback = true}}}):_vm._t(\"fallback\",function(){return [_c('div',{staticClass:\"icon\"},[_c('font-awesome-icon',{attrs:{\"icon\":\"user\"}})],1)]})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./profile-photo-old.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./profile-photo-old.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./profile-photo-old.vue?vue&type=template&id=44786127&scoped=true&lang=html&\"\nimport script from \"./profile-photo-old.vue?vue&type=script&lang=js&\"\nexport * from \"./profile-photo-old.vue?vue&type=script&lang=js&\"\nimport style0 from \"./profile-photo-old.vue?vue&type=style&index=0&id=44786127&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"44786127\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('a',{staticClass:\"profile\",class:[_vm.presence,{ disabled: _vm.disabled || !_vm.link || !_vm.link.length }],attrs:{\"href\":_vm.link,\"title\":_vm.hoverText}},[(!_vm.useFallback)?_c('img',{class:{ 'not-grayscale': _vm.color},attrs:{\"src\":`${_vm.userPhotoUrl}${_vm.id}.jpg`},on:{\"error\":function($event){_vm.useFallback = true}}}):(!_vm.id)?_vm._t(\"fallback\",function(){return [_c('div',{staticClass:\"icon question\"},[_c('font-awesome-icon',{attrs:{\"icon\":\"question\"}})],1)]}):_vm._t(\"fallback\",function(){return [_c('div',{staticClass:\"icon\"},[_c('font-awesome-icon',{attrs:{\"icon\":\"user\"}})],1)]})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Vue, Prop, Watch,\r\n} from '~/vue-property-decorator';\r\n\r\n@Component({\r\n    name: 'profile-photo',\r\n    components: { },\r\n})\r\nexport default class ProfilePhoto extends Vue {\r\n    @Prop()\r\n    id!: string\r\n\r\n    @Prop()\r\n    email!: string;\r\n\r\n    @Prop({ default: 'offline' })\r\n    presence!: string;\r\n\r\n    @Prop({ default: true })\r\n    color!: boolean;\r\n\r\n    @Prop()\r\n    disabled!: boolean;\r\n\r\n    useFallback = false;\r\n\r\n    mounted () {\r\n        if (!this.users.length) {\r\n            this.$store.dispatch('users/getAllUsers', this.userUrl);\r\n        }\r\n    }\r\n\r\n    get hoverText () {\r\n        if (this.title) return this.title;\r\n        if (this.disabled) return this.email;\r\n        if (!this.email) return null;\r\n        return `${this.email}`;\r\n    }\r\n\r\n    get userUrl () {\r\n        return this.$store.getters['configuration/site']['pulse-api.url'];\r\n    }\r\n\r\n    get userPhotoUrl () {\r\n        return this.$store.getters['configuration/site']['user.blob.url'];\r\n    }\r\n\r\n    get selectedUser () {\r\n        return this.usersById[this.id] || {};\r\n    }\r\n\r\n    get usersById () {\r\n        return this.$store.getters['users/allUsersByUserId'];\r\n    }\r\n\r\n    get users () {\r\n        return this.$store.getters['users/allUsers'];\r\n    }\r\n\r\n    get title () {\r\n        const name = this.selectedUser?.surname ? `${this.selectedUser.forenames} ${this.selectedUser.surname}` : this.email;\r\n        if (name) return `${name}`;\r\n        return '';\r\n    }\r\n\r\n    get link () {\r\n        // eslint-disable-next-line no-script-url\r\n        if (this.disabled) return 'javascript:void(0)';\r\n        const email = this.email || this.selectedUser.email;\r\n        if (email) return `sip:${email}`;\r\n        // eslint-disable-next-line no-script-url\r\n        return 'javascript:void(0)';\r\n    }\r\n\r\n    @Watch('id')\r\n    idChanged () {\r\n        this.useFallback = false;\r\n    }\r\n}\r\n\r\n","import mod from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./profile-photo.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./profile-photo.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./profile-photo.vue?vue&type=template&id=3443ad07&scoped=true&lang=html&\"\nimport script from \"./profile-photo.vue?vue&type=script&lang=ts&\"\nexport * from \"./profile-photo.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./profile-photo.vue?vue&type=style&index=0&id=3443ad07&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"3443ad07\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.schedulerEnabled)?_c('div',{staticClass:\"scheduler\"},[_c('div',[_c('dynamic-ui-boolean',{attrs:{\"name\":\"Scheduler - Run now?\"},on:{\"input\":_vm.scheduledRunNowChanged},model:{value:(_vm.scheduledRunNow),callback:function ($$v) {_vm.scheduledRunNow=$$v},expression:\"scheduledRunNow\"}})],1),_c('div',[(!_vm.scheduledRunNow && _vm.value)?_c('dynamic-ui-datetime',{attrs:{\"exportFormat\":\"YYYY-MM-DD HH:mm\",\"value\":_vm.formattedDate,\"includeTime\":true,\"name\":\"Scheduled time\"},on:{\"input\":_vm.emitValue}}):_vm._e()],1)]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Prop } from '~/vue-property-decorator';\r\nimport moment from '~/moment';\r\nimport * as STORE from 'common/store/storepaths';\r\n\r\n@Component({\r\n    components: { },\r\n})\r\nexport default class Scheduler extends Vue {\r\n    @Prop()\r\n    value!: Date | null;\r\n\r\n    scheduledRunNow = true;\r\n\r\n    scheduledRunNowChanged() {\r\n        if (!this.scheduledRunNow) {\r\n            this.$emit('input', moment().utc().format('YYYY-MM-DDTHH:mm:ssZ'));\r\n        } else {\r\n            this.$emit('input', null);\r\n        }\r\n    }\r\n\r\n    emitValue(val: string) {\r\n        const scheduledTime = this.scheduledRunNow ? null : moment(val, 'YYYY/MM/DD HH:mm:ssZ').utc().format('YYYY-MM-DDTHH:mm:ssZ');\r\n        this.$emit('input', scheduledTime);\r\n    }\r\n\r\n    get formattedDate() {\r\n        return moment(this.value).format('YYYY-MM-DD HH:mm');\r\n    }\r\n\r\n    get schedulerEnabled (): boolean {\r\n        return this.$store.getters[STORE.GET_SITE_CONFIGURATION]['feature.md.scheduledbatchjobs.enabled'] === 'true';\r\n    }\r\n}\r\n\r\n","import mod from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./scheduler.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./scheduler.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./scheduler.vue?vue&type=template&id=453376aa&scoped=true&lang=html&\"\nimport script from \"./scheduler.vue?vue&type=script&lang=ts&\"\nexport * from \"./scheduler.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./scheduler.vue?vue&type=style&index=0&id=453376aa&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"453376aa\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.active)?_c('div',{staticClass:\"tab\"},[_vm._t(\"default\")],2):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./tab.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./tab.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./tab.vue?vue&type=template&id=d39b7e30&scoped=true&lang=html&\"\nimport script from \"./tab.vue?vue&type=script&lang=js&\"\nexport * from \"./tab.vue?vue&type=script&lang=js&\"\nimport style0 from \"./tab.vue?vue&type=style&index=0&id=d39b7e30&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"d39b7e30\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"tabs\"},[(_vm.tabs && _vm.tabs.length > 1)?_c('div',{staticClass:\"tab-header\"},_vm._l((_vm.orderedTabs),function(tab){return _c('div',{key:tab.title,staticClass:\"tabTitle\",class:{ active: tab === _vm.currentTab },on:{\"click\":function($event){return _vm.tabClicked(tab)}}},[_c('span',[_vm._v(_vm._s(tab.title))]),_c('span',{staticClass:\"custom\",class:tab.customComponent ? tab.customComponent.class : ''},[(tab.customComponent)?_c('custom-render',_vm._b({},'custom-render',tab.customComponent,false)):_vm._e()],1),(tab.icon)?_c('font-awesome-icon',{staticClass:\"icon\",attrs:{\"icon\":tab.icon}}):_vm._e()],1)}),0):_vm._e(),_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./tabs.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./tabs.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./tabs.vue?vue&type=template&id=b6bbe464&scoped=true&\"\nimport script from \"./tabs.vue?vue&type=script&lang=js&\"\nexport * from \"./tabs.vue?vue&type=script&lang=js&\"\nimport style0 from \"./tabs.vue?vue&type=style&index=0&id=b6bbe464&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"b6bbe464\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tiff-preview\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.loaded),expression:\"loaded\"}],ref:\"canvas\",staticClass:\"tiff\"}),(!_vm.loaded)?_c('loading'):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Vue, Prop, Watch,\r\n} from '~/vue-property-decorator';\r\nimport Tiff from '~/tiff.js';\r\nimport axios from '~/axios';\r\n\r\n@Component\r\nexport default class TiffViewer extends Vue {\r\n    @Prop()\r\n    tiffUrl!: string;\r\n\r\n    loaded = false;\r\n\r\n    async getTiffImage (url: string) {\r\n        this.loaded = false;\r\n        axios.get(url, { responseType: 'arraybuffer' }).then((response) => {\r\n            const tiff = new Tiff({ buffer: response.data });\r\n            for (let i = 0, len = tiff.countDirectory(); i < len; i += 1) {\r\n                tiff.setDirectory(i);\r\n                const canvas = tiff.toCanvas();\r\n                (this.$refs.canvas as HTMLElement).append(canvas);\r\n            }\r\n            this.loaded = true;\r\n        });\r\n    }\r\n\r\n    @Watch('tifUrl', { immediate: true })\r\n    tiffUrlChanged () {\r\n        if (this.tiffUrl) {\r\n            this.getTiffImage(this.tiffUrl);\r\n        }\r\n    }\r\n}\r\n","import mod from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./tiff-viewer.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./tiff-viewer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./tiff-viewer.vue?vue&type=template&id=4c8054b8&scoped=true&\"\nimport script from \"./tiff-viewer.vue?vue&type=script&lang=ts&\"\nexport * from \"./tiff-viewer.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./tiff-viewer.vue?vue&type=style&index=0&id=4c8054b8&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"4c8054b8\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"input-field toggle\"},[(_vm.fromName)?_c('label',[_vm._v(_vm._s(_vm.fromName))]):_vm._e(),_c('button',{staticClass:\"toggle-container\",attrs:{\"id\":_vm.componentId},on:{\"click\":_vm.toggleActive}},[_c('div',{staticClass:\"toggle-circle\",class:{ active: _vm.value }})]),_c('label',{attrs:{\"for\":_vm.componentId}},[_vm._v(\" \"+_vm._s(_vm.name)+\" \"),_c('div',{staticClass:\"check\"})])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./toggle-switch.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./toggle-switch.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./toggle-switch.vue?vue&type=template&id=195da22a&scoped=true&\"\nimport script from \"./toggle-switch.vue?vue&type=script&lang=js&\"\nexport * from \"./toggle-switch.vue?vue&type=script&lang=js&\"\nimport style0 from \"./toggle-switch.vue?vue&type=style&index=0&id=195da22a&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"195da22a\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('dynamic-ui-filterdropdown',{ref:\"search\",attrs:{\"name\":_vm.name,\"options\":_vm.dropdownUsers,\"value\":_vm.selectedUser,\"valueKey\":\"userId\",\"filterMethod\":_vm.filterUsers,\"textKey\":\"userId\",\"filterable\":true,\"allowNull\":_vm.allowNull},on:{\"input\":_vm.input,\"change\":_vm.changed,\"blurred\":_vm.blurred},scopedSlots:_vm._u([{key:\"option\",fn:function({ option }){return [(option)?_c('div',{staticClass:\"user\"},[(option.userId)?_c('profile-photo',{staticClass:\"profile\",attrs:{\"id\":option.userId,\"color\":true,\"disabled\":true}}):_vm._e(),_c('span',{staticClass:\"username\"},[_vm._v(_vm._s(option.forenames)+\" \"+_vm._s(option.surname))])],1):_vm._e()]}},{key:\"selected-option\",fn:function({ option }){return [(option)?_c('div',{staticClass:\"selected-user\"},[(option.userId)?_c('profile-photo',{staticClass:\"profile\",attrs:{\"id\":option.userId,\"color\":true,\"disabled\":true}}):_vm._e(),_c('span',{staticClass:\"username\"},[_vm._v(_vm._s(option.forenames)+\" \"+_vm._s(option.surname))])],1):_vm._e()]}}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./users-dropdown.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./users-dropdown.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./users-dropdown.vue?vue&type=template&id=119257ee&scoped=true&\"\nimport script from \"./users-dropdown.vue?vue&type=script&lang=js&\"\nexport * from \"./users-dropdown.vue?vue&type=script&lang=js&\"\nimport style0 from \"./users-dropdown.vue?vue&type=style&index=0&id=119257ee&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"119257ee\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{staticClass:\"row\"},[(_vm.webQuery)?_c('div',{staticClass:\"viewer\",class:{ iframed: _vm.isIframed }},[_c('div',{staticClass:\"query\"},[_c('div',{staticClass:\"query-headings\"},[_c('correspondenceJob',{attrs:{\"assignedJob\":_vm.assignedJob,\"showAssignmentOptions\":true},on:{\"jobAssignment\":function($event){_vm.showJobAssign = true},\"jobUnassignment\":_vm.unassignJob,\"returnToIndex\":_vm.onReturnToIndex}}),_c('btn',{staticClass:\"primary copy\",attrs:{\"icon\":\"copy\",\"text\":\"Copy link\"},on:{\"click\":_vm.copyLink}}),_c('div',{staticClass:\"date\"},[_c('span',{staticClass:\"heading\"},[_vm._v(\"Date\")]),_vm._v(_vm._s(_vm._f(\"localDateTime\")(_vm.webQuery.time)))]),_c('input',{attrs:{\"readonly\":\"\",\"id\":\"urlToCopy\"},domProps:{\"value\":_vm.hostUrl}})],1),(_vm.isBasicValueKeyPairFormat(_vm.webQuery.queryType))?_c('div',{staticClass:\"htmlView\"},[_c('table',_vm._l((_vm.webQuery.data),function(value,key){return _c('tr',{key:key},[_c('td',[_vm._v(_vm._s(_vm.formatKey(key)))]),_c('td',[_vm._v(_vm._s(_vm.formatValue(key, value)))])])}),0)]):(_vm.webQuery.queryType === 'NotificationOfDeath')?_c('div',{staticClass:\"scrollableHtmlView\"},[_vm._m(0),_vm._l((_vm.webQuery.data.notificationOfDeath.basicInformation),function(value,key){return _c('div',{key:key},[(value !== '')?_c('p',[_vm._v(\" \"+_vm._s(_vm.formatKey(key))+\": \"+_vm._s(_vm.formatValue(key, value))+\" \")]):_vm._e()])}),_vm._m(1),_vm._l((_vm.webQuery.data.notificationOfDeath.receivingFunds),function(value,key){return _c('div',{key:key},[(value !== '')?_c('p',[_vm._v(\" \"+_vm._s(_vm.formatKey(key))+\": \"+_vm._s(_vm.formatValue(key, value))+\" \")]):_vm._e()])}),(_vm.webQuery.data.notificationOfDeath.spouseCivilPartner)?_c('div',[_vm._m(2),_c('p',[_vm._v(\" Is Married Or Civil Partnership: \"+_vm._s(_vm.webQuery.data.notificationOfDeath.spouseCivilPartner.marriedOrCivilPartnership)+\" \")]),(_vm.webQuery.data.notificationOfDeath.spouseCivilPartner.spouseCivilDetails)?_c('div',_vm._l((_vm.webQuery.data.notificationOfDeath.spouseCivilPartner.spouseCivilDetails),function(value,key){return _c('div',{key:key},[(value !== '')?_c('p',[_vm._v(\" \"+_vm._s(_vm.formatKey(key))+\": \"+_vm._s(_vm.formatValue(key, value))+\" \")]):_vm._e()])}),0):_vm._e()]):_vm._e(),(_vm.webQuery.data.notificationOfDeath.childDependents)?_c('div',[_vm._m(3),_vm._l((_vm.webQuery.data.notificationOfDeath.childDependents),function(value,key){return _c('div',{key:key},[(value !== '')?_c('p',[_vm._v(\" \"+_vm._s(_vm.formatKey(key))+\": \"+_vm._s(_vm.formatValue(key, value))+\" \")]):_vm._e()])})],2):_vm._e(),(_vm.webQuery.data.notificationOfDeath.otherDependents)?_c('div',[_vm._m(4),_vm._l((_vm.webQuery.data.notificationOfDeath.otherDependents),function(value,key){return _c('div',{key:key},[(value !== '')?_c('p',[_vm._v(\" \"+_vm._s(_vm.formatKey(key))+\": \"+_vm._s(_vm.formatValue(key, value))+\" \")]):_vm._e()])})],2):_vm._e(),_vm._m(5),_vm._l((_vm.webQuery.data.notificationOfDeath.contactDetails),function(value,key){return _c('div',{key:key},[(value !== '')?_c('p',[_vm._v(\" \"+_vm._s(_vm.formatKey(key))+\": \"+_vm._s(_vm.formatValue(key, value))+\" \")]):_vm._e()])}),(_vm.webQuery.data.notificationOfDeath.primaryContact)?_c('div',[_vm._m(6)]):_vm._e(),(_vm.webQuery.data.notificationOfDeath.primaryContact)?_c('div',_vm._l((_vm.webQuery.data.notificationOfDeath.primaryContact),function(value,key){return _c('div',{key:key},[(value !== '')?_c('p',[_vm._v(\" \"+_vm._s(_vm.formatKey(key))+\": \"+_vm._s(_vm.formatValue(key, value))+\" \")]):_vm._e()])}),0):_vm._e()],2):(_vm.webQuery.queryType === 'PowerOfAttorney')?_c('div',{staticClass:\"scrollableHtmlView\"},[_c('div',[_c('p',[_vm._v(\" \"+_vm._s('Access Code')+\": \"+_vm._s(_vm.webQuery.data.powerOfAttorney.accessCode)+\" \")])]),_c('div',[_c('p',[_vm._v(\" \"+_vm._s('User Type')+\": \"+_vm._s(_vm.webQuery.data.powerOfAttorney.userType)+\" \")])]),(_vm.webQuery.data?.powerOfAttorney?.member)?_c('div',[_c('div',[_c('p',[_c('b',[_vm._v(_vm._s('Member'))])])]),_c('div',[_c('p',[_vm._v(\" \"+_vm._s('Member Name')+\": \"+_vm._s(_vm.webQuery.data?.powerOfAttorney?.member.firstName + ' ' + _vm.webQuery.data?.powerOfAttorney?.member.surname)+\" \")])]),_c('div',[_c('p',[_vm._v(\" \"+_vm._s('Member NI Number')+\": \"+_vm._s(_vm.webQuery.data?.powerOfAttorney?.member.isNinoUnknown ? 'Unknown': _vm.webQuery.data?.powerOfAttorney?.member.nino)+\" \")])]),_c('div',[_c('p',[_vm._v(\" \"+_vm._s('Member Date Of Birth')+\": \"+_vm._s(_vm.webQuery.data?.powerOfAttorney?.member.isDateOfBirthUnknown ? 'Unknown': _vm.formatValue(_vm.webQuery.data?.powerOfAttorney?.member.dateOfBirth, 'dob'))+\" \")])])]):_vm._e(),(_vm.webQuery.data?.powerOfAttorney?.attorney)?_c('div',[_c('div',[_c('p',[_c('b',[_vm._v(_vm._s('Attorney'))])])]),_c('div',[_c('p',[_vm._v(\" \"+_vm._s('Attorney Name')+\": \"+_vm._s(_vm.webQuery.data?.powerOfAttorney?.attorney.firstName + ' ' + _vm.webQuery.data?.powerOfAttorney?.attorney.surname)+\" \")])]),_c('div',[_c('p',[_vm._v(\" \"+_vm._s('Attorney Telephone')+\": \"+_vm._s(_vm.webQuery.data?.powerOfAttorney?.attorney.telephoneNo)+\" \")])]),_c('div',[_c('p',[_vm._v(\" \"+_vm._s('Attorney Email')+\": \"+_vm._s(_vm.webQuery.data?.powerOfAttorney?.attorney.emailAddress)+\" \")])])]):_vm._e(),(_vm.webQuery.data?.powerOfAttorney?.documents.length)?_c('div',{staticClass:\"attachments\"},[_vm._v(\" Attachments: \"),_vm._l((_vm.webQuery.data?.powerOfAttorney?.documents),function(attachment){return _c('span',{key:attachment.documentId,staticClass:\"attachment\",on:{\"click\":function($event){return _vm.downloadDocument(attachment)}}},[_c('div',{staticClass:\"attachment-icon\"},[_c('font-awesome-icon',{attrs:{\"icon\":_vm.getDocumentType(attachment)}})],1),_c('a',[_vm._v(_vm._s(attachment.filename))])])})],2):_vm._e()]):_c('div',{staticClass:\"htmlView\",domProps:{\"innerHTML\":_vm._s(_vm.webQuery.data.Message)}})])]):_vm._e()]),_c('modal',{attrs:{\"title\":_vm.assignedJob ? 'Reassign?' : 'Assign?',\"width\":800},model:{value:(_vm.showJobAssign),callback:function ($$v) {_vm.showJobAssign=$$v},expression:\"showJobAssign\"}},[_c('template',{slot:\"content\"},[_c('job-selector-pulse',{attrs:{\"reassigning\":!!_vm.assignedJob,\"input\":_vm.assignedJob,\"clientLevel\":!_vm.memberId,\"memberId\":_vm.memberId,\"systemMemberId\":_vm.systemMemberId},on:{\"change\":_vm.jobSelectionChange},model:{value:(_vm.assignedJobId),callback:function ($$v) {_vm.assignedJobId=$$v},expression:\"assignedJobId\"}})],1),_c('template',{slot:\"footer\"},[_c('div',{staticClass:\"controls\"},[_c('btn',{staticClass:\"secondary\",attrs:{\"text\":\"Cancel\",\"disabled\":_vm.loading},on:{\"click\":function($event){_vm.showJobAssign = false}}}),_c('btn',{staticClass:\"primary\",attrs:{\"text\":_vm.assignedJob ? 'Reassign' : 'Assign',\"disabled\":_vm.loading || !_vm.assignedJobId || _vm.reAssignMatches},on:{\"click\":_vm.assignJob}})],1)])],2)],1)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('p',[_c('b',[_vm._v(\"Basic Information\")])])\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('p',[_c('b',[_vm._v(\"Member's Pension\")])])\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('p',[_c('b',[_vm._v(\"Spouse/Civil Partner\")])])\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('p',[_c('b',[_vm._v(\"Child Dependant\")])])\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('p',[_c('b',[_vm._v(\"Other Dependant\")])])\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('p',[_c('b',[_vm._v(\"Contact Details\")])])\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('p',[_c('b',[_vm._v(\"Primary Contact\")])])\n}]\n\nexport { render, staticRenderFns }","\r\nimport CorrespondenceWeb2Query from 'common/models/correspondence/webQuery';\r\nimport PowerOfAttorneyFile from 'common/models/correspondence/powerOfAttorneyFile';\r\nimport JobApi from 'common/api/jobApi';\r\nimport inboxApi from 'common/api/inboxApi';\r\nimport * as STORE from 'common/store/storepaths';\r\nimport JobSummary from 'common/models/jobSummary';\r\nimport Status from 'common/util/pulseStatusEnum';\r\nimport Guid from 'common/util/guid';\r\nimport Client from 'common/models/client';\r\nimport memberApi from 'common/api/member';\r\nimport clientsApi from 'common/api/clientsApi';\r\nimport moment from '~/moment';\r\nimport {\r\n    Component, Vue, Prop,\r\n} from '~/vue-property-decorator';\r\nimport DocumentsApi from 'common/api/documentsApi';\r\n\r\n@Component({\r\n    name: 'WebQueryViewer',\r\n    components: {},\r\n})\r\n\r\nexport default class WebQueryViewer extends Vue {\r\n    @Prop()\r\n    queryId!: string;\r\n\r\n    @Prop()\r\n    webQueryMemberId!: number;\r\n\r\n    showJobAssign = false;\r\n\r\n    webQuery: CorrespondenceWeb2Query | null = null;\r\n\r\n    newJobId?: Guid | null = null;\r\n\r\n    loading = false;\r\n\r\n    assignedJob?: JobSummary | null = null;\r\n\r\n    assignedJobId?: string = '';\r\n\r\n    jobs: Array<JobSummary> = [];\r\n\r\n    async mounted () {\r\n        if (!this.clients?.length) {\r\n            await this.$store.dispatch('client/getClients');\r\n        }\r\n        if (this.currentClient && !this.$store.getters[STORE.GET_CURRENT_CLIENT]) {\r\n            await this.$store.dispatch(STORE.SET_CURRENT_CLIENT, this.currentClient);\r\n        }\r\n        if (this.queryId) {\r\n            if (this.memberId) {\r\n                await this.getMemberWebQuery(this.memberId);\r\n\r\n            } else {\r\n                await this.getClientWebQuery();\r\n\r\n            }\r\n            if (this.webQuery?.jobReference) {\r\n                await this.getJob(this.webQuery.jobReference);\r\n            }\r\n\r\n            this.assignedJob = this.getJobByReference(this.webQuery!.jobReference);\r\n            this.assignedJobId = this.assignedJob?.jobId.toString();\r\n        }\r\n    }\r\n\r\n    getDocumentType (document: { filename: string }) {\r\n        const fileArr = document.filename.split('.');\r\n        const fileType = fileArr[fileArr.length - 1];\r\n        switch (fileType) {\r\n            case 'doc':\r\n            case 'docx':\r\n            case 'docm':\r\n                return 'file-word';\r\n            case 'xls':\r\n            case 'xlsx':\r\n            case 'xlsm':\r\n                return 'file-excel';\r\n            case 'pdf':\r\n                return 'file-pdf';\r\n            case 'txt':\r\n                return 'file';\r\n            case 'msg':\r\n                return 'envelope';\r\n            case 'png':\r\n            case 'jpg':\r\n            case 'jpeg':\r\n            case 'bmp':\r\n            case 'gif':\r\n                return 'image';\r\n            default:\r\n                return 'file';\r\n        }\r\n    }\r\n\r\n    get hostUrl () {\r\n        return `${window.location.protocol}//${window.location.host}${this.$route.path}`;\r\n    }\r\n\r\n    get pulseUrl () {\r\n        return this.$store.getters[STORE.GET_SITE_CONFIGURATION]['pulse-api.url'];\r\n    }\r\n\r\n    get memberDataApiUrl () {\r\n        return this.$store.getters['configuration/site']['memberdata.api.url'];\r\n    }\r\n\r\n    get currentClient () {\r\n        if (this.clients && this.itemDetails.length) {\r\n            const id = this.itemDetails[1];\r\n            const found = this.clients.find((a) => a.code === id);\r\n            if (found) return found;\r\n        }\r\n        return null;\r\n    }\r\n\r\n    get memberId () {\r\n        if (this.webQueryMemberId) {\r\n            return this.webQueryMemberId;\r\n        }\r\n        if (this.$route.query.memberId) {\r\n            return Number(this.$route.query?.memberId);\r\n        }\r\n\r\n        return null;\r\n    }\r\n\r\n    get clients () {\r\n        return this.$store.getters[STORE.GET_CLIENTS] as Array<Client>;\r\n    }\r\n\r\n    get reAssignMatches () {\r\n        return this.assignedJobId === this.jobs.find((a) => a.reference === this.webQuery?.jobReference)?.jobId;\r\n    }\r\n\r\n    get itemDetails () {\r\n        return this.queryId.split('-');\r\n    }\r\n\r\n    get isIframed () {\r\n        return this.$route?.query?.hideIntro;\r\n    }\r\n\r\n    get webQueryId () {\r\n        if (this.itemDetails.length <= 3 && !this.webQueryMemberId) {\r\n            return Number(this.itemDetails[2]);\r\n        }\r\n\r\n        return Number(this.itemDetails[3]);\r\n    }\r\n\r\n    get systemMemberId () {\r\n        return this.webQuery?.systemMemberId;\r\n    }\r\n\r\n    async getMemberWebQuery (memberId: number) {\r\n        this.loading = true;\r\n        this.webQuery = await memberApi.getWebQuery(this.currentClient!.clientId, memberId, this.webQueryId, this.memberDataApiUrl);\r\n        this.getTitle();\r\n        this.loading = false;\r\n    }\r\n\r\n    async getClientWebQuery () {\r\n        this.loading = true;\r\n        this.webQuery = await clientsApi.getClientWebQuery(this.currentClient!.clientId, this.webQueryId);\r\n        this.getTitle();\r\n        this.loading = false;\r\n    }\r\n\r\n    async getJob (jobId: string) {\r\n        this.jobs = [await this.$store.dispatch('jobs/getJob', { jobId, pulseApiUrl: this.pulseUrl }) ];\r\n    }\r\n\r\n    getTitle () {\r\n        if (this.webQuery && this.webQuery.data) {\r\n            let fullTitle;\r\n            switch (this.webQuery.queryType) {\r\n                case 'General':\r\n                    fullTitle = `W${this.webQueryId} - Enquiry: ${this.webQuery.data?.subject}`;\r\n                    break;\r\n                case 'AddressUpdate':\r\n                    fullTitle = `W${this.webQueryId} - Address Update`;\r\n                    break;\r\n                case 'PhoneUpdate':\r\n                    fullTitle = `W${this.webQueryId} - Phone Update`;\r\n                    break;\r\n                case 'CommunicationPreferencesUpdate':\r\n                    fullTitle = `W${this.webQueryId} - Communication Preferences Update`;\r\n                    break;\r\n                default:\r\n                    fullTitle = `W${this.webQueryId} - ${this.webQuery.data?.subject}`;\r\n                    break;\r\n            }\r\n            this.$emit('setTitle', fullTitle);\r\n        }\r\n        return '';\r\n    }\r\n\r\n    getJobById (jobId: Guid) {\r\n        if (!this.jobs.length) {\r\n            return null;\r\n        }\r\n\r\n        return (this.jobs.find((job: JobSummary) => job.jobId === jobId) as JobSummary) || null;\r\n    }\r\n\r\n    getJobByReference (jobReference: string) {\r\n        if (!this.jobs.length) {\r\n            return null;\r\n        }\r\n        return (this.jobs.find((job: JobSummary) => job.reference === jobReference) as JobSummary) || null;\r\n    }\r\n\r\n    getColor (status: string) {\r\n        const color = Status.getColour(status);\r\n        return color;\r\n    }\r\n\r\n    getIcon (status: string) {\r\n        const icon = Status.getIcon(status);\r\n        return icon;\r\n    }\r\n\r\n    getName (status: string) {\r\n        const name = Status.getName(status);\r\n        return name;\r\n    }\r\n\r\n    copyLink () {\r\n        const copyText = document.getElementById('urlToCopy') as HTMLInputElement;\r\n        if (copyText) {\r\n            copyText.select();\r\n            copyText.setSelectionRange(0, 99999);\r\n            document.execCommand('copy');\r\n            this.$store.dispatch('messages/addMessage', {\r\n                status: 'Success', title: 'Copy successful', popup: true, message: `Link has been copied to the clipboard:<br/><br/><span class=\"select\">${copyText.value}</span>`,\r\n            });\r\n        }\r\n    }\r\n\r\n    formatDate (date: Date, noHours = false) {\r\n        if (noHours) {\r\n            return moment(date).utc().format('DD/MM/YYYY');\r\n        }\r\n        return moment(date).utc().format('DD/MM/YYYY HH:mm');\r\n    }\r\n\r\n    formatKey (key: string) {\r\n        switch (key) {\r\n            case ('niNumber'): return 'NI Number';\r\n            case ('fullName'): return 'Name';\r\n            case ('telephone'): return 'Telephone Number';\r\n            case ('dob'): return 'Date of Birth';\r\n            case ('childPhysicalMentalDependent'): return 'Child Dependant';\r\n            case ('otherDependent'): return 'Other Dependant';\r\n            case ('isBankAccountStillOpen'): return 'Member\\'s bank account still open';\r\n            case ('dateOfPartnership'): return 'Date Married Or Civil Partnership';\r\n            case ('isDateOfPartnership'): return 'Is Date Married Or Civil Partnership Unknown';\r\n            case ('addressSameAsMember'): return 'Is Address Same As Member';\r\n            case ('mainPointOfContact'): return 'Is Main Point Of Contact';\r\n            default: return this.capitalizeKey(key);\r\n        }\r\n    }\r\n\r\n    formatValue (key: string, value: any) {\r\n        if (value === false) return 'No';\r\n        if (value === true) return 'Yes';\r\n\r\n        switch (key) {\r\n            case 'dob': return this.formatDate(new Date(value), true);\r\n            case 'message': return value.replace(/,/g, '<br />');\r\n            case 'dateOfDeath': return  value === 'Unknown' ? 'Unknown' : moment(value).format('DD/MM/YYYY');\r\n            case 'dateOfBirth' : return  value === 'Unknown' ? 'Unknown' : moment(value).format('DD/MM/YYYY');\r\n            case 'dateOfPartnership': return  value === 'Unknown' ? 'Unknown' : moment(value).format('DD/MM/YYYY');\r\n            default: return value;\r\n        }\r\n    }\r\n\r\n    jobSelectionChange (selectedJobId: Guid) {\r\n        this.newJobId = selectedJobId;\r\n        this.getJob(this.newJobId.toString());\r\n    }\r\n\r\n    assignJob () {\r\n        this.loading = true;\r\n        if (this.newJobId && this.webQuery) {\r\n            JobApi.assignJobToWebQuery(\r\n                this.currentClient!.clientId,\r\n                this.webQuery.webQueryId,\r\n                this.newJobId,\r\n                this.pulseUrl,\r\n                !!this.assignedJob,\r\n            )\r\n                .then(() => {\r\n                    this.loading = false;\r\n                    this.showJobAssign = false;\r\n\r\n                    if (this.webQuery) {\r\n                        const job = this.getJobById(this.newJobId!);\r\n\r\n                        if (job) {\r\n                            this.assignedJob = job;\r\n                            this.assignedJobId = job.jobId.toString();\r\n                            this.webQuery.jobReference = job.reference;\r\n                        }\r\n                    }\r\n                }).finally(() => {\r\n                    this.loading = false;\r\n                });\r\n        }\r\n    }\r\n\r\n    unassignJob () {\r\n        if (this.assignedJob && this.webQuery) {\r\n            JobApi.unAssignJobFromWebQuery(this.assignedJob.jobId, this.webQuery.webQueryId, this.pulseUrl).then(() => {\r\n                this.loading = false;\r\n                this.assignedJob = null;\r\n                this.webQuery!.jobReference = '';\r\n                this.newJobId = null;\r\n                this.assignedJobId = '';\r\n            }).finally(() => {\r\n                this.loading = false;\r\n            });\r\n        }\r\n    }\r\n\r\n    async onReturnToIndex () {\r\n        this.loading = true;\r\n        try {\r\n            await inboxApi.returnWebQueryToIndex(this.currentClient!.clientId, this.webQuery!.webQueryId, this.assignedJob?.jobId, this.pulseUrl);\r\n            this.showJobAssign = false;\r\n            this.assignedJob = null;\r\n            this.webQuery!.jobReference = '';\r\n            this.webQuery!.memberId = undefined;\r\n            this.newJobId = null;\r\n            this.reloadParentWindow();\r\n        } finally {\r\n            this.loading = false;\r\n        }\r\n    }\r\n\r\n    reloadParentWindow () {\r\n        if (window.parent) {\r\n            window.parent.postMessage('reload', '*');\r\n            this.$emit('loadCorrespondence');\r\n        }\r\n    }\r\n\r\n    capitalizeKey (key: string) {\r\n        if (key === \"\") {\r\n            return key;\r\n        }\r\n        key = key.replace(/([A-Z])/g, ' $1');\r\n        return key.charAt(0).toUpperCase() + key.slice(1);\r\n    }\r\n\r\n    isBasicValueKeyPairFormat(queryType: string) {\r\n        return queryType === 'General'\r\n        || queryType === 'PhoneUpdate'\r\n        || queryType === 'AddressUpdate'\r\n        || queryType === 'CommunicationPreferencesUpdate';\r\n    }\r\n\r\n    async downloadDocument (file: PowerOfAttorneyFile) {\r\n        const downloadLink = document.createElement('a');\r\n        const fileName = file.filename;\r\n\r\n        downloadLink.href = file.sasLink;\r\n        downloadLink.download = fileName;\r\n        downloadLink.target = '_blank';\r\n        downloadLink.click();\r\n    }\r\n}\r\n\r\n","import mod from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./webQuery-viewer.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../ClientWeb/FrontEnd/node_modules/thread-loader/dist/cjs.js!../../../../ClientWeb/FrontEnd/node_modules/babel-loader/lib/index.js!../../../../ClientWeb/FrontEnd/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./webQuery-viewer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./webQuery-viewer.vue?vue&type=template&id=5bec1a86&scoped=true&\"\nimport script from \"./webQuery-viewer.vue?vue&type=script&lang=ts&\"\nexport * from \"./webQuery-viewer.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./webQuery-viewer.vue?vue&type=style&index=0&id=5bec1a86&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../ClientWeb/FrontEnd/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"5bec1a86\",\n  null\n  \n)\n\nexport default component.exports","var map = {\n\t\"./af\": 42786,\n\t\"./af.js\": 42786,\n\t\"./ar\": 30867,\n\t\"./ar-dz\": 14130,\n\t\"./ar-dz.js\": 14130,\n\t\"./ar-kw\": 96135,\n\t\"./ar-kw.js\": 96135,\n\t\"./ar-ly\": 56440,\n\t\"./ar-ly.js\": 56440,\n\t\"./ar-ma\": 47702,\n\t\"./ar-ma.js\": 47702,\n\t\"./ar-sa\": 16040,\n\t\"./ar-sa.js\": 16040,\n\t\"./ar-tn\": 37100,\n\t\"./ar-tn.js\": 37100,\n\t\"./ar.js\": 30867,\n\t\"./az\": 31083,\n\t\"./az.js\": 31083,\n\t\"./be\": 9808,\n\t\"./be.js\": 9808,\n\t\"./bg\": 68338,\n\t\"./bg.js\": 68338,\n\t\"./bm\": 67438,\n\t\"./bm.js\": 67438,\n\t\"./bn\": 8905,\n\t\"./bn-bd\": 76225,\n\t\"./bn-bd.js\": 76225,\n\t\"./bn.js\": 8905,\n\t\"./bo\": 11560,\n\t\"./bo.js\": 11560,\n\t\"./br\": 1278,\n\t\"./br.js\": 1278,\n\t\"./bs\": 80622,\n\t\"./bs.js\": 80622,\n\t\"./ca\": 2468,\n\t\"./ca.js\": 2468,\n\t\"./cs\": 5822,\n\t\"./cs.js\": 5822,\n\t\"./cv\": 50877,\n\t\"./cv.js\": 50877,\n\t\"./cy\": 47373,\n\t\"./cy.js\": 47373,\n\t\"./da\": 24780,\n\t\"./da.js\": 24780,\n\t\"./de\": 59740,\n\t\"./de-at\": 60217,\n\t\"./de-at.js\": 60217,\n\t\"./de-ch\": 60894,\n\t\"./de-ch.js\": 60894,\n\t\"./de.js\": 59740,\n\t\"./dv\": 5300,\n\t\"./dv.js\": 5300,\n\t\"./el\": 50837,\n\t\"./el.js\": 50837,\n\t\"./en-au\": 78348,\n\t\"./en-au.js\": 78348,\n\t\"./en-ca\": 77925,\n\t\"./en-ca.js\": 77925,\n\t\"./en-gb\": 22243,\n\t\"./en-gb.js\": 22243,\n\t\"./en-ie\": 46436,\n\t\"./en-ie.js\": 46436,\n\t\"./en-il\": 47207,\n\t\"./en-il.js\": 47207,\n\t\"./en-in\": 44175,\n\t\"./en-in.js\": 44175,\n\t\"./en-nz\": 76319,\n\t\"./en-nz.js\": 76319,\n\t\"./en-sg\": 31662,\n\t\"./en-sg.js\": 31662,\n\t\"./eo\": 92915,\n\t\"./eo.js\": 92915,\n\t\"./es\": 55655,\n\t\"./es-do\": 55251,\n\t\"./es-do.js\": 55251,\n\t\"./es-mx\": 96112,\n\t\"./es-mx.js\": 96112,\n\t\"./es-us\": 71146,\n\t\"./es-us.js\": 71146,\n\t\"./es.js\": 55655,\n\t\"./et\": 5603,\n\t\"./et.js\": 5603,\n\t\"./eu\": 77763,\n\t\"./eu.js\": 77763,\n\t\"./fa\": 76959,\n\t\"./fa.js\": 76959,\n\t\"./fi\": 11897,\n\t\"./fi.js\": 11897,\n\t\"./fil\": 42549,\n\t\"./fil.js\": 42549,\n\t\"./fo\": 94694,\n\t\"./fo.js\": 94694,\n\t\"./fr\": 94470,\n\t\"./fr-ca\": 63049,\n\t\"./fr-ca.js\": 63049,\n\t\"./fr-ch\": 52330,\n\t\"./fr-ch.js\": 52330,\n\t\"./fr.js\": 94470,\n\t\"./fy\": 5044,\n\t\"./fy.js\": 5044,\n\t\"./ga\": 29295,\n\t\"./ga.js\": 29295,\n\t\"./gd\": 2101,\n\t\"./gd.js\": 2101,\n\t\"./gl\": 38794,\n\t\"./gl.js\": 38794,\n\t\"./gom-deva\": 27884,\n\t\"./gom-deva.js\": 27884,\n\t\"./gom-latn\": 23168,\n\t\"./gom-latn.js\": 23168,\n\t\"./gu\": 95349,\n\t\"./gu.js\": 95349,\n\t\"./he\": 24206,\n\t\"./he.js\": 24206,\n\t\"./hi\": 30094,\n\t\"./hi.js\": 30094,\n\t\"./hr\": 30316,\n\t\"./hr.js\": 30316,\n\t\"./hu\": 22138,\n\t\"./hu.js\": 22138,\n\t\"./hy-am\": 11423,\n\t\"./hy-am.js\": 11423,\n\t\"./id\": 29218,\n\t\"./id.js\": 29218,\n\t\"./is\": 90135,\n\t\"./is.js\": 90135,\n\t\"./it\": 90626,\n\t\"./it-ch\": 10150,\n\t\"./it-ch.js\": 10150,\n\t\"./it.js\": 90626,\n\t\"./ja\": 39183,\n\t\"./ja.js\": 39183,\n\t\"./jv\": 24286,\n\t\"./jv.js\": 24286,\n\t\"./ka\": 12105,\n\t\"./ka.js\": 12105,\n\t\"./kk\": 47772,\n\t\"./kk.js\": 47772,\n\t\"./km\": 18758,\n\t\"./km.js\": 18758,\n\t\"./kn\": 79282,\n\t\"./kn.js\": 79282,\n\t\"./ko\": 33730,\n\t\"./ko.js\": 33730,\n\t\"./ku\": 1408,\n\t\"./ku.js\": 1408,\n\t\"./ky\": 33291,\n\t\"./ky.js\": 33291,\n\t\"./lb\": 36841,\n\t\"./lb.js\": 36841,\n\t\"./lo\": 55466,\n\t\"./lo.js\": 55466,\n\t\"./lt\": 57010,\n\t\"./lt.js\": 57010,\n\t\"./lv\": 37595,\n\t\"./lv.js\": 37595,\n\t\"./me\": 39861,\n\t\"./me.js\": 39861,\n\t\"./mi\": 35493,\n\t\"./mi.js\": 35493,\n\t\"./mk\": 95966,\n\t\"./mk.js\": 95966,\n\t\"./ml\": 87341,\n\t\"./ml.js\": 87341,\n\t\"./mn\": 5115,\n\t\"./mn.js\": 5115,\n\t\"./mr\": 10370,\n\t\"./mr.js\": 10370,\n\t\"./ms\": 9847,\n\t\"./ms-my\": 41237,\n\t\"./ms-my.js\": 41237,\n\t\"./ms.js\": 9847,\n\t\"./mt\": 72126,\n\t\"./mt.js\": 72126,\n\t\"./my\": 56165,\n\t\"./my.js\": 56165,\n\t\"./nb\": 64924,\n\t\"./nb.js\": 64924,\n\t\"./ne\": 16744,\n\t\"./ne.js\": 16744,\n\t\"./nl\": 93901,\n\t\"./nl-be\": 59814,\n\t\"./nl-be.js\": 59814,\n\t\"./nl.js\": 93901,\n\t\"./nn\": 83877,\n\t\"./nn.js\": 83877,\n\t\"./oc-lnc\": 92135,\n\t\"./oc-lnc.js\": 92135,\n\t\"./pa-in\": 15858,\n\t\"./pa-in.js\": 15858,\n\t\"./pl\": 64495,\n\t\"./pl.js\": 64495,\n\t\"./pt\": 89520,\n\t\"./pt-br\": 57971,\n\t\"./pt-br.js\": 57971,\n\t\"./pt.js\": 89520,\n\t\"./ro\": 96459,\n\t\"./ro.js\": 96459,\n\t\"./ru\": 21793,\n\t\"./ru.js\": 21793,\n\t\"./sd\": 40950,\n\t\"./sd.js\": 40950,\n\t\"./se\": 10490,\n\t\"./se.js\": 10490,\n\t\"./si\": 90124,\n\t\"./si.js\": 90124,\n\t\"./sk\": 64249,\n\t\"./sk.js\": 64249,\n\t\"./sl\": 14985,\n\t\"./sl.js\": 14985,\n\t\"./sq\": 51104,\n\t\"./sq.js\": 51104,\n\t\"./sr\": 49131,\n\t\"./sr-cyrl\": 79915,\n\t\"./sr-cyrl.js\": 79915,\n\t\"./sr.js\": 49131,\n\t\"./ss\": 85893,\n\t\"./ss.js\": 85893,\n\t\"./sv\": 98760,\n\t\"./sv.js\": 98760,\n\t\"./sw\": 91172,\n\t\"./sw.js\": 91172,\n\t\"./ta\": 27333,\n\t\"./ta.js\": 27333,\n\t\"./te\": 23110,\n\t\"./te.js\": 23110,\n\t\"./tet\": 52095,\n\t\"./tet.js\": 52095,\n\t\"./tg\": 27321,\n\t\"./tg.js\": 27321,\n\t\"./th\": 9041,\n\t\"./th.js\": 9041,\n\t\"./tk\": 19005,\n\t\"./tk.js\": 19005,\n\t\"./tl-ph\": 75768,\n\t\"./tl-ph.js\": 75768,\n\t\"./tlh\": 89444,\n\t\"./tlh.js\": 89444,\n\t\"./tr\": 72397,\n\t\"./tr.js\": 72397,\n\t\"./tzl\": 28254,\n\t\"./tzl.js\": 28254,\n\t\"./tzm\": 51106,\n\t\"./tzm-latn\": 30699,\n\t\"./tzm-latn.js\": 30699,\n\t\"./tzm.js\": 51106,\n\t\"./ug-cn\": 9288,\n\t\"./ug-cn.js\": 9288,\n\t\"./uk\": 67691,\n\t\"./uk.js\": 67691,\n\t\"./ur\": 13795,\n\t\"./ur.js\": 13795,\n\t\"./uz\": 6791,\n\t\"./uz-latn\": 60588,\n\t\"./uz-latn.js\": 60588,\n\t\"./uz.js\": 6791,\n\t\"./vi\": 65666,\n\t\"./vi.js\": 65666,\n\t\"./x-pseudo\": 14378,\n\t\"./x-pseudo.js\": 14378,\n\t\"./yo\": 75805,\n\t\"./yo.js\": 75805,\n\t\"./zh-cn\": 83839,\n\t\"./zh-cn.js\": 83839,\n\t\"./zh-hk\": 55726,\n\t\"./zh-hk.js\": 55726,\n\t\"./zh-mo\": 99807,\n\t\"./zh-mo.js\": 99807,\n\t\"./zh-tw\": 74152,\n\t\"./zh-tw.js\": 74152\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;","export default class ClientCalendar {\r\n    events: Array<{\r\n        date: string;\r\n        name: string;\r\n        status: string;\r\n    }> = [];\r\n}\r\n","export default class ClientContext {\r\n    minDate!: Date;\r\n\r\n    maxDate!: Date;\r\n\r\n    defaultStartDate!: Date;\r\n\r\n    defaultEndDate!: Date;\r\n\r\n    presetDateOptions!: Array<{ name: string; start: Date; end: Date }>;\r\n}\r\n","export default class ClientStats {\r\n    memberCount!: number;\r\n\r\n    countByStatus!: {\r\n        Dependant: number;\r\n        Pensioner: number;\r\n        Deferred: number;\r\n        Active: number;\r\n    };\r\n}\r\n","export default class DataUpdateStats {\r\n    fromDate!: Date;\r\n\r\n    toDate!: Date;\r\n\r\n    updates!: number;\r\n\r\n    dataByType!: Record<string, number>;\r\n\r\n    dataByStatus!: Record<string, number>;\r\n\r\n    dataByAge!: Record<string, number>;\r\n}\r\n","export default class MemberDocumentStats {\r\n    fromDate!: Date;\r\n\r\n    toDate!: Date;\r\n\r\n    correspondenceCreatedTotal!: number;\r\n\r\n    webFormsSubmitted!: Array<{ name: string; splitByStatus: Record<string, number>}>;\r\n\r\n    webQueriesSubmittedTotal!: number;\r\n\r\n    documentsViewed!: Array<{ name: string; splitByStatus: Record<string, number>}>;\r\n\r\n    correspondenceViewedByStatus!: Record<string, number>;\r\n\r\n    payslipDataByStatus!: Record<string, number>;\r\n}\r\n","export default class FinancialData {\r\n    periods!: Array<{\r\n        fromDate: string;\r\n        toDate: string;\r\n        groups: Array<{\r\n            name: string;\r\n            amount: number;\r\n        }>;\r\n        startBalance: number;\r\n        endBalance: number;\r\n    }>;\r\n\r\n    startBalance!: number;\r\n\r\n    endBalance!: number;\r\n}\r\n","/* eslint-disable max-classes-per-file */\r\nexport default class GovernanceInformation {\r\n    dataBreaches!: number;\r\n\r\n    sarRequests!: number;\r\n\r\n    mortalityScreeningDates!: Array<string>;\r\n\r\n    dataScores!: {\r\n        commonScore: number;\r\n        specificScore: number;\r\n        date: Date;\r\n    };\r\n\r\n    memberFeedback!: {\r\n        ourService: number;\r\n        ourCommunication: number;\r\n    };\r\n}\r\n","/* eslint-disable max-classes-per-file */\r\nexport class JobDateStat {\r\n    startDate!: Date;\r\n\r\n    endDate!: Date;\r\n\r\n    counts!: { [ jobType: string ]: number };\r\n\r\n    countsBySla?: { [ jobType: string ]: { [ sla: string]: number }};\r\n\r\n    averageCompletionTime?: number;\r\n}\r\n\r\nexport default class JobDateStats {\r\n    dataByDate!: Array<JobDateStat>;\r\n\r\n    averageCompletionTime?: number;\r\n}\r\n","export default class MemberDemographics {\r\n    countByStatusAndAge!: {\r\n        [ type: string ]: Array<{ age: number; count: number }>;\r\n    };\r\n\r\n    averagesAges!: { [type: string ]: number };\r\n}\r\n","import MemberFeedback from 'common/models/memberFeedback';\r\n\r\nexport default class MemberFeedbackScores {\r\n    memberFeedbackScores!: Array<MemberFeedback>;\r\n}\r\n","export default class MemberInteractions {\r\n    dataByDate!: Array<{\r\n        startDate: Date;\r\n        endDate: Date;\r\n        phoneCalls: number;\r\n        webQueries: number;\r\n        emails: number;\r\n    }>;\r\n}\r\n","export default class MemberLogins {\r\n    logins!: number;\r\n\r\n    repeatVisits!: number;\r\n\r\n    fromDate!: Date;\r\n\r\n    toDate!: Date;\r\n\r\n    loginsByAge!: Record<string, number>;\r\n\r\n    loginsByStatus!: Record<string, number>;\r\n\r\n    repeatVisitsByStatus!: Record<string, number>;\r\n}\r\n","export default class MemberMovements {\r\n    byStatusAtFromDate!: {\r\n        Active?: number;\r\n        Deferred: number;\r\n        Pensioner: number;\r\n        Dependant?: number;\r\n    };\r\n\r\n    bytStatusAtToDate!: {\r\n        Active?: number;\r\n        Deferred: number;\r\n        Pensioner: number;\r\n        Dependant?: number;\r\n    };\r\n\r\n    movements!: {\r\n        [key: string]: { [movement: string ]: number };\r\n        Active: {\r\n            'Retirement': number;\r\n            'Transfer out': number;\r\n            'Death': number;\r\n            'New dependant': number;\r\n        };\r\n        Deferred: {\r\n            'Retirement': number;\r\n            'Transfer out': number;\r\n            'Death': number;\r\n            'New dependant': number;\r\n        };\r\n        Pensioner: {\r\n            'Retirement': number;\r\n            'Transfer out': number;\r\n            'Death': number;\r\n            'New dependant': number;\r\n        };\r\n        Dependant: {\r\n            'Retirement': number;\r\n            'Transfer out': number;\r\n            'Death': number;\r\n            'New dependant': number;\r\n        };\r\n    };\r\n}\r\n","export default class MemberRegistrations {\r\n    totalRegistrations!: number;\r\n\r\n    dataByAge!: Record<string, number>;\r\n\r\n    dataByStatus!: Record<string, number>;\r\n\r\n    dataByLocation!: Record<string, number>;\r\n}\r\n","export default class ModellerStats {\r\n    fromDate!: Date;\r\n\r\n    toDate!: Date;\r\n\r\n    totalVisits!: number;\r\n\r\n    visitTime!: number;\r\n\r\n    ageGroupSections!: Array<{\r\n        sectionName: string;\r\n        timesByAge: Record<string, number>;\r\n        viewsByAge: Record<string, number>;\r\n        visitsByAge: Record<string, number>;\r\n    }>;\r\n\r\n    ageGroupInteractions!: Array<{\r\n        interactionName: string;\r\n        dataByAge: Record<string, number>;\r\n    }>;\r\n\r\n    visitsByAge!: Record<string, number>;\r\n}\r\n","import PageVisitDate from './pageVisitDate';\r\n\r\nexport default class PageVisits {\r\n    fromDate!: string;\r\n\r\n    toDate!: string;\r\n\r\n    webVisitsByDate!: {\r\n        visits: number;\r\n        time: number;\r\n    };\r\n\r\n    pageVisitsByDate!: Array<PageVisitDate>;\r\n}\r\n","/* eslint-disable max-classes-per-file */\r\n\r\nexport class TransferStat {\r\n    startDate!: Date;\r\n\r\n    endDate!: Date;\r\n\r\n    quotes!: number;\r\n\r\n    quotesAmount!: number;\r\n\r\n    transfers!: number;\r\n\r\n    transferAmount!: number;\r\n}\r\n\r\nexport default class TransferStats {\r\n    dataByDate!: Array<TransferStat>;\r\n}\r\n","export default class WebRegistrations {\r\n    dataByDate: Array<{\r\n        date: string;\r\n        registrations: number;\r\n        availableToRegister: number;\r\n    }> = [];\r\n\r\n    registeredTotal!: number;\r\n\r\n    registeredPeriod!: number;\r\n\r\n    registeredPercentage!: number;\r\n\r\n    registeredPeriodPercentageOfTotal!: number;\r\n\r\n    unregistered!: number;\r\n}\r\n","import ClientCalendar from '@/models/clientCalendar';\r\nimport ClientContext from '@/models/clientContext';\r\nimport ClientStats from '@/models/clientMemberStats';\r\nimport DataUpdateStats from '@/models/dataUpdateStats';\r\nimport MemberDocumentStats from '@/models/memberDocumentStats';\r\nimport FinancialData from '@/models/financialData';\r\nimport GovernanceInformation from '@/models/governanceInformation';\r\nimport JobDateStats, { JobDateStat } from '@/models/jobDateStats';\r\nimport MemberDemographics from '@/models/memberDemographics';\r\nimport MemberFeedbackScores from '@/models/memberFeedbackScores';\r\nimport MemberInteractions from '@/models/memberInteractions';\r\nimport MemberLogins from '@/models/memberLogins';\r\nimport MemberMovements from '@/models/memberMovements';\r\nimport MemberRegistrations from '@/models/memberRegistrations';\r\nimport ModellerStats from '@/models/modellerStats';\r\nimport PageVisits from '@/models/pageVisits';\r\nimport TransferStats from '@/models/transferStats';\r\nimport WebRegistrations from '@/models/webRegistrations';\r\nimport Http from 'common/api/apiHelper';\r\nimport Client from 'common/models/client';\r\nimport Guid from 'common/util/guid';\r\n\r\nconst apiVersion = 'v1.0';\r\nexport default class ClientsApi {\r\n    static getClients () {\r\n        return Http.getAsArray(`${apiVersion}/client/`, Client);\r\n    }\r\n\r\n    static getClient (clientId: Guid) {\r\n        return Http.get(`${apiVersion}/client/${clientId}`, Client);\r\n    }\r\n\r\n    static getClientContext (clientId: Guid) {\r\n        return Http.get(`${apiVersion}/client/${clientId}/context`, ClientContext);\r\n    }\r\n\r\n    static getClientStatistics (clientId: Guid) {\r\n        return Http.get(`${apiVersion}/client/${clientId}/statistics`, ClientStats);\r\n    }\r\n\r\n    static getMemberDemographics (clientId: Guid) {\r\n        return Http.get(`${apiVersion}/client/${clientId}/demographics`, MemberDemographics);\r\n    }\r\n\r\n    static getCompleteJobs (clientId: Guid, from: string, to: string, granularity: 'Weekly' | 'Monthly') {\r\n        return Http.get(`${apiVersion}/client/${clientId}/statistic/job?from=${from}&to=${to}&type=Complete&granularity=${granularity}`, JobDateStats);\r\n    }\r\n\r\n    static getCurrentInProgressJobs (clientId: Guid) {\r\n        return Http.get(`${apiVersion}/client/${clientId}/inprogressjobs/`, JobDateStat);\r\n    }\r\n\r\n    static getInProgressJobs (clientId: Guid, from: string, to: string, granularity: 'Weekly' | 'Monthly') {\r\n        return Http.get(`${apiVersion}/client/${clientId}/statistic/job?from=${from}&to=${to}&type=InProgress&granularity=${granularity}`, JobDateStats);\r\n    }\r\n\r\n    static getMemberInteractions (clientId: Guid, from: string, to: string, granularity: 'Weekly' | 'Monthly') {\r\n        return Http.get(`${apiVersion}/client/${clientId}/memberinteractions?from=${from}&to=${to}&granularity=${granularity}`, MemberInteractions);\r\n    }\r\n\r\n    static getClientCalendar (clientId: Guid) {\r\n        return Http.get(`${apiVersion}/client/${clientId}/clientCalendar`, ClientCalendar);\r\n    }\r\n\r\n    static getWebRegistrations (clientId: Guid, from: string, to: string, granularity: 'Weekly' | 'Monthly') {\r\n        return Http.get(`${apiVersion}/client/${clientId}/webregistrations?from=${from}&to=${to}&granularity=${granularity}`, WebRegistrations);\r\n    }\r\n\r\n    static getMembershipMovements (clientId: Guid, from: string, to: string, granularity: 'Weekly' | 'Monthly') {\r\n        return Http.get(`${apiVersion}/client/${clientId}/membershipmovements?from=${from}&to=${to}&granularity=${granularity}`, MemberMovements);\r\n    }\r\n\r\n    static getTranferStatistics (clientId: Guid, from: string, to: string, granularity: 'Weekly' | 'Monthly') {\r\n        return Http.get(`${apiVersion}/client/${clientId}/statistic/transfer?from=${from}&to=${to}&granularity=${granularity}`, TransferStats);\r\n    }\r\n\r\n    static getPostcodes () {\r\n        return Http.get('/postcodes.csv', String, {\r\n            useBasePath: false,\r\n        });\r\n    }\r\n\r\n    static getGovernanceInformation (clientId: Guid) {\r\n        return Http.get(`${apiVersion}/client/${clientId}/governanceInformation`, GovernanceInformation);\r\n    }\r\n\r\n    static getMemberFeedback (clientId: Guid) {\r\n        return Http.get(`${apiVersion}/client/${clientId}/feedback`, MemberFeedbackScores);\r\n    }\r\n\r\n    static getMemberRegistrations (clientId: Guid, from: string, to: string, granularity: 'Weekly' | 'Monthly') {\r\n        return Http.get(`${apiVersion}/client/${clientId}/web/statistics/registrations?from=${from}&to=${to}&granularity=${granularity}`, MemberRegistrations);\r\n    }\r\n\r\n    static getMemberLogins (clientId: Guid, from: string, to: string, granularity: 'Weekly' | 'Monthly') {\r\n        return Http.getAsArray(`${apiVersion}/client/${clientId}/web/statistics/logins?from=${from}&to=${to}&granularity=${granularity}`, MemberLogins);\r\n    }\r\n\r\n    static getPageVisits (clientId: Guid, from: string, to: string, granularity: 'Weekly' | 'Monthly') {\r\n        return Http.getAsArray(`${apiVersion}/client/${clientId}/web/statistics/pagevisits?from=${from}&to=${to}&granularity=${granularity}`, PageVisits);\r\n    }\r\n\r\n    static getModellerStats (clientId: Guid, from: string, to: string, granularity: 'Weekly' | 'Monthly') {\r\n        return Http.getAsArray(`${apiVersion}/client/${clientId}/web/statistics/modeller?from=${from}&to=${to}&granularity=${granularity}`, ModellerStats);\r\n    }\r\n\r\n    static getDataUpdateStats (clientId: Guid, from: string, to: string, granularity: 'Weekly' | 'Monthly') {\r\n        return Http.get(`${apiVersion}/client/${clientId}/web/statistics/dataupdates?from=${from}&to=${to}&granularity=${granularity}`, DataUpdateStats);\r\n    }\r\n\r\n    static getMemberDocumentStats (clientId: Guid, from: string, to: string, granularity: 'Weekly' | 'Monthly') {\r\n        return Http.get(`${apiVersion}/client/${clientId}/web/statistics/documents?from=${from}&to=${to}&granularity=${granularity}`, MemberDocumentStats);\r\n    }\r\n\r\n    static getFinancials (clientId: Guid, from: string, to: string, granularity: 'Weekly' | 'Monthly') {\r\n        return Http.get(`${apiVersion}/client/${clientId}/financials?from=${from}&to=${to}&granularity=${granularity}`, FinancialData);\r\n    }\r\n\r\n    static getDocuments (clientId: Guid) {\r\n        return Http.get(`${apiVersion}/client/${clientId}/document`);\r\n    }\r\n\r\n    static getDocument (clientId: Guid, name: string) {\r\n        return Http.get(`${apiVersion}/client/${clientId}/document/url?name=${name}`);\r\n    }\r\n\r\n    static wakePrintApi () {\r\n        return Http.get('https://printpdf.lcp.uk.com/api/wake', undefined, { useBasePath: false, useToken: false });\r\n    }\r\n}\r\n","// eslint-disable-next-line max-classes-per-file\r\nimport Guid from 'common/util/guid';\r\n\r\nexport class MemberSearchResultServicePeriod {\r\n    servicePeriodId!: number;\r\n\r\n    status!: string;\r\n\r\n    statusDate!: string;\r\n\r\n    statusDescription!: string;\r\n}\r\n\r\nexport default class MemberSearchResult {\r\n    systemMemberId!: Guid;\r\n\r\n    memberId!: number;\r\n\r\n    forenames!: string;\r\n\r\n    surname!: string;\r\n\r\n    dateBirth!: string;\r\n\r\n    nino!: string;\r\n\r\n    servicePeriods!: Array<MemberSearchResultServicePeriod>;\r\n\r\n    verifiedStatus!: string;\r\n}\r\n","import Http from 'common/api/apiHelper';\r\nimport Guid from 'common/util/guid';\r\nimport MemberSearchParams from 'common/models/memberSearchParams';\r\nimport MemberSearchResult from '@/models/memberSearchResult';\r\nimport CalculationResult from 'common/models/calculations/calculationResult';\r\n\r\nconst apiVersion = 'v1.0';\r\nexport default class MembersApi {\r\n    static getAvailableTypes (clientId: Guid, memberId: number) {\r\n        return Http.get<Record<string, string>>(`${apiVersion}/client/${clientId}/member/${memberId}/availableTypes`);\r\n    }\r\n\r\n    static getAvailableTypesForServicePeriod (clientId: Guid, memberId: number, servicePeriodId: number) {\r\n        return Http.get<Record<string, string>>(`${apiVersion}/client/${clientId}/members/${memberId}/servicePeriod/${servicePeriodId}/availableTypes`);\r\n    }\r\n\r\n    static getClientWebStatus (clientId: Guid, memberId: number) {\r\n        return Http.get<string>(`${apiVersion}/client/${clientId}/member/${memberId}/clientWebStatus`);\r\n    }\r\n\r\n    static getMemberSearchResults (clientId: Guid, searchParams: MemberSearchParams) {\r\n        const params = new URLSearchParams();\r\n        Object.keys(searchParams).forEach((param) => {\r\n            if (searchParams[param] !== undefined && searchParams[param]?.toString().length) {\r\n                params.append(param, searchParams[param]!.toString());\r\n            }\r\n        });\r\n        return Http.getAsArray(`${apiVersion}/client/${clientId}/member/search?${params.toString()}`, MemberSearchResult, { returnHeaders: true }) as Promise<Array<MemberSearchResult> & {headers: { 'x-total-count': number } }>;\r\n    }\r\n\r\n    static getDataType<T> (clientId: Guid, memberId: number, dataType: string): Promise<T> {\r\n        return Http.get<T>(`${apiVersion}/client/${clientId}/member/${memberId}/${dataType}`);\r\n    }\r\n\r\n    static getDataTypeForServicePeriod<T> (clientId: Guid, memberId: number, servicePeriodId: number, dataType: string): Promise<T> {\r\n        return Http.get<T>(`${apiVersion}/client/${clientId}/members/${memberId}/servicePeriod/${servicePeriodId}/${dataType}`);\r\n    }\r\n\r\n    static getCalculation (clientId: Guid, memberId: number, servicePeriodId: number, calculationId: string, args: string): Promise<CalculationResult> {\r\n        return Http.get<CalculationResult>(`${apiVersion}/client/${clientId}/members/${memberId}/servicePeriod/${servicePeriodId}/calculation/${calculationId}/run?arguments=${args}`);\r\n    }\r\n}\r\n","import {\r\n    PublicClientApplication, SilentRequest, AuthenticationResult, Configuration, LogLevel, AccountInfo, InteractionRequiredAuthError, RedirectRequest, PopupRequest, EndSessionRequest, SsoSilentRequest,\r\n} from '~/@azure/msal-browser';\r\n\r\n/**\r\n * Configuration class for @azure/msal-browser:\r\n * https://azuread.github.io/microsoft-authentication-library-for-js/ref/msal-browser/modules/_src_config_configuration_.html\r\n */\r\nconst MSAL_CONFIG: Configuration = {\r\n    auth: {\r\n        clientId: '',\r\n        authority: '',\r\n    },\r\n    cache: {\r\n        cacheLocation: 'sessionStorage', // This configures where your cache will be stored\r\n        storeAuthStateInCookie: false, // Set this to \"true\" if you are having issues on IE11 or Edge\r\n    },\r\n    system: {\r\n        loggerOptions: {\r\n            loggerCallback: (level, message, containsPii) => {\r\n                if (containsPii) {\r\n                    return;\r\n                }\r\n                switch (level) {\r\n                    case LogLevel.Error:\r\n                        console.error(message);\r\n                        return;\r\n                    case LogLevel.Info:\r\n                        // console.info(message);\r\n                        return;\r\n                    case LogLevel.Verbose:\r\n                        // console.debug(message);\r\n                        return;\r\n                    case LogLevel.Warning:\r\n                        console.warn(message);\r\n                        break;\r\n                    default:\r\n                        break;\r\n                }\r\n            },\r\n        },\r\n    },\r\n};\r\n\r\n/**\r\n * AuthModule for application - handles authentication in app.\r\n */\r\nexport default class ExternalAuthenticationService {\r\n    private myMSALObj: PublicClientApplication; // https://azuread.github.io/microsoft-authentication-library-for-js/ref/msal-browser/classes/_src_app_publicclientapplication_.publicclientapplication.html\r\n\r\n    private account: AccountInfo | null; // https://azuread.github.io/microsoft-authentication-library-for-js/ref/msal-common/modules/_src_account_accountinfo_.html\r\n\r\n    private loginRedirectRequest: RedirectRequest; // https://azuread.github.io/microsoft-authentication-library-for-js/ref/msal-browser/modules/_src_request_redirectrequest_.html\r\n\r\n    private loginRequest: PopupRequest; // https://azuread.github.io/microsoft-authentication-library-for-js/ref/msal-browser/modules/_src_request_popuprequest_.html\r\n\r\n    private silentLoginRequest: SsoSilentRequest;\r\n\r\n    constructor (config: Configuration, request: PopupRequest) {\r\n        this.myMSALObj = new PublicClientApplication({ ...MSAL_CONFIG, ...config });\r\n        this.account = null;\r\n\r\n        this.loginRequest = request;\r\n\r\n        this.loginRedirectRequest = {\r\n            ...this.loginRequest,\r\n            redirectStartPage: window.location.href.toLowerCase().replace('?signin=true', ''),\r\n        };\r\n\r\n        this.silentLoginRequest = {\r\n            loginHint: '',\r\n        };\r\n        this.loadAuthModule();\r\n    }\r\n\r\n    /**\r\n     * Calls getAllAccounts and determines the correct account to sign into, currently defaults to first account found in cache.\r\n     * TODO: Add account chooser code\r\n     *\r\n     * https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-common/docs/Accounts.md\r\n     */\r\n    private getAccount (): AccountInfo | null {\r\n        // need to call getAccount here?\r\n        const currentAccounts = this.myMSALObj.getAllAccounts();\r\n        if (currentAccounts === null) {\r\n            console.log('No accounts detected');\r\n            return null;\r\n        }\r\n\r\n        if (currentAccounts.length > 1) {\r\n            // Add choose account code here\r\n            // console.log('Multiple accounts detected, need to add choose account code.');\r\n            return currentAccounts[0];\r\n        } if (currentAccounts.length === 1) {\r\n            return currentAccounts[0];\r\n        }\r\n\r\n        return null;\r\n    }\r\n\r\n    /**\r\n     * Checks whether we are in the middle of a redirect and handles state accordingly. Only required for redirect flows.\r\n     *\r\n     * https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-browser/docs/initialization.md#redirect-apis\r\n     */\r\n    loadAuthModule (): Promise<AuthenticationResult | null | void> {\r\n        return this.myMSALObj.handleRedirectPromise().then((result) => {\r\n            if (result?.account) this.setActiveAccount(result.account);\r\n            return result;\r\n        })\r\n            .catch(console.error);\r\n    }\r\n\r\n    /**\r\n     * Calls ssoSilent to attempt silent flow. If it fails due to interaction required error, it will prompt the user to login using popup.\r\n     * @param request\r\n     */\r\n    attemptSsoSilent (): Promise<void | AuthenticationResult> {\r\n        return this.myMSALObj.ssoSilent(this.silentLoginRequest).catch((error) => {\r\n            console.error(`Silent Error: ${error}`);\r\n            if (error instanceof InteractionRequiredAuthError) {\r\n                this.login('loginPopup');\r\n            }\r\n        });\r\n    }\r\n\r\n    /**\r\n     * Calls loginPopup or loginRedirect based on given signInType.\r\n     * @param signInType\r\n     */\r\n    login (signInType: 'loginPopup' | 'loginRedirect' = 'loginRedirect'): Promise<AuthenticationResult | void> {\r\n        if (signInType === 'loginPopup') {\r\n            return this.myMSALObj.loginPopup(this.loginRequest).then((result) => {\r\n                if (result.account) {\r\n                    this.setActiveAccount(result.account);\r\n                }\r\n            }).catch(console.error);\r\n        }\r\n        return this.myMSALObj.loginRedirect(this.loginRedirectRequest);\r\n    }\r\n\r\n    setActiveAccount (account: AccountInfo): void {\r\n        this.myMSALObj.setActiveAccount(account);\r\n        this.account = account;\r\n    }\r\n\r\n    /**\r\n     * Logs out of current account.\r\n     */\r\n    logout (): void {\r\n        let account: AccountInfo | undefined;\r\n        if (this.account) {\r\n            account = this.account;\r\n        }\r\n        const logOutRequest: EndSessionRequest = {\r\n            account,\r\n        };\r\n\r\n        this.myMSALObj.logoutRedirect(logOutRequest);\r\n    }\r\n\r\n    async getToken (scopes?: Array<string>): Promise<AuthenticationResult | null> {\r\n        await this.loadAuthModule();\r\n        return this.getTokenRedirect(\r\n            { scopes: scopes || this.loginRequest.scopes, forceRefresh: false },\r\n            { scopes: scopes || this.loginRequest.scopes, redirectUri: window.location.href },\r\n        );\r\n    }\r\n\r\n    /**\r\n     * Gets a token silently, or falls back to interactive popup.\r\n     */\r\n    private async getTokenPopup (silentRequest: SilentRequest, interactiveRequest: PopupRequest): Promise<AuthenticationResult|null> {\r\n        try {\r\n            if (!this.myMSALObj.getActiveAccount()) {\r\n                const account = this.getAccount();\r\n                if (account) {\r\n                    this.setActiveAccount(account);\r\n                } else {\r\n                    return null;\r\n                }\r\n            }\r\n            const response: AuthenticationResult = await this.myMSALObj.acquireTokenSilent(silentRequest);\r\n            return response;\r\n        } catch (e) {\r\n            console.log('silent token acquisition fails.');\r\n            if (e instanceof InteractionRequiredAuthError) {\r\n                console.log('acquiring token using redirect');\r\n                return this.myMSALObj.acquireTokenPopup(interactiveRequest).catch((err) => {\r\n                    console.error(err);\r\n                    return null;\r\n                });\r\n            }\r\n            console.error(e);\r\n        }\r\n\r\n        return null;\r\n    }\r\n\r\n    /**\r\n     * Gets a token silently, or falls back to interactive redirect.\r\n     */\r\n    private async getTokenRedirect (silentRequest: SilentRequest, interactiveRequest: RedirectRequest): Promise<AuthenticationResult|null> {\r\n        try {\r\n            if (!this.myMSALObj.getActiveAccount()) {\r\n                const account = this.getAccount();\r\n                if (account) {\r\n                    this.setActiveAccount(account);\r\n                } else {\r\n                    return null;\r\n                }\r\n            }\r\n            const response = await this.myMSALObj.acquireTokenSilent(silentRequest);\r\n            return response;\r\n        } catch (e) {\r\n            console.log('silent token acquisition fails.');\r\n            if (e instanceof InteractionRequiredAuthError) {\r\n                console.log('acquiring token using redirect');\r\n                this.myMSALObj.acquireTokenRedirect(interactiveRequest).catch(console.error);\r\n            } else {\r\n                console.error(e);\r\n            }\r\n        }\r\n\r\n        return null;\r\n    }\r\n}\r\n","import ExternalAuthenticationService from 'common/util/auth/externalAuthenticationService';\r\n\r\nexport default class Config {\r\n    static siteName = 'Client Web';\r\n\r\n    static siteAuth = 'clientWeb';\r\n\r\n    static AuthService = ExternalAuthenticationService;\r\n}\r\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.loggedIn || !_vm.pageRequiresLogin)?_c('div',{attrs:{\"id\":\"app\"}},[(!_vm.hideHeader)?_c('header-bar'):_vm._e(),_c('div',{staticClass:\"container\"},[(!_vm.hideNav && _vm.loggedIn)?_c('navbar'):_vm._e(),_c('router-view'),(!_vm.hasAcceptedTerms)?_c('div',{staticClass:\"terms-modal\"},[_c('p',{staticClass:\"please-scroll\"},[_vm._v(\"Please scroll down to accept the terms\")]),_c('terms-wording',[_c('btn',{staticClass:\"accept\",on:{\"click\":_vm.acceptTerms}},[_vm._v(\"Accept terms\")])],1)],1):_vm._e()],1)],1):_c('div',{staticClass:\"container\"},[_c('login-page')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"container\"},[(_vm.loaded)?_c('div',{staticClass:\"column\"},[_c('div',{staticClass:\"intro\"},[_vm._m(0),_c('p',[_vm._v(\"Please log in below. Alternatively, if you don't already have an account, click Login and follow the instructions on screen to sign up.\")]),(_vm.loaded)?_c('btn',{attrs:{\"text\":\"Login\",\"icon\":\"user-friends\"},on:{\"click\":_vm.login}}):_c('loading')],1),_c('div',{staticClass:\"footer\"},[_c('span',[_vm._v(\"© Copyright LCP \"+_vm._s(_vm.year))]),_vm._m(1)])]):_vm._e(),(_vm.loaded)?_c('div',{staticClass:\"column\"},[_c('img',{staticClass:\"cardiogram\",attrs:{\"src\":\"/pulse.svg\"}}),_vm._m(2),_c('img',{staticClass:\"pasa\",attrs:{\"src\":require(\"./../assets/pasa.png\")}})]):_vm._e(),(!_vm.loaded)?_c('loading'):_vm._e()],1)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('h1',[_c('img',{staticClass:\"logo\",attrs:{\"src\":require(\"../assets/logo-intro.svg\")}}),_vm._v(\"Pulse\")])\n},function (){var _vm=this,_c=_vm._self._c;return _c('div',[_c('a',{attrs:{\"href\":\"/terms-conditions\",\"target\":\"_blank\"}},[_vm._v(\"Terms & Conditions\")]),_c('a',{attrs:{\"href\":\"https://lcpcloud.com/privacy\",\"target\":\"_blank\"}},[_vm._v(\"LCP Cloud privacy policy\")])])\n},function (){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"byline\"},[_c('h2',[_vm._v(\"Insight into administration activity\")]),_c('p',[_vm._v(\"LCP Pulse gives you access to key administration reporting in real-time\")])])\n}]\n\nexport { render, staticRenderFns }","<template>\r\n    <div class=\"container\">\r\n        <div class=\"column\" v-if=\"loaded\">\r\n            <div class=\"intro\">\r\n                <h1><img class=\"logo\" src=\"../assets/logo-intro.svg\"/>Pulse</h1>\r\n                <p>Please log in below. Alternatively, if you don't already have an account, click Login and follow the instructions on screen to sign up.</p>\r\n                <btn v-if=\"loaded\" @click=\"login\" text=\"Login\" icon=\"user-friends\"/>\r\n                <loading v-else />\r\n            </div>\r\n            <div class=\"footer\">\r\n                <span>© Copyright LCP {{ year }}</span>\r\n                <div>\r\n                    <a href=\"/terms-conditions\" target=\"_blank\">Terms & Conditions</a>\r\n                    <a href=\"https://lcpcloud.com/privacy\" target=\"_blank\">LCP Cloud privacy policy</a>\r\n                </div>\r\n            </div>\r\n        </div>\r\n        <div class=\"column\"  v-if=\"loaded\">\r\n            <img src=\"/pulse.svg\" class=\"cardiogram\"/>\r\n            <div class=\"byline\">\r\n                <h2>Insight into administration activity</h2>\r\n                <p>LCP Pulse gives you access to key administration reporting in real-time</p>\r\n            </div>\r\n            <img src=\"./../assets/pasa.png\" class=\"pasa\" />\r\n\r\n        </div>\r\n        <loading v-if=\"!loaded\"/>\r\n    </div>\r\n</template>\r\n\r\n<script>\r\nimport loading from 'common/components/loading.vue';\r\n\r\nexport default {\r\n    components: { loading },\r\n    async mounted () {\r\n        await this.$store.dispatch('auth/getToken').then((result) => {\r\n            if (!result) {\r\n                if (this.$route.query?.signIn || this.$route.query?.signin) {\r\n                    this.$router.push(this.$route.path);\r\n                    this.login();\r\n                }\r\n            }\r\n            this.loaded = true;\r\n        }).catch(() => {\r\n            this.loaded = true;\r\n        });\r\n        if (this.$route.query?.signIn || this.$route.query?.signin) {\r\n            this.$router.push(this.$route.path);\r\n        }\r\n    },\r\n    data () {\r\n        return {\r\n            loaded: false,\r\n        };\r\n    },\r\n    methods: {\r\n        login () {\r\n            return this.$store.dispatch('auth/login').then(() => {\r\n                if (this.$route.query.url) {\r\n                    window.location.href = this.$route.query.url;\r\n                }\r\n                this.$nextTick(() => {\r\n                    this.$store.dispatch('auth/getToken');\r\n                });\r\n            });\r\n        },\r\n        logout () {\r\n            this.$store.dispatch('auth/logout').then(() => {\r\n                this.$store.dispatch('auth/getToken');\r\n            });\r\n        },\r\n    },\r\n    computed: {\r\n        environment () {\r\n            return this.siteConfiguration['environment.name'];\r\n        },\r\n        siteConfiguration () {\r\n            return this.$store.getters['configuration/site'];\r\n        },\r\n        year () {\r\n            return new Date().getFullYear();\r\n        },\r\n    },\r\n};\r\n</script>\r\n<style lang=\"scss\" scoped>\r\n@import 'common/scss/index.scss';\r\n.container {\r\n    display: flex;\r\n    .column {\r\n        position: relative;\r\n        width: 60%;\r\n        overflow: hidden;\r\n        display: flex;\r\n        height: 100%;\r\n        align-items: center;\r\n        justify-content: center;\r\n        justify-items: center;\r\n        flex-direction: column;\r\n        @media (max-width: 1000px) {\r\n            width: 100%;\r\n            height: 100%;\r\n        }\r\n        &:last-child {\r\n            width: 40%;\r\n            background: $lcpDarkBlue;\r\n            background-image: url('@/assets/chevron-bg.png');\r\n            background-repeat: no-repeat;\r\n            background-position: bottom right;\r\n            min-width: 500px;\r\n            @media (max-width: 1000px) {\r\n                display: none;\r\n            }\r\n        }\r\n    }\r\n}\r\n\r\n.intro {\r\n    padding: 1rem;\r\n}\r\n\r\n.cardiogram {\r\n    position: absolute;\r\n    bottom: 0;\r\n    opacity: 0;\r\n    width: 100%;\r\n}\r\n\r\n.pasa {\r\n    align-self: flex-end;\r\n    position: absolute;\r\n    bottom: 1.5rem;\r\n    right: 1.5rem;\r\n}\r\n\r\np {\r\n    font-size: 1.25rem;\r\n    max-width: 590px;\r\n    text-align: left;\r\n    line-height: 1.5;\r\n    margin-bottom: 2rem;\r\n}\r\n\r\n.logo {\r\n    height: 38px;\r\n    margin-right: 0.25rem;\r\n}\r\n\r\n.byline {\r\n    color: #fff;\r\n    max-width: 400px;\r\n    position: relative;\r\n    border-radius: 0.5rem;\r\n    text-shadow: rgba(0, 0, 0, 0.2) 2px 2px 2px;\r\n    h2 {\r\n        padding: 0;\r\n        margin-bottom: 2rem;\r\n        line-height: 1.5;\r\n    }\r\n}\r\n\r\nh1 {\r\n    font-size: 3rem;\r\n    font-weight: 700;\r\n    color: $lcpDarkBlue;\r\n    margin-bottom: 2rem;\r\n}\r\n\r\nbutton {\r\n    border: 0;\r\n    background: $lcpWatermelon;\r\n    color: white;\r\n    font-size: 1.3rem;\r\n    padding: 1rem;\r\n    cursor: pointer;\r\n    border-radius: 0.25rem;\r\n    transition: background .5s;\r\n    &:hover {\r\n        background: lighten($primaryColour, 5);\r\n    }\r\n}\r\n\r\n.footer {\r\n    position: absolute;\r\n    bottom: 0;\r\n    left: 0;\r\n    padding: 1rem;\r\n    display: flex;\r\n    width: 100%;\r\n    justify-content: space-between;\r\n    a {\r\n        color: $lcpDarkBlue;\r\n        text-decoration: underline;\r\n        padding: 1rem;\r\n    }\r\n}\r\n</style>\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LoginPage.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LoginPage.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LoginPage.vue?vue&type=template&id=7b799fc8&scoped=true&\"\nimport script from \"./LoginPage.vue?vue&type=script&lang=js&\"\nexport * from \"./LoginPage.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LoginPage.vue?vue&type=style&index=0&id=7b799fc8&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"7b799fc8\",\n  null\n  \n)\n\nexport default component.exports","\r\nimport { Component, Vue, Watch } from 'vue-property-decorator';\r\nimport headerBar from '@/components/header-bar.vue';\r\nimport navbar from '@/components/navbar.vue';\r\nimport Client from 'common/models/client';\r\nimport LoginPage from '@/views/LoginPage.vue';\r\nimport ClientNameService from './services/clientNameService';\r\nimport ClientApi from './api/clientApi';\r\n\r\n@Component({\r\n    components: {\r\n        LoginPage, headerBar, navbar,\r\n    },\r\n})\r\nexport default class App extends Vue {\r\n    hasAcceptedTerms = false;\r\n\r\n    get loggedIn () {\r\n        return this.$store.getters['auth/loggedIn'];\r\n    }\r\n\r\n    get loading () {\r\n        return this.$store.getters['loading/loading'];\r\n    }\r\n\r\n    get hideNav () {\r\n        return this.$route.meta?.hideNav;\r\n    }\r\n\r\n    get hideHeader () {\r\n        return this.$route.meta?.hideNav;\r\n    }\r\n\r\n    get clientName () {\r\n        return this.$route.params?.clientName;\r\n    }\r\n\r\n    get clients () {\r\n        return this.$store.getters['clientContext/clients'] as Array<Client>;\r\n    }\r\n\r\n    get isIdle () {\r\n        return this.$store.state.idleVue.isIdle;\r\n    }\r\n\r\n    get pageRequiresLogin () {\r\n        return !this.$route.meta?.public;\r\n    }\r\n\r\n    acceptTerms () {\r\n        this.hasAcceptedTerms = true;\r\n        sessionStorage.setItem('terms', 'true');\r\n    }\r\n\r\n    mounted () {\r\n        ClientApi.wakePrintApi();\r\n        try {\r\n            const terms = sessionStorage.getItem('terms');\r\n            this.hasAcceptedTerms = terms === 'true';\r\n        } catch (e) {\r\n            console.info('Terms not yet accepted');\r\n        }\r\n        this.$store.commit('clientStatistics/initialise');\r\n    }\r\n\r\n    @Watch('loggedIn', { immediate: true })\r\n    loggedInChanged () {\r\n        if (this.loggedIn && (!this.clients || !this.clients.length)) {\r\n            this.$store.dispatch('clientContext/getClients');\r\n        }\r\n    }\r\n\r\n    @Watch('isIdle')\r\n    isIdleChanged () {\r\n        if (process.env.NODE_ENV !== 'production') return;\r\n        if (this.isIdle && this.loggedIn) {\r\n            this.$store.dispatch('auth/logout');\r\n        }\r\n    }\r\n\r\n    @Watch('clientName', { immediate: true })\r\n    @Watch('clients')\r\n    clientNameChanged () {\r\n        if (!this.clientName || !this.clients) return;\r\n        let client = this.clients.find((a) => this.clientName === ClientNameService.clientNameToPath(a.name));\r\n        if (!client && this.clientName === 'demo') client = this.clients.find((a) => a.name === 'ICI Specialty Chemicals Pension Fund');\r\n        if (client) {\r\n            this.$store.commit('clientContext/setSelectedClient', client.clientId);\r\n        } else {\r\n            this.$router.push('/');\r\n        }\r\n    }\r\n}\r\n\r\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=35dc87b0&\"\nimport script from \"./App.vue?vue&type=script&lang=ts&\"\nexport * from \"./App.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=35dc87b0&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.clientContext && _vm.hasReportingRole)?_c('div',{staticClass:\"content\"},[_c('h2',[_vm._v(\"Key administration reporting\")]),_c('div',{staticClass:\"columns\"},[_c('div',{staticClass:\"column\"},[_c('completed-pie-sla',{staticClass:\"link\",attrs:{\"clientId\":_vm.clientId,\"printing\":true,\"chartTitle\":\"Cases completed within target\"},nativeOn:{\"click\":function($event){return _vm.navigateTo('MemberActivity', 'completed-jobs-sla')}}}),_c('feedback-quarterly-score',{staticClass:\"link\",attrs:{\"isGovernanceScreen\":false,\"isCommunication\":true,\"isService\":true},nativeOn:{\"click\":function($event){return _vm.navigateTo('SchemeGovernance', 'feedback')}}})],1),_c('div',{staticClass:\"column\"},[_c('member-statistics-overview',{staticClass:\"link\",attrs:{\"clientId\":_vm.clientId},nativeOn:{\"click\":function($event){return _vm.navigateTo('Membership', 'stats')}}}),_c('inprogress-pie',{staticClass:\"link\",attrs:{\"clientId\":_vm.clientId,\"showCurrent\":true},nativeOn:{\"click\":function($event){return _vm.navigateTo('MemberActivity', 'live-jobs')}}})],1),_c('div',{staticClass:\"column\"},[_c('data-scores',{staticClass:\"link\",attrs:{\"clientId\":_vm.clientId},nativeOn:{\"click\":function($event){return _vm.navigateTo('SchemeGovernance', 'data-scores')}}}),_c('contact-tile',{attrs:{\"clientId\":_vm.clientId}})],1)])]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue } from 'vue-property-decorator';\r\nimport Guid from 'common/util/guid';\r\nimport MemberStatisticsOverview from '@/components/member-statistics-tile.vue';\r\nimport ClientCalendar from '@/components/client-calendar.vue';\r\nimport InprogressPie from '@/components/inprogress-pie.vue';\r\nimport WebRegistrationsGauge from '@/components/web-registrations-gauge.vue';\r\nimport CompletedJobsRag from '@/components/completed-jobs-rag.vue';\r\nimport ContactTile from '@/components/contact-tile.vue';\r\nimport FeedbackScore from '@/components/feedback-score.vue';\r\nimport DataScores from '@/components/data-scores.vue';\r\nimport BankBalance from '@/components/bank-balance.vue';\r\nimport DocumentSearch from '@/components/document-search.vue';\r\nimport ClientConfig from '@/models/client';\r\n\r\n@Component({\r\n    components: {\r\n        MemberStatisticsOverview,\r\n        InprogressPie,\r\n        ClientCalendar,\r\n        CompletedJobsRag,\r\n        WebRegistrationsGauge,\r\n        ContactTile,\r\n        FeedbackScore,\r\n        DataScores,\r\n        BankBalance,\r\n        DocumentSearch,\r\n    },\r\n})\r\nexport default class Home extends Vue {\r\n    // yearlyFeedbackResult: Array<YearlyQuarterlyFeedback> = new Array<YearlyQuarterlyFeedback>();\r\n\r\n    get clientId () {\r\n        return this.$store.getters['clientContext/selectedClient'] as Guid;\r\n    }\r\n\r\n    get clientContext () {\r\n        return this.$store.getters['clientContext/context'](this.clientId);\r\n    }\r\n\r\n    get clientConfiguration () {\r\n        return this.$store.getters['clientContext/selectedClientConfiguration'](this.clientId) as ClientConfig ?? {};\r\n    }\r\n\r\n    get hasReportingRole () {\r\n        return this.clientConfiguration?.hasReportingRole;\r\n    }\r\n\r\n    navigateTo (path: string, row: string) {\r\n        this.$router.push({\r\n            name: path,\r\n            params: { row },\r\n        });\r\n    }\r\n\r\n    // yearlyFeedbackResults (lastFourYearsFeedback: Array<YearlyQuarterlyFeedback>) {\r\n    //     this.yearlyFeedbackResult = lastFourYearsFeedback;\r\n    // }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=19d90707&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=ts&\"\nexport * from \"./Home.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=19d90707&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"19d90707\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{ref:\"content\",staticClass:\"content\"},[_c('h2',[_vm._v(\"Member activity\")]),(_vm.clientId)?_c('div',{staticClass:\"rows\"},[_c('div',{staticClass:\"row\"},[_c('inprogress-pie',{attrs:{\"clientId\":_vm.clientId,\"showLegend\":true,\"showCurrent\":true},on:{\"pointSelected\":_vm.pointSelected}}),_c('inprogress-jobs',{attrs:{\"clientId\":_vm.clientId,\"filter\":_vm.selectedSeries.liveJobs}})],1),_c('div',{staticClass:\"row\"},[_c('completed-pie',{ref:\"completed-jobs\",attrs:{\"clientId\":_vm.clientId,\"showLegend\":true},on:{\"pointSelected\":_vm.pointSelected}}),_c('completed-jobs',{attrs:{\"clientId\":_vm.clientId,\"filter\":_vm.selectedSeries.completedJobs}})],1),_c('div',{staticClass:\"row\"},[_c('completed-pie-sla',{ref:\"completed-jobs-sla\",attrs:{\"clientId\":_vm.clientId,\"showLegend\":true},on:{\"pointSelected\":_vm.pointSelected,\"viewByCase\":_vm.viewByCaseChanged}}),_c('completed-jobs-sla',{attrs:{\"clientId\":_vm.clientId,\"filter\":_vm.selectedSeries.completedJobsSla,\"viewByCase\":_vm.viewByCase}})],1),_c('div',{staticClass:\"row\"},[_c('member-interactions-pie',{attrs:{\"clientId\":_vm.clientId,\"showLegend\":true},on:{\"pointSelected\":_vm.pointSelected}}),_c('member-interactions',{attrs:{\"clientId\":_vm.clientId,\"filter\":_vm.selectedSeries.interactions}})],1)]):_vm._e(),_c('div',{staticClass:\"tiles\"})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue } from 'vue-property-decorator';\r\nimport Guid from 'common/util/guid';\r\nimport InprogressJobs from '@/components/inprogress-jobs.vue';\r\nimport InprogressPie from '@/components/inprogress-pie.vue';\r\nimport CompletedPie from '@/components/completed-pie.vue';\r\nimport CompletedPieSla from '@/components/completed-pie-sla.vue';\r\nimport CompletedJobsSla from '@/components/completed-jobs-sla.vue';\r\nimport CompletedJobs from '@/components/completed-jobs.vue';\r\nimport MemberInteractions from '@/components/member-interactions.vue';\r\nimport WebRegistrations from '@/components/web-registrations.vue';\r\nimport MemberInteractionsPie from '@/components/member-interactions-pie.vue';\r\nimport WebRegistrationsPie from '@/components/web-registrations-pie.vue';\r\nimport Client from 'common/models/client';\r\n\r\n@Component({\r\n    components: {\r\n        InprogressJobs,\r\n        CompletedJobs,\r\n        MemberInteractions,\r\n        InprogressPie,\r\n        CompletedPie,\r\n        MemberInteractionsPie,\r\n        WebRegistrations,\r\n        WebRegistrationsPie,\r\n        CompletedPieSla,\r\n        CompletedJobsSla,\r\n    },\r\n})\r\nexport default class Membership extends Vue {\r\n    get clientId () {\r\n        return this.$store.getters['clientContext/selectedClient'] as Guid;\r\n    }\r\n\r\n    viewByCase = false;\r\n\r\n    selectedSeries: { [category: string ]: string } = {};\r\n\r\n    pointSelected ({ category, series }: { category: string; series: string }) {\r\n        Vue.set(this.selectedSeries, category, series);\r\n    }\r\n\r\n    get row () {\r\n        return this.$route.params.row;\r\n    }\r\n\r\n    viewByCaseChanged (val: boolean) {\r\n        this.viewByCase = val;\r\n    }\r\n\r\n    mounted () {\r\n        this.$nextTick(() => {\r\n            if (this.$refs[this.row]) {\r\n                (this.$refs.content as HTMLElement).scrollTop = ((this.$refs[this.row] as Vue).$el as HTMLElement).offsetTop;\r\n            }\r\n        });\r\n    }\r\n\r\n    get client () {\r\n        return (this.$store.getters['clientContext/clients'] as Array<Client>).find((a) => a.clientId === this.clientId);\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MemberActivity.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MemberActivity.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MemberActivity.vue?vue&type=template&id=a0c7a8e0&scoped=true&\"\nimport script from \"./MemberActivity.vue?vue&type=script&lang=ts&\"\nexport * from \"./MemberActivity.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MemberActivity.vue?vue&type=style&index=0&id=a0c7a8e0&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"a0c7a8e0\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.clientId)?_c('div',{ref:\"content\",staticClass:\"content\"},[_c('h2',{staticClass:\"page-title\"},[_vm._v(\"Membership\")]),_c('div',{staticClass:\"columns\"},[_c('div',{staticClass:\"column\"},[_c('member-statistics-overview',{ref:\"stats\",attrs:{\"clientId\":_vm.clientId}}),_c('member-movements',{attrs:{\"clientId\":_vm.clientId}})],1),_c('div',{staticClass:\"column\"},[_c('demographics',{attrs:{\"clientId\":_vm.clientId}}),_c('transfers',{ref:\"stats\",attrs:{\"clientId\":_vm.clientId}})],1)])]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue } from 'vue-property-decorator';\r\nimport Guid from 'common/util/guid';\r\nimport MemberStatisticsOverview from '@/components/member-statistics-tile.vue';\r\nimport Demographics from '@/components/demographics.vue';\r\nimport MemberMovements from '@/components/member-movements.vue';\r\nimport Transfers from '@/components/transfers.vue';\r\n\r\n@Component({\r\n    components: {\r\n        MemberStatisticsOverview,\r\n        Demographics,\r\n        MemberMovements,\r\n        Transfers,\r\n    },\r\n})\r\nexport default class Membership extends Vue {\r\n    get clientId () {\r\n        return this.$store.getters['clientContext/selectedClient'] as Guid;\r\n    }\r\n\r\n    get row () {\r\n        return this.$route.params.row;\r\n    }\r\n\r\n    mounted () {\r\n        this.$nextTick(() => {\r\n            if (this.$refs[this.row]) {\r\n                (this.$refs.content as HTMLElement).scrollTop = ((this.$refs[this.row] as Vue).$el as HTMLElement).offsetTop;\r\n            }\r\n        });\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Membership.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Membership.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Membership.vue?vue&type=template&id=5aefb7a6&scoped=true&\"\nimport script from \"./Membership.vue?vue&type=script&lang=ts&\"\nexport * from \"./Membership.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Membership.vue?vue&type=style&index=0&id=5aefb7a6&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"5aefb7a6\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.clientId)?_c('div',{ref:\"content\",staticClass:\"content\"},[_c('h2',{staticClass:\"page-title\"},[_vm._v(\"Governance\")]),_c('div',{staticClass:\"columns\"},[_c('div',{staticClass:\"column\"},[_c('data-scores',{ref:\"data-scores\",attrs:{\"clientId\":_vm.clientId}})],1),_c('div',{staticClass:\"column\"},[_c('feedback-score',{ref:\"feedback\",attrs:{\"clientId\":_vm.clientId}}),_c('client-calendar',{ref:\"calendar\",attrs:{\"clientId\":_vm.clientId}})],1)])]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue } from 'vue-property-decorator';\r\nimport Guid from 'common/util/guid';\r\nimport DataScores from '@/components/data-scores.vue';\r\nimport ClientCalendar from '@/components/client-calendar.vue';\r\nimport FeedbackScore from '@/components/feedback-score.vue';\r\n\r\n@Component({\r\n    components: {\r\n        ClientCalendar,\r\n        DataScores,\r\n        FeedbackScore,\r\n    },\r\n})\r\nexport default class SchemeGovernance extends Vue {\r\n    get clientId () {\r\n        return this.$store.getters['clientContext/selectedClient'] as Guid;\r\n    }\r\n\r\n    get row () {\r\n        return this.$route.params.row;\r\n    }\r\n\r\n    mounted () {\r\n        this.$nextTick(() => {\r\n            if (this.$refs[this.row]) {\r\n                (this.$refs.content as HTMLElement).scrollTop = ((this.$refs[this.row] as Vue).$el as HTMLElement).offsetTop;\r\n            }\r\n        });\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SchemeGovernance.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SchemeGovernance.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SchemeGovernance.vue?vue&type=template&id=0bb6bd8a&scoped=true&\"\nimport script from \"./SchemeGovernance.vue?vue&type=script&lang=ts&\"\nexport * from \"./SchemeGovernance.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SchemeGovernance.vue?vue&type=style&index=0&id=0bb6bd8a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"0bb6bd8a\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.clientId)?_c('div',{ref:\"content\",staticClass:\"content\"},[_c('h2',{staticClass:\"page-title\"},[_vm._v(\"Financial reporting\")]),_c('div',{staticClass:\"columns\"},[_c('div',{staticClass:\"column\"},[_c('income-expenditure-table',{attrs:{\"clientId\":_vm.clientId},on:{\"pointSelected\":_vm.pointSelected}}),_c('bank-balance-over-time',{attrs:{\"clientId\":_vm.clientId}})],1),_c('div',{staticClass:\"column\"},[_c('income-expenditure',{attrs:{\"clientId\":_vm.clientId,\"filter\":_vm.selectedSeries.income}}),_c('bank-balance',{attrs:{\"clientId\":_vm.clientId}})],1)])]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue } from 'vue-property-decorator';\r\nimport Guid from 'common/util/guid';\r\n\r\n@Component\r\nexport default class SchemeGovernance extends Vue {\r\n    selectedSeries: { [category: string ]: string } = {};\r\n\r\n    get clientId () {\r\n        return this.$store.getters['clientContext/selectedClient'] as Guid;\r\n    }\r\n\r\n    get row () {\r\n        return this.$route.params.row;\r\n    }\r\n\r\n    pointSelected ({ category, series }: { category: string; series: string }) {\r\n        Vue.set(this.selectedSeries, category, series);\r\n    }\r\n\r\n    mounted () {\r\n        this.$nextTick(() => {\r\n            if (this.$refs[this.row]) {\r\n                (this.$refs.content as HTMLElement).scrollTop = ((this.$refs[this.row] as Vue).$el as HTMLElement).offsetTop;\r\n            }\r\n        });\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Finance.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Finance.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Finance.vue?vue&type=template&id=17aa94ee&scoped=true&\"\nimport script from \"./Finance.vue?vue&type=script&lang=ts&\"\nexport * from \"./Finance.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Finance.vue?vue&type=style&index=0&id=17aa94ee&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"17aa94ee\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"content news\"},[_c('h2',{staticClass:\"page-title\"},[_vm._v(\"Pensions news\")]),_c('news-items',{attrs:{\"clientId\":_vm.clientId}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Guid from 'common/util/guid';\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class News extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./News.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./News.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./News.vue?vue&type=template&id=5dd7fd17&scoped=true&\"\nimport script from \"./News.vue?vue&type=script&lang=ts&\"\nexport * from \"./News.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./News.vue?vue&type=style&index=0&id=5dd7fd17&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"5dd7fd17\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"content\"},[_c('h2',{staticClass:\"page-title\"},[_vm._v(\"Documents\")]),_c('div',{staticClass:\"search\"},[_c('label',{attrs:{\"for\":\"filter\"}},[_vm._v(\"Search\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.search),expression:\"search\"}],attrs:{\"id\":\"filter\",\"type\":\"text\",\"maxlength\":\"200\"},domProps:{\"value\":(_vm.search)},on:{\"input\":function($event){if($event.target.composing)return;_vm.search=$event.target.value}}})]),_c('ul',{staticClass:\"filters\"},_vm._l((_vm.filters),function(filter){return _c('li',{key:filter},[_c('button',{class:{ active: filter === _vm.selectedFilter },on:{\"click\":function($event){_vm.selectedFilter = filter}}},[_vm._v(_vm._s(_vm.formatFilter(filter)))])])}),0),_c('ul',{staticClass:\"documents\"},_vm._l((_vm.filteredDocuments),function(document){return _c('li',{key:document.name,staticClass:\"document\"},[_c('div',{staticClass:\"document-title\"},[_vm._v(_vm._s(document.name))]),_c('ul',{staticClass:\"files\"},[_c('li',[_c('button',{staticClass:\"file\",on:{\"click\":function($event){return _vm.downloadDocument(document)}}},[_vm._v(\" Download\"),_c('font-awesome-icon',{attrs:{\"icon\":\"download\"}})],1)])])])}),0)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport ClientsApi from '@/api/clientApi';\r\nimport Guid from 'common/util/guid';\r\nimport {\r\n    Component, Vue, Watch,\r\n} from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class Documents extends Vue {\r\n    loading = false;\r\n\r\n    documents: Array<{ name: string; path: string }> = [];\r\n\r\n    search = '';\r\n\r\n    selectedFilter = 'All';\r\n\r\n    get clientId () {\r\n        return this.$store.getters['clientContext/selectedClient'] as Guid;\r\n    }\r\n\r\n    get filters () {\r\n        return ['All', ...new Set(this.documents.map((a) => a.path))]\r\n            .sort((a, b) => (this.formatFilter(a) > this.formatFilter(b) ? 1 : -1));\r\n    }\r\n\r\n    get filteredDocuments () {\r\n        return this.documents.filter((a) => a.name?.toLowerCase().indexOf(this.search.toLowerCase()) > -1 && (this.selectedFilter === 'All' || this.selectedFilter === a.path));\r\n    }\r\n\r\n    formatFilter (path: string) {\r\n        const newPath = path.replace('ClientWeb/Documents/', '');\r\n        if (newPath === 'ClientWeb/Documents') return 'General';\r\n        if (newPath === '') return 'General';\r\n        return newPath;\r\n    }\r\n\r\n    async downloadDocument (documentToDownload: {name: string; path: string}) {\r\n        const fullName = `${documentToDownload.path}/${documentToDownload.name}`;\r\n        const url = await ClientsApi.getDocument(this.clientId, fullName) as { url: string };\r\n        const a = document.createElement('a');\r\n        a.style.display = 'none';\r\n        a.href = url.url;\r\n        // the filename you want\r\n        a.setAttribute('download', documentToDownload.name);\r\n        a.target = '_blank';\r\n        document.body.appendChild(a);\r\n        a.click();\r\n        window.URL.revokeObjectURL(url.url);\r\n    }\r\n\r\n    @Watch('clientId', { immediate: true })\r\n    async clientIdChanged () {\r\n        this.documents = await ClientsApi.getDocuments(this.clientId) as Array<{ name: string; path: string }>;\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Documents.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Documents.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Documents.vue?vue&type=template&id=7ddf14e0&scoped=true&\"\nimport script from \"./Documents.vue?vue&type=script&lang=ts&\"\nexport * from \"./Documents.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Documents.vue?vue&type=style&index=0&id=7ddf14e0&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"7ddf14e0\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"client-list\"},[_vm._m(0),_c('div',{staticClass:\"column\"},[_c('div',{staticClass:\"start\"},[_c('h2',[_vm._v(\"Select a scheme\")]),_c('p',[_vm._v(\"Please choose from one of your available schemes in the list below:\")]),_c('div',{staticClass:\"tiles\"},_vm._l((_vm.orderedClients),function(client){return _c('div',{key:client.clientId,staticClass:\"client-tile\",on:{\"click\":function($event){return _vm.gotoClient(client)}}},[_vm._v(\" \"+_vm._s(_vm.clientName(client))+\" \")])}),0)]),_c('div',{staticClass:\"end\"},[_c('btn',{staticClass:\"signout\",attrs:{\"title\":\"Sign out\",\"text\":\"Sign out\",\"icon\":\"sign-out-alt\"},on:{\"click\":_vm.signOut}})],1),(_vm.loading)?_c('loading'):_vm._e()],1)])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('h1',[_c('img',{staticClass:\"logo\",attrs:{\"src\":require(\"../assets/logo-intro.svg\")}}),_vm._v(\"Pulse\")])\n}]\n\nexport { render, staticRenderFns }","\r\nimport Client from 'common/models/client';\r\nimport ClientNameService from '@/services/clientNameService';\r\nimport {\r\n    Component, Vue, Watch,\r\n} from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class ClientList extends Vue {\r\n    get loading () {\r\n        return this.$store.getters['clientContext/loadingClients'];\r\n    }\r\n\r\n    gotoClient (client: Client) {\r\n        this.$store.commit('clientContext/setSelectedClient', client.clientId);\r\n\r\n        this.$router.push(`/${ClientNameService.clientNameToPath(client.name)}`);\r\n    }\r\n\r\n    get clients () {\r\n        return this.$store.getters['clientContext/clients'] as Array<Client>;\r\n    }\r\n\r\n    signOut () {\r\n        this.$store.dispatch('auth/logout');\r\n    }\r\n\r\n    clientName (client: Client) {\r\n        if (client.name === 'Generali Pension Fund') return 'Assicurazioni Generali SpA (UK Branch) Pension Fund';\r\n        if (client.name === 'Main Fund ICI') return 'ICI Pension Fund';\r\n        if (client.name === 'BSI') return 'BSI Retirement Benefits Plan';\r\n        return client.name;\r\n    }\r\n\r\n    get orderedClients () {\r\n        if (!this.clients) return [];\r\n        return [...this.clients].sort((a, b) => (a.name > b.name ? 1 : -1));\r\n    }\r\n\r\n    @Watch('clients', { immediate: true })\r\n    clientsChanged () {\r\n        if (this.clients?.length === 1) {\r\n            this.gotoClient(this.clients[0]);\r\n        }\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ClientList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ClientList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ClientList.vue?vue&type=template&id=692ddaa2&scoped=true&\"\nimport script from \"./ClientList.vue?vue&type=script&lang=ts&\"\nexport * from \"./ClientList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ClientList.vue?vue&type=style&index=0&id=692ddaa2&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"692ddaa2\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{ref:\"content\",staticClass:\"content\"},[_c('h2',[_vm._v(\"Member website activity\")]),(_vm.clientId)?_c('div',{staticClass:\"rows\"},[_c('div',{staticClass:\"row\"},[(_vm.webRegistrationBySummaryEnabled)?_c('web-registrations-pie',{ref:\"registrations\",attrs:{\"clientId\":_vm.clientId,\"showLegend\":true,\"showCurrent\":true},on:{\"pointSelected\":_vm.pointSelected}}):_vm._e(),(_vm.webRegistrationByTimeEnabled)?_c('web-registrations',{attrs:{\"clientId\":_vm.clientId,\"filter\":_vm.selectedSeries.registrations}}):_vm._e()],1),_c('div',{staticClass:\"row\"},[(_vm.webRegistrationByLocationEnabled)?_c('member-registrations-by-location',{ref:\"registrationsByLocation\",attrs:{\"clientId\":_vm.clientId}}):_vm._e(),_c('div',{staticClass:\"column\"},[(_vm.webRegistrationByStatusEnabled)?_c('member-registrations-by-status',{ref:\"registrationsByStatus\",attrs:{\"clientId\":_vm.clientId,\"showLegend\":true},on:{\"pointSelected\":_vm.pointSelected}}):_vm._e(),(_vm.webRegistrationByAgeEnabled)?_c('member-registrations-by-age-pie',{ref:\"registrationsByAge\",attrs:{\"clientId\":_vm.clientId,\"showLegend\":true},on:{\"pointSelected\":_vm.pointSelected}}):_vm._e()],1)],1),_c('div',{staticClass:\"row\"},[(_vm.memberLoginEnabled)?_c('column-pie-toggle',[_c('template',{slot:\"pie\"},[_c('member-logins-pie',{attrs:{\"clientId\":_vm.clientId,\"showLegend\":true},on:{\"pointSelected\":_vm.pointSelected}})],1),_c('template',{slot:\"column\"},[_c('member-logins',{attrs:{\"clientId\":_vm.clientId,\"filter\":_vm.selectedSeries.memberLogins,\"showLegend\":true}})],1)],2):_vm._e(),(_vm.memberLoginByAgeEnabled)?_c('column-pie-toggle',[_c('template',{slot:\"pie\"},[_c('member-logins-by-age-pie',{attrs:{\"clientId\":_vm.clientId,\"showLegend\":true},on:{\"pointSelected\":_vm.pointSelected}})],1),_c('template',{slot:\"column\"},[_c('member-logins-by-age',{attrs:{\"clientId\":_vm.clientId,\"filter\":_vm.selectedSeries.memberLoginsByAge,\"showLegend\":true}})],1)],2):_vm._e()],1),_c('div',{staticClass:\"row\"},[(_vm.memberLoginByStatusEnabled)?_c('column-pie-toggle',[_c('template',{slot:\"pie\"},[_c('member-logins-by-status-pie',{attrs:{\"clientId\":_vm.clientId,\"showLegend\":true},on:{\"pointSelected\":_vm.pointSelected}})],1),_c('template',{slot:\"column\"},[_c('member-logins-by-status',{attrs:{\"clientId\":_vm.clientId,\"filter\":_vm.selectedSeries.memberLoginsByStatus,\"showLegend\":true}})],1)],2):_vm._e(),_c('div',{staticClass:\"tile\"})],1),_c('div',{staticClass:\"row\"},[(_vm.pageVisitsEnabled)?_c('page-visits-table',{attrs:{\"clientId\":_vm.clientId},on:{\"pointSelected\":_vm.pointSelected}}):_vm._e(),(_vm.pageVisitsByTimeEnabled)?_c('page-visits',{attrs:{\"clientId\":_vm.clientId,\"filter\":_vm.selectedSeries.pageVisits}}):_vm._e()],1),(_vm.showModeller)?_c('div',{staticClass:\"row\"},[(_vm.modellerVisitsByAgeEnabled)?_c('modeller-visits-by-age-pie',{attrs:{\"clientId\":_vm.clientId,\"showLegend\":true},on:{\"pointSelected\":_vm.pointSelected,\"viewViewsByPage\":_vm.viewViewsByPageChanged}}):_vm._e(),(_vm.modellerVisitsByTimeEnabled)?_c('modeller-visits-by-age',{attrs:{\"clientId\":_vm.clientId,\"filter\":_vm.selectedSeries.modellerPageViews,\"showLegend\":true,\"viewByPage\":_vm.viewViewsByPage}}):_vm._e()],1):_vm._e(),(_vm.showModeller)?_c('div',{staticClass:\"row\"},[(_vm.modellerTimesByAgeEnabled)?_c('modeller-times-by-age-pie',{attrs:{\"clientId\":_vm.clientId,\"showLegend\":true},on:{\"pointSelected\":_vm.pointSelected,\"viewTimesByPage\":_vm.viewTimesByPageChanged}}):_vm._e(),(_vm.modellerTimesByTimeEnabled)?_c('modeller-times-by-age',{attrs:{\"clientId\":_vm.clientId,\"filter\":_vm.selectedSeries.modellerPageTimes,\"showLegend\":true,\"viewByPage\":_vm.viewTimesByPage}}):_vm._e()],1):_vm._e(),(_vm.showModeller)?_c('div',{staticClass:\"row\"},[(_vm.modellerInteractionsByAgeEnabled)?_c('modeller-interactions-by-age-pie',{attrs:{\"clientId\":_vm.clientId,\"showLegend\":true},on:{\"pointSelected\":_vm.pointSelected,\"viewInteractionsByType\":_vm.viewInteractionsByTypeChanged}}):_vm._e(),(_vm.modellerInteractionsByPageEnabled)?_c('modeller-interactions-by-age',{attrs:{\"clientId\":_vm.clientId,\"filter\":_vm.selectedSeries.modellerInteractions,\"showLegend\":true,\"viewByType\":_vm.viewInteractionsByType}}):_vm._e()],1):_vm._e(),_c('div',{staticClass:\"row\"},[(_vm.dateUpdatesByAgeEnabled)?_c('data-updates-by-age-pie',{attrs:{\"clientId\":_vm.clientId,\"showLegend\":true},on:{\"pointSelected\":_vm.pointSelected}}):_vm._e(),(_vm.dateUpdatesByAgeByTimeEnabled)?_c('data-updates-by-age',{attrs:{\"clientId\":_vm.clientId,\"filter\":_vm.selectedSeries.dataUpdatesByAge,\"showLegend\":true}}):_vm._e()],1),_c('div',{staticClass:\"row\"},[(_vm.dateUpdatesByDataTypeEnabled)?_c('data-updates-by-datatype-pie',{attrs:{\"clientId\":_vm.clientId,\"showLegend\":true},on:{\"pointSelected\":_vm.pointSelected}}):_vm._e(),(_vm.dateUpdatesByDataTypeByTimeEnabled)?_c('data-updates-by-datatype',{attrs:{\"clientId\":_vm.clientId,\"filter\":_vm.selectedSeries.dataUpdatesByDataType,\"showLegend\":true}}):_vm._e()],1),_c('div',{staticClass:\"row\"},[(_vm.dateUpdatesByStatusEnabled)?_c('data-updates-by-status-pie',{attrs:{\"clientId\":_vm.clientId,\"showLegend\":true},on:{\"pointSelected\":_vm.pointSelected}}):_vm._e(),(_vm.dateUpdatesByStatusByTimeEnabled)?_c('data-updates-by-status',{attrs:{\"clientId\":_vm.clientId,\"filter\":_vm.selectedSeries.dataUpdatesByStatus,\"showLegend\":true}}):_vm._e()],1),(_vm.memberCorrespondenceEnabled)?_c('div',{staticClass:\"row\"},[_c('member-correspondence-views-totals',{attrs:{\"clientId\":_vm.clientId}}),_c('div',{staticClass:\"tile\"})],1):_vm._e(),(_vm.showPayslips)?_c('div',{staticClass:\"row\"},[(_vm.payslipViewsByStatusEnabled)?_c('payslip-views-by-status-pie',{attrs:{\"clientId\":_vm.clientId,\"showLegend\":true},on:{\"pointSelected\":_vm.pointSelected}}):_vm._e(),(_vm.payslipViewsByTimeEnabled)?_c('payslip-views-by-status',{attrs:{\"clientId\":_vm.clientId,\"filter\":_vm.selectedSeries.payslipsByStatus,\"showLegend\":true}}):_vm._e()],1):_vm._e(),_c('div',{staticClass:\"row\"},[(_vm.correspondenceViewsByStatusEnabled)?_c('correspondence-views-by-status-pie',{attrs:{\"clientId\":_vm.clientId,\"showLegend\":true},on:{\"pointSelected\":_vm.pointSelected,\"viewByFileType\":_vm.viewByCorrespondenceTypeChanged}}):_vm._e(),(_vm.correspondenceViewsByTimeEnabled)?_c('correspondence-views-by-status',{attrs:{\"clientId\":_vm.clientId,\"filter\":_vm.selectedSeries.correspondenceByStatus,\"showLegend\":true,\"viewByFileType\":_vm.viewByCorrespondenceType}}):_vm._e()],1),_c('div',{staticClass:\"row\"},[(_vm.documentViewsByStatusEnabled)?_c('document-views-by-status-pie',{attrs:{\"clientId\":_vm.clientId,\"showLegend\":true},on:{\"pointSelected\":_vm.pointSelected,\"viewByFileType\":_vm.viewByDocumentTypeChanged}}):_vm._e(),(_vm.documentViewsByTimeEnabled)?_c('document-views-by-status',{attrs:{\"clientId\":_vm.clientId,\"filter\":_vm.selectedSeries.documentsByStatus,\"showLegend\":true,\"viewByFileType\":_vm.viewByDocumentType}}):_vm._e()],1),_c('div',{staticClass:\"row\"},[(_vm.webFormsViewsByStatusEnabled)?_c('web-form-views-by-status-pie',{attrs:{\"clientId\":_vm.clientId,\"showLegend\":true},on:{\"pointSelected\":_vm.pointSelected,\"viewByFileType\":_vm.viewByWebFormTypeChanged}}):_vm._e(),(_vm.webFormsViewsByTimeEnabled)?_c('web-form-views-by-status',{attrs:{\"clientId\":_vm.clientId,\"filter\":_vm.selectedSeries.webFormsByStatus,\"showLegend\":true,\"viewByFileType\":_vm.viewByWebFormType}}):_vm._e()],1)]):_vm._e(),_c('div',{staticClass:\"tiles\"})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue } from 'vue-property-decorator';\r\nimport Guid from 'common/util/guid';\r\nimport ClientConfig from '@/models/client';\r\nimport * as STORE from 'common/store/storepaths';\r\n\r\n@Component\r\nexport default class MemberWebsite extends Vue {\r\n    get clientId () {\r\n        return this.$store.getters['clientContext/selectedClient'] as Guid;\r\n    }\r\n\r\n    viewByDocumentType = false;\r\n\r\n    viewByCorrespondenceType = false;\r\n\r\n    viewByWebFormType = false;\r\n\r\n    viewViewsByPage = false;\r\n\r\n    viewTimesByPage = false;\r\n\r\n    viewInteractionsByType = false;\r\n\r\n    selectedSeries: { [category: string ]: string } = {};\r\n\r\n    pointSelected ({ category, series }: { category: string; series: string }) {\r\n        Vue.set(this.selectedSeries, category, series);\r\n    }\r\n\r\n    get clientConfiguration () {\r\n        return this.$store.getters['clientContext/selectedClientConfiguration'](this.clientId) as ClientConfig ?? {};\r\n    }\r\n\r\n    get showModeller () {\r\n        return this.clientConfiguration?.showModeller;\r\n    }\r\n\r\n    get showPayslips () {\r\n        return this.clientConfiguration?.showPayslips;\r\n    }\r\n\r\n    get row () {\r\n        return this.$route.params.row;\r\n    }\r\n\r\n    get webRegistrationBySummaryEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.webregistrationbysummary.enabled'] === 'true';\r\n    }\r\n\r\n    get webRegistrationByTimeEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.webregistrationbytime.enabled'] === 'true';\r\n    }\r\n\r\n    get webRegistrationByLocationEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.webregistrationbylocation.enabled'] === 'true';\r\n    }\r\n\r\n    get webRegistrationByStatusEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.webregistrationbystatus.enabled'] === 'true';\r\n    }\r\n\r\n    get webRegistrationByAgeEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.webregistrationbyage.enabled'] === 'true';\r\n    }\r\n\r\n    get memberLoginEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.memberlogin.enabled'] === 'true';\r\n    }\r\n\r\n    get memberLoginByAgeEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.memberloginbyage.enabled'] === 'true';\r\n    }\r\n\r\n    get memberLoginByStatusEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.memberloginbystatus.enabled'] === 'true';\r\n    }\r\n\r\n    get pageVisitsEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.pagevisits.enabled'] === 'true';\r\n    }\r\n\r\n    get pageVisitsByTimeEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.pagevisitsbytime.enabled'] === 'true';\r\n    }\r\n\r\n    get modellerVisitsByAgeEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.modellervisitsbyage.enabled'] === 'true';\r\n    }\r\n\r\n    get modellerVisitsByTimeEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.modellervisitsbytime.enabled'] === 'true';\r\n    }\r\n\r\n    get modellerTimesByAgeEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.modellertimesbyage.enabled'] === 'true';\r\n    }\r\n\r\n    get modellerTimesByTimeEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.modellertimesbytime.enabled'] === 'true';\r\n    }\r\n\r\n    get modellerInteractionsByAgeEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.modellerinteractionsbyage.enabled'] === 'true';\r\n    }\r\n\r\n    get modellerInteractionsByPageEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.modellerinteractionsbypage.enabled'] === 'true';\r\n    }\r\n\r\n    get dateUpdatesByAgeEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.dateupdatesbyage.enabled'] === 'true';\r\n    }\r\n\r\n    get dateUpdatesByAgeByTimeEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.dateupdatesbyage.enabled'] === 'true';\r\n    }\r\n\r\n    get dateUpdatesByDataTypeEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.dateupdatesbydatatype.enabled'] === 'true';\r\n    }\r\n\r\n    get dateUpdatesByDataTypeByTimeEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.dateupdatesbyagebytime.enabled'] === 'true';\r\n    }\r\n\r\n    get dateUpdatesByStatusEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.dateupdatesbystatus.enabled'] === 'true';\r\n    }\r\n\r\n    get dateUpdatesByStatusByTimeEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.dateupdatesbystatusbytime.enabled'] === 'true';\r\n    }\r\n\r\n    get memberCorrespondenceEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.membercorrespondence.enabled'] === 'true';\r\n    }\r\n\r\n    get payslipViewsVisible () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.payslipsviews.enabled'] === 'true';\r\n    }\r\n\r\n    get payslipViewsByStatusEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.payslipsviewsbystatus.enabled'] === 'true';\r\n    }\r\n\r\n    get payslipViewsByTimeEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.payslipsviewsbytime.enabled'] === 'true';\r\n    }\r\n\r\n    get correspondenceViewsByStatusEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.correspondenceviewsbystatus.enabled'] === 'true';\r\n    }\r\n\r\n    get correspondenceViewsByTimeEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.correspondenceviewsbytime.enabled'] === 'true';\r\n    }\r\n\r\n    get documentViewsByStatusEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.documentviewsbystatus.enabled'] === 'true';\r\n    }\r\n\r\n    get documentViewsByTimeEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.documentviewsbytime.enabled'] === 'true';\r\n    }\r\n\r\n    get webFormsViewsByStatusEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.webformviewsbystatus.enabled'] === 'true';\r\n    }\r\n\r\n    get webFormsViewsByTimeEnabled () {\r\n        return this.$store.getters[STORE.GET_CLIENT_WEB_SITE_CONFIGURATION]['clientweb.memberactivity.webformviewsbytime.enabled'] === 'true';\r\n    }\r\n\r\n    viewByDocumentTypeChanged (val: boolean) {\r\n        this.viewByDocumentType = val;\r\n    }\r\n\r\n    viewByCorrespondenceTypeChanged (val: boolean) {\r\n        this.viewByCorrespondenceType = val;\r\n    }\r\n\r\n    viewByWebFormTypeChanged (val: boolean) {\r\n        this.viewByWebFormType = val;\r\n    }\r\n\r\n    viewViewsByPageChanged (val: boolean) {\r\n        this.viewViewsByPage = val;\r\n    }\r\n\r\n    viewTimesByPageChanged (val: boolean) {\r\n        this.viewTimesByPage = val;\r\n    }\r\n\r\n    viewInteractionsByTypeChanged (val: boolean) {\r\n        this.viewInteractionsByType = val;\r\n    }\r\n\r\n    mounted () {\r\n        this.$nextTick(() => {\r\n            if (this.$refs[this.row]) {\r\n                (this.$refs.content as HTMLElement).scrollTop = ((this.$refs[this.row] as Vue).$el as HTMLElement).offsetTop;\r\n            }\r\n        });\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MemberWebsite.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MemberWebsite.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MemberWebsite.vue?vue&type=template&id=44a0b27e&scoped=true&\"\nimport script from \"./MemberWebsite.vue?vue&type=script&lang=ts&\"\nexport * from \"./MemberWebsite.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MemberWebsite.vue?vue&type=style&index=0&id=44a0b27e&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"44a0b27e\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"content news\"},[_c('terms-wording')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Guid from 'common/util/guid';\r\nimport TermsWording from '@/components/terms-wording.vue';\r\nimport {\r\n    Component, Prop, Vue,\r\n} from 'vue-property-decorator';\r\n\r\n@Component({\r\n    components: { TermsWording },\r\n})\r\nexport default class Terms extends Vue {\r\n    @Prop()\r\n        clientId!: Guid;\r\n\r\n    loading = false;\r\n\r\n    selectedNews: never | null = null;\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Terms.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Terms.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Terms.vue?vue&type=template&id=ea768548&scoped=true&\"\nimport script from \"./Terms.vue?vue&type=script&lang=ts&\"\nexport * from \"./Terms.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Terms.vue?vue&type=style&index=0&id=ea768548&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"ea768548\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"content\"},[_c('h2',[_vm._v(\"Member search\")]),_c('div',{staticClass:\"search-container\"},[_c('member-search')],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue } from 'vue-property-decorator';\r\nimport Guid from 'common/util/guid';\r\nimport MemberSearch from '@/components/member-search.vue';\r\n\r\n@Component({\r\n    components: {\r\n        MemberSearch,\r\n    },\r\n})\r\nexport default class MemberSearchView extends Vue {\r\n    get clientId () {\r\n        return this.$store.getters['clientContext/selectedClient'] as Guid;\r\n    }\r\n\r\n    get clientContext () {\r\n        return this.$store.getters['clientContext/context'](this.clientId);\r\n    }\r\n\r\n    navigateTo (path: string, row: string) {\r\n        this.$router.push({\r\n            name: path,\r\n            params: { row },\r\n        });\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MemberSearch.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MemberSearch.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MemberSearch.vue?vue&type=template&id=6d5a1431&scoped=true&\"\nimport script from \"./MemberSearch.vue?vue&type=script&lang=ts&\"\nexport * from \"./MemberSearch.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MemberSearch.vue?vue&type=style&index=0&id=6d5a1431&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"6d5a1431\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"content\"},[_c('div',{staticClass:\"title row\"},[_c('h2',[_vm._v(_vm._s(_vm.memberName)+\" (\"+_vm._s(_vm.memberSummary?.memberId || '')+\")\")]),(_vm.hasMemberWeb && _vm.clientWebStatus)?_c('div',{staticClass:\"current-status\"},[_c('strong',[_vm._v(\"Member website registration status: \"+_vm._s(_vm.clientWebStatus))])]):_vm._e(),_c('btn',{staticClass:\"primary desktop\",attrs:{\"text\":\"Return to search\"},on:{\"click\":_vm.gotoSearch}}),_c('btn',{staticClass:\"primary mobile\",attrs:{\"icon\":\"search\"},on:{\"click\":_vm.gotoSearch}})],1),(_vm.memberSummary && Object.keys(_vm.availableDataTypes).length)?_c('div',{staticClass:\"search-container\"},[_c('div',{staticClass:\"side-bar\"},[(_vm.calculationServicePeriods?.length && _vm.showMemberCalculations)?_c('h3',{staticClass:\"tile-title\"},[_vm._v(\"Modeller\")]):_vm._e(),(_vm.calculationServicePeriods?.length && _vm.showMemberCalculations)?_c('ul',{staticClass:\"side-tabs\"},[_c('li',[_c('button',{class:{ active: _vm.dataType === 'calculations' },on:{\"click\":function($event){return _vm.gotoDataType('calculations')}}},[_vm._v(\"Calculations\")])])]):_vm._e(),_c('h3',{staticClass:\"tile-title\"},[_vm._v(\"Member details\")]),_c('ul',{staticClass:\"side-tabs\"},_vm._l((_vm.availableDataTypes),function(dataTypeName,dataTypeKey){return _c('li',{key:dataTypeKey},[_c('button',{class:{ active: dataTypeKey === _vm.dataType && !_vm.servicePeriodId },on:{\"click\":function($event){return _vm.gotoDataType(dataTypeKey)}}},[_vm._v(_vm._s(dataTypeName))])])}),0),_vm._l((_vm.memberSummary.servicePeriods),function(period){return _c('div',{key:period.servicePeriodId,staticClass:\"service-period\"},[(Object.keys(_vm.servicePeriodAvailableDataTypes[period.servicePeriodId] || {}).length)?_c('h3',{staticClass:\"tile-title\"},[_c('span',{staticClass:\"status\",class:period.status}),_vm._v(_vm._s(period.status)+\" - \"+_vm._s(_vm._f(\"date\")(period.statusDate))+\" \"),_c('span',{staticClass:\"service-period-id\"},[_vm._v(_vm._s(period.servicePeriodId))])]):_vm._e(),_c('ul',{staticClass:\"side-tabs\"},_vm._l((_vm.servicePeriodAvailableDataTypes[period.servicePeriodId]),function(dataTypeName,dataTypeKey){return _c('li',{key:dataTypeKey},[_c('button',{class:{ active: dataTypeKey === _vm.dataType && _vm.servicePeriodId == period.servicePeriodId },on:{\"click\":function($event){return _vm.gotoDataType(dataTypeKey, period.servicePeriodId)}}},[_vm._v(_vm._s(dataTypeName))])])}),0)])})],2),_c('div',{staticClass:\"input-field data-type-select\"},[_c('label',{attrs:{\"for\":\"dataType\"}},[_vm._v(\"Data type\")]),_c('select',{attrs:{\"id\":\"dataType\"},on:{\"input\":function($event){return _vm.gotoDataType($event.target.value)}}},_vm._l((_vm.dataTypes),function(option){return _c('option',{key:option.value,domProps:{\"value\":option.value}},[_vm._v(\" \"+_vm._s(option.name)+\" \")])}),0)]),(_vm.dataType === 'calculations')?_c('div',{staticClass:\"tile main-content\"},[_c('h3',{staticClass:\"tile-title lilac\"},[_vm._v(\"Calculations\")]),_c('div',{staticClass:\"data-list\"},[_c('div',{staticClass:\"tile-content\"},[_c('dynamic-ui-text',{attrs:{\"name\":\"Calculation type\",\"value\":\"Retirement from deferred\",\"disabled\":true}}),(_vm.memberSummary && _vm.calculationServicePeriods.length > 1)?_c('dynamic-ui-string-dropdown',{attrs:{\"name\":\"Service period\",\"options\":_vm.calculationServicePeriods,\"valueKey\":\"value\"},model:{value:(_vm.selectedCalculationServicePeriod),callback:function ($$v) {_vm.selectedCalculationServicePeriod=$$v},expression:\"selectedCalculationServicePeriod\"}}):_vm._e(),_c('dynamic-ui-date',{attrs:{\"name\":\"Date of Retirement\"},model:{value:(_vm.dateOfRetirement),callback:function ($$v) {_vm.dateOfRetirement=$$v},expression:\"dateOfRetirement\"}}),_c('btn',{staticClass:\"primary desktop\",attrs:{\"text\":\"Run calculation\",\"disabled\":_vm.isLoading},on:{\"click\":_vm.showCalculation}})],1),(_vm.calculationResult && !_vm.isLoading)?_c('h3',{staticClass:\"tile-title lilac\",staticStyle:{\"margin-top\":\"1rem\"}},[_vm._v(\"Results\")]):_vm._e(),(_vm.calculationResult && !_vm.isLoading)?_c('div',{staticClass:\"tile-content\",class:{ warning: !_vm.calculationErrors, error: _vm.calculationErrors }},[(_vm.calculationErrors)?_c('div',[_c('p',[_vm._v(\"This calculation is not available for this member at the selected date. Please contact LCP for further information.\")])]):_c('div',[_c('p',[_vm._v(\" The illustrative figures provided are based on the data held for the member, our current understanding of the law and the provisions of the Trust Deed and Rules. Please let us know immediately if you believe that any of the data held is incorrect. \")]),_c('p',[_vm._v(\" Any calculations produced through LCP Pulse are intended for illustrative purposes only and their results do not constitute a promise or a guarantee of the member's benefits. The benefits, options and applicable tax may change if the member is affected by the Lifetime Allowance or Annual Allowance. \")]),_c('p',[_vm._v(\" We recommend that a member requests a formal illustration before taking any action. The member's final benefits may be higher or lower than the illustrations provided through LCP Pulse \")])])]):_vm._e(),(_vm.calculationResult && !_vm.isLoading && !_vm.calculationErrors && Object.keys(_vm.calculationResult).length)?_c('div',{staticClass:\"tile-content\"},[(!_vm.calculationErrors)?_c('div',{staticClass:\"group results\"},[(!_vm.isLoading)?_c('table',{staticClass:\"table\"},_vm._l((_vm.calculationResult),function(value,name){return _c('tr',{key:name},[_c('td',[_vm._v(_vm._s(name))]),_c('td',{attrs:{\"align\":\"right\"}},[_vm._v(_vm._s(_vm.getDisplayValue(value)))])])}),0):_vm._e()]):_vm._e()]):_vm._e()])]):(_vm.selectedDataTypeName)?_c('div',{staticClass:\"tile main-content\"},[_c('h3',{staticClass:\"tile-title lilac\"},[_vm._v(_vm._s(_vm.selectedDataTypeName))]),(_vm.dataTypeData)?_c(_vm.dataType,{tag:\"component\",attrs:{\"dataTypeData\":_vm.dataTypeData}}):_vm._e()],1):_c('div',{staticClass:\"not-available\"},[_c('p',[_vm._v(\"This data type is not available for this member\")])])]):_vm._e(),(!_vm.isLoading && _vm.memberSummary && !Object.keys(_vm.availableDataTypes).length)?_c('div',{staticClass:\"not-available\"},[_c('p',[_vm._v(\"There is no data available for this member\")])]):_vm._e(),(_vm.isLoading)?_c('loading'):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {\r\n    Component, Prop, Vue, Watch,\r\n} from 'vue-property-decorator';\r\nimport Guid from 'common/util/guid';\r\nimport MemberSearch from '@/components/member-search.vue';\r\nimport MemberApi from '@/api/memberApi';\r\nimport MemberSearchResult from '@/models/memberSearchResult';\r\nimport ClientNameService from '@/services/clientNameService';\r\nimport Client from 'common/models/client';\r\nimport CalculationResultWarning from 'common/models/calculations/calculationResultWarning';\r\nimport { DynamicUiText, DynamicUiStringDropdown, DynamicUiDate } from '@lcp/dynamic-ui-typescript';\r\nimport dayjs from 'dayjs';\r\nimport ClientConfig from '@/models/client';\r\n\r\n@Component({\r\n    components: {\r\n        MemberSearch,\r\n        DynamicUiText,\r\n        DynamicUiDate,\r\n        DynamicUiStringDropdown,\r\n    },\r\n})\r\nexport default class MemberDataView extends Vue {\r\n    @Prop()\r\n        memberId!: number;\r\n\r\n    @Prop()\r\n        dataType?: string;\r\n\r\n    @Prop()\r\n        servicePeriodId?: string;\r\n\r\n    isLoading = false;\r\n\r\n    calculating = false;\r\n\r\n    calculationResult: Record<string, number> | null = null;\r\n\r\n    calculationWarnings: Array<CalculationResultWarning> | null = null;\r\n\r\n    selectedCalculationServicePeriod = 0;\r\n\r\n    calculationErrors = false;\r\n\r\n    calculationResultData: {\r\n        strings: Record<string, string>;\r\n        doubles: Record<string, number>;\r\n        dates: Record<string, Date>;\r\n    } | null = null;\r\n\r\n    memberSummary: MemberSearchResult | null = null;\r\n\r\n    clientWebStatus: string | null = null;\r\n\r\n    availableDataTypes: Record<string, string> = {};\r\n\r\n    servicePeriodAvailableDataTypes: Record<string, Record<string, string>> = {};\r\n\r\n    dataTypeData: unknown = null;\r\n\r\n    dateOfRetirement: Date | { Day: number; Month: number; Year: number } = new Date();\r\n\r\n    get hasMemberWeb () {\r\n        return this.clientConfiguration?.hasMemberWeb;\r\n    }\r\n\r\n    get clientId () {\r\n        return this.$store.getters['clientContext/selectedClient'] as Guid;\r\n    }\r\n\r\n    get clientContext () {\r\n        return this.$store.getters['clientContext/context'](this.clientId);\r\n    }\r\n\r\n    get memberName () {\r\n        return `${this.memberSummary?.forenames ?? ''} ${this.memberSummary?.surname ?? ''}`;\r\n    }\r\n\r\n    get clients () {\r\n        return this.$store.getters['clientContext/clients'] as Array<Client>;\r\n    }\r\n\r\n    get clientName () {\r\n        if (!this.clients) return '';\r\n        return this.clients.find((a) => a.clientId === this.clientId)?.name;\r\n    }\r\n\r\n    get clientPath () {\r\n        if (!this.clientName) return '';\r\n        if (this.$route.path.indexOf('/demo') > -1) return 'demo';\r\n        return ClientNameService.clientNameToPath(this.clientName);\r\n    }\r\n\r\n    get selectedDataTypeName () {\r\n        if (!this.dataType) return '';\r\n        return this.availableDataTypes[this.dataType] ?? this.servicePeriodAvailableDataTypes[this.servicePeriodId ?? '']?.[this.dataType] ?? '';\r\n    }\r\n\r\n    get memberStatus () {\r\n        return this.memberSummary?.servicePeriods.find((x) => x.servicePeriodId === Number(this.servicePeriodId));\r\n    }\r\n\r\n    get dataTypes () {\r\n        const dataTypes: Array<{ name: string; value: string,}> = [];\r\n        Object.keys(this.availableDataTypes).forEach((key) => {\r\n            dataTypes.push({ name: this.availableDataTypes[key], value: key });\r\n        });\r\n        Object.keys(this.servicePeriodAvailableDataTypes).forEach((period) => {\r\n            Object.keys(this.servicePeriodAvailableDataTypes[period]).forEach((key) => {\r\n                dataTypes.push({ name: `${this.servicePeriodAvailableDataTypes[period][key]} (${period})`, value: `${period}-${key}` });\r\n            });\r\n        });\r\n        return dataTypes;\r\n    }\r\n\r\n    get calculationServicePeriods () {\r\n        return this.memberSummary?.servicePeriods.filter((a) => a.status === 'Deferred').map((a) => ({\r\n            value: a.servicePeriodId,\r\n            name: `${a.servicePeriodId} - ${a.status} - ${dayjs(a.statusDate).format('DD MMM YYYY')}`,\r\n        }));\r\n    }\r\n\r\n    get clientConfiguration () {\r\n        return this.$store.getters['clientContext/selectedClientConfiguration'](this.clientId) as ClientConfig ?? {};\r\n    }\r\n\r\n    get showMemberCalculations () {\r\n        return this.clientConfiguration?.showMemberCalculations;\r\n    }\r\n\r\n    @Watch('clientId', { immediate: true })\r\n    async clientIdChanged () {\r\n        if (!this.clientId) return;\r\n        this.isLoading = true;\r\n        await this.getMemberInfo();\r\n        await this.getDataTypeData();\r\n        this.isLoading = false;\r\n    }\r\n\r\n    @Watch('dataType', { immediate: true })\r\n    async dataTypeChanged () {\r\n        if (!this.dataType || !this.clientId) return;\r\n        this.isLoading = true;\r\n        await this.getDataTypeData();\r\n        this.isLoading = false;\r\n    }\r\n\r\n    async getDataTypeData () {\r\n        if (!this.dataType) return;\r\n        if (this.dataType === 'calculations') return;\r\n        if (this.servicePeriodId) {\r\n            await MemberApi.getDataTypeForServicePeriod(this.clientId, Number(this.memberId), Number(this.servicePeriodId), this.dataType!).then((result) => {\r\n                this.dataTypeData = result;\r\n            }).catch((ex) => console.log(ex));\r\n            return;\r\n        }\r\n        await MemberApi.getDataType(this.clientId, Number(this.memberId), this.dataType!).then((result) => {\r\n            this.dataTypeData = result;\r\n        });\r\n    }\r\n\r\n    async getAvailableDataTypes () {\r\n        await MemberApi.getAvailableTypes(this.clientId, Number(this.memberId)).then((result) => {\r\n            this.availableDataTypes = result;\r\n        }).catch((ex) => console.log(ex));\r\n        for (let i = 0; i < this.memberSummary!.servicePeriods.length; i += 1) {\r\n            const servicePeriod = this.memberSummary!.servicePeriods[i];\r\n            // eslint-disable-next-line no-await-in-loop\r\n            Vue.set(this.servicePeriodAvailableDataTypes, servicePeriod.servicePeriodId, await MemberApi.getAvailableTypesForServicePeriod(this.clientId, Number(this.memberId), servicePeriod.servicePeriodId));\r\n        }\r\n        if (!this.dataType && Object.keys(this.availableDataTypes).length) {\r\n            this.$router.push(`/${this.clientPath}/members/${this.memberSummary!.memberId}/${Object.keys(this.availableDataTypes)[0]}`);\r\n        }\r\n    }\r\n\r\n    async getMemberInfo () {\r\n        await MemberApi.getMemberSearchResults(this.clientId, {\r\n            memberId: this.memberId,\r\n            pageNumber: 1,\r\n            pageSize: 1,\r\n            sort: '',\r\n        }).then(async (result) => {\r\n            if (!result.length) return;\r\n            this.memberSummary = result[0];\r\n            this.selectedCalculationServicePeriod = this.memberSummary.servicePeriods.filter((x) => x.status !== 'Exit')[0].servicePeriodId;\r\n            if (this.hasMemberWeb) {\r\n                await MemberApi.getClientWebStatus(this.clientId, Number(this.memberId))\r\n                    .then((res) => { this.clientWebStatus = res; });\r\n            }\r\n        }).catch((ex) => console.log(ex));\r\n        await this.getAvailableDataTypes();\r\n    }\r\n\r\n    async showCalculation () {\r\n        const date = new Date();\r\n        if (!('Day' in this.dateOfRetirement)) return;\r\n        const args = `{\"DOC\":{\"Day\":${date.getDate()},\"Month\":${date.getMonth() + 1},\"Year\":${date.getFullYear()}}, \"DOR\": {\"Day\": ${this.dateOfRetirement.Day}, \"Month\": ${this.dateOfRetirement.Month}, \"Year\": ${this.dateOfRetirement.Year}}}`;\r\n        this.calculationErrors = false;\r\n        this.isLoading = true;\r\n        const result = await MemberApi.getCalculation(this.clientId, Number(this.memberId), this.selectedCalculationServicePeriod, 'Retirement from deferred', args)\r\n            .catch(() => {\r\n                this.calculationResultData = null;\r\n                this.calculationErrors = true;\r\n            }).finally(() => {\r\n                this.isLoading = false;\r\n            });\r\n\r\n        if (!result) {\r\n            return;\r\n        }\r\n\r\n        this.calculationResultData = result.data ?? null;\r\n        this.calculationResult = result.calculationResults ?? null;\r\n        this.calculationErrors = !!result.hasErrors;\r\n    }\r\n\r\n    gotoDataType (dataType: string, servicePeriodId?: number) {\r\n        if (dataType.includes('-')) {\r\n            const arr = dataType.split('-');\r\n            // eslint-disable-next-line no-param-reassign\r\n            dataType = arr[1];\r\n            // eslint-disable-next-line no-param-reassign\r\n            servicePeriodId = Number(arr[0]);\r\n        }\r\n        if (servicePeriodId !== undefined) {\r\n            this.$router.push(`/${this.clientPath}/members/${this.memberSummary!.memberId}/${dataType}/${servicePeriodId}`);\r\n            if (this.dataType && this.dataType === dataType) {\r\n                this.servicePeriodId = String(servicePeriodId);\r\n                this.getDataTypeData();\r\n            }\r\n            return;\r\n        }\r\n        this.$router.push(`/${this.clientPath}/members/${this.memberSummary!.memberId}/${dataType}`);\r\n    }\r\n\r\n    gotoSearch () {\r\n        this.$router.push(`/${this.clientPath}/members/`);\r\n    }\r\n\r\n    getDisplayValue (value: number) {\r\n        if (value === undefined || value === null) {\r\n            return '';\r\n        }\r\n\r\n        if (typeof value.toFixed === 'function') {\r\n            return `£${value.toFixed(2).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}`;\r\n        }\r\n\r\n        return value;\r\n    }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MemberData.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MemberData.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MemberData.vue?vue&type=template&id=78e4344a&scoped=true&\"\nimport script from \"./MemberData.vue?vue&type=script&lang=ts&\"\nexport * from \"./MemberData.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MemberData.vue?vue&type=style&index=0&id=78e4344a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"78e4344a\",\n  null\n  \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport VueRouter, { RouteConfig } from 'vue-router';\r\nimport Home from '../views/Home.vue';\r\nimport MemberActivity from '../views/MemberActivity.vue';\r\nimport Membership from '../views/Membership.vue';\r\nimport SchemeGovernance from '../views/SchemeGovernance.vue';\r\nimport Finance from '../views/Finance.vue';\r\nimport News from '../views/News.vue';\r\nimport Documents from '../views/Documents.vue';\r\nimport ClientList from '../views/ClientList.vue';\r\nimport MemberWebsite from '../views/MemberWebsite.vue';\r\nimport Terms from '../views/Terms.vue';\r\nimport MemberSearch from '../views/MemberSearch.vue';\r\nimport MemberData from '../views/MemberData.vue';\r\n\r\nVue.use(VueRouter);\r\n\r\nconst routes: Array<RouteConfig> = [\r\n    {\r\n        path: '/',\r\n        name: 'ClientList',\r\n        component: ClientList,\r\n        meta: {\r\n            hideNav: true,\r\n            showPrint: false,\r\n            hideHeader: true,\r\n        },\r\n    },\r\n    {\r\n        path: '/terms-conditions',\r\n        name: 'Terms',\r\n        component: Terms,\r\n        meta: {\r\n            showDates: false,\r\n            showPrint: false,\r\n            public: true,\r\n        },\r\n    },\r\n    {\r\n        path: '/:clientName',\r\n        name: 'Home',\r\n        component: Home,\r\n        meta: {\r\n            showDates: false,\r\n            showPrint: true,\r\n        },\r\n    },\r\n    {\r\n        path: '/:clientName/terms-conditions',\r\n        name: 'Terms',\r\n        component: Terms,\r\n        meta: {\r\n            showDates: false,\r\n            showPrint: false,\r\n        },\r\n    },\r\n    {\r\n        path: '/:clientName/memberActivity',\r\n        name: 'MemberActivity',\r\n        component: MemberActivity,\r\n        meta: {\r\n            showDates: true,\r\n            showPrint: true,\r\n        },\r\n    },\r\n    {\r\n        path: '/:clientName/member-activity',\r\n        name: 'MemberActivity',\r\n        component: MemberActivity,\r\n        meta: {\r\n            showDates: true,\r\n            showPrint: true,\r\n        },\r\n    },\r\n    {\r\n        path: '/:clientName/memberWebsite',\r\n        name: 'MemberWebsite',\r\n        component: MemberWebsite,\r\n        meta: {\r\n            showDates: true,\r\n            showPrint: true,\r\n        },\r\n    },\r\n    {\r\n        path: '/:clientName/member-website',\r\n        name: 'MemberWebsite',\r\n        component: MemberWebsite,\r\n        meta: {\r\n            showDates: true,\r\n            showPrint: true,\r\n        },\r\n    },\r\n    {\r\n        path: '/:clientName/membership',\r\n        name: 'Membership',\r\n        component: Membership,\r\n        meta: {\r\n            showDates: true,\r\n            showPrint: true,\r\n        },\r\n    },\r\n    {\r\n        path: '/:clientName/finance',\r\n        name: 'finance',\r\n        component: Finance,\r\n        meta: {\r\n            showDates: true,\r\n            showPrint: true,\r\n        },\r\n    },\r\n    {\r\n        path: '/:clientName/schemeGovernance',\r\n        name: 'SchemeGovernance',\r\n        component: SchemeGovernance,\r\n        meta: {\r\n            showDates: true,\r\n            showPrint: true,\r\n        },\r\n    },\r\n    {\r\n        path: '/:clientName/scheme-governance',\r\n        name: 'SchemeGovernance',\r\n        component: SchemeGovernance,\r\n        meta: {\r\n            showDates: true,\r\n            showPrint: true,\r\n        },\r\n    },\r\n    {\r\n        path: '/:clientName/pensionsNews',\r\n        name: 'News',\r\n        component: News,\r\n        meta: {\r\n            showDates: false,\r\n            showPrint: true,\r\n        },\r\n    },\r\n    {\r\n        path: '/:clientName/pensions-news',\r\n        name: 'News',\r\n        component: News,\r\n        meta: {\r\n            showDates: false,\r\n            showPrint: true,\r\n        },\r\n    },\r\n    {\r\n        path: '/:clientName/documents',\r\n        name: 'Documents',\r\n        component: Documents,\r\n        meta: {\r\n            showDates: false,\r\n            showPrint: true,\r\n        },\r\n    },\r\n    {\r\n        path: '/:clientName/members',\r\n        name: 'MemberSearch',\r\n        component: MemberSearch,\r\n        meta: {\r\n            showDates: false,\r\n            showPrint: true,\r\n        },\r\n    },\r\n    {\r\n        path: '/:clientName/members/:memberId/:dataType?/:servicePeriodId?',\r\n        name: 'MemberData',\r\n        component: MemberData,\r\n        props: true,\r\n        meta: {\r\n            showDates: false,\r\n            showPrint: true,\r\n        },\r\n    },\r\n];\r\n\r\nconst router = new VueRouter({\r\n    mode: 'history',\r\n    base: process.env.BASE_URL,\r\n    routes,\r\n});\r\n\r\nexport default router;\r\n","// Globally register all base components for convenience, because they\r\n// will be used very frequently. Components are registered using the\r\n// PascalCased version of their file name.\r\n\r\nimport Vue from '~/vue';\r\nimport { upperFirst, camelCase } from '~/lodash';\r\n\r\n// https://webpack.js.org/guides/dependency-management/#require-context\r\n\r\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment, @typescript-eslint/ban-ts-ignore\r\n// @ts-ignore\r\nconst requireComponent = require.context(\r\n    // Look for files in the current directory\r\n    '.',\r\n    // Do not look in subdirectories\r\n    false,\r\n    // Only include \"_base-\" prefixed .vue files\r\n    /[\\w-]+\\.vue$/,\r\n);\r\n\r\n// For each matching file name...\r\nrequireComponent.keys().forEach((fileName: string) => {\r\n    // Get the component config\r\n    const componentConfig = requireComponent(fileName);\r\n    // Get the PascalCase version of the component name\r\n    const componentName = upperFirst(camelCase(fileName\r\n        // Remove the \"./_\" from the beginning\r\n        .replace(/^\\.\\/_/, '')\r\n        // Remove the file extension from the end\r\n        .replace(/\\.\\w+$/, '')));\r\n    // Globally register the component\r\n    Vue.component(componentName, componentConfig.default || componentConfig);\r\n});\r\n","// convert string to words\r\nfunction toWords (input: string) {\r\n    const regex = /[A-Z\\xC0-\\xD6\\xD8-\\xDE]?[a-z\\xDF-\\xF6\\xF8-\\xFF]+|[A-Z\\xC0-\\xD6\\xD8-\\xDE]+(?![a-z\\xDF-\\xF6\\xF8-\\xFF])|\\d+/g;\r\n    return input.match(regex);\r\n}\r\n\r\nfunction toCamelCase (inputArray: RegExpMatchArray) {\r\n    let result = '';\r\n\r\n    for (let i = 0, len = inputArray.length; i < len; i += 1) {\r\n        const currentStr = inputArray[i];\r\n\r\n        let tempStr = currentStr.toLowerCase();\r\n\r\n        if (i !== 0) {\r\n            tempStr = tempStr.substr(0, 1).toUpperCase() + tempStr.substr(1);\r\n        }\r\n\r\n        result += tempStr;\r\n    }\r\n\r\n    return result;\r\n}\r\n\r\nexport default function toCamelCaseString (input: string) {\r\n    const words = toWords(input);\r\n    if (!words) return input;\r\n    return toCamelCase(words);\r\n}\r\n","export default (val: string) => (val?.length ? val[0].toUpperCase() + val.substring(1) : val);\r\n","// Globally register all base components for convenience, because they\r\n// will be used very frequently. Components are registered using the\r\n// PascalCased version of their file name.\r\n\r\nimport camelCase from '@/util/camelCase';\r\nimport upperFirst from '@/util/upperFirst';\r\nimport Vue from '~/vue';\r\n\r\n// https://webpack.js.org/guides/dependency-management/#require-context\r\n\r\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment, @typescript-eslint/ban-ts-comment\r\n// @ts-ignore\r\nconst requireComponent = require.context(\r\n    // Look for files in the current directory\r\n    '.',\r\n    // Do not look in subdirectories\r\n    false,\r\n    // Only include \"_base-\" prefixed .vue files\r\n    /[\\w-]+\\.vue$/,\r\n);\r\n\r\n// For each matching file name...\r\nrequireComponent.keys().forEach((fileName: string) => {\r\n    // Get the component config\r\n    const componentConfig = requireComponent(fileName);\r\n    // Get the PascalCase version of the component name\r\n    const componentName = upperFirst(camelCase(fileName\r\n        // Remove the \"./_\" from the beginning\r\n        .replace(/^\\.\\/_/, '')\r\n        // Remove the file extension from the end\r\n        .replace(/\\.\\w+$/, '')));\r\n    // Globally register the component\r\n    Vue.component(componentName, componentConfig.default || componentConfig);\r\n});\r\n","// Globally register all base components for convenience, because they\r\n// will be used very frequently. Components are registered using the\r\n// PascalCased version of their file name.\r\n\r\nimport camelCase from '@/util/camelCase';\r\nimport upperFirst from '@/util/upperFirst';\r\nimport Vue from '~/vue';\r\n\r\n// https://webpack.js.org/guides/dependency-management/#require-context\r\n\r\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment, @typescript-eslint/ban-ts-comment\r\n// @ts-ignore\r\nconst requireComponent = require.context(\r\n    // Look for files in the current directory\r\n    '.',\r\n    // Do not look in subdirectories\r\n    false,\r\n    // Only include \"_base-\" prefixed .vue files\r\n    /[\\w-]+\\.vue$/,\r\n);\r\n\r\n// For each matching file name...\r\nrequireComponent.keys().forEach((fileName: string) => {\r\n    // Get the component config\r\n    const componentConfig = requireComponent(fileName);\r\n    // Get the PascalCase version of the component name\r\n    const componentName = upperFirst(camelCase(fileName\r\n        // Remove the \"./_\" from the beginning\r\n        .replace(/^\\.\\/_/, '')\r\n        // Remove the file extension from the end\r\n        .replace(/\\.\\w+$/, '')));\r\n    // Globally register the component\r\n    Vue.component(componentName, componentConfig.default || componentConfig);\r\n});\r\n","import Vue from 'vue';\r\nimport { library } from '@fortawesome/fontawesome-svg-core';\r\nimport HighchartsVue from 'highcharts-vue';\r\nimport {\r\n\r\n    faPlus, faUser,\r\n} from '@fortawesome/pro-regular-svg-icons';\r\nimport {\r\n    faHome, faUserAlt, faUserClock, faEnvelope, faLink, faPhone, faUsersClass, faMoneyBill,\r\n    faFileWord, faFilePdf, faFileExcel, faPoundSign, faSearch,\r\n    faSignOutAlt, faAngry, faTimesCircle, faNewspaper, faDownload, faFileAlt, faFileDownload,\r\n    faTimes, faCalendar, faInfo, faExchange, faFileSignature, faUserFriends,\r\n    faClipboardListCheck, faMoneyCheck, faQuestion, faFilePlus, faGlobe, faArrowDown, faArrowUp,\r\n    faCaretDown, faUserMagnifyingGlass, faArrowLeft, faArrowRight,\r\n} from '@fortawesome/pro-solid-svg-icons';\r\nimport IdleVue from 'idle-vue';\r\n\r\nimport { FontAwesomeIcon } from '@fortawesome/vue-fontawesome';\r\nimport { DynamicUiCommonUi, clickOutside } from '@lcp/dynamic-ui-typescript';\r\nimport More from 'highcharts/highcharts-more';\r\nimport SolidGauge from 'highcharts/modules/solid-gauge';\r\nimport VTooltip from 'v-tooltip';\r\nimport Highcharts from 'highcharts';\r\nimport MapChart from '@lcp/map-chart';\r\nimport dayjs from 'dayjs';\r\nimport App from './App.vue';\r\nimport router from './router';\r\nimport store from './store/index';\r\nimport 'common/components/_globals';\r\nimport '@/components/_global';\r\nimport '@/components/memberDataTypes/_global';\r\n\r\nMore(Highcharts);\r\nSolidGauge(Highcharts);\r\nVue.config.productionTip = false;\r\nVue.use(HighchartsVue, { Highcharts });\r\nVue.component('font-awesome-icon', FontAwesomeIcon);\r\nVue.component('dynamic-ui-common-ui', DynamicUiCommonUi);\r\nVue.use(MapChart);\r\n\r\nconst eventsHub = new Vue();\r\n\r\nVue.use(IdleVue, {\r\n    eventEmitter: eventsHub,\r\n    store,\r\n    idleTime: 30 * 60000, // 30 minutes\r\n    startAtIdle: false,\r\n});\r\nclickOutside(Vue);\r\nHighcharts.setOptions({\r\n    lang: {\r\n        thousandsSep: ',',\r\n    },\r\n});\r\nVue.use(VTooltip, { defaultTrigger: 'hover focus click' });\r\n\r\nVue.filter('integer', (value: number) => {\r\n    if (value === undefined) return '';\r\n    return value.toString();\r\n});\r\n\r\nVue.filter('date', (value: string) => {\r\n    if (value === undefined) return '';\r\n    return dayjs(value).format('DD MMM YYYY');\r\n});\r\n\r\nVue.filter('decimal', (value: number) => {\r\n    if (value === undefined) return '';\r\n    return (Math.round(value * 100) / 100).toLocaleString();\r\n});\r\n\r\nVue.filter('currency', (value: number) => {\r\n    if (value === undefined) return '';\r\n    return `£${(Math.round(value * 100) / 100).toLocaleString(undefined, {\r\n        minimumFractionDigits: 2,\r\n        maximumFractionDigits: 2,\r\n    })}`;\r\n});\r\n\r\nVue.filter('percentage', (value: number) => {\r\n    if (value === undefined) return '';\r\n    return `${(Math.round(value * 100)).toLocaleString()}%`;\r\n});\r\n\r\nVue.filter('twoDpPercentage', (value: number) => {\r\n    if (value === undefined) return '';\r\n    return `${(Math.round(value * 10000) / 100).toLocaleString()}%`;\r\n});\r\n\r\nlibrary.add(faUser, faPlus, faHome, faUserAlt, faUserClock, faPhone, faLink, faEnvelope, faUsersClass, faMoneyBill, faFileWord, faFilePdf, faFileExcel, faPoundSign, faSearch, faAngry, faTimesCircle, faNewspaper, faDownload, faFileAlt, faUser, faSignOutAlt);\r\nlibrary.add(faUser, faPlus, faHome, faUserAlt, faUserClock, faPhone, faLink, faEnvelope, faUsersClass, faUserFriends,\r\n    faMoneyBill, faFileWord, faFilePdf, faFileExcel, faPoundSign, faSearch, faAngry, faTimesCircle, faExchange, faFilePlus, faGlobe,\r\n    faNewspaper, faDownload, faFileAlt, faUser, faFileDownload, faTimes, faCalendar, faInfo, faFileSignature, faClipboardListCheck, faQuestion, faMoneyCheck,\r\n    faArrowUp, faArrowDown, faCaretDown, faUserMagnifyingGlass, faArrowLeft, faArrowRight);\r\nnew Vue({\r\n    router,\r\n    store,\r\n    render: (h) => h(App),\r\n}).$mount('#app');\r\n","export default class ClientNameService {\r\n    static clientNameToPath (clientName: string) {\r\n        return clientName.replace(/ /g, '-').toLowerCase();\r\n    }\r\n}\r\n","export default class ColourService {\r\n    static colours = [\r\n        '#00a3c7',\r\n        '#f27174',\r\n        '#faa743',\r\n        '#7b9fa5',\r\n        '#b7d878',\r\n        '#2bb673',\r\n        '#7167ae',\r\n        '#ea9fc6',\r\n        '#e4205f',\r\n        '#005c5f',\r\n        '#61093f',\r\n        '#002e5f',\r\n        '#fcb769',\r\n        '#f48c89',\r\n        '#92b1b6',\r\n        '#33587f',\r\n        '#33b6d2',\r\n        '#5ad4a7',\r\n        '#03628b',\r\n        '#387e23',\r\n        '#a53c13',\r\n        '#9a9c00',\r\n        '#198ea0',\r\n        '#46a050',\r\n        '#b2693b',\r\n        '#b2a945',\r\n        '#4aae89'];\r\n\r\n    static seriesColourIndex: { [ group: string ]: number } = {\r\n        'jobs-sla': 3,\r\n        demographics: 4,\r\n    };\r\n\r\n    static seriesColourMap: { [ group: string ]: { [ seriesName: string ]: string } } = {\r\n        'jobs-sla': { 'Within target': '#6bbd6b', 'Beyond target': '#faa743', 'Beyond statutory': '#de5e5e' },\r\n        demographics: {\r\n            Active: '#00a3c7', Pensioner: '#f27174', Dependant: '#faa743', Deferred: '#7b9fa5',\r\n        },\r\n    };\r\n\r\n    static getSeriesColour (group: string, seriesName: string) {\r\n        if (!this.seriesColourMap[group]) this.seriesColourMap[group] = {};\r\n        if (!this.seriesColourIndex[group]) this.seriesColourIndex[group] = 0;\r\n        if (!this.seriesColourMap[group][seriesName]) {\r\n            const colour = this.colours[this.seriesColourIndex[group]];\r\n            this.seriesColourIndex[group] += 1;\r\n            this.seriesColourMap[group][seriesName] = colour;\r\n        }\r\n        return this.seriesColourMap[group][seriesName];\r\n    }\r\n}\r\n","import { LegendOptions } from 'highcharts';\r\nimport Vue from 'vue';\r\n\r\nexport default class PieLegend {\r\n    private static pieLegend: PieLegend;\r\n\r\n    isMobile = false;\r\n\r\n    static get () {\r\n        if (!PieLegend.pieLegend) PieLegend.pieLegend = Vue.observable(new PieLegend());\r\n        return PieLegend.pieLegend;\r\n    }\r\n\r\n    constructor () {\r\n        window.onresize = () => {\r\n            this.isMobile = window.matchMedia('(max-width: 700px)').matches;\r\n        };\r\n        this.isMobile = window.matchMedia('(max-width: 700px)').matches;\r\n    }\r\n\r\n    get legend (): LegendOptions {\r\n        const legend: LegendOptions = {\r\n            align: 'right',\r\n            layout: 'vertical',\r\n            verticalAlign: 'middle',\r\n            floating: false,\r\n            itemMarginBottom: 5,\r\n            x: -45,\r\n            navigation: {\r\n                enabled: false,\r\n            },\r\n            itemStyle: {\r\n                fontSize: '1rem',\r\n                fontFamily: 'Montserrat, sans-serif',\r\n                fontWeight: '400',\r\n            },\r\n        };\r\n        if (this.isMobile) {\r\n            legend.align = 'center';\r\n            legend.layout = 'horizontal';\r\n            legend.verticalAlign = 'bottom';\r\n            legend.x = 0;\r\n        }\r\n        return legend;\r\n    }\r\n}\r\n","import Vue from 'vue';\r\nimport Vuex from 'vuex';\r\n\r\nimport commonModules from 'common/store/modules';\r\nimport modules from './modules';\r\n\r\nVue.use(Vuex);\r\n\r\nconst store = new Vuex.Store({\r\n    modules: { ...modules, ...commonModules },\r\n    strict: process.env.NODE_ENV !== 'production',\r\n});\r\n\r\nexport default store;\r\n","export default class MemberSearchOptions {\r\n    memberId!: number | null;\r\n\r\n    surname = '';\r\n\r\n    forenames = '';\r\n\r\n    dateOfBirth = '';\r\n\r\n    nino = '';\r\n\r\n    pageNumber = 1;\r\n\r\n    pageSize = 25;\r\n\r\n    hasSearched = false;\r\n\r\n    totalResults = 0;\r\n\r\n    viewAdvancedSearch = false;\r\n}\r\n","import clientsApi from '@/api/clientApi';\r\nimport ClientContext from '@/models/clientContext';\r\nimport Guid from 'common/util/guid';\r\nimport Vue from 'vue';\r\nimport dayjs from 'dayjs';\r\nimport ClientConfiguration from '@/models/client';\r\nimport { ActionTree, GetterTree, MutationTree } from '~/vuex';\r\nimport MemberSearchOptions from '@/models/memberSearchOptions';\r\nimport MemberSearchResult from '@/models/memberSearchResult';\r\n\r\ninterface ClientContextState {\r\n    context: { [ clientId: string ]: ClientContext };\r\n    fromDate: { [ clientId: string ]: Date };\r\n    toDate: { [ clientId: string ]: Date };\r\n    selectedClient: Guid | null;\r\n    clients: Array<{ clientId: Guid; name: string }> | null;\r\n    viewMonthly: { [clientId: string ]: boolean};\r\n    loadingClients: boolean;\r\n    selectedClientConfiguration: ClientConfiguration | null;\r\n    memberSearchOptions: MemberSearchOptions;\r\n    memberSearchResults: Array<MemberSearchResult>;\r\n}\r\n\r\nexport const state: ClientContextState = {\r\n    context: {},\r\n    fromDate: {},\r\n    toDate: {},\r\n    selectedClient: null,\r\n    clients: null,\r\n    viewMonthly: {},\r\n    loadingClients: false,\r\n    selectedClientConfiguration: null,\r\n    memberSearchOptions: new MemberSearchOptions(),\r\n    memberSearchResults: [],\r\n};\r\n\r\nexport const getters: GetterTree<ClientContextState, unknown> = {\r\n    context: (s) => (clientId: Guid) => (clientId ? s.context[clientId.toString()] : null),\r\n    fromDate: (s) => (clientId: Guid) => (clientId ? s.fromDate[clientId.toString()] : null),\r\n    toDate: (s) => (clientId: Guid) => (clientId ? s.toDate[clientId.toString()] : null),\r\n    selectedClient: (s) => s.selectedClient,\r\n    clients: (s) => s.clients,\r\n    minDate: (s) => (clientId: Guid) => (clientId ? s.context[clientId.toString()].minDate : null),\r\n    viewMonthly: (s) => (clientId: Guid) => (clientId ? s.viewMonthly[clientId.toString()] : null),\r\n    loadingClients: (s) => s.loadingClients,\r\n    selectedClientConfiguration: (s) => (clientId: Guid) => (clientId ? s.selectedClientConfiguration : null),\r\n    memberSearchOptions: (s) => s.memberSearchOptions,\r\n    memberSearchResults: (s) => s.memberSearchResults,\r\n};\r\n\r\nexport const actions: ActionTree<ClientContextState, unknown> = {\r\n    async getContext ({ commit }, clientId: Guid) {\r\n        const context = await clientsApi.getClientContext(clientId);\r\n        commit('setContext', { clientId, context });\r\n        commit('setFromDate', { clientId, date: dayjs(context.defaultStartDate).format('YYYY-MM-DD') });\r\n        commit('setToDate', { clientId, date: dayjs(context.defaultEndDate).format('YYYY-MM-DD') });\r\n        return context;\r\n    },\r\n    async getClients ({ commit }) {\r\n        commit('setLoadingClients', true);\r\n        const clients = await clientsApi.getClients();\r\n        commit('setClients', clients);\r\n        commit('setLoadingClients', false);\r\n        return clients;\r\n    },\r\n    async getClientConfiguration ({ commit }, clientId: Guid) {\r\n        const config = await clientsApi.getClient(clientId);\r\n        commit('setSelectedClientConfiguration', config);\r\n        return config;\r\n    },\r\n};\r\n\r\nexport const mutations: MutationTree<ClientContextState> = {\r\n    setContext (s, { clientId, context }) {\r\n        Vue.set(s.context, clientId, context);\r\n    },\r\n    setFromDate (s, { clientId, date }) {\r\n        Vue.set(s.fromDate, clientId, date);\r\n    },\r\n    setToDate (s, { clientId, date }) {\r\n        Vue.set(s.toDate, clientId, date);\r\n    },\r\n    setViewMonthly (s, { clientId, viewMonthly }) {\r\n        Vue.set(s.viewMonthly, clientId, viewMonthly);\r\n    },\r\n    setSelectedClient (s, guid: Guid | null) {\r\n        if (s.selectedClient !== guid) {\r\n            s.memberSearchOptions = new MemberSearchOptions();\r\n            s.memberSearchResults = [];\r\n        }\r\n        s.selectedClient = guid;\r\n    },\r\n    setClients (s, clients) {\r\n        s.clients = clients;\r\n    },\r\n    setLoadingClients (s, loading: boolean) {\r\n        s.loadingClients = loading;\r\n    },\r\n    setSelectedClientConfiguration (s, configuration: ClientConfiguration | null) {\r\n        s.selectedClientConfiguration = configuration;\r\n    },\r\n    setSearchParams (s, { options }: { clientId: string, options: MemberSearchOptions }) {\r\n        s.memberSearchOptions = options;\r\n    },\r\n    setSearchResults (s, { results }: { clientId: string, results: Array<MemberSearchResult> }) {\r\n        s.memberSearchResults = results;\r\n    },\r\n};\r\n\r\nexport default {\r\n    state,\r\n    getters,\r\n    actions,\r\n    mutations,\r\n};\r\n","import clientsApi from '@/api/clientApi';\r\nimport Guid from 'common/util/guid';\r\nimport dayjs from 'dayjs';\r\nimport Vue from 'vue';\r\nimport { ActionTree, GetterTree, MutationTree } from '~/vuex';\r\n\r\ninterface ClientStatisticsState {\r\n    clientData: { [ clientId: string]: { [dataType: string]: unknown } };\r\n    loading: { [ clientId: string]: { [dataType: string]: boolean } };\r\n    apiMappingForDates: { [ type: string]: (clientId: Guid, fromDate: string, toDate: string, granularity: 'Weekly' | 'Monthly') => Promise<unknown> };\r\n    apiMapping: { [ type: string]: ((clientId: Guid) => Promise<unknown>) | ((clientId: Guid, fromDate: string, toDate: string, granularity: string) => Promise<unknown>) };\r\n}\r\n\r\nexport const state: ClientStatisticsState = {\r\n    loading: {},\r\n    clientData: {},\r\n    apiMappingForDates: {\r\n    },\r\n    apiMapping: {\r\n\r\n    },\r\n};\r\n\r\nexport const getters: GetterTree<ClientStatisticsState, unknown> = {\r\n    stats: (s) => (clientId: Guid, dataType: string) => (s.clientData[clientId.toString()] ? s.clientData[clientId.toString()][dataType] : null),\r\n    isLoading: (s) => (clientId: Guid, dataType: string) => (s.loading[clientId.toString()] ? s.loading[clientId.toString()][dataType] : false),\r\n    areAnyLoading: (s) => (clientId: Guid) => Object.values(s.loading[clientId.toString()]).some((a) => a),\r\n};\r\n\r\nexport const actions: ActionTree<ClientStatisticsState, unknown> = {\r\n    async loadClientStatsForDashboard ({ commit }, { clientId, context }) {\r\n        commit('setLoading', { clientId, dataType: 'dashboard', isLoading: true });\r\n        Object.keys(state.apiMapping).forEach(async (dataType) => {\r\n            commit('setLoading', { clientId, dataType, isLoading: true });\r\n            const data = await state.apiMapping[dataType](\r\n                clientId,\r\n                dayjs(context.defaultStartDate).format('YYYY-MM-DD'),\r\n                dayjs(context.defaultEndDate).format('YYYY-MM-DD'),\r\n                'Weekly',\r\n            );\r\n            commit('setClientData', { clientId, dataType, data });\r\n            commit('setLoading', { clientId, dataType, isLoading: false });\r\n        });\r\n        commit('setLoading', { clientId, dataType: 'dashboard', isLoading: false });\r\n    },\r\n    async loadClientStatsForDates ({ commit }, {\r\n        clientId, fromDate, toDate, viewMonthly,\r\n    }) {\r\n        commit('setLoading', { clientId, dataType: 'dates', isLoading: true });\r\n        const keys = Object.keys(state.apiMappingForDates);\r\n        keys.forEach(async (dataType, i) => {\r\n            commit('setLoading', { clientId, dataType, isLoading: true });\r\n            const data = await state.apiMappingForDates[dataType](clientId, fromDate, toDate, viewMonthly ? 'Monthly' : 'Weekly').catch((ex) => {\r\n                console.log(ex);\r\n                commit('setLoading', { clientId, dataType, isLoading: false });\r\n                if (i === keys.length - 1) {\r\n                    commit('setLoading', { clientId, dataType: 'dates', isLoading: false });\r\n                }\r\n            });\r\n            commit('setClientData', { clientId, dataType, data });\r\n            commit('setLoading', { clientId, dataType, isLoading: false });\r\n            if (i === keys.length - 1) {\r\n                commit('setLoading', { clientId, dataType: 'dates', isLoading: false });\r\n            }\r\n        });\r\n    },\r\n};\r\n\r\nexport const mutations: MutationTree<ClientStatisticsState> = {\r\n    setClientData (s, { clientId, dataType, data }) {\r\n        if (!s.clientData[clientId]) Vue.set(s.clientData, clientId, {});\r\n        Vue.set(s.clientData[clientId], dataType, data);\r\n    },\r\n    setLoading (s, { clientId, dataType, isLoading }) {\r\n        if (!s.loading[clientId]) Vue.set(s.loading, clientId, {});\r\n        Vue.set(s.loading[clientId], dataType, isLoading);\r\n    },\r\n    initialise (s) {\r\n        s.apiMappingForDates = {\r\n            inProgressCases: clientsApi.getInProgressJobs,\r\n            completedCases: clientsApi.getCompleteJobs,\r\n            webRegistrations: clientsApi.getWebRegistrations,\r\n            membershipMovements: clientsApi.getMembershipMovements,\r\n            memberInteractions: clientsApi.getMemberInteractions,\r\n            transfers: clientsApi.getTranferStatistics,\r\n            memberRegistrations: clientsApi.getMemberRegistrations,\r\n            memberLogins: clientsApi.getMemberLogins,\r\n            pageVisits: clientsApi.getPageVisits,\r\n            modellerStats: clientsApi.getModellerStats,\r\n            dataUpdates: clientsApi.getDataUpdateStats,\r\n            memberDocumentsStats: clientsApi.getMemberDocumentStats,\r\n            financials: clientsApi.getFinancials,\r\n        };\r\n        s.apiMapping = {\r\n            feedback: clientsApi.getMemberFeedback,\r\n            postcodes: clientsApi.getPostcodes,\r\n            memberStats: clientsApi.getClientStatistics,\r\n            dashboardInProgressCases: clientsApi.getCurrentInProgressJobs,\r\n            governanceInformation: clientsApi.getGovernanceInformation,\r\n            dashboardCompletedCases: clientsApi.getCompleteJobs as (clientId: Guid, fromDate: string, toDate: string, granularity: string) => Promise<unknown>,\r\n            client: clientsApi.getClient,\r\n        };\r\n    },\r\n};\r\n\r\nexport default {\r\n    state,\r\n    getters,\r\n    actions,\r\n    mutations,\r\n};\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n// Register each file as a corresponding Vuex module. Module nesting\r\n// will mirror [sub-]directory hierarchy and modules are namespaced\r\n// as the camelCase equivalent of their file name.\r\nimport camelCase from 'common/util/camelCase';\r\n\r\ninterface SubTree {\r\n    modules: { [namespace: string]: any };\r\n}\r\n\r\n// https://webpack.js.org/guides/dependency-management/#require-context\r\nconst requireModule = require.context(\r\n    // Search for files in the current directory\r\n    '.',\r\n    // Search for files in subdirectories\r\n    true,\r\n    // Include any .js files that are not unit tests\r\n    /^((?!\\.unit\\.).)*\\.ts$/,\r\n);\r\nconst root = { modules: {} };\r\n\r\nfunction getNamespace (subtree: SubTree, path: Array<string>): SubTree {\r\n    if (path.length === 1) return subtree;\r\n\r\n    const namespace = path.shift() as string;\r\n    subtree.modules[namespace] = { modules: {}, ...subtree.modules[namespace] };\r\n    return getNamespace(subtree.modules[namespace], path);\r\n}\r\nrequireModule.keys().forEach((fileName) => {\r\n    // Skip this file, as it's not a module\r\n    if (fileName === './index.ts') return;\r\n\r\n    // Get the module path as an array\r\n    const modulePath = fileName\r\n    // Remove the \"./\" from the beginning\r\n        .replace(/^\\.\\//, '')\r\n    // Remove the file extension from the end\r\n        .replace(/\\.\\w+$/, '')\r\n    // Split nested modules into an array path\r\n        .split(/\\//)\r\n    // camelCase all module namespaces and names\r\n        .map(camelCase);\r\n\r\n    // Get the modules object for the current path\r\n    const { modules } = getNamespace(root, modulePath);\r\n\r\n    // Add the module to our modules object\r\n    modules[modulePath.pop() as string] = {\r\n    // Modules are namespaced by default\r\n        namespaced: true,\r\n        ...requireModule(fileName),\r\n    };\r\n\r\n    // Recursively get the namespace of the module, even if nested\r\n});\r\n\r\nexport default root.modules;\r\n","import Guid from 'common/util/guid';\r\nimport axios, { AxiosResponse } from '~/axios';\r\n\r\naxios.interceptors.response.use(\r\n    (response: AxiosResponse) => {\r\n        if (response.status === 200) {\r\n            return Promise.resolve(response);\r\n        }\r\n        return Promise.reject();\r\n    },\r\n    (error) => {\r\n        console.log(error);\r\n        if (error.response && error.response.status === 401) {\r\n            window.localStorage.clear();\r\n            window.location.href = '/';\r\n        }\r\n        console.log(error);\r\n        if (error.response) {\r\n            error.response.id = Guid.newGuid();\r\n            return Promise.reject(error.response);\r\n        }\r\n        error.id = Guid.newGuid();\r\n        return Promise.reject(error);\r\n    },\r\n);\r\n","import { AxiosRequestConfig } from '~/axios';\r\n\r\nexport default class ApiOptions {\r\n    params?: { [key: string]: string }\r\n\r\n    useBasePath? = true;\r\n\r\n    useToken? = true;\r\n\r\n    returnHeaders? = false;\r\n\r\n    config?: AxiosRequestConfig = {};\r\n\r\n    successTitle? = 'Success';\r\n\r\n    message? = '';\r\n\r\n    showSuccessMessage? = false;\r\n\r\n    showErrorMessage? = true;\r\n\r\n    errorTitle? = 'Error';\r\n\r\n    errorMessage? = '';\r\n\r\n    showPopup? = false;\r\n}\r\n","import './interceptor';\r\nimport store from '@/store';\r\nimport ApiResponse from 'common/models/apiResponse';\r\nimport ApiOptions from 'common/models/apiOptions';\r\nimport Map from '~/@lcp/class-mapper';\r\nimport axios from '~/axios';\r\n\r\nexport default class Http {\r\n    static baseUrl = process.env.VUE_APP_API_ENDPOINT;\r\n\r\n    public static get<T> (url: string, type?: { new (): T }, options?: ApiOptions): Promise<T> {\r\n        return this._request(url, 'get', type, options) as Promise<T>;\r\n    }\r\n\r\n    static getAsArray<T> (url: string, type?: { new (): T }, options?: ApiOptions): Promise<Array<T>> {\r\n        return this._request<T>(url, 'get', type, options) as Promise<Array<T>>;\r\n    }\r\n\r\n    public static delete<T> (url: string, data: unknown = null, type?: { new (): T }, options?: ApiOptions): Promise<T> {\r\n        return this._dataRequest(url, data, 'delete', type, options) as Promise<T>;\r\n    }\r\n\r\n    public static post<T> (url: string, data: unknown, type?: { new (): T }, options?: ApiOptions): Promise<T> {\r\n        return this._dataRequest(url, data, 'post', type, options) as Promise<T>;\r\n    }\r\n\r\n    public static put<T> (url: string, data: unknown, type?: { new (): T }, options?: ApiOptions): Promise<T> {\r\n        return this._dataRequest(url, data, 'put', type, options) as Promise<T>;\r\n    }\r\n\r\n    public static patch<T> (url: string, data: unknown, type?: { new (): T }, options?: ApiOptions): Promise<T> {\r\n        return this._dataRequest(url, data, 'patch', type, options) as Promise<T>;\r\n    }\r\n\r\n    private static async _request<T> (url: string, method: 'get' | 'delete' = 'get', type?: { new (): T }, options?: ApiOptions): Promise<T | T[]> {\r\n        const apiOptions = this.map({ ...options }, ApiOptions) as ApiOptions;\r\n        const token = apiOptions?.useToken ? await store.dispatch('auth/getToken') : '';\r\n        return axios.request<string, ApiResponse<T>>({\r\n            method,\r\n            url: apiOptions?.useBasePath ? `${this.baseUrl}/${url}` : url,\r\n            params: apiOptions?.params,\r\n            ...{\r\n                ...apiOptions?.config,\r\n                headers: {\r\n                    'Content-Type': 'application/json',\r\n                    Authorization: apiOptions?.useToken ? `Bearer ${token?.accessToken}` : null,\r\n                    ...apiOptions?.config?.headers,\r\n                },\r\n            },\r\n        }).then((response) => {\r\n            if (apiOptions?.returnHeaders) {\r\n                const d = response.data as T & { headers: unknown };\r\n                const obj = this.map<T>(d, type);\r\n                (obj as T & { headers: unknown }).headers = response.headers;\r\n                return obj;\r\n            }\r\n            if (apiOptions?.showSuccessMessage) {\r\n                store.dispatch('messages/addMessage', {\r\n                    status: 'Success', title: apiOptions?.successTitle, message: apiOptions?.message || 'Success', popup: apiOptions?.showPopup,\r\n                });\r\n            }\r\n            return this.map<T>(response.data, type);\r\n        }).catch((error) => {\r\n            store.dispatch('messages/addError', { ...error, message: apiOptions?.errorMessage || error, title: apiOptions?.errorTitle });\r\n            throw error;\r\n            return error;\r\n        });\r\n    }\r\n\r\n    private static async _dataRequest<T> (url: string, data: unknown, method: 'post' | 'put' | 'patch' | 'delete' = 'post', type?: { new (): T }, options?: ApiOptions): Promise<T | T[]> {\r\n        const apiOptions = this.map({ ...options }, ApiOptions) as ApiOptions;\r\n        const token = apiOptions?.useToken ? await store.dispatch('auth/getToken') : '';\r\n        return axios.request<string, ApiResponse<T>>({\r\n            method,\r\n            url: apiOptions?.useBasePath ? `${this.baseUrl}/${url}` : url,\r\n            data,\r\n            params: apiOptions?.params,\r\n            ...{\r\n                ...apiOptions?.config,\r\n                headers: {\r\n                    'Content-Type': 'application/json',\r\n                    Authorization: apiOptions?.useToken ? `Bearer ${token.accessToken}` : null,\r\n                    ...apiOptions?.config?.headers,\r\n                },\r\n            },\r\n        }).then((response) => {\r\n            if (apiOptions?.returnHeaders) {\r\n                const d = response.data as T & { headers: unknown };\r\n                d.headers = response.headers;\r\n                return this.map<T>(d, type);\r\n            }\r\n            if (apiOptions?.showSuccessMessage) {\r\n                store.dispatch('messages/addMessage', {\r\n                    status: 'Success', title: apiOptions?.successTitle, message: apiOptions?.message || 'Success', popup: apiOptions?.showPopup,\r\n                });\r\n            }\r\n            return this.map<T>(response.data, type);\r\n        }).catch((error) => {\r\n            console.log(error);\r\n            store.dispatch('messages/addError', { ...error, message: apiOptions?.errorMessage || error, title: apiOptions?.errorTitle });\r\n            throw error;\r\n            return error;\r\n        });\r\n    }\r\n\r\n    static map<T> (a: T & { headers?: unknown }, Type?: { new (): T }) {\r\n        if (!Type) return a as T;\r\n        const obj = Map<T>(a, Type);\r\n        if (Array.isArray(Type)) {\r\n            if (a.headers && obj) {\r\n                (obj as { headers?: unknown }).headers = a.headers;\r\n            }\r\n            return obj;\r\n        }\r\n        return obj;\r\n    }\r\n}\r\n","import UnverifiedData from './unverifiedData';\r\n\r\nexport default class UnverifiedDataSummary {\r\n    unverifiedData: Array<UnverifiedData> = [];\r\n}\r\n","import Guid from 'common/util/guid';\r\n\r\nexport default class CorrespondenceSummary {\r\n    id!: Guid;\r\n\r\n    reference!: string;\r\n\r\n    inOutInternal?: string;\r\n\r\n    type!: string;\r\n\r\n    category?: string;\r\n\r\n    description!: string;\r\n\r\n    status?: string;\r\n\r\n    from?: string;\r\n\r\n    to?: string;\r\n\r\n    effectiveDate!: Date;\r\n\r\n    phoneCallId?: number;\r\n\r\n    webQueryId?: number;\r\n\r\n    jobId?: string;\r\n\r\n    documentLastUpdatedBy?: Guid;\r\n\r\n    hasCalculation?: boolean;\r\n}\r\n","import Guid from 'common/util/guid';\r\nimport ServicePeriod from './servicePeriod';\r\n\r\nexport default class ClientHistory {\r\n    memberId!: number;\r\n\r\n    forename!: string;\r\n\r\n    surname!: string;\r\n\r\n    text!: string;\r\n\r\n    type!: string;\r\n\r\n    typeDescription!: string;\r\n\r\n    servicePeriodId!: number;\r\n\r\n    memberDataHistory!: {\r\n        mebmerDataHistoryId: Guid;\r\n        dataType: string;\r\n        dataTypeDescription: string;\r\n        servicePeriod: ServicePeriod;\r\n        bulkBatchId?: Guid;\r\n    };\r\n\r\n    bulkBatchId!: Guid;\r\n\r\n    updated!: Date;\r\n\r\n    updatedBy!: Guid;\r\n}\r\n","import Guid from 'common/util/guid';\r\n\r\nexport default class MemberValidationAuditHistory {\r\n    id!: Guid;\r\n\r\n    memberDataTypeName = '';\r\n\r\n    memberDataTypeDescription = '';\r\n\r\n    ruleName!:string;\r\n\r\n    status!:string;\r\n\r\n    created!: Date\r\n\r\n    createdBy!: Guid;\r\n\r\n    lastActionedBy!: Guid;\r\n\r\n    lastActionedOn!: Date;\r\n}\r\n","import InsurerReceiptUpload from './insurerReceiptUpload';\r\n\r\nexport default class InsurerReceiptUploadQuery {\r\n    uploads: Array<InsurerReceiptUpload> = [];\r\n}\r\n","import Guid from 'common/util/guid';\r\n\r\nexport default class MemberDataType {\r\n    memberDataTypeId!: Guid;\r\n\r\n    name!: string;\r\n\r\n    description!: string;\r\n\r\n    typeName!: string;\r\n\r\n    namespace!: string;\r\n\r\n    assemblyName!: string;\r\n\r\n    scope!: string;\r\n\r\n    canDelete!: boolean;\r\n\r\n    isViewable!: boolean;\r\n\r\n    isLiveUpdating!: boolean;\r\n\r\n    isProtected!: boolean;\r\n\r\n    isViewableInClientWeb!: boolean;\r\n\r\n    viewPermissionId!: Guid;\r\n\r\n    editPermissionId!: Guid;\r\n}\r\n","import Http from 'common/api/apiHelper';\r\nimport Client from 'common/models/client';\r\nimport MemberSummary from 'common/models/memberSummary';\r\nimport User from 'common/models/user';\r\nimport PhoneCall from 'common/models/phoneCall';\r\nimport Guid from 'common/util/guid';\r\nimport MemberDetail from 'common/models/memberDetail';\r\nimport ClientDashboardSummary from 'common/models/clientDashboardSummary';\r\nimport UnverifiedDataSummary from 'common/models/unverifiedDataSummary';\r\nimport ClientMemberWebDetails from 'common/models/webRegistrations/clientMemberWebDetails';\r\nimport CorrespondenceSummary from 'common/models/correspondence/correspondenceSummary';\r\nimport CorrespondenceEmail from 'common/models/correspondence/email';\r\nimport EmailAttachment from 'common/models/correspondence/emailAttachment';\r\nimport CorrespondenceWeb2Query from 'common/models/correspondence/webQuery';\r\nimport ClientHistory from 'common/models/clientHistory';\r\nimport MemberFeedback from 'common/models/memberFeedback';\r\nimport ClientWebDocument from 'common/models/clientWebDocument';\r\nimport MemberSearchParams from 'common/models/memberSearchParams';\r\nimport ClientMemberDataTypeOverride from 'common/models/clientMemberDataTypeOverride';\r\nimport MemberValidationAuditHistory from 'common/models/memberValidations/memberValidationAuditHistory';\r\nimport MemberDataTypeSummary from 'common/models/memberDataTypeSummary';\r\nimport ValidationRuleDefinitionSummary from 'common/models/validationRuleDefinitionSummary';\r\nimport EmailHistory from 'common/models/correspondence/emailHistory';\r\nimport ClientUnverifiedDataSummary from 'common/models/clientUnverifiedDataSummary';\r\nimport InsurerPolicyUploadOption from 'common/models/insurerPolicyUploadOption';\r\nimport InsurerReceiptUploadQuery from 'common/models/insurerReceiptUploadQuery';\r\nimport InsurerReceiptUploadResult from 'common/models/insurerReceiptUploadResult';\r\nimport MemberDataType from 'common/models/memberDataType';\r\n\r\nconst apiVersion = 'v1.0';\r\n\r\nexport default class ClientsApi {\r\n\r\n    static addClient (data: { name: string; code: string; teamId: Guid|null; }) {\r\n        return Http.post(`${apiVersion}/client`, data);\r\n    }\r\n\r\n    static getClients () {\r\n        return Http.getAsArray(`${apiVersion}/client`, Client);\r\n    }\r\n\r\n    static getClientDashboard (clientId: Guid) {\r\n        return Http.get<ClientDashboardSummary>(`${apiVersion}/client/${clientId}/dashboard`);\r\n    }\r\n\r\n    static updateClient (client: Client) {\r\n        return Http.put(`${apiVersion}/client/${client.clientId}/`, client);\r\n    }\r\n\r\n    static getClient (clientId: Guid) {\r\n        return Http.get<Client>(`${apiVersion}/client/${clientId}/`);\r\n    }\r\n\r\n    static getTimeRecordingClients () {\r\n        return Http.get<string[]>(`${apiVersion}/timerecording/clients`);\r\n    }\r\n\r\n    static memberAdvancedSearch (clientId: Guid, search: MemberSearchParams, pulseApiUrl = '') {\r\n        return Http.getAsArray<MemberSummary>(`${pulseApiUrl}${apiVersion}/client/${clientId}/member?${Object.keys(search).filter((key) => search[key]?.toString().length).map((key) => `${key}=${search[key]}`).join('&')}`, MemberSummary, {\r\n            returnHeaders: true,\r\n            useBasePath: !pulseApiUrl,\r\n        }) as Promise<(Array<MemberSummary> & {headers: { 'x-total-count': number } })>;\r\n    }\r\n\r\n    static getClientMembers (clientId: Guid, search: string, pulseApiUrl = '') {\r\n        return Http.getAsArray<MemberSummary>(`${pulseApiUrl}${apiVersion}/client/${clientId}/member?search=${search}`, MemberSummary, { useBasePath: !pulseApiUrl });\r\n    }\r\n\r\n    static getClientMember (clientId: Guid, memberId: string) {\r\n        return Http.get<MemberDetail>(`${apiVersion}/client/${clientId}/member/${memberId}`);\r\n    }\r\n\r\n    static getTeamUsers (teamId: Guid) {\r\n        return Http.getAsArray<User>(`${apiVersion}/team/${teamId}/user`);\r\n    }\r\n\r\n    static getRecentMembers (clientId: Guid) {\r\n        return Http.getAsArray<MemberSummary>(`${apiVersion}/client/${clientId}/member/recent`);\r\n    }\r\n\r\n    static createClientCall (clientId: Guid, data: { time: string; data: { conversation: string; incomingCall: boolean; otherCallerDetails: { capacity: string; name: string; company: string; number: string }; subject: string } }) {\r\n        return Http.post<PhoneCall>(`${apiVersion}/client/${clientId}/call`, data);\r\n    }\r\n\r\n    static getUserClients (pulseApiUrl = '') {\r\n        return Http.getAsArray<Client>(`${pulseApiUrl}${apiVersion}/user/client`, undefined, {\r\n            useBasePath: !pulseApiUrl,\r\n        });\r\n    }\r\n\r\n    static createClientMember (clientId: Guid) {\r\n        return Http.post<MemberSummary>(`${apiVersion}/client/${clientId}/member/`, null);\r\n    }\r\n\r\n    static createClientTestMember (clientId: Guid) {\r\n        return Http.post<MemberSummary>(`${apiVersion}/client/${clientId}/member/seeded`, null);\r\n    }\r\n\r\n    static getUnverifiedData (clientId: Guid, pageNumber = 1, pageSize = 50, sortBy: string = '', sortAscending: boolean = false, memberId: string = '', surname: string = '', memberDataType:string = '') {\r\n\r\n        var url = `${apiVersion}/client/${clientId}/member/unverified?pageNumber=${pageNumber}&pageSize=${pageSize}&sort=${sortBy}&sortAscending=${sortAscending}`;\r\n\r\n        var params = new URLSearchParams();\r\n\r\n        if (memberId) {\r\n            params.append('memberId', memberId);\r\n        }\r\n\r\n        if (surname) {\r\n            params.append('surname', surname);\r\n        }\r\n\r\n        if (memberDataType) {\r\n            params.append('memberDataType', memberDataType);\r\n        }\r\n\r\n        if (params.toString().length){\r\n            url += \"&\" + params.toString();\r\n        }\r\n\r\n        return Http.get<UnverifiedDataSummary>(url, UnverifiedDataSummary, { returnHeaders: true }) as Promise<(UnverifiedDataSummary & {headers: { 'x-total-count': number } })>;\r\n    }\r\n\r\n    static getAllClientsUnverifiedData () {\r\n        return Http.getAsArray<ClientUnverifiedDataSummary>(`${apiVersion}/client/unverified`);\r\n    }\r\n\r\n    static getAllClientsUnverifiedReport () {\r\n        return Http.get<ArrayBuffer>(`${apiVersion}/client/unverified/report`, undefined, {\r\n            returnHeaders: true,\r\n            config: {\r\n                responseType: 'blob',\r\n            },\r\n        }) as Promise<ArrayBuffer & {headers: { 'content-disposition': string } }>;\r\n    }\r\n\r\n    static getMemberWebDetails (clientId: Guid) {\r\n        return Http.get<ClientMemberWebDetails>(`${apiVersion}/${clientId}/web/detail`);\r\n    }\r\n\r\n    static getClientCorrespondence (clientId: Guid, type: string, fromDate: string, toDate: string, searchTerm: string, includeWithdrawn: boolean, pageNumber: number, pageSize: number) {\r\n        return Http.getAsArray<CorrespondenceSummary>(`${apiVersion}/client/${clientId}/correspondence/${type}?fromDate=${fromDate}&toDate=${toDate}&searchTerm=${searchTerm}&includeWithdrawn=${includeWithdrawn}&pageNumber=${pageNumber}&pageSize=${pageSize}`,\r\n            CorrespondenceSummary, { returnHeaders: true }) as Promise<(Array<CorrespondenceSummary> & {headers: { 'x-total-count': number } })>;\r\n    }\r\n\r\n    static getClientCorrespondenceDocument (clientId: Guid, documentId: string) {\r\n        return Http.get<CorrespondenceSummary>(`${apiVersion}/client/${clientId}/correspondence/document/${documentId}`);\r\n    }\r\n\r\n    static getClientCorrespondenceEmail (clientId: Guid, emailId: string) {\r\n        return Http.get<CorrespondenceSummary>(`${apiVersion}/client/${clientId}/correspondence/email/${emailId}`);\r\n    }\r\n\r\n    static getClientCorrespondencePhoneCall (clientId: Guid, phoneCallId: string) {\r\n        return Http.get<CorrespondenceSummary>(`${apiVersion}/client/${clientId}/correspondence/phoneCall/${phoneCallId}`);\r\n    }\r\n\r\n    static getClientCorrespondenceWebQuery (clientId: Guid, webQueryId: string) {\r\n        return Http.get<CorrespondenceSummary>(`${apiVersion}/client/${clientId}/correspondence/webQuery/${webQueryId}`);\r\n    }\r\n\r\n    static getClientCall (clientId: Guid, callId: number) {\r\n        return Http.get<PhoneCall>(`${apiVersion}/client/${clientId}/call/${callId}`);\r\n    }\r\n\r\n    static duplicateClientCall (clientId: Guid, callId: number) {\r\n        return Http.post<PhoneCall>(`${apiVersion}/client/${clientId}/call/${callId}/copy`, null);\r\n    }\r\n\r\n    static deleteClientCall (clientId: Guid, callId: number) {\r\n        return Http.delete(`${apiVersion}/client/${clientId}/call/${callId}`);\r\n    }\r\n\r\n    static amendClientCall (clientId: Guid, callId: number, data: {subject: string; conversation: string}) {\r\n        return Http.put<PhoneCall>(`${apiVersion}/client/${clientId}/call/${callId}`, data, undefined, {\r\n            showSuccessMessage: true,\r\n            message: 'Call updated',\r\n        });\r\n    }\r\n\r\n    static getClientEmail (clientId: Guid, emailReference: string, url = '') {\r\n        return Http.get<CorrespondenceEmail>(`${url}${apiVersion}/client/${clientId}/email/${emailReference}`, undefined, { useBasePath: !url });\r\n    }\r\n\r\n    static deleteClientEmail (clientId: Guid, emailReference: string) {\r\n        return Http.delete(`${apiVersion}/client/${clientId}/email/${emailReference}`);\r\n    }\r\n\r\n    static updateClientEmail (clientId: Guid, emailReference: string, url = '', data: {description?: string}) {\r\n        return Http.put(`${url}${apiVersion}/client/${clientId}/email/${emailReference}`, data, undefined, {\r\n            showSuccessMessage: true,\r\n            message: 'Email updated',\r\n            useBasePath: !url,\r\n        });\r\n    }\r\n\r\n    static getClientEmailAttachment (clientId: Guid, emailReference: string, attachmentId: string, url = '') {\r\n        return Http.get<EmailAttachment>(`${url}${apiVersion}/client/${clientId}/email/${emailReference}/attachment/${attachmentId}`, undefined, { useBasePath: !url });\r\n    }\r\n\r\n    static getClientEmailHistory (clientId: Guid, emailReference: string, url = '') {\r\n        return Http.getAsArray<EmailHistory>(`${url}${apiVersion}/client/${clientId}/email/${emailReference}/history`, undefined, { useBasePath: !url });\r\n    }\r\n\r\n    static getClientWebQuery (clientId: Guid, webQueryId: number) {\r\n        return Http.get<CorrespondenceWeb2Query>(`${apiVersion}/client/${clientId}/web/${webQueryId}`);\r\n    }\r\n\r\n    static getClientHistory (clientId: Guid,\r\n        fromDate: string, toDate: string,\r\n        includeIndividual: boolean, includeBulk: boolean,\r\n        memberId?: string, servicePeriodId?: string,\r\n        dataType?: string, historyType?: string,\r\n        pageNumber = 1, pageSize = 50) {\r\n        return Http.getAsArray<ClientHistory>(`${apiVersion}/client/${clientId}/history?fromDate=${fromDate}&toDate=${toDate}&includeIndividual=${includeIndividual}&includeBulk=${includeBulk}&memberId=${memberId}&servicePeriodId=${servicePeriodId}&dataType=${dataType}&historyType=${historyType}&pageNumber=${pageNumber}&pageSize=${pageSize}`,\r\n            ClientHistory,\r\n            {\r\n                returnHeaders: true,\r\n            }) as Promise<(Array<ClientHistory> & { headers: { 'x-total-count': number } })>;\r\n    }\r\n\r\n    static getMemberFeedback (clientId: Guid) {\r\n        return Http.getAsArray<MemberFeedback>(`${apiVersion}/client/${clientId}/member/feedback`);\r\n    }\r\n\r\n    static updateMemberFeedback (clientId: Guid, feedbackId: Guid, data: {communicationScore: number; serviceScore: number}) {\r\n        return Http.put<MemberFeedback>(`${apiVersion}/client/${clientId}/member/feedback/${feedbackId}/`, data, undefined, {\r\n            showSuccessMessage: true,\r\n            message: 'Feedback updated',\r\n        });\r\n    }\r\n\r\n    static createMemberFeedback (clientId: Guid, data: { year: number; quarter: string; communicationScore: number; serviceScore: number}) {\r\n        return Http.post<MemberFeedback>(`${apiVersion}/client/${clientId}/member/feedback`, data);\r\n    }\r\n\r\n    static deleteMemberFeedback (clientId: Guid, feedbackId?: Guid) {\r\n        return Http.delete(`${apiVersion}/client/${clientId}/member/feedback/${feedbackId}`);\r\n    }\r\n\r\n    static getClientWebDocuments (clientId: Guid) {\r\n        return Http.getAsArray<ClientWebDocument>(`${apiVersion}/client/${clientId}/clientweb/document`);\r\n    }\r\n\r\n    static uploadClientWebDocument (clientId: Guid, request: FormData) {\r\n        return Http.post<ClientWebDocument>(`${apiVersion}/client/${clientId}/clientweb/document`, request, undefined, {\r\n            useToken: true,\r\n            config: {\r\n                headers: {\r\n                    'Content-Type': 'multipart/form-data',\r\n                },\r\n            },\r\n            message: 'Document uploaded',\r\n            showSuccessMessage: true,\r\n        }).then((r) => r);\r\n    }\r\n\r\n    static deleteClientWebDocument (clientId: Guid, fileName: string) {\r\n        return Http.delete(`${apiVersion}/client/${clientId}/clientweb/document?name=${encodeURIComponent(fileName)}`, undefined, undefined, {\r\n            message: 'Document deleted',\r\n            showSuccessMessage: true,\r\n        });\r\n    }\r\n\r\n    static getClientMemberDataTypeOverrides (clientId: Guid) {\r\n        return Http.getAsArray<ClientMemberDataTypeOverride>(`${apiVersion}/client/${clientId}/memberDataTypeOverrides`);\r\n    }\r\n\r\n    static updateClientMemberDataTypeOverrides (clientId: Guid, memberDataTypeOverrides: Array<ClientMemberDataTypeOverride>) {\r\n        return Http.put<Array<ClientMemberDataTypeOverride>>(`${apiVersion}/client/${clientId}/memberDataTypeOverrides`, memberDataTypeOverrides);\r\n    }\r\n\r\n    static getMemberValidationAuditHistory (clientId: Guid, searchTerm: string, memberDataTypeId: string, validationRuleDefinitionId: string, status: string, pageNumber: number, pageSize: number) {\r\n        return Http.getAsArray<MemberValidationAuditHistory>(`${apiVersion}/client/${clientId}/memberValidationAuditHistory?pageNumber=${pageNumber}&pageSize=${pageSize}` +\r\n        (searchTerm !== '' ? `&search=${searchTerm}` : '') +\r\n        (memberDataTypeId !== '' && validationRuleDefinitionId === '' ? `&memberDataType=${memberDataTypeId}` : '') +\r\n        (validationRuleDefinitionId !== '' ? `&validationRuleDefinition=${validationRuleDefinitionId}` : '') +\r\n        (status !== '' ? `&status=${status}` : ''),\r\n        MemberValidationAuditHistory, { returnHeaders: true }) as Promise<(Array<MemberValidationAuditHistory> & {headers: { 'x-total-count': number } })>;\r\n    }\r\n\r\n    static runAllMemberValidation (clientId: Guid) {\r\n        return Http.post(`${apiVersion}/client/${clientId}/validation`, null, undefined, {\r\n            showSuccessMessage: true, message: 'Member validation running in batch',\r\n        });\r\n    }\r\n\r\n    static runMemberValidation (clientId: Guid, validationId: Guid) {\r\n        return Http.post(`${apiVersion}/client/${clientId}/validation/${validationId}`, null, undefined, {\r\n            showSuccessMessage: true, message: 'Member validation running in batch',\r\n        });\r\n    }\r\n\r\n    static runMemberDataTypeValidations (clientId: Guid, memberDataTypeId: Guid) {\r\n        return Http.post(`${apiVersion}/client/${clientId}/validation/memberDataType/${memberDataTypeId}`, null, undefined, {\r\n            showSuccessMessage: true, message: 'Member validations running in batch',\r\n        });\r\n    }\r\n\r\n    static getMemberDataTypeSummary (clientId: Guid) {\r\n        return Http.getAsArray<MemberDataTypeSummary>(`${apiVersion}/client/${clientId}/validation/memberDataType`);\r\n    }\r\n\r\n    static getValidationRuleDefinitons (clientId: Guid, memberDataTypeId: Guid) {\r\n        return Http.getAsArray<ValidationRuleDefinitionSummary>(`${apiVersion}/client/${clientId}/validation/memberDataType/${memberDataTypeId}/definition`);\r\n    }\r\n\r\n    static uploadInsurerReceiptFile (clientId: Guid, policyId: Guid, data: unknown) {\r\n        return Http.post<InsurerReceiptUploadResult>(`${apiVersion}/client/${clientId}/insurerReceipt/${policyId}`, data, undefined, {\r\n            useToken: true,\r\n            config: {\r\n                headers: {\r\n                    'Content-Type': 'multipart/form-data',\r\n                },\r\n            },\r\n            showSuccessMessage: false\r\n        });\r\n    }\r\n\r\n    static getInsurerPolicyUploadOptions (clientId: Guid) {\r\n        return Http.getAsArray<InsurerPolicyUploadOption>(`${apiVersion}/client/${clientId}/insurerReceipt/policyOptions`);\r\n    }\r\n\r\n    static getInsurerPolicyUploads (clientId: Guid) {\r\n        return Http.get<InsurerReceiptUploadQuery>(`${apiVersion}/client/${clientId}/insurerReceipt`,\r\n        InsurerReceiptUploadQuery,\r\n        { returnHeaders: true }) as Promise<(InsurerReceiptUploadQuery & {headers: { 'x-total-count': number } })>;\r\n    }\r\n\r\n    static getDataTypesForUnverifiedData(clientId: Guid) {\r\n        return Http.getAsArray<MemberDataType>(`${apiVersion}/client/${clientId}/memberDataType/unverified`, MemberDataType);\r\n    }\r\n}\r\n","import Http from 'common/api/apiHelper';\r\nimport DocumentCatgeory from 'common/models/correspondence/documentCategory';\r\nimport Guid from 'common/util/guid';\r\n\r\nconst apiVersion = 'v1.0';\r\nexport default class InboxApi {\r\n    static getInboxSummary (clientId: Guid) {\r\n        return Http.get(`${apiVersion}/client/${clientId}/inbox`);\r\n    }\r\n\r\n    static getEmails (clientId: Guid) {\r\n        return Http.get(`${apiVersion}/client/${clientId}/inbox/email`, undefined, {\r\n            returnHeaders: true,\r\n        }) as Promise<(Array<unknown> & {headers: { 'x-total-count': number } })>;\r\n    }\r\n\r\n    static getEmail (clientId: Guid, emailId: string) {\r\n        return Http.get(`${apiVersion}/client/${clientId}/inbox/email/${emailId}`);\r\n    }\r\n\r\n    static getEmailAttachments (clientId: Guid, emailId: string) {\r\n        return Http.get(`${apiVersion}/client/${clientId}/inbox/email/${emailId}/attachment`);\r\n    }\r\n\r\n    static getEmailAttachment (clientId: Guid, emailId: string, attachmentId: Guid) {\r\n        return Http.get(`${apiVersion}/client/${clientId}/inbox/email/${emailId}/attachment/${attachmentId}`, undefined,\r\n            {\r\n                config: {\r\n                    responseType: 'blob',\r\n                },\r\n            });\r\n    }\r\n\r\n    static returnEmailToIndexing (clientId: Guid, emailId: string, jobId: Guid | undefined, url = '') {\r\n        if (jobId) {\r\n            return Http.post(`${url}${apiVersion}/client/${clientId}/inbox/email/${emailId}/job/${jobId}/indexing`, {}, undefined, { useBasePath: !url });\r\n        }\r\n        return Http.post(`${url}${apiVersion}/client/${clientId}/inbox/email/${emailId}/indexing`, {}, undefined, { useBasePath: !url });\r\n    }\r\n\r\n    static assignEmail (clientId: Guid, emailId: string, jobId: Guid, attachmentRequest: unknown) {\r\n        return Http.post(`${apiVersion}/client/${clientId}/inbox/email/${emailId}/job/${jobId}/assign`, attachmentRequest);\r\n    }\r\n\r\n    static getMessageAttachmentEncrypted (clientId: Guid, emailId: string, attachmentId: string) {\r\n        return Http.get<boolean>(`${apiVersion}/client/${clientId}/inbox/email/${emailId}/attachment/${attachmentId}/isencrypted`);\r\n    }\r\n\r\n    static validateMessageAttachmentPassword (clientId: Guid, emailId: string, attachmentId: string, password: string) {\r\n        return Http.post<boolean>(`${apiVersion}/client/${clientId}/inbox/email/${emailId}/attachment/${attachmentId}/validate`, { password });\r\n    }\r\n\r\n    static copyMessage (clientId: Guid, emailId: string) {\r\n        return Http.post(`${apiVersion}/client/${clientId}/inbox/email/${emailId}/copy`, {});\r\n    }\r\n\r\n    static deleteMessage (clientId: Guid, emailId: Guid) {\r\n        return Http.delete(`${apiVersion}/client/${clientId}/inbox/email/${emailId}`);\r\n    }\r\n\r\n    static getCalls (clientId: Guid) {\r\n        return Http.get(`${apiVersion}/client/${clientId}/inbox/call`);\r\n    }\r\n\r\n    static getCall (clientId: Guid, callId: Guid) {\r\n        return Http.get(`${apiVersion}/client/${clientId}/inbox/call/${callId}`);\r\n    }\r\n\r\n    static assignCall (clientId: Guid, callId: Guid, jobId: Guid) {\r\n        return Http.post(`${apiVersion}/client/${clientId}/inbox/call/${callId}/job/${jobId}/assign`, {});\r\n    }\r\n\r\n    static returnCallToIndex (clientId: Guid, callId: Guid, jobId: Guid | undefined, url = '') {\r\n        if (jobId) {\r\n            return Http.post(`${url}${apiVersion}/client/${clientId}/inbox/call/${callId}/job/${jobId}/indexing`, {}, undefined, { useBasePath: !url });\r\n        }\r\n        return Http.post(`${url}${apiVersion}/client/${clientId}/inbox/call/${callId}/indexing`, {}, undefined, { useBasePath: !url });\r\n    }\r\n\r\n    static returnWebQueryToIndex (clientId: Guid, webQueryId: Guid, jobId: Guid | undefined, url = '') {\r\n        if (jobId) {\r\n            return Http.post(`${url}${apiVersion}/client/${clientId}/inbox/web/${webQueryId}/job/${jobId}/indexing`, {}, undefined, { useBasePath: !url });\r\n        }\r\n        return Http.post(`${url}${apiVersion}/client/${clientId}/inbox/web/${webQueryId}/indexing`, {}, undefined, { useBasePath: !url });\r\n    }\r\n\r\n    static getWebQueries (clientId: Guid, url = '') {\r\n        return Http.get(`${url}${apiVersion}/client/${clientId}/web`, undefined, { useBasePath: !url });\r\n    }\r\n\r\n    static getWebQuery (clientId: Guid, webQueryId: Guid, url = '') {\r\n        return Http.get(`${url}${apiVersion}/client/${clientId}/web/${webQueryId}`, undefined, { useBasePath: !url });\r\n    }\r\n\r\n    static deleteWebQuery (clientId: Guid, webQueryId: Guid, url = '') {\r\n        return Http.delete(`${url}${apiVersion}/client/${clientId}/web/${webQueryId}`, {}, undefined, { useBasePath: !url });\r\n    }\r\n\r\n    static copyWebQuery (clientId: Guid, webQueryId: Guid, url = '') {\r\n        return Http.post(`${url}${apiVersion}/client/${clientId}/web/${webQueryId}/copy`, {}, undefined, { useBasePath: !url });\r\n    }\r\n\r\n    static assignWebQuery (clientId: Guid, webQueryId: Guid, jobId: Guid) {\r\n        return Http.post(`${apiVersion}/client/${clientId}/inbox/web/${webQueryId}/job/${jobId}/assign`, {});\r\n    }\r\n\r\n    static assignScannedDocument (clientId: Guid, filename: string, jobId: Guid, data: unknown) {\r\n        return Http.post(`${apiVersion}/client/${clientId}/inbox/scanned/${filename}/job/${jobId}/assign`, data);\r\n    }\r\n\r\n    static assignToTeam (filename: string) {\r\n        return Http.post(`${apiVersion}/inbox/scanned/${filename}/assignteam`, {});\r\n    }\r\n\r\n    static unassignFromTeam (filename: string) {\r\n        return Http.post(`${apiVersion}/inbox/scanned/${filename}/unassignteam`, {});\r\n    }\r\n\r\n    static getDocuments (clientId: Guid) {\r\n        return Http.get(`${apiVersion}/client/${clientId}/inbox/scanned`);\r\n    }\r\n\r\n    static getTeamDocuments (teamId: Guid, includeAssignedToTeam: boolean) {\r\n        return Http.get(`${apiVersion}/team/${teamId}/scanned?includeAssignedToTeam=${includeAssignedToTeam}`);\r\n    }\r\n\r\n    static deleteScannedDocument (clientId: Guid, filename: string) {\r\n        return Http.delete(`${apiVersion}/client/${clientId}/inbox/scanned/${filename}`, null, undefined, {\r\n            showSuccessMessage: true, message: 'Document deleted',\r\n        });\r\n    }\r\n\r\n    static copyScannedDocument (clientId: Guid, filename: string) {\r\n        return Http.post(`${apiVersion}/client/${clientId}/inbox/scanned/${filename}/copy`,\r\n            null,\r\n            undefined,\r\n            { showSuccessMessage: true, message: 'Document copied' });\r\n    }\r\n\r\n    static unassignScanClient (clientId: Guid, filename: string) {\r\n        return Http.post(`${apiVersion}/client/${clientId}/inbox/scanned/${filename}/unassign`, null, undefined, {\r\n            showSuccessMessage: true, message: 'Client unassigned',\r\n        });\r\n    }\r\n\r\n    static assignScanClient (clientId: Guid, filename: string, assignClientId: Guid) {\r\n        return Http.post(`${apiVersion}/client/${clientId}/inbox/scanned/${filename}/client/${assignClientId}/assign`, null, undefined, {\r\n            showSuccessMessage: true, message: 'Client assigned',\r\n        });\r\n    }\r\n\r\n    static deleteTeamScannedDocument (teamId: Guid, filename: string) {\r\n        return Http.delete(`${apiVersion}/team/${teamId}/scanned/${filename}`, null, undefined, {\r\n            showSuccessMessage: true, message: 'Document deleted',\r\n        });\r\n    }\r\n\r\n    static copyTeamScannedDocument (teamId: Guid, filename: string) {\r\n        return Http.post(`${apiVersion}/team/${teamId}/scanned/${filename}/copy`,\r\n            null,\r\n            undefined,\r\n            { showSuccessMessage: true, message: 'Document copied' });\r\n    }\r\n\r\n    static unassignTeamScanClient (teamId: Guid, filename: string) {\r\n        return Http.put(`${apiVersion}/team/${teamId}/scanned/${filename}/client/unassign`, null, undefined, {\r\n            showSuccessMessage: true, message: 'Client unassigned',\r\n        });\r\n    }\r\n\r\n    static assignTeamScanClient (teamId: Guid, filename: string, assignClientId: Guid) {\r\n        return Http.put(`${apiVersion}/team/${teamId}/scanned/${filename}/client/${assignClientId}/assign`, null, undefined, {\r\n            showSuccessMessage: true, message: 'Client assigned',\r\n        });\r\n    }\r\n\r\n    static getDocumentCategories () {\r\n        return Http.getAsArray(`${apiVersion}/documentCategory`, DocumentCatgeory);\r\n    }\r\n\r\n    static saveDocumentDetails (clientId: Guid, filename: string, documentDetails: unknown) {\r\n        return Http.post(`${apiVersion}/client/${clientId}/inbox/scanned/${filename}`, documentDetails, undefined, {\r\n            showSuccessMessage: true, message: 'Document details updated', successTitle: 'Success',\r\n        });\r\n    }\r\n\r\n    static uploadDocument (clientId: Guid, jobId: Guid, request: unknown) {\r\n        return Http.post(`${apiVersion}/job/${jobId}/document`, request, undefined, {\r\n            showSuccessMessage: true,\r\n            message: 'Document uploaded',\r\n            useToken: true,\r\n        });\r\n    }\r\n\r\n    static sendEmail (clientId: Guid, request: unknown) {\r\n        return Http.post(`${apiVersion}/client/${clientId}/inbox/email`, request, undefined, {\r\n            showSuccessMessage: true,\r\n            message: 'Draft email created',\r\n        });\r\n    }\r\n\r\n    static getGloballyUnassignedSummary () {\r\n        return Http.get(`${apiVersion}/inbox/scanned/summary`);\r\n    }\r\n}\r\n","import Guid from 'common/util/guid';\r\nimport ReminderSummary from './reminderSummary';\r\nimport JobReferral from './jobReferral';\r\nimport JobTimeStatus from './jobTimeStatus';\r\nimport JobStatus from './jobStatus';\r\n\r\nexport default class JobSummary {\r\n    jobId!: Guid;\r\n\r\n    clientId!: Guid;\r\n\r\n    reference!: string;\r\n\r\n    name!: string;\r\n\r\n    description!: string;\r\n\r\n    status!: JobStatus;\r\n\r\n    timeStatus?: JobTimeStatus;\r\n\r\n    startDate!: Date;\r\n\r\n    targetDate!: Date;\r\n\r\n    dueInDays!: number;\r\n\r\n    overdueDays!: number;\r\n\r\n    clientName!: string;\r\n\r\n    definitionName!: string;\r\n\r\n    completionDate?: Date;\r\n\r\n    memberId?: number;\r\n\r\n    userId?: Guid;\r\n\r\n    externalReferral?: string;\r\n\r\n    reminder?: ReminderSummary;\r\n\r\n    actionDate!: Date;\r\n\r\n    updated?: Date;\r\n\r\n    created!: Date;\r\n\r\n    surname?: string;\r\n\r\n    forenames?: string;\r\n\r\n    nino?: string;\r\n\r\n    whistleblowingEndDate?: Date;\r\n\r\n    referral?: JobReferral;\r\n}\r\n","import Guid from 'common/util/guid';\r\nimport InternalReferral from './internalReferral';\r\nimport JobStatus from './jobStatus';\r\n\r\nexport default class Job {\r\n    clientId!: Guid;\r\n\r\n    description!: string;\r\n\r\n    jobDefinitionId!: Guid;\r\n\r\n    clientJobDefinitionId?: Guid;\r\n\r\n    jobDefinitionName!: string;\r\n\r\n    jobId!: Guid;\r\n\r\n    manualTargetDate!: Date;\r\n\r\n    memberId?: Guid;\r\n\r\n    reference!: string;\r\n\r\n    startDate!: Date;\r\n\r\n    completionDate?: Date;\r\n\r\n    externalReferral?: string;\r\n\r\n    referral?: InternalReferral;\r\n\r\n    status!: JobStatus;\r\n\r\n    targetDate!: Date;\r\n\r\n    teamId!: Guid;\r\n\r\n    userId?: Guid;\r\n\r\n    whistleblowingEndDate?: Date;\r\n\r\n    whistleblowingStartDate?: Date;\r\n\r\n    ssqRequired!: boolean;\r\n\r\n    billingType!: string;\r\n}\r\n","import Guid from 'common/util/guid';\r\n\r\nexport default class JobBilling {\r\n    jobId!: Guid;\r\n\r\n    type!: string;\r\n\r\n    comment?: string;\r\n}\r\n","import Http from 'common/api/apiHelper';\r\nimport User from 'common/models/user';\r\nimport JobSummary from 'common/models/jobSummary';\r\nimport Guid from 'common/util/guid';\r\nimport JobHistoryEntry from 'common/models/jobHistoryEntry';\r\nimport Job from 'common/models/job';\r\nimport MemberSummary from 'common/models/memberSummary';\r\nimport JobBilling from 'common/models/jobBilling';\r\nimport CorrespondenceWeb2Query from 'common/models/correspondence/webQuery';\r\n\r\nconst apiVersion = 'v1.0';\r\n\r\nexport default {\r\n    getJobs (clientId: Guid, type = 'All', jobType = '', jobUrl = '', scope = '') {\r\n        return Http.getAsArray(`${jobUrl}${apiVersion}/client/${clientId}/job?type=${type}&scope=${scope}&jobType=${jobType}`, JobSummary, { useBasePath: !jobUrl });\r\n    },\r\n    getJobsByTeam (teamId: Guid, type = 'All', jobType = '') {\r\n        return Http.getAsArray(`${apiVersion}/team/${teamId}/job?type=${type}&jobType=${jobType}`, JobSummary);\r\n    },\r\n    getJobsByMemberId (clientId: Guid, memberId: Guid, type = 'All', jobUrl = '') {\r\n        return Http.getAsArray(`${jobUrl}${apiVersion}/client/${clientId}/member/${memberId}/job?type=${type}`, JobSummary, { useBasePath: !jobUrl });\r\n    },\r\n    getActiveJobsByMemberId (clientId: Guid, memberId: Guid, type = 'Active') {\r\n        return Http.getAsArray(`${apiVersion}/client/${clientId}/member/${memberId}/job?type=${type}`, JobSummary);\r\n    },\r\n    getMember (clientId: Guid, memberId: Guid) {\r\n        return Http.get(`${apiVersion}/client/${clientId}/member/${memberId}`, MemberSummary);\r\n    },\r\n    getJobsByDefinitionId (clientId: Guid, jobDefinitionId: Guid, type = 'All') {\r\n        return Http.getAsArray(`${apiVersion}/client/${clientId}/jobdefinition/${jobDefinitionId}/job?type=${type}`, JobSummary);\r\n    },\r\n    getUserJobs () {\r\n        return Http.getAsArray(`${apiVersion}/user/job`, JobSummary);\r\n    },\r\n    getJobFollowUpPaneDetails (clientId: string = '', teamId: string = '') {\r\n        return Http.get(`${apiVersion}/job/getFollowUpJobCountQuery?clientId=${clientId}&teamId=${teamId}`);\r\n    },\r\n    ceaseJob (jobId: Guid) {\r\n        return Http.put(`${apiVersion}/job/${jobId}/cease`, null, undefined, { showSuccessMessage: true, message: 'Job ceased' });\r\n    },\r\n    reactivateJob (jobId: Guid) {\r\n        return Http.put(`${apiVersion}/job/${jobId}/reactivate`, null, undefined, { showSuccessMessage: true, message: 'Job restored' });\r\n    },\r\n    completeJob (jobId: Guid, data: unknown) {\r\n        return Http.put(`${apiVersion}/job/${jobId}/complete`, data, undefined, { showSuccessMessage: true, message: 'Job completed' });\r\n    },\r\n    deleteJob (jobId: Guid, data: unknown) {\r\n        return Http.put(`${apiVersion}/job/${jobId}/delete`, data, undefined, { showSuccessMessage: true, message: 'Job deleted' });\r\n    },\r\n    getActiveJobs (clientId: Guid) {\r\n        return this.getJobs(clientId, 'Active');\r\n    },\r\n    getUpcomingJobs (clientId: Guid) {\r\n        return this.getJobs(clientId, 'Upcoming');\r\n    },\r\n    getJob (jobRef: string, jobUrl = '') {\r\n        return Http.get(`${jobUrl}${apiVersion}/job/${jobRef}`, Job, { useBasePath: !jobUrl });\r\n    },\r\n    getRecent () {\r\n        return Http.get(`${apiVersion}/user/job/recent`);\r\n    },\r\n    referJobInternally (jobId: Guid, data: unknown) {\r\n        return Http.put(`${apiVersion}/job/${jobId}/refer/internal`, data);\r\n    },\r\n    startJob (clientId: Guid, job: unknown) {\r\n        return Http.post(`${apiVersion}/client/${clientId}/job/`, job);\r\n    },\r\n    startScheduledJob (clientId: Guid, job: unknown) {\r\n        return Http.post(`${apiVersion}/client/${clientId}/jobSchedule/`, job);\r\n    },\r\n    assignJob (jobId: Guid, userId: Guid) {\r\n        return Http.put(`${apiVersion}/job/${jobId}/assign`, { userId });\r\n    },\r\n    assignMultipleUsersToJob (data: { userId: Guid; jobIds: Array<Guid> }) {\r\n        return Http.put(`${apiVersion}/job/assign`, data);\r\n    },\r\n    getJobBilling (jobId: Guid) {\r\n        return Http.get(`${apiVersion}/job/${jobId}/billing`, JobBilling);\r\n    },\r\n    changeBilling (jobId: Guid, type: string, comment?: string) {\r\n        return Http.put(`${apiVersion}/job/${jobId}/billing`, { type, comment });\r\n    },\r\n    changeBillingType (jobId: Guid, billingType: string) {\r\n        return Http.put(`${apiVersion}/job/${jobId}/billingType`, { billingType });\r\n    },\r\n    getBillingTypes () {\r\n        return Http.get(`${apiVersion}/job/billingTypes`);\r\n    },\r\n    startCorrespondenceJob (clientId: Guid, data: { memberId?: Guid; webRequestId?: string }) {\r\n        return Http.post(`${apiVersion}/client/${clientId}/correspondenceJob/`, data);\r\n    },\r\n    unassignJob (jobId: Guid) {\r\n        return Http.put(`${apiVersion}/job/${jobId}/unassign`, {});\r\n    },\r\n    assignReferral (jobId: Guid, userId: Guid) {\r\n        return Http.put(`${apiVersion}/job/${jobId}/refer/internal/assign`, { userId });\r\n    },\r\n    unassignReferral (jobId: Guid) {\r\n        return Http.put(`${apiVersion}/job/${jobId}/refer/internal/unassign`, {});\r\n    },\r\n    completeInternalReferral (jobId: Guid, data: unknown) {\r\n        return Http.put(`${apiVersion}/job/${jobId}/refer/internal/complete`, data);\r\n    },\r\n    cancelInternalReferral (jobId: Guid, data: unknown) {\r\n        return Http.put(`${apiVersion}/job/${jobId}/refer/internal/cancel`, data);\r\n    },\r\n    getExternalContacts () {\r\n        return Http.get(`${apiVersion}/list/externalcontacts`);\r\n    },\r\n    referJobExternally (jobId: Guid, data: unknown) {\r\n        return Http.put(`${apiVersion}/job/${jobId}/refer/external`, data);\r\n    },\r\n    cancelExternalReferral (jobId: Guid) {\r\n        return Http.delete(`${apiVersion}/job/${jobId}/refer/external`);\r\n    },\r\n    completeExternalReferral (jobId: Guid) {\r\n        return Http.put(`${apiVersion}/job/${jobId}/refer/external/end`, {});\r\n    },\r\n    getJobHistory (jobId: Guid) {\r\n        return Http.getAsArray<JobHistoryEntry>(`${apiVersion}/job/${jobId}/history`);\r\n    },\r\n    getTargetDateHistory (jobId: Guid) {\r\n        return Http.get(`${apiVersion}/job/${jobId}/targetDate`);\r\n    },\r\n    getTargetDate (jobId: Guid, startDate: Date) {\r\n        return Http.post<Date>(`${apiVersion}/job/${jobId}/targetDate`, { startDate });\r\n    },\r\n    searchJobs (clientId: Guid, search: { [key: string]: string}) {\r\n        let queryString = '?';\r\n        Object.keys(search).forEach((s) => {\r\n            if (search[s] !== undefined && search[s] !== null && search[s].toString().length) {\r\n                queryString += `${s}=${search[s]}&`;\r\n            } else {\r\n                queryString += `${''}=${search[s]}&`;\r\n            }\r\n        });\r\n        queryString = queryString.substring(0, queryString.length - 1);\r\n        return Http.getAsArray(`${apiVersion}/client/${clientId}/job/search${queryString}`, User, { returnHeaders: true });\r\n    },\r\n    updateJobDates (jobId: Guid, dates: unknown) {\r\n        return Http.put(`${apiVersion}/job/${jobId}/dates`, dates, undefined, { showSuccessMessage: true, message: 'Dates updated' });\r\n    },\r\n    updateJobDescription (jobId: Guid, description: { descripton: string }) {\r\n        return Http.put(`${apiVersion}/job/${jobId}`, description, undefined, { showSuccessMessage: true, message: 'Description updated' });\r\n    },\r\n    updateSsqRequired (jobId: Guid, isRequired: boolean) {\r\n        return Http.put(`${apiVersion}/job/${jobId}/ssq`, { ssqRequired: isRequired }, undefined, { showSuccessMessage: true, message: 'Ssq required updated' });\r\n    },\r\n    getJobDefinition (jobId: Guid) {\r\n        return Http.get(`${apiVersion}/job/${jobId}/definition`);\r\n    },\r\n    assignJobToPhoneCall (clientId: Guid, callId: Guid, jobId: Guid, url?: string, reassigned = false) {\r\n        return Http.post(`${url}${apiVersion}/client/${clientId}/inbox/call/${callId}/job/${jobId}/assign`, null, undefined, {\r\n            useBasePath: !url,\r\n            showSuccessMessage: true,\r\n            showPopup: true,\r\n            successTitle: `Call ${reassigned ? 'reassigned' : 'assigned'}`,\r\n            message: `Call ${reassigned ? 'reassigned' : 'assigned'} to job`,\r\n        });\r\n    },\r\n    unassignJobToPhoneCall (callId: Guid, jobId: Guid, url?: string) {\r\n        return Http.post(`${url}${apiVersion}/job/${jobId}/call/${callId}/unassign`, null, undefined, {\r\n            useBasePath: !url,\r\n            showSuccessMessage: true,\r\n            showPopup: true,\r\n            successTitle: 'Call unassigned',\r\n            message: 'Call unassigned from job',\r\n        });\r\n    },\r\n    unAssignJobFromWebQuery (jobId: Guid, webQueryId: Guid, url?: string) {\r\n        return Http.post<CorrespondenceWeb2Query>(`${url}${apiVersion}/job/${jobId}/web/${webQueryId}/unassign`, null, undefined, {\r\n            useBasePath: !url,\r\n            showSuccessMessage: true,\r\n            showPopup: true,\r\n            successTitle: 'Web query unassigned',\r\n            message: 'Web query unassigned from job',\r\n        });\r\n    },\r\n    assignJobToWebQuery (clientId: Guid, webQueryId: Guid, jobId: Guid, url?: string, reassigned = false) {\r\n        return Http.post<CorrespondenceWeb2Query>(`${url}${apiVersion}/client/${clientId}/inbox/web/${webQueryId}/job/${jobId}/assign`, null, undefined, {\r\n            useBasePath: !url,\r\n            showSuccessMessage: true,\r\n            successTitle: `Web query ${reassigned ? 'reassigned' : 'assigned'}`,\r\n            showPopup: true,\r\n            message: `Web query ${reassigned ? 'reassigned' : 'assigned'} to job`,\r\n        });\r\n    },\r\n    generateAICorrespondence (clientId: Guid,jobId: Guid, data: string, url = '') {\r\n        return Http.post<string>(`${url}${apiVersion}/client/${clientId}/correspondence/generateCorrespondence/job/${jobId}`, data, undefined, { useBasePath: !url });\r\n    },\r\n};\r\n","export default class DataTypeSummary {\r\n    key!: string;\r\n\r\n    name!: string;\r\n\r\n    status!: 'Unverified' | 'Verified' | 'Available' | 'Incomplete';\r\n}\r\n","import Guid from 'common/util/guid';\r\nimport { ClassComponent } from '~/@lcp/dynamic-ui-typescript';\r\nimport DataValidation from './dataValidation';\r\n\r\nexport default class DataType {\r\n    dataType!: string;\r\n\r\n    current!: {\r\n        dynamicUiDefinition: ClassComponent;\r\n        value: unknown;\r\n    }\r\n\r\n    lastVerified?: {\r\n        dynamicUiDefinition: ClassComponent;\r\n        value: unknown;\r\n    }\r\n\r\n    memberDataId!: Guid;\r\n\r\n    validationResults!: Array<DataValidation>;\r\n\r\n    isLiveUpdating!: boolean;\r\n\r\n    isDeleted!: boolean;\r\n}\r\n","import DataValidation from './dataValidation';\r\n\r\nexport default class MemberDataTypeResponse {\r\n    latestData!: unknown;\r\n\r\n    isSuccess!: boolean;\r\n\r\n    validationResults!: Array<DataValidation>;\r\n\r\n    duiValidationResults: unknown;\r\n}\r\n","import { ClassComponent } from '~/@lcp/dynamic-ui-typescript';\r\nimport DataTypeHistoryItem from './dataTypeHistoryItem';\r\n\r\nexport default class DataTypeReview {\r\n    dataType!: string;\r\n\r\n    dynamicUiDefinition!: ClassComponent;\r\n\r\n    canVerify!: boolean;\r\n\r\n    data: Array<DataTypeHistoryItem> = []\r\n}\r\n","export default class DataValidation {\r\n    name!: string;\r\n\r\n    result!: 'Warning' | 'Pass' | 'Error' | 'Fail' | 'NotApplicable';\r\n\r\n    message?: string;\r\n\r\n    servicePeriodId?: number;\r\n}\r\n","import Guid from 'common/util/guid';\r\nimport ServicePeriod from '../servicePeriod';\r\n\r\nexport default class MemberHistoryItem {\r\n    memberHistoryId!: Guid;\r\n\r\n    text!: string;\r\n\r\n    type!: string;\r\n\r\n    typeDescription!: string;\r\n\r\n    servicePeriods!: Array<ServicePeriod>;\r\n\r\n    memberDataHistory!: {\r\n        mebmerDataHistoryId: Guid;\r\n        dataType: string;\r\n        dataTypeDescription: string;\r\n        servicePeriod: ServicePeriod;\r\n    };\r\n\r\n    updated!: Date;\r\n\r\n    updatedBy!: Guid;\r\n}\r\n","import Guid from 'common/util/guid';\r\n\r\nexport default class DeletedMember {\r\n    dateBirth!: Date;\r\n\r\n    deletedReason!: string;\r\n\r\n    forenames!: string;\r\n\r\n    isDeleted!: boolean;\r\n\r\n    memberId!: number;\r\n\r\n    nino!: string;\r\n\r\n    postCode!: string;\r\n\r\n    servicePeriods!: Array<{\r\n        servicePeriodId: number;\r\n        status: string;\r\n        statusDate: Date;\r\n    }>;\r\n\r\n    surname!: string;\r\n\r\n    systemMemberId!: Guid;\r\n\r\n    deletedBy?: Guid;\r\n\r\n    deletedOn?: Date;\r\n}\r\n","import Guid from 'common/util/guid';\r\n\r\nexport default class MemberVerificationSummary {\r\n    id!: Guid;\r\n\r\n    type!: string;\r\n\r\n    status!: 'Verified' | 'Referred' | 'Invalid';\r\n\r\n    reference!: string;\r\n\r\n    created!: Date;\r\n\r\n    createdBy!: Guid;\r\n\r\n    invalidatedFields!: Array<string>;\r\n}\r\n","export default class BasicMemberVerification {\r\n    title!: string;\r\n\r\n    forenames!: string;\r\n\r\n    surname!: string;\r\n\r\n    dateOfBirth!: string;\r\n\r\n    buildingName!: string;\r\n\r\n    address1!: string;\r\n\r\n    address2!: string;\r\n\r\n    town!: string;\r\n\r\n    postCode!: string;\r\n\r\n    errors!: Array<string>;\r\n\r\n    reference = '';\r\n\r\n    result: 'Pass' | 'Fail' | '' = '';\r\n}\r\n","export default class UnverifiedMemberDataSummary {\r\n    hasUnverifiedData! : boolean;\r\n}\r\n","import CorrespondenceSummary from 'common/models/correspondence/correspondenceSummary';\r\nimport Http from 'common/api/apiHelper';\r\nimport PhoneCall from 'common/models/phoneCall';\r\nimport Guid from 'common/util/guid';\r\nimport DataTypeSummary from 'common/models/dataTypes/dataTypeSummary';\r\nimport DataType from 'common/models/dataTypes/dataType';\r\nimport CorrespondenceWeb2Query from 'common/models/correspondence/webQuery';\r\nimport MemberDataTypeRequest from 'common/models/dataTypes/memberDataTypeRequest';\r\nimport MemberDataTypeRequestResponse from 'common/models/dataTypes/memberDataTypeRequestResponse';\r\nimport DataTypeReview from 'common/models/dataTypes/dataTypeReview';\r\nimport MemberPhoneCallDetails from 'common/models/memberPhoneCallDetails';\r\nimport CorrespondenceEmail from 'common/models/correspondence/email';\r\nimport DataValidation from 'common/models/dataTypes/dataValidation';\r\nimport MemberHistoryItem from 'common/models/dataTypes/memberHistoryItem';\r\nimport EmailAttachment from 'common/models/correspondence/emailAttachment';\r\nimport MemberSummary from 'common/models/memberSummary';\r\nimport DeletedMember from 'common/models/deletedMember';\r\nimport MemberStatusOption from 'common/models/memberStatusOption';\r\nimport MemberWebHistory from 'common/models/webRegistrations/memberWebHistory';\r\nimport MemberRegistrationDetails from 'common/models/webRegistrations/memberRegistrationDetails';\r\nimport MemberVerificationSummary from 'common/models/memberVerificationSummary';\r\nimport BasicMemberVerification from 'common/models/basicMemberVerification';\r\nimport SpouseCheckResult from 'common/models/spouseCheckResult';\r\nimport HasDependantHistoryCheckResult from 'common/models/hasDependantHistoryCheckResult';\r\nimport MemberVerificationResult from 'common/models/memberVerificationResult';\r\nimport MemberSearchParams from 'common/models/memberSearchParams';\r\nimport EmailHistory from 'common/models/correspondence/emailHistory';\r\nimport UnverifiedMemberDataSummary from 'common/models/unverifiedMemberDataSummary';\r\n\r\nconst apiVersion = 'v1.0';\r\nexport default class MemberApi {\r\n    private static getBaseUrl (clientId: Guid, memberId: number) {\r\n        return `${apiVersion}/client/${clientId}/member/${memberId}`;\r\n    }\r\n\r\n    // Correspondence\r\n\r\n    static getCorrespondence (clientId: Guid, memberId: number) {\r\n        const baseUrl = this.getBaseUrl(clientId, memberId);\r\n        return Http.getAsArray<CorrespondenceSummary>(`${baseUrl}/correspondence`);\r\n    }\r\n\r\n    // History\r\n\r\n    static getHistory (clientId: Guid, memberId: number) {\r\n        return Http.getAsArray(`${apiVersion}/client/${clientId}/member/${memberId}/history`, MemberHistoryItem);\r\n    }\r\n\r\n    // DataTypes\r\n\r\n    static getDataTypes (clientId: Guid, memberId: number) {\r\n        return Http.getAsArray(`${apiVersion}/client/${clientId}/member/${memberId}/dataTypes`, DataTypeSummary);\r\n    }\r\n\r\n    static getDataType (clientId: Guid, memberId: number, dataKey: string, includeNewDataValidationChecks: boolean) {\r\n        return Http.get(`${apiVersion}/client/${clientId}/member/${memberId}/${dataKey}?includeNewDataValidationChecks=${includeNewDataValidationChecks}`, DataType);\r\n    }\r\n\r\n    static saveDataType (clientId: Guid, memberId: number, dataKey: string, memberDataId: Guid, data: MemberDataTypeRequest) {\r\n        return memberDataId ? Http.put(`${apiVersion}/client/${clientId}/member/${memberId}/${dataKey}/${memberDataId}`, data, MemberDataTypeRequestResponse)\r\n            : Http.post(`${apiVersion}/client/${clientId}/member/${memberId}/${dataKey}`, data, MemberDataTypeRequestResponse);\r\n    }\r\n\r\n    static getDataTypeReview (clientId: Guid, memberId: number, dataKey: string) {\r\n        return Http.get(`${apiVersion}/client/${clientId}/member/${memberId}/${dataKey}/review`, DataTypeReview);\r\n    }\r\n\r\n    static verifyDataTypeReview (clientId: Guid, memberId: number, dataKey: string, memberDataId: Guid) {\r\n        return Http.put(`${apiVersion}/client/${clientId}/member/${memberId}/${dataKey}/${memberDataId}/verify`, null);\r\n    }\r\n\r\n    static deleteDataType (clientId: Guid, memberId: number, dataKey: string, memberDataId: Guid, data: unknown) {\r\n        return Http.put(`${apiVersion}/client/${clientId}/member/${memberId}/${dataKey}/${memberDataId}/delete`, data, undefined);\r\n    }\r\n\r\n    static liveUpdateData (clientId: Guid, memberId: number, servicePeriodId: number, dataKey: string, data: unknown) {\r\n        return Http.put<{ latestData: string }>(`${apiVersion}/client/${clientId}/member/${memberId}/servicePeriod/${servicePeriodId}/${dataKey}/liveData`, data);\r\n    }\r\n\r\n    // ServicePeriod DataTypes\r\n\r\n    static getServicePeriodDataTypes (clientId: Guid, memberId: number, servicePeriodId: number) {\r\n        return Http.getAsArray(`${apiVersion}/client/${clientId}/member/${memberId}/servicePeriod/${servicePeriodId}/dataTypes`, DataTypeSummary);\r\n    }\r\n\r\n    static getServicePeriodDataType (clientId: Guid, memberId: number, servicePeriodId: number, dataKey: string, includeNewDataValidationChecks: boolean) {\r\n        return Http.get(`${apiVersion}/client/${clientId}/member/${memberId}/servicePeriod/${servicePeriodId}/${dataKey}?includeNewDataValidationChecks=${includeNewDataValidationChecks}`, DataType);\r\n    }\r\n\r\n    static saveServicePeriodDataType (clientId: Guid, memberId: number, dataKey: string, memberDataId: Guid, servicePeriodId: number, data: MemberDataTypeRequest) {\r\n        return memberDataId ? Http.put(`${apiVersion}/client/${clientId}/member/${memberId}/servicePeriod/${servicePeriodId}/${dataKey}/${memberDataId}`, data, MemberDataTypeRequestResponse)\r\n            : Http.post(`${apiVersion}/client/${clientId}/member/${memberId}/servicePeriod/${servicePeriodId}/${dataKey}`, data, MemberDataTypeRequestResponse);\r\n    }\r\n\r\n    static getServicePeriodDataTypeReview (clientId: Guid, memberId: number, dataKey: string, servicePeriodId: number) {\r\n        return Http.get(`${apiVersion}/client/${clientId}/member/${memberId}/servicePeriod/${servicePeriodId}/${dataKey}/review`, DataTypeReview);\r\n    }\r\n\r\n    static verifyServicePeriodDataTypeReview (clientId: Guid, memberId: number, dataKey: string, memberDataId: Guid, servicePeriodId: number) {\r\n        return Http.put(`${apiVersion}/client/${clientId}/member/${memberId}/servicePeriod/${servicePeriodId}/${dataKey}/${memberDataId}/verify`, null);\r\n    }\r\n\r\n    static deleteServicePeriodDataType (clientId: Guid, memberId: number, dataKey: string, memberDataId: Guid, servicePeriodId: number, data: unknown) {\r\n        return Http.put(`${apiVersion}/client/${clientId}/member/${memberId}/servicePeriod/${servicePeriodId}/${dataKey}/${memberDataId}/delete`, data, undefined);\r\n    }\r\n\r\n    static getDataValidations (clientId: Guid, memberId: number) {\r\n        return Http.getAsArray(`${apiVersion}/client/${clientId}/member/${memberId}/validation`, DataValidation);\r\n    }\r\n\r\n    static updateInPayment (clientId: Guid, memberId: number, servicePeriodId: Guid, isInPayment: boolean) {\r\n        return Http.put(`${apiVersion}/client/${clientId}/member/${memberId}/servicePeriod/${servicePeriodId}/inPayment`, { isInPayment }, undefined, {\r\n            showSuccessMessage: true,\r\n            message: 'Is in payroll updated',\r\n        });\r\n    }\r\n\r\n    // Member Verifications\r\n\r\n    static getMemberVerifications (clientId: Guid, memberId: number) {\r\n        return Http.getAsArray<MemberVerificationSummary>(`${apiVersion}/client/${clientId}/member/${memberId}/verification`, MemberVerificationSummary);\r\n    }\r\n\r\n    static getExpectedBasicMemberVerification (clientId: Guid, memberId: number) {\r\n        return Http.get(`${apiVersion}/client/${clientId}/member/${memberId}/verification/basic`, BasicMemberVerification);\r\n    }\r\n\r\n    static getBasicMemberVerification (clientId: Guid, memberId: number, memberVerificationId: Guid) {\r\n        return Http.get(`${apiVersion}/client/${clientId}/member/${memberId}/verification/basic/${memberVerificationId}`, BasicMemberVerification);\r\n    }\r\n\r\n    static createBasicMemberVerification (clientId: Guid, memberId: number) {\r\n        return Http.post<MemberVerificationResult>(`${apiVersion}/client/${clientId}/member/${memberId}/verification/basic`, {});\r\n    }\r\n\r\n    // Phone Calls\r\n\r\n    static getCall (clientId: Guid, memberId: number, callId: number, url: string | undefined) {\r\n        return Http.get<PhoneCall>(`${url}${apiVersion}/client/${clientId}/member/${memberId}/call/${callId}`, undefined, { useBasePath: !url });\r\n    }\r\n\r\n    static duplicateCall (clientId: Guid, memberId: number, callId: number) {\r\n        const baseUrl = this.getBaseUrl(clientId, memberId);\r\n        return Http.post<PhoneCall>(`${baseUrl}/call/${callId}/copy`, null, undefined, {\r\n            showSuccessMessage: false,\r\n            message: 'Call copied',\r\n        });\r\n    }\r\n\r\n    static deleteCall (clientId: Guid, memberId: number, callId: number) {\r\n        const baseUrl = this.getBaseUrl(clientId, memberId);\r\n        return Http.delete(`${baseUrl}/call/${callId}`, null, undefined, {\r\n            showSuccessMessage: true,\r\n            message: 'Call deleted',\r\n        });\r\n    }\r\n\r\n    static amendCall (clientId: Guid, memberId: number, callId: number, data: {subject: string; conversation: string}) {\r\n        const baseUrl = this.getBaseUrl(clientId, memberId);\r\n        return Http.put<PhoneCall>(`${baseUrl}/call/${callId}`, data, undefined, {\r\n            showSuccessMessage: true,\r\n            message: 'Call updated',\r\n        });\r\n    }\r\n\r\n    static startCall (clientId: Guid, memberId: number) {\r\n        const baseUrl = this.getBaseUrl(clientId, memberId);\r\n        return Http.get<MemberPhoneCallDetails>(`${baseUrl}/call/start`);\r\n    }\r\n\r\n    static saveCall (clientId: Guid, memberId: number, data: unknown) {\r\n        const baseUrl = this.getBaseUrl(clientId, memberId);\r\n        return Http.post<PhoneCall>(`${baseUrl}/call/`, data, undefined, {\r\n            showSuccessMessage: true,\r\n            message: 'Call saved',\r\n        });\r\n    }\r\n\r\n    // Web Queries\r\n\r\n    static getWebQuery (clientId: Guid, memberId: number, webQueryId: number, url = '') {\r\n        return Http.get<CorrespondenceWeb2Query>(`${url}${apiVersion}/client/${clientId}/member/${memberId}/web/${webQueryId}`, undefined, { useBasePath: !url });\r\n    }\r\n\r\n    // Emails\r\n\r\n    static getEmail (clientId: Guid, memberId: number, emailReference: string, url = '') {\r\n        return Http.get<CorrespondenceEmail>(`${url}${apiVersion}/client/${clientId}/member/${memberId}/email/${emailReference}`, undefined, { useBasePath: !url });\r\n    }\r\n\r\n    static deleteEmail (clientId: Guid, memberId: number, emailReference: string) {\r\n        return Http.delete(`${apiVersion}/client/${clientId}/member/${memberId}/email/${emailReference}`, null, undefined, {\r\n            showSuccessMessage: true,\r\n            message: 'Email deleted',\r\n        });\r\n    }\r\n\r\n    static getEmailAttachment (clientId: Guid, memberId: number, emailReference: string, attachmentId: string, url = '') {\r\n        return Http.get<EmailAttachment>(`${url}${apiVersion}/client/${clientId}/member/${memberId}/email/${emailReference}/attachment/${attachmentId}`, undefined, { useBasePath: !url });\r\n    }\r\n\r\n    static updateEmail (clientId: Guid, memberId: number, emailReference: string, url = '', data: {description?: string}) {\r\n        return Http.put(`${url}${apiVersion}/client/${clientId}/member/${memberId}/email/${emailReference}`, data, undefined, {\r\n            showSuccessMessage: true,\r\n            message: 'Email updated',\r\n            useBasePath: !url\r\n        });\r\n    }\r\n\r\n    static getEmailHistory (clientId: Guid, memberId: number, emailReference: string, url = '') {\r\n        return Http.getAsArray<EmailHistory>(`${url}${apiVersion}/client/${clientId}/member/${memberId}/email/${emailReference}/history`, undefined, { useBasePath: !url });\r\n    }\r\n\r\n    // Global search\r\n\r\n    static getClientMemberSearch (search: MemberSearchParams) {\r\n        return Http.getAsArray<{ clientId: Guid; member: MemberSummary}>(`${apiVersion}/member/search?${Object.keys(search).filter((key) => search[key]?.toString().length).map((key) => `${key}=${search[key]}`).join('&')}`,\r\n            undefined, { returnHeaders: true }) as Promise<(Array<{ clientId: Guid; member: MemberSummary}> & {headers: { 'x-total-count': number } })>;\r\n    }\r\n\r\n    // Deleted members\r\n    static deleteMember (clientId: Guid, memberId: number, reason: string) {\r\n        return Http.delete(`${apiVersion}/client/${clientId}/member/${memberId}`, reason, undefined, {\r\n            showSuccessMessage: true,\r\n            message: 'Member deleted',\r\n        });\r\n    }\r\n\r\n    static getDeletedMembers (clientId: Guid, pageNumber: number, pageSize: number) {\r\n        return Http.getAsArray(`${apiVersion}/client/${clientId}/member/deleted?pageNumber=${pageNumber}&pageSize=${pageSize}`, DeletedMember, {\r\n            returnHeaders: true,\r\n        }) as Promise<(Array<DeletedMember> & {headers: {'x-total-count': number }})>;\r\n    }\r\n\r\n    static restoreMember (clientId: Guid, memberId: number, reason: string) {\r\n        return Http.post(`${apiVersion}/client/${clientId}/member/${memberId}/restore`, reason, undefined, {\r\n            showSuccessMessage: true,\r\n            message: 'Member restored',\r\n        });\r\n    }\r\n\r\n    // Dependents\r\n    static createDependant (clientId: Guid, memberId: number, data: { dependentType: string; dateOfChange: Date }) {\r\n        return Http.post<MemberSummary>(`${apiVersion}/client/${clientId}/member/${memberId}/dependent`, data, undefined, {\r\n            showSuccessMessage: true,\r\n            message: 'Dependant created',\r\n        });\r\n    }\r\n\r\n    // Member Status\r\n    static getStatusChangeOptions (clientId: Guid, memberId: number, servicePeriodId: number) {\r\n        return Http.getAsArray<MemberStatusOption>(`${apiVersion}/client/${clientId}/member/${memberId}/servicePeriod/${servicePeriodId}/status/available`);\r\n    }\r\n\r\n    static changeMemberStatus (clientId: Guid, memberId: number, servicePeriodId: number, data: unknown) {\r\n        return Http.put(`${apiVersion}/client/${clientId}/member/${memberId}/servicePeriod/${servicePeriodId}/status`, data, undefined, {\r\n            showSuccessMessage: true,\r\n            message: 'Status changed',\r\n        });\r\n    }\r\n\r\n    static createDeathNotification (clientId: Guid, memberId: number, data: unknown) {\r\n        return Http.put<MemberSummary>(`${apiVersion}/client/${clientId}/member/${memberId}/status/death`, data, undefined, {\r\n            showSuccessMessage: true,\r\n            message: 'Status changed',\r\n        });\r\n    }\r\n\r\n    static spouseCheck (clientId: Guid, memberId: number) {\r\n        return Http.get<SpouseCheckResult>(`${apiVersion}/client/${clientId}/member/${memberId}/status/spousecheck`);\r\n    }\r\n\r\n    static hasDependantHistoryCheck (clientId: Guid, memberId: number) {\r\n        return Http.get<HasDependantHistoryCheckResult>(`${apiVersion}/client/${clientId}/member/${memberId}/status/hasDependantHistory`);\r\n    }\r\n\r\n    // Member web\r\n    static getWebRegistrationDetails (clientId: Guid, memberId: number) {\r\n        return Http.get<MemberRegistrationDetails>(`${apiVersion}/client/${clientId}/member/${memberId}/web/detail`);\r\n    }\r\n\r\n    static getWebHistory (clientId: Guid, memberId: number, fromDate: string, toDate: string) {\r\n        return Http.getAsArray<MemberWebHistory>(`${apiVersion}/client/${clientId}/member/${memberId}/web/history?fromDate=${fromDate}&toDate=${toDate}`);\r\n    }\r\n\r\n    static generateWebCode (clientId: Guid, memberId: number) {\r\n        return Http.post(`${apiVersion}/client/${clientId}/member/${memberId}/web/registration/generate`, null, undefined, {\r\n            showSuccessMessage: true,\r\n            message: 'Registration code generated',\r\n        });\r\n    }\r\n\r\n    static unregisterMemberFromWeb (clientId: Guid, memberId: number) {\r\n        return Http.put(`${apiVersion}/client/${clientId}/member/${memberId}/web/unregister`, null, undefined, {\r\n            showSuccessMessage: true,\r\n            message: 'Member unregistered from web',\r\n        });\r\n    }\r\n\r\n    static generateAllEligibleRegistrations (clientId: Guid) {\r\n        return Http.post(`${apiVersion}/client/${clientId}/web/registration/generate`, null, undefined, {\r\n            showSuccessMessage: true,\r\n            message: 'Registration codes for all now being regenerated',\r\n        });\r\n    }\r\n\r\n    static getUnverifiedMemberDataSummary (clientId: Guid, memberId: Guid) {\r\n        return Http.get<UnverifiedMemberDataSummary>(`${apiVersion}/client/${clientId}/member/${memberId}/unverifieddatasummary`, UnverifiedMemberDataSummary);\r\n    }\r\n}\r\n","import Guid from 'common/util/guid';\r\nimport { MemberDataTypeFamily } from './memberDataTypeFamily';\r\n\r\nexport default class Client {\r\n    clientId!: Guid;\r\n\r\n    name!: string;\r\n\r\n    fullName!: string;\r\n\r\n    shortName!: string;\r\n\r\n    code!: string;\r\n\r\n    teamId!: Guid;\r\n\r\n    teamName!: string;\r\n\r\n    workManagementReportFolderUrl?: string;\r\n\r\n    memberDataReportFolderUrl?: string;\r\n\r\n    memberDataTemplateFolderUrl?: string;\r\n\r\n    memberDataToLoadFolderUrl?: string;\r\n\r\n    memberDataExportFolderUrl?: string;\r\n\r\n    teamIsReferral!: boolean;\r\n\r\n    hasMemberWeb?: boolean;\r\n\r\n    workManagement!: boolean;\r\n\r\n    areConfigIdsReadOnly!: boolean;\r\n\r\n    isLive?: boolean;\r\n\r\n    sharepointSiteId?: string;\r\n\r\n    hasClientWeb?: boolean;\r\n\r\n    hasWorkManagement?: boolean;\r\n\r\n    hasFollowUpPane?: boolean;\r\n\r\n    timeRecordingClient?: string;\r\n\r\n    liveTeamId?: string;\r\n\r\n    dataLoadEngineMemberDataTypeFamily!: MemberDataTypeFamily;\r\n\r\n    managementTeamId!: Guid;\r\n\r\n    securityTeamId!: Guid;\r\n\r\n    teamClientEmail?: string;\r\n\r\n    bulkEmailAddress?: string;\r\n}\r\n","import Guid from 'common/util/guid';\r\n\r\nexport default class DocumentCatgeory {\r\n    id!: Guid;\r\n\r\n    name!: string;\r\n\r\n    isEnabled!: boolean;\r\n\r\n    isExternal!: boolean;\r\n\r\n    isAvailableOnline!: boolean;\r\n\r\n    isScanning!: boolean;\r\n\r\n    isEmail!: boolean;\r\n\r\n    isUser!: boolean;\r\n}\r\n","export enum YesNoUnknown {\r\n    Yes = 'Yes',\r\n    No = 'No',\r\n    Unknown = 'Unknown'\r\n}\r\n\r\nexport enum YesNoDontKnow {\r\n    'Yes' = 'Yes',\r\n    'No' = 'No',\r\n    'Don\\'t know' = 'DontKnow'\r\n}\r\n\r\nexport enum ContactPreferences {\r\n    Email = 'Email',\r\n    Post = 'Post'\r\n}\r\n\r\nexport enum RelationshipToDeceased {\r\n    'Widow(er)' = 'Widow',\r\n    'Civil Partner' = 'CivilPartner',\r\n    'Child' = 'Child',\r\n    'Other' = 'Other',\r\n    'Legal Personal Representative' = 'LegalPersonalRepresentative',\r\n    'Solicitors' = 'Solicitors'\r\n}\r\n\r\nexport enum SpouseOrCivilPartnerContactOptions {\r\n    'Yes' = 'UseSpouseOrCivilPartner',\r\n    'No - same as informant' = 'UseInformant',\r\n    'No - same as future correspondence' = 'UseFutureCorrespondence',\r\n    'Unknown' = 'Unknown'\r\n}\r\n\r\nexport enum OverUnderPaymentOptions {\r\n    None = 'None',\r\n    OverpaymentGross = 'OverpaymentGross',\r\n    OverpaymentNone = 'OverpaymentNone',\r\n    OverpaymentPossible = 'OverpaymentPossible',\r\n    Underpayment = 'Underpayment',\r\n    Unknown = 'Unknown'\r\n}","import Guid from 'common/util/guid';\r\nimport ServicePeriod from './servicePeriod';\r\n\r\nexport default class MemberSummary {\r\n    systemMemberId!: Guid;\r\n\r\n    memberId!: number;\r\n\r\n    forenames!: string;\r\n\r\n    surname!: string;\r\n\r\n    email?: string;\r\n\r\n    dateBirth!: Date;\r\n\r\n    postCode!: string;\r\n\r\n    servicePeriods!: Array<ServicePeriod>\r\n}\r\n","import Guid from 'common/util/guid';\r\n\r\nexport default class User {\r\n    userId!: Guid;\r\n\r\n    forenames!: string;\r\n\r\n    surname!: string;\r\n\r\n    lcpCode!: string;\r\n\r\n    department!: string;\r\n\r\n    email!: string;\r\n\r\n    added!: Date;\r\n\r\n    removed!: Date;\r\n}\r\n","import MemberFeedback from './memberFeedback';\r\n\r\nexport default class YearlyQuarterlyFeedback {\r\n    year!: number;\r\n\r\n    feedback!: MemberFeedback;\r\n}\r\n","import * as Msal from '~/msal';\r\n\r\nexport default class AuthenticationService {\r\n    config: Msal.Configuration;\r\n\r\n    scopes: Msal.AuthenticationParameters;\r\n\r\n    msalObj: Msal.UserAgentApplication;\r\n\r\n    constructor (config: Msal.Configuration, scopes: Msal.AuthenticationParameters) {\r\n        this.config = config;\r\n        this.scopes = scopes;\r\n        this.msalObj = new Msal.UserAgentApplication(config);\r\n    }\r\n\r\n    login () {\r\n        return this.msalObj.loginPopup(this.scopes).then((loginResponse) => {\r\n            if (process.env.VUE_APP_ENVIRONMENT !== 'live') {\r\n                console.log('Login Success :', loginResponse);\r\n            }\r\n        }).catch((error) => {\r\n            console.log('Login Error :', error);\r\n        });\r\n    }\r\n\r\n    getToken () {\r\n        return this.msalObj.acquireTokenSilent(this.scopes).then((tokenResponse) => tokenResponse)\r\n            .catch(() => {\r\n                this.msalObj.acquireTokenPopup(this.scopes).then((tokenResponse) => tokenResponse)\r\n                    .catch((er) => {\r\n                        console.log(er);\r\n                    });\r\n            });\r\n    }\r\n\r\n    logout () {\r\n        this.msalObj.logout();\r\n    }\r\n}\r\n","import AuthenticationService from 'common/util/auth/authenticationService';\r\nimport store from '@/store';\r\nimport SiteConfiguration from 'common/models/configuration';\r\nimport ExternalAuthenticationService from 'common/util/auth/externalAuthenticationService';\r\nimport Config from '@/config';\r\nimport { ActionTree, GetterTree, MutationTree } from '~/vuex';\r\nimport * as Msal from '~/msal';\r\nimport { Configuration } from '~/@azure/msal-browser';\r\n\r\nlet authService: AuthenticationService | ExternalAuthenticationService;\r\n\r\ninterface AuthState {\r\n    loggedIn: boolean;\r\n    userInfo: unknown;\r\n    token: string;\r\n}\r\n\r\nexport const state: AuthState = {\r\n    loggedIn: false,\r\n    userInfo: null,\r\n    token: '',\r\n};\r\n\r\nexport const getters: GetterTree<AuthState, unknown> = {\r\n    loggedIn: (s: AuthState) => s.loggedIn,\r\n    token: (s: AuthState) => s.token,\r\n    userInfo: (s: AuthState) => s.userInfo,\r\n};\r\n\r\nexport const actions: ActionTree<AuthState, unknown> = {\r\n    async initialise () {\r\n        if (!authService) {\r\n            const result = await store.dispatch('configuration/getConfiguration') as SiteConfiguration;\r\n            const config: Msal.Configuration = {\r\n                auth: {\r\n                    clientId: result['oauth.client.appid'],\r\n                    authority: result['oauth.authority'],\r\n                    validateAuthority: false,\r\n                    knownAuthorities: [`https://${result['oauth.authority']?.replace('https://', '').split('/')[0]}`],\r\n                    redirectUri: window.location.origin,\r\n                },\r\n                cache: {\r\n                    cacheLocation: 'localStorage',\r\n                },\r\n            };\r\n            const scopes = {\r\n                scopes: [\r\n                    'openid',\r\n                    result['oauth.client.scope'],\r\n                ],\r\n            };\r\n            authService = Config.AuthService ? new Config.AuthService(config as Configuration, scopes) : new AuthenticationService(config, scopes);\r\n        }\r\n        return authService;\r\n    },\r\n    async login ({ dispatch }) {\r\n        if (!authService) await dispatch('initialise');\r\n        console.log(authService);\r\n        return authService.login();\r\n    },\r\n    async logout ({ dispatch }) {\r\n        if (!authService) await dispatch('initialise');\r\n        return authService.logout();\r\n    },\r\n    async getToken ({ commit, dispatch }) {\r\n        if (!authService) await dispatch('initialise');\r\n        const token = await (authService.getToken() as Promise<Msal.AuthResponse>).catch((err) => {\r\n            dispatch('messages/addError', err, { root: true });\r\n        });\r\n        if (token) {\r\n            commit('setLoggedIn', token.accessToken);\r\n            commit('setUser', token.account?.idTokenClaims || token.idTokenClaims);\r\n            return token;\r\n        }\r\n        return null;\r\n    },\r\n\r\n};\r\n\r\nexport const mutations: MutationTree<AuthState> = {\r\n    setLoggedIn (s, token) {\r\n        s.loggedIn = !!token;\r\n    },\r\n    setUser (s, userInfo) {\r\n        s.userInfo = userInfo;\r\n    },\r\n};\r\n\r\nexport default {\r\n    state,\r\n    getters,\r\n    actions,\r\n    mutations,\r\n};\r\n","import { ClassComponent } from '~/@lcp/dynamic-ui-typescript';\r\n\r\nexport default class ManualCalculationDefinition {\r\n    Id!: string;\r\n\r\n    Name!: string;\r\n\r\n    ArgumentsDui!: ClassComponent;\r\n\r\n    ArgumentsDuiValues!: unknown;\r\n\r\n    ResultsDui!: ClassComponent;\r\n\r\n    WarningsDui!: ClassComponent;\r\n\r\n    Arguments?: Record<string, unknown>;\r\n\r\n    Warnings?: Record<string, unknown>;\r\n\r\n    CalculationResults?: Record<string, unknown>;\r\n\r\n    DetailsDui!: ClassComponent;\r\n\r\n    Details!: Record<string, unknown>;\r\n}\r\n","import Guid from 'common/util/guid';\r\nimport MemberCalculation from 'common/models/calculations/memberCalculation';\r\nimport CalculationArguments from 'common/models/calculations/calculationArguments';\r\nimport CalculationResult from 'common/models/calculations/calculationResult';\r\nimport CalculationHistorySummary from 'common/models/calculations/calculationHistorySummary';\r\nimport CalculationHistoryItem from 'common/models/calculations/calculationHistoryItem';\r\nimport ManualCalculationDefinition from 'common/models/calculations/manualCalculationDefinition';\r\nimport Http from './apiHelper';\r\n\r\nconst apiVersion = 'v1.0';\r\n\r\nexport default class CalculationsApi {\r\n    static getCalculationsForMember (clientId: Guid, memberId: number, servicePeriodId: number) {\r\n        return Http.getAsArray<MemberCalculation>(`${apiVersion}/client/${clientId}/member/${memberId}/servicePeriod/${servicePeriodId}/calculationType`);\r\n    }\r\n\r\n    static getCalculationArguments (clientId: Guid, calculationId: string) {\r\n        return Http.get<CalculationArguments>(`${apiVersion}/client/${clientId}/calculation/${calculationId}`);\r\n    }\r\n\r\n    static runCalculation (clientId: Guid, memberId: number, servicePeriodId: number, calculationId: string, data: { arguments: string }) {\r\n        return Http.post<CalculationResult>(`${apiVersion}/client/${clientId}/member/${memberId}/servicePeriod/${servicePeriodId}/calculation/${calculationId}/run`, data);\r\n    }\r\n\r\n    static runCalculationForMemberStatusChange (clientId: Guid, memberId: number, servicePeriodId: number, calculationId: Guid, retirementOption: string) {\r\n        return Http.get<CalculationResult>(`${apiVersion}/client/${clientId}/member/${memberId}/servicePeriod/${servicePeriodId}/calculation/memberStatusChange/${calculationId}/${retirementOption}`);\r\n    }\r\n\r\n    static getManualCalculationsForMember (clientId: Guid, memberId: number, servicePeriodId: number) {\r\n        return Http.getAsArray<ManualCalculationDefinition>(`${apiVersion}/client/${clientId}/member/${memberId}/servicePeriod/${servicePeriodId}/calculation/manualType`);\r\n    }\r\n\r\n    static runManualCalculation (clientId: Guid, memberId: number, servicePeriodId: number, data: unknown) {\r\n        return Http.post<CalculationResult>(`${apiVersion}/client/${clientId}/member/${memberId}/servicePeriod/${servicePeriodId}/calculation`, data, undefined, {\r\n            showSuccessMessage: true,\r\n            successTitle: 'Success',\r\n            message: 'Calculation created',\r\n        });\r\n    }\r\n\r\n    static getCalculationHistory (clientId: Guid, memberId: number) {\r\n        return Http.getAsArray<CalculationHistorySummary>(`${apiVersion}/client/${clientId}/member/${memberId}/calculation`);\r\n    }\r\n\r\n    static getCalculationHistoryItem (clientId: Guid, memberId: number, servicePeriodId: number, calculationId: Guid) {\r\n        return Http.get<CalculationHistoryItem>(`${apiVersion}/client/${clientId}/member/${memberId}/servicePeriod/${servicePeriodId}/calculation/${calculationId}`);\r\n    }\r\n\r\n    static finaliseCalculation (clientId: Guid, memberId: number, servicePeriodId: number, calculationId: Guid) {\r\n        return Http.post(`${apiVersion}/client/${clientId}/member/${memberId}/servicePeriod/${servicePeriodId}/calculation/${calculationId}/finalise`, {}, undefined, {\r\n            showSuccessMessage: true,\r\n            successTitle: 'Success',\r\n            message: 'Calculation finalised',\r\n        });\r\n    }\r\n\r\n    static updateCalculation (clientId: Guid, memberId: number, servicePeriodId: number, calculationId: Guid, data: unknown) {\r\n        return Http.put(`${apiVersion}/client/${clientId}/member/${memberId}/servicePeriod/${servicePeriodId}/calculation/${calculationId}/`, data, undefined, {\r\n            showSuccessMessage: true,\r\n            successTitle: 'Success',\r\n            message: 'Calculation saved',\r\n        });\r\n    }\r\n\r\n    static duplicateCalculation (clientId: Guid, memberId: number, servicePeriodId: number, calculationId: Guid) {\r\n        return Http.get<ManualCalculationDefinition>(`${apiVersion}/client/${clientId}/member/${memberId}/servicePeriod/${servicePeriodId}/calculation/${calculationId}/copy`, ManualCalculationDefinition);\r\n    }\r\n}\r\n","import calculationsApi from 'common/api/calculationsApi';\r\nimport CalculationHistorySummary from 'common/models/calculations/calculationHistorySummary';\r\nimport { ActionTree, GetterTree, MutationTree } from '~/vuex';\r\n\r\ninterface CalculationsState {\r\n    calculations: Array<CalculationHistorySummary>;\r\n    calculationsDate: Date;\r\n}\r\n\r\nexport const state: CalculationsState = {\r\n    calculations: [],\r\n    calculationsDate: new Date(),\r\n};\r\n\r\nexport const getters: GetterTree<CalculationsState, unknown> = {\r\n    calculations: (s) => s.calculations,\r\n    calculationsDate: (s) => s.calculationsDate,\r\n};\r\n\r\nexport const actions: ActionTree<CalculationsState, unknown> = {\r\n    getMemberCalculations ({ commit }, { clientId, memberId }) {\r\n        return calculationsApi.getCalculationHistory(clientId, memberId).then((calculations) => {\r\n            commit('setCalculations', calculations);\r\n            return calculations;\r\n        });\r\n    },\r\n    clearCalculations ({ commit }) {\r\n        commit('clearCalculations');\r\n    },\r\n};\r\n\r\nexport const mutations: MutationTree<CalculationsState> = {\r\n    setCalculations (s, calculations) {\r\n        s.calculations = calculations;\r\n        s.calculationsDate = new Date();\r\n    },\r\n    clearCalculations (s) {\r\n        s.calculations = [];\r\n        s.calculationsDate = new Date();\r\n    },\r\n};\r\n\r\nexport default {\r\n    state,\r\n    getters,\r\n    actions,\r\n    mutations,\r\n};\r\n","import Guid from 'common/util/guid';\r\n\r\nexport default class TeamSummary {\r\n    teamId!: Guid;\r\n\r\n    name!: string\r\n\r\n    isReferral!: boolean;\r\n\r\n    isIndexing!: boolean;\r\n\r\n    microsoftTeamName?: string;\r\n\r\n    type!: Number;\r\n}\r\n","import Http from 'common/api/apiHelper';\r\nimport Client from 'common/models/client';\r\nimport TeamSummary from 'common/models/teamSummary';\r\nimport TeamType from 'common/models/teamType';\r\nimport Guid from 'common/util/guid';\r\n\r\nconst apiVersion = 'v1.0';\r\n\r\nexport default class TeamsApi {\r\n    static addNewTeam (data: { name: string; microsoftTeamName?: string; teamType: TeamType; isReferral: boolean }) {\r\n        return Http.post(`${apiVersion}/team`, data, undefined, { showSuccessMessage: true, message: 'Team has been added' });\r\n    }\r\n\r\n    static getOtherUsers () {\r\n        return Http.get(`${apiVersion}/team/allOtherUsers`);\r\n    }\r\n\r\n    static getTeams (pulseApiUrl = '') {\r\n        return Http.getAsArray(`${pulseApiUrl}${apiVersion}/team`, TeamSummary, { useBasePath: !pulseApiUrl });\r\n    }\r\n\r\n    static getTeamAssignment () {\r\n        return Http.get(`${apiVersion}/user/team/assignment`);\r\n    }\r\n\r\n    static getAssignment () {\r\n        return Http.get(`${apiVersion}/user/team/assignment`);\r\n    }\r\n\r\n    static getClientAssignment () {\r\n        return Http.get(`${apiVersion}/user/client/assignment`);\r\n    }\r\n\r\n    static getReferralTeams () {\r\n        return Http.getAsArray(`${apiVersion}/team?type=Referral`, TeamSummary);\r\n    }\r\n\r\n    static getReferralTeamWorkstreams (teamId: Guid) {\r\n        return Http.get(`${apiVersion}/team/${teamId}/workstream`);\r\n    }\r\n\r\n    static getReferralWorkstreamDefinitions (teamId: Guid, workstreamId: Guid, scope: string) {\r\n        return Http.get(`${apiVersion}/team/${teamId}/workstream/${workstreamId}/jobdefinition?scope=${scope || 'All'}`);\r\n    }\r\n\r\n    static getTeamUsers (teamId: Guid) {\r\n        return Http.getAsArray<{ userId: Guid; fromSync: boolean }>(`${apiVersion}/team/${teamId}/user`);\r\n    }\r\n\r\n    static getClients (teamId: Guid) {\r\n        return Http.getAsArray(`${apiVersion}/team/${teamId}/client`, Client);\r\n    }\r\n\r\n    static updateTeam (teamId: Guid, data: { name: string; microsoftTeamName?: string }) {\r\n        return Http.put(`${apiVersion}/team/${teamId}`, data, undefined, { showSuccessMessage: true, message: 'Team has been updated' });\r\n    }\r\n}\r\n","import clientsApi from 'common/api/clientsApi';\r\nimport teamsApi from 'common/api/teamsApi';\r\nimport Client from 'common/models/client';\r\nimport TeamSummary from 'common/models/teamSummary';\r\nimport User from 'common/models/user';\r\nimport Vue from '~/vue';\r\nimport { ActionTree, GetterTree, MutationTree } from '~/vuex';\r\n\r\ninterface ClientState {\r\n    clients: Array<Client>;\r\n    teams: Array<TeamSummary>;\r\n    userClients: Array<Client>;\r\n    referralTeams: null | Array<Client>;\r\n    clientMap: {[clientName: string]: Client };\r\n    teamMap: {[teamName: string]: TeamSummary };\r\n    teamUsers: {[clientName: string]: Array<User> };\r\n    currentClient: Client | null;\r\n}\r\n\r\nexport const state: ClientState = {\r\n    clients: [],\r\n    clientMap: {},\r\n    teamMap: {},\r\n    teamUsers: {},\r\n    referralTeams: [],\r\n    teams: [],\r\n    currentClient: null,\r\n    userClients: [],\r\n};\r\n\r\nexport const getters: GetterTree<ClientState, unknown> = {\r\n    referralTeams: (s) => s.referralTeams,\r\n    clients: (s) => s.clients,\r\n    teams: (s) => s.teams,\r\n    currentClient: (s) => s.currentClient,\r\n    userClients: (s) => s.userClients,\r\n    client: (s) => (clientName: string) => s.clientMap[clientName],\r\n    team: (s) => (teamName: string) => s.teamMap[teamName],\r\n    teamUsers: (s) => (clientName: string) => s.teamUsers[clientName] || [],\r\n};\r\n\r\nexport const actions: ActionTree<ClientState, unknown> = {\r\n    loadTeamUsers ({ commit }, { teamId, teamName }) {\r\n        clientsApi.getTeamUsers(teamId).then((result) => {\r\n            commit('setTeamUsers', { client: teamName, users: result });\r\n        });\r\n    },\r\n    getReferralTeams ({ commit }) {\r\n        teamsApi.getReferralTeams().then(async (result) => {\r\n            commit('setReferralTeams', result);\r\n        });\r\n    },\r\n    getTeams ({ commit }, pulseApiUrl: string) {\r\n        return teamsApi.getTeams(pulseApiUrl)\r\n            .then((teams) => {\r\n                commit('setTeams', teams);\r\n                teams.forEach((t) => {\r\n                    commit('setTeam', t);\r\n                });\r\n                return teams;\r\n            });\r\n    },\r\n    getUserClients ({ commit }, pulseApiUrl: string) {\r\n        return clientsApi.getUserClients(pulseApiUrl)\r\n            .then((clients) => {\r\n                commit('setUserClients', clients);\r\n                clients.forEach((c) => {\r\n                    commit('setclient', c);\r\n                });\r\n                return clients;\r\n            });\r\n    },\r\n    getClients ({ commit }) {\r\n        return clientsApi.getClients()\r\n            .then((clients) => {\r\n                commit('setclients', clients);\r\n                clients.forEach((c) => {\r\n                    commit('setclient', c);\r\n                });\r\n                return clients;\r\n            });\r\n    },\r\n    setclient ({ commit }, client) {\r\n        commit('setclient', client, client.name);\r\n    },\r\n    setTeam ({ commit }, team) {\r\n        commit('setTeam', team, team.name);\r\n    },\r\n    setCurrentClient ({ commit }, client: Client) {\r\n        commit('setCurrentClient', { ...client });\r\n    },\r\n    setClientFromName ({ commit }, clientName: string) {\r\n        const client = state.clients.find((c) => c.code === clientName || c.name === clientName);\r\n        commit('setCurrentClient', { ...client });\r\n    },\r\n};\r\n\r\nexport const mutations: MutationTree<ClientState> = {\r\n    setclient (s, client) {\r\n        Vue.set(s.clientMap, client.name, client);\r\n    },\r\n    setReferralTeams (s, teams) {\r\n        s.referralTeams = teams;\r\n    },\r\n    setUserClients (s, userClients) {\r\n        s.userClients = userClients;\r\n    },\r\n    setclients (s, clients) {\r\n        s.clients = clients;\r\n    },\r\n    setTeams (s, teams) {\r\n        s.teams = teams;\r\n    },\r\n    setTeamUsers (s, teamUsers) {\r\n        Vue.set(s.teamUsers, teamUsers.client, teamUsers.users);\r\n    },\r\n    setTeam (s, team) {\r\n        Vue.set(s.teamMap, team.name, team);\r\n    },\r\n    setCurrentClient (s, client) {\r\n        s.currentClient = client;\r\n    },\r\n\r\n};\r\n\r\nexport default {\r\n    state,\r\n    getters,\r\n    actions,\r\n    mutations,\r\n};\r\n","export default class SystemList {\r\n    list!: {\r\n        typeName: string;\r\n    }\r\n}\r\n","import Http from 'common/api/apiHelper';\r\nimport SystemList from '../models/systemList';\r\n\r\nconst apiVersion = 'v1.0';\r\nexport default class SystemListApi {\r\n    static getList (listName: string, pulseApiUrl = '') {\r\n        return Http.get<SystemList>(`${pulseApiUrl}${apiVersion}/List/${listName}`, SystemList, {\r\n            useBasePath: !pulseApiUrl,\r\n        });\r\n    }\r\n}\r\n","import SystemList from 'common/models/systemList';\r\nimport SystemListApi from 'common/api/systemListApi';\r\nimport { ActionTree, GetterTree, MutationTree } from '~/vuex';\r\n\r\ninterface CommonState {\r\n    isChristmas: boolean;\r\n    titles: SystemList | null;\r\n    countries: SystemList | null;\r\n}\r\n\r\nexport const state: CommonState = {\r\n    isChristmas: new Date().getMonth() === 11 && new Date().getDate() >= 12 && new Date().getDate() < 2,\r\n    titles: null,\r\n    countries: null,\r\n};\r\n\r\nexport const getters: GetterTree<CommonState, unknown> = {\r\n    getTitles: (s) => s.titles,\r\n    getCountries: (s) => s.countries,\r\n};\r\n\r\nexport const mutations: MutationTree<CommonState> = {\r\n    setTitles (s, titles: SystemList) {\r\n        s.titles = titles;\r\n    },\r\n    setCountries (s, countries: SystemList) {\r\n        s.countries = countries;\r\n    },\r\n};\r\n\r\nexport const actions: ActionTree<CommonState, unknown> = {\r\n    async loadTitles ({ commit }, pulseApiUrl: string) {\r\n        return SystemListApi.getList('Titles', pulseApiUrl)\r\n            .then((result) => {\r\n                const titles = Object.values<string>(result.list);\r\n                commit('setTitles', titles);\r\n                return titles;\r\n            });\r\n    },\r\n    async loadCountries ({ commit }, pulseApiUrl: string) {\r\n        return SystemListApi.getList('Countries', pulseApiUrl)\r\n            .then((result) => {\r\n                const formattedCountries = Object.values<string>(result.list).map((country) => ({ name: country, value: country, disabled: country.startsWith('-----------') }));\r\n                commit('setCountries', formattedCountries);\r\n                return formattedCountries;\r\n            });\r\n    },\r\n};\r\n\r\nexport default {\r\n    state,\r\n    getters,\r\n    actions,\r\n    mutations,\r\n};\r\n","export default class SiteConfiguration {\r\n    'oauth.client.appid': string;\r\n\r\n    'oauth.authority': string;\r\n\r\n    'oauth.client.scope': string;\r\n\r\n    'appinsights.key': string;\r\n\r\n    'environment.name': string;\r\n\r\n    'environment.code': string;\r\n\r\n    'memberdata.url': string;\r\n\r\n    'oauth.tenentid': string;\r\n\r\n    'pulseadmin.url': string;\r\n\r\n    'user.blob.url': string;\r\n\r\n    'workmanagement.url': string;\r\n}\r\n","export default class ClientWebConfiguration {\r\n    'clientweb.oauth.scope': string;\r\n\r\n    'clientweb.oauth.authority': string;\r\n\r\n    'clientweb.oauth.tenentid': string;\r\n\r\n    'clientweb.oauth.appid': string;\r\n\r\n    'clientweb.user.blob.url': string;\r\n\r\n    'clientweb.memberactivity.webregistrationbysummary.enabled': boolean;\r\n\r\n    'clientweb.memberactivity.webregistrationbytime.enabled': boolean;\r\n\r\n    'clientweb.memberactivity.webregistrationbylocation.enabled': boolean;\r\n\r\n    'clientweb.memberactivity.webregistrationbystatus.enabled': boolean;\r\n\r\n    'clientweb.memberactivity.webregistrationbyage.enabled': boolean;\r\n\r\n    'clientweb.memberactivity.memberlogin.enabled': boolean;\r\n\r\n    'clientweb.memberactivity.memberloginbyage.enabled': boolean;\r\n\r\n    'clientweb.memberactivity.memberloginbystatus.enabled': boolean;\r\n\r\n    'clientweb.memberactivity.pagevisits.enabled': boolean;\r\n\r\n    'clientweb.memberactivity.pagevisitsbytime.enabled': boolean;\r\n\r\n    'clientweb.memberactivity.modellervisitsbyage.enabled': boolean;\r\n\r\n    'clientweb.memberactivity.modellervisitsbytime.enabled': boolean;\r\n\r\n    'clientweb.memberactivity.modellertimesbyage.enabled': boolean;\r\n\r\n    'clientweb.memberactivity.modellertimesbytime.enabled': boolean;\r\n\r\n    'clientweb.memberactivity.modellerinteractionsbyage.enabled': boolean;\r\n\r\n    'clientweb.memberactivity.modellerinteractionsbypage.enabled': boolean;\r\n\r\n    'clientweb.memberactivity.dateupdatesbyage.enabled': boolean;\r\n\r\n    'clientweb.memberactivity.dateupdatesbyagebytime.enabled': boolean;\r\n\r\n    'clientweb.memberactivity.dateupdatesbydatatype.enabled': boolean;\r\n\r\n    'clientweb.memberactivity.dateupdatesbystatus.enabled': boolean;\r\n\r\n    'clientweb.memberactivity.dateupdatesbystatusbytime.enabled': boolean;\r\n\r\n    'clientweb.memberactivity.membercorrespondence.enabled': boolean;\r\n\r\n    'clientweb.memberactivity.payslipsviewsbystatus.enabled': boolean;\r\n\r\n    'clientweb.memberactivity.payslipsviewsbytime.enabled': boolean;\r\n\r\n    'clientweb.memberactivity.correspondenceviewsbystatus.enabled': boolean;\r\n\r\n    'clientweb.memberactivity.correspondenceviewsbytime.enabled': boolean;\r\n\r\n    'clientweb.memberactivity.documentviewsbystatus.enabled': boolean;\r\n\r\n    'clientweb.memberactivity.documentviewsbytime.enabled': boolean;\r\n\r\n    'clientweb.memberactivity.webformviewsbystatus.enabled': boolean;\r\n\r\n    'clientweb.memberactivity.webformviewsbytime.enabled': boolean;\r\n\r\n    isClientWeb = true;\r\n}\r\n","export default class ClientConfigurationSummary {\r\n    name!: string;\r\n\r\n    description!: string;\r\n}\r\n","export default class ClientConfigurationDetails {\r\n    dataType!: string\r\n\r\n    dynamicUiDefinition!: string;\r\n\r\n    value!: string;\r\n\r\n    exists = true;\r\n}\r\n","export default class ClientConfigurationSummaryResponse {\r\n    success = false;\r\n\r\n    data!: string;\r\n\r\n    duiValidationResults!: string;\r\n}\r\n","import SiteConfiguration from 'common/models/configuration';\r\nimport ClientWebConfiguration from 'common/models/clientWebConfiguration';\r\nimport ClientConfigurationSummary from 'common/models/clientConfigurationSummary';\r\nimport Guid from 'common/util/guid';\r\nimport ClientConfigurationDetails from 'common/models/clientConfigurationDetails';\r\nimport ClientConfigurationSummaryResponse from 'common/models/ClientConfigurationSummaryResponse';\r\nimport Http from './apiHelper';\r\n\r\nconst apiVersion = 'v1.0';\r\n\r\nexport default {\r\n    getConfiguration () {\r\n        return Http.get<SiteConfiguration>(`${apiVersion}/configuration`, undefined, { useToken: false, errorMessage: 'Failed to retrieve configuration' });\r\n    },\r\n    getClientWebConfiguration () {\r\n        return Http.get<ClientWebConfiguration>(`${apiVersion}/configuration`, undefined, { useToken: false, errorMessage: 'Failed to retrieve configuration' });\r\n    },\r\n    getHolidays () {\r\n        return Http.getAsArray<Date>(`${apiVersion}/holidays`, Date);\r\n    },\r\n    getClientConfiguration (clientId: Guid) {\r\n        return Http.getAsArray(`${apiVersion}/client/${clientId}/configuration`, ClientConfigurationSummary, { errorMessage: 'Failed to retrieve configuration' });\r\n    },\r\n    getClientConfigurationDataType (clientId: Guid, dataType: string) {\r\n        return Http.get(`${apiVersion}/client/${clientId}/configuration/${dataType}`, ClientConfigurationDetails, { errorMessage: 'Failed to retrieve configuration type' });\r\n    },\r\n    setClientConfigurationDataType (clientId: Guid, dataType: string, data: string) {\r\n        return Http.put(`${apiVersion}/client/${clientId}/configuration/${dataType}`, { data: JSON.stringify(data) }, ClientConfigurationSummaryResponse,\r\n            {\r\n                errorMessage: 'Failed to retrieve configuration type',\r\n                showSuccessMessage: true,\r\n                message: 'Configuration Updated',\r\n            });\r\n    },\r\n    getSystemConfiguration () {\r\n        return Http.getAsArray(`${apiVersion}/systemConfiguration`, ClientConfigurationSummary, { errorMessage: 'Failed to retrieve configuration' });\r\n    },\r\n    getSystemConfigurationDataType (dataType: string) {\r\n        return Http.get(`${apiVersion}/systemConfiguration/${dataType}`, ClientConfigurationDetails, { errorMessage: 'Failed to retrieve configuration type' });\r\n    },\r\n    setSystemConfigurationDataType (dataType: string, data: string) {\r\n        return Http.put(`${apiVersion}/systemConfiguration/${dataType}`, { data: JSON.stringify(data) }, ClientConfigurationSummaryResponse,\r\n            {\r\n                errorMessage: 'Failed to retrieve configuration type',\r\n                showSuccessMessage: true,\r\n                message: 'Configuration Updated',\r\n            });\r\n    },\r\n};\r\n","import SiteConfiguration from 'common/models/configuration';\r\nimport ClientWebConfiguration from 'common/models/clientWebConfiguration';\r\nimport ConfigurationApi from 'common/api/configurationApi';\r\nimport Config from '@/config';\r\nimport { ActionTree, GetterTree, MutationTree } from '~/vuex';\r\n\r\ninterface ConfigurationState {\r\n    site: SiteConfiguration;\r\n    clientWebSite: ClientWebConfiguration;\r\n}\r\n\r\nexport const state: ConfigurationState = {\r\n    site: new SiteConfiguration(),\r\n    clientWebSite: new ClientWebConfiguration(),\r\n};\r\n\r\nexport const getters: GetterTree<ConfigurationState, unknown> = {\r\n    site: (s) => s.site,\r\n    clientWebSite: (c) => c.clientWebSite,\r\n};\r\n\r\nexport const actions: ActionTree<ConfigurationState, unknown> = {\r\n    async getConfiguration ({ commit }) {\r\n        if (Config.siteAuth === 'clientWeb') {\r\n            const result = await ConfigurationApi.getClientWebConfiguration();\r\n            commit('setClientWebConfiguration', result);\r\n            const config = new SiteConfiguration();\r\n            config['oauth.client.appid'] = result['clientweb.oauth.appid'];\r\n            config['oauth.authority'] = result['clientweb.oauth.authority'];\r\n            config['oauth.tenentid'] = result['clientweb.oauth.tenentid'];\r\n            config['oauth.client.scope'] = result['clientweb.oauth.scope'];\r\n            config['user.blob.url'] = result['clientweb.user.blob.url'];\r\n            commit('setConfiguration', config);\r\n            return config;\r\n        }\r\n        const result = await ConfigurationApi.getConfiguration();\r\n        commit('setConfiguration', result);\r\n        return result;\r\n    },\r\n\r\n};\r\n\r\nexport const mutations: MutationTree<ConfigurationState> = {\r\n    setConfiguration (s, val: SiteConfiguration) {\r\n        s.site = val;\r\n    },\r\n    setClientWebConfiguration (s, val: ClientWebConfiguration) {\r\n        s.clientWebSite = val;\r\n    },\r\n};\r\n\r\nexport default {\r\n    state,\r\n    getters,\r\n    actions,\r\n    mutations,\r\n};\r\n","import memberApi from 'common/api/member';\r\nimport CorrespondenceSummary from 'common/models/correspondence/correspondenceSummary';\r\nimport { ActionTree, GetterTree, MutationTree } from '~/vuex';\r\n\r\ninterface CorrespondenceState {\r\n    correspondence: Array<CorrespondenceSummary>;\r\n    correspondenceDate: Date;\r\n}\r\n\r\nexport const state: CorrespondenceState = {\r\n    correspondence: [],\r\n    correspondenceDate: new Date(),\r\n};\r\n\r\nexport const getters: GetterTree<CorrespondenceState, unknown> = {\r\n    correspondence: (s) => s.correspondence,\r\n    correspondenceDate: (s) => s.correspondenceDate,\r\n};\r\n\r\nexport const actions: ActionTree<CorrespondenceState, unknown> = {\r\n    getMemberCorrespondence ({ commit }, { clientId, memberId }) {\r\n        return memberApi.getCorrespondence(clientId, memberId).then((correspondence) => {\r\n            commit('setCorrespondence', correspondence);\r\n            return correspondence;\r\n        });\r\n    },\r\n    clearCorrespondence ({ commit }) {\r\n        commit('clearCorrespondence');\r\n    },\r\n};\r\n\r\nexport const mutations: MutationTree<CorrespondenceState> = {\r\n    setCorrespondence (s, correspondence) {\r\n        s.correspondence = correspondence;\r\n        s.correspondenceDate = new Date();\r\n    },\r\n    clearCorrespondence (s) {\r\n        s.correspondence = [];\r\n        s.correspondenceDate = new Date();\r\n    },\r\n};\r\n\r\nexport default {\r\n    state,\r\n    getters,\r\n    actions,\r\n    mutations,\r\n};\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n// Register each file as a corresponding Vuex module. Module nesting\r\n// will mirror [sub-]directory hierarchy and modules are namespaced\r\n// as the camelCase equivalent of their file name.\r\nimport camelCase from 'common/util/camelCase';\r\n\r\ninterface SubTree {\r\n    modules: { [namespace: string]: any };\r\n}\r\n\r\n// https://webpack.js.org/guides/dependency-management/#require-context\r\n// eslint-disable-next-line @typescript-eslint/ban-ts-ignore\r\n// @ts-ignore//\r\nconst requireModule = require.context(\r\n    // Search for files in the current directory\r\n    '.',\r\n    // Search for files in subdirectories\r\n    true,\r\n    // Include any .js files that are not unit tests\r\n    /^((?!\\.unit\\.).)*\\.ts$/,\r\n);\r\nconst root = { modules: {} };\r\n\r\nfunction getNamespace (subtree: SubTree, path: Array<string>): SubTree {\r\n    if (path.length === 1) return subtree;\r\n\r\n    const namespace = path.shift() as string;\r\n    subtree.modules[namespace] = { modules: {}, ...subtree.modules[namespace] };\r\n    return getNamespace(subtree.modules[namespace], path);\r\n}\r\n\r\nrequireModule.keys().forEach((fileName: string) => {\r\n    // Skip this file, as it's not a module\r\n    if (fileName === './index.ts') return;\r\n    // Get the module path as an array\r\n    const modulePath = fileName\r\n    // Remove the \"./\" from the beginning\r\n        .replace(/^\\.\\//, '')\r\n    // Remove the file extension from the end\r\n        .replace(/\\.\\w+$/, '')\r\n    // Split nested modules into an array path\r\n        .split(/\\//)\r\n    // camelCase all module namespaces and names\r\n        .map(camelCase);\r\n\r\n    // Get the modules object for the current path\r\n    const { modules } = getNamespace(root, modulePath);\r\n\r\n    // Add the module to our modules object\r\n    modules[modulePath.pop() as string] = {\r\n    // Modules are namespaced by default\r\n        namespaced: true,\r\n        ...requireModule(fileName),\r\n    };\r\n\r\n    // Recursively get the namespace of the module, even if nested\r\n});\r\nexport default root.modules;\r\n","import jobApi from 'common/api/jobApi';\r\nimport JobSummary from 'common/models/jobSummary';\r\nimport { ActionTree, GetterTree, MutationTree } from '~/vuex';\r\n\r\ninterface JobState {\r\n    jobs: Array<JobSummary>;\r\n    clientJobs: Array<JobSummary>;\r\n    jobsDate: Date;\r\n}\r\n\r\nexport const state: JobState = {\r\n    jobs: [],\r\n    clientJobs: [],\r\n    jobsDate: new Date(),\r\n};\r\n\r\nexport const getters: GetterTree<JobState, unknown> = {\r\n    jobs: (s) => s.jobs,\r\n    clientJobs: (s) => s.clientJobs,\r\n    jobsDate: (s) => s.jobsDate,\r\n};\r\n\r\nexport const actions: ActionTree<JobState, unknown> = {\r\n    getPulseMemberJobs ({ commit }, { clientId, memberId, jobUrl, filter, commitJob = true }) {\r\n        return jobApi.getJobsByMemberId(clientId, memberId, filter || 'All', jobUrl).then((jobs: Array<JobSummary>) => {\r\n            if (commitJob) {\r\n                commit('setJobs', { jobs });\r\n            }\r\n            return jobs;\r\n        });\r\n    },\r\n    getPulseClientJobs ({ commit }, { clientId, jobUrl, filter, commitJob = true }) {\r\n        return jobApi.getJobs(clientId, filter || 'All', 'All', jobUrl, 'Client').then((jobs: Array<JobSummary>) => {\r\n            if (commitJob) {\r\n                commit('setClientJobs', { jobs });\r\n            }\r\n            return jobs;\r\n        });\r\n    },\r\n    getJob (context, { jobId, pulseApiUrl }) {\r\n        return jobApi.getJob(jobId, pulseApiUrl);\r\n    }\r\n};\r\n\r\nexport const mutations: MutationTree<JobState> = {\r\n    setJobs (s, jobs) {\r\n        s.jobs = jobs;\r\n        s.jobsDate = new Date();\r\n    },\r\n    setClientJobs (s, clientJobs) {\r\n        s.clientJobs = clientJobs;\r\n        s.jobsDate = new Date();\r\n    },\r\n};\r\n","import Message from 'common/models/message';\r\nimport Guid from 'common/util/guid';\r\nimport { ActionTree, GetterTree, MutationTree } from '~/vuex';\r\n\r\ninterface MessageState {\r\n    messages: Array<Message>;\r\n}\r\n\r\nexport const state: MessageState = {\r\n    messages: [],\r\n};\r\n\r\nexport const getters: GetterTree<MessageState, unknown> = {\r\n    messages: (s) => s.messages,\r\n};\r\n\r\nexport const actions: ActionTree<MessageState, unknown> = {\r\n    addError ({ commit }, error: Message) {\r\n        console.log(error);\r\n        error.id = Guid.newGuid().toString();\r\n        error.isError = true;\r\n        if (error.data?.errors?.length) {\r\n            error.data.errors.forEach((err) => {\r\n                commit('addMessage', { ...error, data: err.message });\r\n            });\r\n            return;\r\n        }\r\n        if (error.data?.Errors?.length) {\r\n            error.data.Errors.forEach((err) => {\r\n                commit('addMessage', { ...error, data: err.Message });\r\n            });\r\n            return;\r\n        }\r\n        commit('addMessage', error);\r\n    },\r\n    addMessage ({ commit }, message: Message) {\r\n        message.id = Guid.newGuid().toString();\r\n        commit('addMessage', message);\r\n        if (!message.popup) {\r\n            window.setTimeout(() => {\r\n                commit('dismissMessage', message.id);\r\n            }, 7000);\r\n        }\r\n    },\r\n    dismissMessage ({ commit }, messageId) {\r\n        commit('dismissMessage', messageId);\r\n    },\r\n    dismissAllMessages({commit}) {\r\n        commit('dismissAllMessages');\r\n    }\r\n};\r\n\r\nexport const mutations: MutationTree<MessageState> = {\r\n    addMessage (s, message) {\r\n        s.messages.push(message);\r\n    },\r\n    dismissMessage (s, messageId) {\r\n        for (let i = 0; i < s.messages.length; i += 1) {\r\n            if (s.messages[i].id === messageId) {\r\n                s.messages.splice(i, 1);\r\n                return;\r\n            }\r\n        }\r\n    },\r\n    dismissAllMessages (s) {\r\n        s.messages = [];\r\n    }\r\n};\r\n\r\nexport default {\r\n    state,\r\n    getters,\r\n    actions,\r\n    mutations,\r\n};\r\n","import Guid from 'common/util/guid';\r\n\r\nexport default class UserRole {\r\n    roleId!: Guid;\r\n\r\n    roleName!: string;\r\n\r\n    userId!: Guid;\r\n\r\n    isGlobal!: boolean;\r\n\r\n    isDefault!: boolean;\r\n\r\n    teamId?: Guid;\r\n\r\n    teamName?: string;\r\n}\r\n","import Client from './client';\r\nimport PermissionGroup from './permissions/permissionGroup';\r\n\r\nexport default class UserDetails {\r\n    clients!: Client[];\r\n\r\n    permissionGroups!: Array<PermissionGroup>;\r\n}\r\n","import Guid from 'common/util/guid';\r\n\r\nexport default class UserTeamAssignment {\r\n    fromSync!: boolean;\r\n\r\n    userId!: Guid;\r\n\r\n    teamId!: Guid;\r\n\r\n    teamName!: string;\r\n}\r\n","import UserRole from 'common/models/permissions/userRole';\r\nimport User from 'common/models/user';\r\nimport UserDetails from 'common/models/userDetails';\r\nimport UserTeamAssignment from 'common/models/userTeamAssignment';\r\nimport Guid from 'common/util/guid';\r\nimport Http from './apiHelper';\r\n\r\nconst apiVersion = 'v1.0';\r\n\r\nexport default class UsersApi {\r\n    static getUsers (pulseApiUrl = '') {\r\n        return Http.getAsArray<User>(`${pulseApiUrl}${apiVersion}/user`, User, { useBasePath: !pulseApiUrl });\r\n    }\r\n\r\n    static addFavourite (id: Guid, pulseApiUrl = '') {\r\n        return Http.post(`${pulseApiUrl}${apiVersion}/user/favourite`, { clientId: id }, undefined, { useBasePath: !pulseApiUrl });\r\n    }\r\n\r\n    static removeFavourite (id: Guid, pulseApiUrl = '') {\r\n        return Http.put(`${pulseApiUrl}${apiVersion}/user/favourite/remove`, { clientId: id }, undefined, { useBasePath: !pulseApiUrl });\r\n    }\r\n\r\n    static getFavourites (pulseApiUrl = '') {\r\n        return Http.get<{ ids?: Array<Guid> }>(`${pulseApiUrl}${apiVersion}/user/favourite`, undefined, { useBasePath: !pulseApiUrl });\r\n    }\r\n\r\n    static getUserTeams (userId: Guid) {\r\n        return Http.getAsArray<UserTeamAssignment>(`${apiVersion}/user/${userId}/team`, UserTeamAssignment);\r\n    }\r\n\r\n    static getUserRoles (userId: Guid) {\r\n        return Http.getAsArray<UserRole>(`${apiVersion}/user/${userId}/role`, UserRole);\r\n    }\r\n\r\n    static getUserDetails (url?: string) {\r\n        return Http.get<UserDetails>(`${url ?? ''}${apiVersion}/user/detail`, UserDetails, {\r\n            useBasePath: !url,\r\n        });\r\n    }\r\n}\r\n","import UsersApi from 'common/api/usersApi';\r\nimport Client from 'common/models/client';\r\nimport PermissionGroup from 'common/models/permissions/permissionGroup';\r\nimport User from 'common/models/user';\r\nimport UserDetails from 'common/models/userDetails';\r\nimport Guid from 'common/util/guid';\r\nimport { ActionTree, GetterTree, MutationTree } from '~/vuex';\r\n\r\ninterface UsersState {\r\n    allUsers: Array<User>;\r\n    allUsersByUserId: { [userId: string ]: User };\r\n    gettingUsers: boolean;\r\n    userDetails: { clients: Array<Client>; permissionGroups: Array<PermissionGroup>};\r\n}\r\n\r\nexport const state: UsersState = {\r\n    allUsers: [],\r\n    allUsersByUserId: {},\r\n    gettingUsers: false,\r\n    userDetails: { clients: [], permissionGroups: [] },\r\n};\r\n\r\nexport const getters: GetterTree<UsersState, unknown> = {\r\n    allUsers: (s) => s.allUsers,\r\n    allUsersByUserId: (s) => s.allUsersByUserId,\r\n    userPermissions: (s) => s.userDetails.permissionGroups,\r\n    userClients: (s) => s.userDetails.clients,\r\n    hasPermission: (s) => (permissionName: string, clientId?: Guid) => {\r\n        const globalPermission = s.userDetails.permissionGroups?.find((p) => p.permissionName === permissionName && p.clientId == null);\r\n\r\n        if (clientId == null) {\r\n            return !!globalPermission;\r\n        }\r\n\r\n        const clientSpecificPermisison = s.userDetails.permissionGroups?.find((p) => p.permissionName === permissionName && p.clientId === clientId);\r\n\r\n        return !!((globalPermission || clientSpecificPermisison));\r\n    },\r\n};\r\n\r\nexport const actions: ActionTree<UsersState, unknown> = {\r\n    async getAllUsers ({ commit }, pulseUrl: string) {\r\n        if (state.gettingUsers) return [];\r\n        commit('setGettingUsers', true);\r\n        const users = await UsersApi.getUsers(pulseUrl);\r\n        commit('setAllUsers', users);\r\n        return users;\r\n    },\r\n    getUserDetails ({ commit }, pulseApiUrl: string) {\r\n        return UsersApi.getUserDetails(pulseApiUrl)\r\n            .then((details) => {\r\n                commit('client/setUserClients', details.clients, { root: true });\r\n                details.clients.forEach((c) => {\r\n                    commit('client/setclient', c, { root: true });\r\n                });\r\n                commit('setUserDetails', details);\r\n                return details;\r\n            });\r\n    },\r\n};\r\n\r\nexport const mutations: MutationTree<UsersState> = {\r\n    setGettingUsers (s, val) {\r\n        s.gettingUsers = val;\r\n    },\r\n    setAllUsers (s, users: Array<User>) {\r\n        s.allUsers = users;\r\n        const u: { [userId: string]: User } = {};\r\n        users.forEach((user) => {\r\n            u[user.userId.toString()] = user;\r\n        });\r\n        s.allUsersByUserId = u;\r\n    },\r\n    setUserDetails (s, details: UserDetails) {\r\n        s.userDetails = details;\r\n    },\r\n};\r\n\r\nexport default {\r\n    state,\r\n    getters,\r\n    actions,\r\n    mutations,\r\n};\r\n","import memberApi from 'common/api/member';\r\nimport DataValidation from 'common/models/dataTypes/dataValidation';\r\nimport { ActionTree, GetterTree, MutationTree } from '~/vuex';\r\n\r\ninterface ValidationsState {\r\n    validations: Array<DataValidation>;\r\n    validationsDate: Date;\r\n}\r\n\r\nexport const state: ValidationsState = {\r\n    validations: [],\r\n    validationsDate: new Date(),\r\n};\r\n\r\nexport const getters: GetterTree<ValidationsState, unknown> = {\r\n    validations: (s) => s.validations,\r\n    validationsDate: (s) => s.validationsDate,\r\n};\r\n\r\nexport const actions: ActionTree<ValidationsState, unknown> = {\r\n    getMemberValidations ({ commit }, { clientId, memberId }) {\r\n        return memberApi.getDataValidations(clientId, memberId).then((validations) => {\r\n            commit('setValidations', validations);\r\n            return validations;\r\n        });\r\n    },\r\n};\r\n\r\nexport const mutations: MutationTree<ValidationsState> = {\r\n    setValidations (s, validations) {\r\n        s.validations = validations;\r\n        s.validationsDate = new Date();\r\n    },\r\n};\r\n\r\nexport default {\r\n    state,\r\n    getters,\r\n    actions,\r\n    mutations,\r\n};\r\n","import memberApi from 'common/api/member';\r\nimport MemberVerificationSummary from 'common/models/memberVerificationSummary';\r\nimport Guid from 'common/util/guid';\r\nimport {\r\n    Commit, ActionTree, GetterTree, MutationTree,\r\n} from '~/vuex';\r\n\r\ninterface VerificationState {\r\n    verifications: Array<MemberVerificationSummary>;\r\n    verificationsDate: Date;\r\n}\r\n\r\nexport const state: VerificationState = {\r\n    verifications: [],\r\n    verificationsDate: new Date(),\r\n};\r\n\r\nexport const getters: GetterTree<VerificationState, unknown> = {\r\n    verifications: (s: VerificationState) => s.verifications,\r\n    verificationsDate: (s: VerificationState) => s.verificationsDate,\r\n};\r\n\r\nexport const actions: ActionTree<VerificationState, unknown> = {\r\n    getMemberVerifications ({ commit }: { commit: Commit }, { clientId, memberId }: {clientId: Guid; memberId: number}) {\r\n        return memberApi.getMemberVerifications(clientId, memberId)\r\n            .then((verifications) => {\r\n                commit('setVerifications', verifications);\r\n                return verifications;\r\n            });\r\n    },\r\n};\r\n\r\nexport const mutations: MutationTree<VerificationState> = {\r\n    setVerifications (s: VerificationState, verifications: Array<MemberVerificationSummary>) {\r\n        s.verifications = verifications;\r\n        s.verificationsDate = new Date();\r\n    },\r\n};\r\n\r\nexport default {\r\n    state,\r\n    getters,\r\n    actions,\r\n    mutations,\r\n};\r\n","import Guid from 'common/util/guid';\r\nimport axios from '~/axios';\r\nimport Http from './apiHelper';\r\n\r\nconst apiVersion = 'v1.0';\r\nexport default class UsersApi {\r\n    static getClients (isLive: boolean|undefined ){\r\n        const query = isLive === undefined ? '' : `?isLive=${isLive}`;\r\n\r\n        return Http.get(`${apiVersion}/client/web${query}`);\r\n    }\r\n\r\n    static generateWebForm (clientId: Guid, formRequest: unknown) {\r\n        return Http.post(`${apiVersion}/client/${clientId}/webform/generate`, formRequest);\r\n    }\r\n\r\n    static getAllWebForms (clientId: Guid, query: Record<string, string[]>) {\r\n        const queryString = Object.keys(query).map((key) => (Array.isArray(query[key]) ? query[key].map((arrVal) => `${key}=${arrVal}`).join('&') : `${key}=${query[key]}`)).join('&');\r\n        return Http.get(`${apiVersion}/client/${clientId}/webforms?${queryString}`);\r\n    }\r\n\r\n    static getWebForm (clientId: Guid, webId: string) {\r\n        return Http.get(`${apiVersion}/client/${clientId}/webform/${webId}`);\r\n    }\r\n\r\n    static getWebFormTemplate (templateUrl: string, template: string) {\r\n        const instance = axios.create({});\r\n\r\n        return instance.get(`${templateUrl}${template}.json`).then((result) => result.data);\r\n    }\r\n\r\n    static getWebFormList (templateUrl: string) {\r\n        const instance = axios.create({});\r\n\r\n        return instance.get(`${templateUrl}forms.json?t=${Date.now() / 1000}`).then((result) => result.data);\r\n    }\r\n\r\n    static getFormUploads (clientId: Guid, webFormId: string) {\r\n        return Http.get(`${apiVersion}/client/${clientId}/webform/${webFormId}/uploads`);\r\n    }\r\n\r\n    static reopenWebForm (clientId: Guid, webFormId: string) {\r\n        return Http.post(`${apiVersion}/client/${clientId}/webform/${webFormId}/reopen`, null);\r\n    }\r\n\r\n    static saveFormNotes (clientId: Guid, webFormId: string, data: { adminNote: string}) {\r\n        return Http.post(`${apiVersion}/client/${clientId}/webfors/${webFormId}/saveAdminNote`, data);\r\n    }\r\n\r\n    static getFormMember (clientCode: string, memberId: number) {\r\n        return Http.get(`${apiVersion}/webForm/${clientCode}/member/${memberId}`);\r\n    }\r\n\r\n    static deleteForm (clientId: Guid, webFormId: string) {\r\n        return Http.delete(`${apiVersion}/client/${clientId}/webform/${webFormId}`);\r\n    }\r\n\r\n    static restoreForm (clientId: Guid, webFormId: string) {\r\n        return Http.post(`${apiVersion}/client/${clientId}/webform/${webFormId}/restore`, null);\r\n    }\r\n\r\n    static unlockForm (clientId: Guid, webId: string) {\r\n        return Http.post(`${apiVersion}/client/${clientId}/webform/${webId}/unlock`, null);\r\n    }\r\n}\r\n","import webformsApi from 'common/api/webformsApi';\r\nimport { ActionTree, GetterTree, MutationTree } from '~/vuex';\r\n\r\ninterface WebformsState {\r\n    formTypes: Array<unknown>;\r\n    formCollections: Array<unknown>;\r\n    formEmailTemplates: Array<unknown>;\r\n    formStatuses: Record<number, string>;\r\n}\r\nexport const state: WebformsState = {\r\n    formTypes: [],\r\n    formCollections: [],\r\n    formEmailTemplates: [],\r\n    formStatuses: {\r\n        0: 'Not started',\r\n        1: 'In progress',\r\n        2: 'Complete',\r\n    },\r\n};\r\n\r\nexport const getters: GetterTree<WebformsState, unknown> = {\r\n    formTypes: (s) => s.formTypes,\r\n    formStatuses: (s) => s.formStatuses,\r\n    formCollections: (s) => s.formCollections,\r\n    formEmailTemplates: (s) => s.formEmailTemplates,\r\n};\r\n\r\nexport const actions: ActionTree<WebformsState, unknown> = {\r\n    getFormTypes ({ commit }, templateUrl) {\r\n        webformsApi.getWebFormList(templateUrl).then((result) => {\r\n            commit('setFormTypes', result.forms);\r\n            commit('setFormCollections', result.formCollections);\r\n            commit('setFormEmailTemplates', result.emailTemplates);\r\n        });\r\n    },\r\n};\r\n\r\nexport const mutations: MutationTree<WebformsState> = {\r\n    setFormTypes (s, data) {\r\n        s.formTypes = data;\r\n    },\r\n    setFormCollections (s, data) {\r\n        s.formCollections = data;\r\n    },\r\n    setFormEmailTemplates (s, data) {\r\n        s.formEmailTemplates = data;\r\n    },\r\n};\r\n\r\nexport default {\r\n    state,\r\n    getters,\r\n    actions,\r\n    mutations,\r\n};\r\n","// Auth\r\n\r\nexport const GET_USER_INFO = 'auth/userInfo';\r\nexport const LOGGED_IN = 'auth/loggedIn';\r\nexport const LOGOUT = 'auth/logout';\r\n\r\n// Client\r\n\r\nexport const GET_CLIENTS = 'client/clients';\r\nexport const GET_USER_CLIENTS = 'client/userClients';\r\nexport const GET_CURRENT_CLIENT = 'client/currentClient';\r\n\r\nexport const SET_CLIENTS = 'client/getClients';\r\nexport const FETCH_USER_DETAILS = 'users/getUserDetails';\r\nexport const SET_CURRENT_CLIENT = 'client/setCurrentClient';\r\nexport const SET_CLIENT_FROM_NAME = 'client/setClientFromName';\r\n\r\nexport const FETCH_RECENT_MEMBERS = 'client/getRecentMembers';\r\nexport const GET_RECENT_MEMBERS = 'client/recentMembers';\r\n\r\n// Common\r\nexport const GET_TITLES = 'common/getTitles';\r\nexport const GET_COUNTRIES = 'common/getCountries';\r\nexport const LOAD_TITLES = 'common/loadTitles';\r\nexport const LOAD_COUNTRIES = 'common/loadCountries';\r\n\r\n// Configuration\r\n\r\nexport const GET_SITE_CONFIGURATION = 'configuration/site';\r\nexport const GET_CLIENT_WEB_SITE_CONFIGURATION = 'configuration/clientWebSite';\r\nexport const PULSE_API_URL = 'pulse-api.url';\r\nexport const MEMBERDATA_API_URL = 'memberdata.api.url';\r\n\r\nexport const GET_HOLIDAYS = 'config/holidays';\r\nexport const LOAD_HOLIDAYS = 'config/getHolidays';\r\nexport const GET_COLOURS = 'config/colours';\r\nexport const LOAD_COLOURS = 'config/getColours';\r\n\r\n// Guidmap\r\n\r\nexport const GET_GUIDS = 'guidmap/guids';\r\n\r\n// Jobs\r\nexport const GET_JOBS = 'jobs/jobs';\r\nexport const GET_CLIENT_JOBS = 'jobs/clientJobs';\r\nexport const GET_JOBS_DATE = 'jobs/jobsDate';\r\nexport const SET_JOBS = 'jobs/getPulseMemberJobs';\r\nexport const SET_CLIENT_JOBS = 'jobs/getPulseClientJobs';\r\n\r\n// Correspondence\r\nexport const GET_CORRESPONDENCE = 'correspondence/correspondence';\r\nexport const GET_CORRESPONDENCE_DATE = 'correspondence/correspondenceDate';\r\nexport const FETCH_CORRESPONDENCE = 'correspondence/getMemberCorrespondence';\r\nexport const CLEAR_CORRESPONDENCE = 'correspondence/clearCorrespondence';\r\n\r\n// Calculations\r\nexport const GET_CALCULATIONS = 'calculations/calculations';\r\nexport const GET_CALCULATIONS_DATE = 'calculations/calculationsDate';\r\nexport const FETCH_CALCULATIONS = 'calculations/getMemberCalculations';\r\nexport const CLEAR_CALCULATIONS = 'calculations/clearCalculations';\r\n\r\n// Validations\r\nexport const GET_VALIDATIONS = 'validations/validations';\r\nexport const GET_VALIDATIONS_DATE = 'validations/validationsDate';\r\nexport const FETCH_VALIDATIONS = 'validations/getMemberValidations';\r\n\r\n// Verifications\r\nexport const GET_VERIFICATIONS = 'verifications/verifications';\r\nexport const GET_VERIFICATIONS_DATE = 'validations/verificationsDate';\r\nexport const FETCH_VERIFICATIONS = 'verifications/getMemberVerifications';\r\n\r\n// Other\r\n\r\nexport const LOADING = 'loading/loading';\r\n\r\n// Users\r\n\r\nexport const GET_ALL_USERS = 'users/allUsers';\r\nexport const HAS_PERMISSION = 'users/hasPermission';\r\nexport const GET_ALL_USERS_BY_ID = 'users/allUsersByUserId';\r\nexport const SET_ALL_USERS = 'users/getAllUsers';\r\n","export default function toDataURL (src: string, outputFormat: 'image/png' | 'image/jpeg' = 'image/png') {\r\n    return new Promise((resolve, reject) => {\r\n        const img = new Image();\r\n        img.crossOrigin = 'Anonymous';\r\n        img.onload = () => {\r\n            const canvas = document.createElement('canvas');\r\n            const ctx = canvas.getContext('2d');\r\n            canvas.height = img.height;\r\n            canvas.width = img.width;\r\n            ctx!.drawImage(img, 0, 0);\r\n            const dataURL = canvas.toDataURL(outputFormat);\r\n            resolve(dataURL);\r\n        };\r\n        img.onerror = (error) => {\r\n            reject(error);\r\n        };\r\n        img.src = src;\r\n        if (img.complete || img.complete === undefined) {\r\n            img.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==';\r\n            img.src = src;\r\n        }\r\n        window.setTimeout(() => {\r\n            console.log('timeout', src);\r\n            reject();\r\n        }, 2000);\r\n    });\r\n}\r\n","// convert string to words\r\nfunction toWords (input: string) {\r\n    const regex = /[A-Z\\xC0-\\xD6\\xD8-\\xDE]?[a-z\\xDF-\\xF6\\xF8-\\xFF]+|[A-Z\\xC0-\\xD6\\xD8-\\xDE]+(?![a-z\\xDF-\\xF6\\xF8-\\xFF])|\\d+/g;\r\n    return input.match(regex);\r\n}\r\n\r\nfunction toCamelCase (inputArray: RegExpMatchArray) {\r\n    let result = '';\r\n\r\n    for (let i = 0, len = inputArray.length; i < len; i += 1) {\r\n        const currentStr = inputArray[i];\r\n\r\n        let tempStr = currentStr.toLowerCase();\r\n\r\n        if (i !== 0) {\r\n            tempStr = tempStr.substr(0, 1).toUpperCase() + tempStr.substr(1);\r\n        }\r\n\r\n        result += tempStr;\r\n    }\r\n\r\n    return result;\r\n}\r\n\r\nexport default function toCamelCaseString (input: string) {\r\n    const words = toWords(input);\r\n    if (!words) return input;\r\n    return toCamelCase(words);\r\n}\r\n","export default function cloneDeep<T> (obj: T | Array<T>) {\r\n    if (obj === undefined || obj === null) return obj;\r\n    return JSON.parse(JSON.stringify(obj));\r\n}\r\n","export const EMAIL_REGEX = /^((([A-Za-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([A-Za-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([A-Za-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([A-Za-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([A-Za-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([A-Za-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([A-Za-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([A-Za-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([A-Za-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([A-Za-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?$/;","/* eslint-disable no-mixed-operators */\r\n/* eslint-disable no-bitwise */\r\nexport default class Guid extends String {\r\n    public static newGuid (): Guid {\r\n        return new Guid('xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\r\n            const r = Math.random() * 16 | 0;\r\n            const v = (c === 'x') ? r : (r & 0x3 | 0x8);\r\n            return v.toString(16);\r\n        }));\r\n    }\r\n\r\n    public static get empty (): string {\r\n        return '00000000-0000-0000-0000-000000000000';\r\n    }\r\n\r\n    public get empty (): string {\r\n        return Guid.empty;\r\n    }\r\n\r\n    public static isValid (str: string): boolean {\r\n        const validRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\r\n        return validRegex.test(str);\r\n    }\r\n\r\n    private value: string = this.empty;\r\n\r\n    constructor (value?: string) {\r\n        super();\r\n        if (value) {\r\n            if (Guid.isValid(value)) {\r\n                this.value = value;\r\n            }\r\n        }\r\n    }\r\n\r\n    public toString () {\r\n        return this.value;\r\n    }\r\n\r\n    public toJSON (): string {\r\n        return this.value;\r\n    }\r\n}\r\n","const statusCollection: {[key: string]: string} = {\r\n    Upcoming: 'Upcoming',\r\n    InProgress: 'In Progress',\r\n    Complete: 'Complete',\r\n    Ceased: 'Ceased',\r\n    Deleted: 'Deleted',\r\n    ReferredExternal: 'In Progress',\r\n    ReferredInternal: 'In Progress',\r\n};\r\n\r\nconst statusCollectionColours: {[key: string]: string} = {\r\n    Upcoming: '#00a3c7',\r\n    InProgress: '#faa743',\r\n    Complete: '#6cbd6c',\r\n    Ceased: '#f27174',\r\n    Deleted: '#f27174',\r\n    ReferredExternal: '#faa743',\r\n    ReferredInternal: '#faa743',\r\n};\r\n\r\nconst statusCollectionIcons: {[key: string]: string} = {\r\n    Upcoming: 'hourglass-start',\r\n    InProgress: 'spinner',\r\n    Complete: 'check',\r\n    Ceased: 'ban',\r\n    Deleted: 'ban',\r\n    ReferredExternal: 'spinner',\r\n    ReferredInternal: 'spinner',\r\n};\r\n\r\nexport default {\r\n    Upcoming: 'Upcoming',\r\n    InProgress: 'InProgress',\r\n    Complete: 'Complete',\r\n    Ceased: 'Ceased',\r\n    ReferredExternal: 'InProgress',\r\n    ReferredInternal: 'InProgress',\r\n    getStatuses () {\r\n        return [this.InProgress, this.Upcoming, this.Complete, this.Ceased];\r\n    },\r\n    getStatusMap () {\r\n        return statusCollection;\r\n    },\r\n    getName (id: string): string {\r\n        return statusCollection[id];\r\n    },\r\n    getColour (id: string): string {\r\n        return statusCollectionColours[id];\r\n    },\r\n    getIcon (id: string): string {\r\n        return statusCollectionIcons[id];\r\n    },\r\n};\r\n","export interface TimeZone {\r\n    name: string;\r\n    code: string;\r\n    gmt: number;\r\n}\r\n\r\nexport const timeZones = [\r\n    { name: 'Afghanistan', code: 'AF', gmt: 4.5 },\r\n    { name: 'Albania', code: 'AL', gmt: 1 },\r\n    { name: 'Algeria', code: 'DZ', gmt: 1 },\r\n    { name: 'Argentina', code: 'AR', gmt: -3 },\r\n    { name: 'Armenia', code: 'AM', gmt: 4 },\r\n    { name: 'Australia', code: 'AU', gmt: 11 },\r\n    { name: 'Austria', code: 'AT', gmt: 1 },\r\n    { name: 'Azerbaijan', code: 'AZ', gmt: 4 },\r\n    { name: 'Bahrain', code: 'BH', gmt: 3 },\r\n    { name: 'Bangladesh', code: 'BD', gmt: 6 },\r\n    { name: 'Belarus', code: 'BY', gmt: 3 },\r\n    { name: 'Belgium', code: 'BE', gmt: 1 },\r\n    { name: 'Belize', code: 'BZ', gmt: -6 },\r\n    { name: 'Bhutan', code: 'BT', gmt: 6 },\r\n    { name: 'Bolivia', code: 'BO', gmt: -4 },\r\n    { name: 'Bosnia and Herzegovina', code: 'BA', gmt: 1 },\r\n    { name: 'Botswana', code: 'BW', gmt: 2 },\r\n    { name: 'Brazil', code: 'BR', gmt: -2 },\r\n    { name: 'Brunei', code: 'BN', gmt: 8 },\r\n    { name: 'Bulgaria', code: 'BG', gmt: 2 },\r\n    { name: 'Cambodia', code: 'KH', gmt: 7 },\r\n    { name: 'Cameroon', code: 'CM', gmt: 1 },\r\n    { name: 'Canada', code: 'CA', gmt: -3.5 },\r\n    { name: 'Chile', code: 'CL', gmt: -4 },\r\n    { name: 'China', code: 'CN', gmt: 8 },\r\n    { name: 'Colombia', code: 'CO', gmt: -5 },\r\n    { name: 'Congo (DRC)', code: 'CD', gmt: 1 },\r\n    { name: 'Costa Rica', code: 'CR', gmt: -6 },\r\n    { name: 'Côte d’Ivoire', code: 'CI', gmt: 0 },\r\n    { name: 'Croatia', code: 'HR', gmt: 1 },\r\n    { name: 'Cuba', code: 'CU', gmt: -5 },\r\n    { name: 'Czech Republic', code: 'CZ', gmt: 1 },\r\n    { name: 'Denmark', code: 'DK', gmt: 1 },\r\n    { name: 'Djibouti', code: 'DJ', gmt: 3 },\r\n    { name: 'Dominican Republic', code: 'DO', gmt: -4 },\r\n    { name: 'Ecuador', code: 'EC', gmt: -5 },\r\n    { name: 'Egypt', code: 'EG', gmt: 2 },\r\n    { name: 'El Salvador', code: 'SV', gmt: -6 },\r\n    { name: 'Eritrea', code: 'ER', gmt: 3 },\r\n    { name: 'Estonia', code: 'EE', gmt: 2 },\r\n    { name: 'Ethiopia', code: 'ET', gmt: 3 },\r\n    { name: 'Faroe Islands', code: 'FO', gmt: 0 },\r\n    { name: 'Finland', code: 'FI', gmt: 2 },\r\n    { name: 'France', code: 'FR', gmt: 1 },\r\n    { name: 'Georgia', code: 'GE', gmt: 4 },\r\n    { name: 'Germany', code: 'DE', gmt: 1 },\r\n    { name: 'Greece', code: 'GR', gmt: 2 },\r\n    { name: 'Greenland', code: 'GL', gmt: -3 },\r\n    { name: 'Guatemala', code: 'GT', gmt: -6 },\r\n    { name: 'Haiti', code: 'HT', gmt: -5 },\r\n    { name: 'Honduras', code: 'HN', gmt: -6 },\r\n    { name: 'Hong Kong SAR', code: 'HK', gmt: 8 },\r\n    { name: 'Hungary', code: 'HU', gmt: 1 },\r\n    { name: 'Iceland', code: 'IS', gmt: 0 },\r\n    { name: 'India', code: 'IN', gmt: 5.5 },\r\n    { name: 'Indonesia', code: 'ID', gmt: 7 },\r\n    { name: 'Iran', code: 'IR', gmt: 3.5 },\r\n    { name: 'Iraq', code: 'IQ', gmt: 3 },\r\n    { name: 'Ireland', code: 'IE', gmt: 0 },\r\n    { name: 'Israel', code: 'IL', gmt: 2 },\r\n    { name: 'Italy', code: 'IT', gmt: 1 },\r\n    { name: 'Jamaica', code: 'JM', gmt: -5 },\r\n    { name: 'Japan', code: 'JP', gmt: 9 },\r\n    { name: 'Jordan', code: 'JO', gmt: 2 },\r\n    { name: 'Kazakhstan', code: 'KZ', gmt: 6 },\r\n    { name: 'Kenya', code: 'KE', gmt: 3 },\r\n    { name: 'Korea', code: 'KR', gmt: 9 },\r\n    { name: 'Kuwait', code: 'KW', gmt: 3 },\r\n    { name: 'Kyrgyzstan', code: 'KG', gmt: 6 },\r\n    { name: 'Laos', code: 'LA', gmt: 7 },\r\n    { name: 'Latvia', code: 'LV', gmt: 2 },\r\n    { name: 'Lebanon', code: 'LB', gmt: 2 },\r\n    { name: 'Libya', code: 'LY', gmt: 2 },\r\n    { name: 'Liechtenstein', code: 'LI', gmt: 1 },\r\n    { name: 'Lithuania', code: 'LT', gmt: 2 },\r\n    { name: 'Luxembourg', code: 'LU', gmt: 1 },\r\n    { name: 'Macao SAR', code: 'MO', gmt: 8 },\r\n    { name: 'Macedonia, FYRO', code: 'MK', gmt: 1 },\r\n    { name: 'Malaysia', code: 'MY', gmt: 8 },\r\n    { name: 'Maldives', code: 'MV', gmt: 5 },\r\n    { name: 'Mali', code: 'ML', gmt: 0 },\r\n    { name: 'Malta', code: 'MT', gmt: 1 },\r\n    { name: 'Mexico', code: 'MX', gmt: -6 },\r\n    { name: 'Moldova', code: 'MD', gmt: 2 },\r\n    { name: 'Monaco', code: 'MC', gmt: 1 },\r\n    { name: 'Mongolia', code: 'MN', gmt: 8 },\r\n    { name: 'Montenegro', code: 'ME', gmt: 1 },\r\n    { name: 'Morocco', code: 'MA', gmt: 0 },\r\n    { name: 'Myanmar', code: 'MM', gmt: 6.5 },\r\n    { name: 'Nepal', code: 'NP', gmt: 5.75 },\r\n    { name: 'Netherlands', code: 'NL', gmt: 1 },\r\n    { name: 'New Zealand', code: 'NZ', gmt: 12 },\r\n    { name: 'Nicaragua', code: 'NI', gmt: -6 },\r\n    { name: 'Nigeria', code: 'NG', gmt: 1 },\r\n    { name: 'Norway', code: 'NO', gmt: 1 },\r\n    { name: 'Oman', code: 'OM', gmt: 4 },\r\n    { name: 'Pakistan', code: 'PK', gmt: 5 },\r\n    { name: 'Panama', code: 'PA', gmt: -5 },\r\n    { name: 'Paraguay', code: 'PY', gmt: -4 },\r\n    { name: 'Peru', code: 'PE', gmt: -5 },\r\n    { name: 'Philippines', code: 'PH', gmt: 8 },\r\n    { name: 'Poland', code: 'PL', gmt: 1 },\r\n    { name: 'Portugal', code: 'PT', gmt: 0 },\r\n    { name: 'Puerto Rico', code: 'PR', gmt: -4 },\r\n    { name: 'Qatar', code: 'QA', gmt: 3 },\r\n    { name: 'Réunion', code: 'RE', gmt: 4 },\r\n    { name: 'Romania', code: 'RO', gmt: 2 },\r\n    { name: 'Russia', code: 'RU', gmt: 2 },\r\n    { name: 'Rwanda', code: 'RW', gmt: 2 },\r\n    { name: 'Saudi Arabia', code: 'SA', gmt: 3 },\r\n    { name: 'Senegal', code: 'SN', gmt: 0 },\r\n    { name: 'Serbia', code: 'RS', gmt: 1 },\r\n    { name: 'Singapore', code: 'SG', gmt: 8 },\r\n    { name: 'Slovakia', code: 'SK', gmt: 1 },\r\n    { name: 'Slovenia', code: 'SI', gmt: 1 },\r\n    { name: 'Somalia', code: 'SO', gmt: 3 },\r\n    { name: 'South Africa', code: 'ZA', gmt: 2 },\r\n    { name: 'Spain', code: 'ES', gmt: 1 },\r\n    { name: 'Sri Lanka', code: 'LK', gmt: 5.5 },\r\n    { name: 'Sweden', code: 'SE', gmt: 1 },\r\n    { name: 'Switzerland', code: 'CH', gmt: 1 },\r\n    { name: 'Syria', code: 'SY', gmt: 2 },\r\n    { name: 'Taiwan', code: 'TW', gmt: 8 },\r\n    { name: 'Tajikistan', code: 'TJ', gmt: 5 },\r\n    { name: 'Thailand', code: 'TH', gmt: 7 },\r\n    { name: 'Trinidad and Tobago', code: 'TT', gmt: -4 },\r\n    { name: 'Tunisia', code: 'TN', gmt: 1 },\r\n    { name: 'Turkey', code: 'TR', gmt: 2 },\r\n    { name: 'Turkmenistan', code: 'TM', gmt: 5 },\r\n    { name: 'Ukraine', code: 'UA', gmt: 2 },\r\n    { name: 'United Arab Emirates', code: 'AE', gmt: 4 },\r\n    { name: 'United Kingdom', code: 'GB', gmt: 0 },\r\n    { name: 'United States', code: 'US', gmt: -5 },\r\n    { name: 'Uruguay', code: 'UY', gmt: -3 },\r\n    { name: 'Uzbekistan', code: 'UZ', gmt: 5 },\r\n    { name: 'Venezuela', code: 'VE', gmt: -4 },\r\n    { name: 'Vietnam', code: 'VN', gmt: 7 },\r\n    { name: 'Yemen', code: 'YE', gmt: 3 },\r\n    { name: 'Zimbabwe', code: 'ZW', gmt: 2 },\r\n];\r\n","var map = {\n\t\"./a-v-c.vue\": 7245,\n\t\"./active-ceased-accrual-collections.vue\": 72700,\n\t\"./add-def-info.vue\": 95588,\n\t\"./b-c-e.vue\": 24197,\n\t\"./basic-info.vue\": 89700,\n\t\"./categories.vue\": 7484,\n\t\"./contactInfo.vue\": 89395,\n\t\"./contributions.vue\": 58901,\n\t\"./current-address.vue\": 53000,\n\t\"./d-c-funds.vue\": 37352,\n\t\"./deferred-data-history.vue\": 54191,\n\t\"./deferreddatabycollections.vue\": 52418,\n\t\"./depSetup.vue\": 1704,\n\t\"./earmarkingCollections.vue\": 76015,\n\t\"./earnings.vue\": 68796,\n\t\"./keyServicePeriodDates.vue\": 27547,\n\t\"./marital-constructor.vue\": 47853,\n\t\"./memberhsipHistory.vue\": 27658,\n\t\"./n-i-earnings.vue\": 21192,\n\t\"./penSuspensions.vue\": 8078,\n\t\"./pension-history.vue\": 70159,\n\t\"./pensionSharingCollections.vue\": 72036,\n\t\"./protection-certs.vue\": 33895,\n\t\"./refund.vue\": 91535,\n\t\"./retirement-event.vue\": 69918,\n\t\"./scheme-pays.vue\": 22674,\n\t\"./single-payments.vue\": 36980,\n\t\"./status-history.vue\": 30690,\n\t\"./t-v-out.vue\": 91143,\n\t\"./t-v-quotes.vue\": 65878,\n\t\"./transfersIn.vue\": 97150\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 39595;","var map = {\n\t\"./bank-balance-over-time.vue\": 55535,\n\t\"./bank-balance.vue\": 88465,\n\t\"./client-calendar.vue\": 63149,\n\t\"./column-pie-toggle.vue\": 59690,\n\t\"./complaints.vue\": 8688,\n\t\"./completed-jobs-rag.vue\": 39938,\n\t\"./completed-jobs-sla.vue\": 87763,\n\t\"./completed-jobs.vue\": 98893,\n\t\"./completed-pie-sla.vue\": 50538,\n\t\"./completed-pie.vue\": 26776,\n\t\"./contact-tile.vue\": 42025,\n\t\"./correspondence-views-by-status-pie.vue\": 40088,\n\t\"./correspondence-views-by-status.vue\": 95008,\n\t\"./data-scores.vue\": 79275,\n\t\"./data-updates-by-age-pie.vue\": 86335,\n\t\"./data-updates-by-age.vue\": 97498,\n\t\"./data-updates-by-datatype-pie.vue\": 49404,\n\t\"./data-updates-by-datatype.vue\": 28085,\n\t\"./data-updates-by-status-pie.vue\": 59732,\n\t\"./data-updates-by-status.vue\": 42858,\n\t\"./date-selector.vue\": 3268,\n\t\"./demographics.vue\": 29708,\n\t\"./document-search.vue\": 15717,\n\t\"./document-views-by-status-pie.vue\": 33831,\n\t\"./document-views-by-status.vue\": 29875,\n\t\"./errors.vue\": 6244,\n\t\"./feedback-quarterly-score.vue\": 68925,\n\t\"./feedback-score.vue\": 26135,\n\t\"./header-bar.vue\": 34517,\n\t\"./income-expenditure-table.vue\": 23358,\n\t\"./income-expenditure.vue\": 38110,\n\t\"./info.vue\": 82341,\n\t\"./inprogress-jobs.vue\": 19761,\n\t\"./inprogress-pie.vue\": 9127,\n\t\"./member-correspondence-views-totals.vue\": 29417,\n\t\"./member-correspondence-views.vue\": 69575,\n\t\"./member-interactions-pie.vue\": 96534,\n\t\"./member-interactions.vue\": 14343,\n\t\"./member-logins-by-age-pie.vue\": 73293,\n\t\"./member-logins-by-age.vue\": 83772,\n\t\"./member-logins-by-status-pie.vue\": 47263,\n\t\"./member-logins-by-status.vue\": 34125,\n\t\"./member-logins-pie.vue\": 28553,\n\t\"./member-logins.vue\": 26063,\n\t\"./member-movements.vue\": 95738,\n\t\"./member-registrations-by-age-pie.vue\": 61678,\n\t\"./member-registrations-by-location.vue\": 61516,\n\t\"./member-registrations-by-status.vue\": 99406,\n\t\"./member-search.vue\": 39417,\n\t\"./member-statistics-tile.vue\": 75111,\n\t\"./modeller-interactions-by-age-pie.vue\": 3411,\n\t\"./modeller-interactions-by-age.vue\": 65422,\n\t\"./modeller-times-by-age-pie.vue\": 61335,\n\t\"./modeller-times-by-age.vue\": 1371,\n\t\"./modeller-visits-by-age-pie.vue\": 2964,\n\t\"./modeller-visits-by-age.vue\": 41228,\n\t\"./navbar.vue\": 58610,\n\t\"./news-items.vue\": 44414,\n\t\"./page-visits-table.vue\": 23892,\n\t\"./page-visits.vue\": 93341,\n\t\"./payslip-views-by-status-pie.vue\": 32218,\n\t\"./payslip-views-by-status.vue\": 22766,\n\t\"./print-preview.vue\": 84795,\n\t\"./terms-wording.vue\": 24644,\n\t\"./transfers.vue\": 38710,\n\t\"./user-photo.vue\": 30383,\n\t\"./web-form-views-by-status-pie.vue\": 99308,\n\t\"./web-form-views-by-status.vue\": 21966,\n\t\"./web-registrations-gauge.vue\": 57830,\n\t\"./web-registrations-pie.vue\": 83843,\n\t\"./web-registrations.vue\": 8389\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 74776;","var map = {\n\t\"./clientContext.ts\": 13355,\n\t\"./clientStatistics.ts\": 41572,\n\t\"./index.ts\": 94918\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 85783;","var map = {\n\t\"./addressComponent.vue\": 47223,\n\t\"./batch-jobs.vue\": 64392,\n\t\"./btn.vue\": 55600,\n\t\"./client-telephone-conversation.vue\": 47758,\n\t\"./copy-link-button.vue\": 69169,\n\t\"./correspondence-job.vue\": 55768,\n\t\"./death-notification-form.vue\": 78265,\n\t\"./death-notification-futurecorrespondence-contact-details.vue\": 26758,\n\t\"./death-notification-informant-contact-details.vue\": 18903,\n\t\"./death-notification-spouseorcivilpartner-contact-details.vue\": 61252,\n\t\"./document-edit.vue\": 36818,\n\t\"./email-viewer.vue\": 45669,\n\t\"./grid-paging.vue\": 30537,\n\t\"./header-bar.vue\": 47193,\n\t\"./header-nav.vue\": 43199,\n\t\"./job-selector-pulse.vue\": 32888,\n\t\"./last-refreshed.vue\": 82947,\n\t\"./loading.vue\": 16704,\n\t\"./login-page.vue\": 6363,\n\t\"./member-advanced-search.vue\": 54861,\n\t\"./member-button.vue\": 46758,\n\t\"./member-telephone-conversation.vue\": 19062,\n\t\"./members-dropdown.vue\": 9206,\n\t\"./messages.vue\": 8595,\n\t\"./modal.vue\": 11153,\n\t\"./phone-viewer.vue\": 59948,\n\t\"./profile-photo-old.vue\": 17308,\n\t\"./profile-photo.vue\": 41297,\n\t\"./scheduler.vue\": 38127,\n\t\"./tab.vue\": 18280,\n\t\"./tabs.vue\": 24907,\n\t\"./tiff-viewer.vue\": 49021,\n\t\"./toggle-switch.vue\": 94718,\n\t\"./users-dropdown.vue\": 62075,\n\t\"./webQuery-viewer.vue\": 75334\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 54143;","var map = {\n\t\"./auth.ts\": 3296,\n\t\"./calculations.ts\": 86148,\n\t\"./client.ts\": 54061,\n\t\"./common.ts\": 35747,\n\t\"./configuration.ts\": 93596,\n\t\"./correspondence.ts\": 20525,\n\t\"./index.ts\": 39975,\n\t\"./jobs.ts\": 1258,\n\t\"./messages.ts\": 6027,\n\t\"./users.ts\": 62941,\n\t\"./validations.ts\": 80715,\n\t\"./verifications.ts\": 81434,\n\t\"./webforms.ts\": 1595\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 55700;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkclient_web\"] = self[\"webpackChunkclient_web\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], function() { return __webpack_require__(89316); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["render","_vm","this","_c","_self","_setupProxy","staticClass","_v","attrs","chartOptions","loading","_e","staticRenderFns","Transfers","Vue","$store","getters","clientId","transferStats","transferStatsTranformed","name","color","ColourService","type","data","periods","map","a","endBalance","title","text","chart","xAxis","categories","dayjs","fromDate","format","labels","formatter","that","value","style","fontFamily","tooltip","pointFormat","yAxis","allowDecimals","label","toLocaleString","legend","enabled","itemStyle","fontSize","fontWeight","credits","plotOptions","column","stacking","series","__decorate","Prop","Component","component","_s","formatNumber","previousBalance","formatDate","startDate","latestBalance","endDate","balanceChange","FeedbackScore","financeStats","startBalance","length","toDate","date","val","Math","round","class","printing","_m","_l","clientEvents","events","key","event","status","toLowerCase","CompletedJobs","async","clientCalendar","ClientsApi","months","sort","b","filter","i","forEach","year","Date","push","Watch","immediate","model","viewOverPeriod","callback","$$v","expression","_t","MemberLoginsChart","Complaints","ref","averageCompletionTime","navigateTo","$router","params","row","completedJobStats","floor","completedJobStatsTranformed","dataByDate","Object","values","counts","reduce","min","line","linearGradient","x1","y1","x2","y2","stops","marker","fillColor","radius","lineWidth","states","hover","threshold","area","opacity","slas","countsBySla","keys","sla","toString","orderedKeys","Set","caseTypes","arr","completedJobStatsTransformedByCase","vals","backgroundColor","viewByCase","overflow","averagePerDay","sum","total","types","flat","dashStyle","allowPointSelect","chartTitle","filtered","selectedPoint","selectedColourIndex","on","$event","$emit","showTable","showLegend","centerPos","clearFilter","totalJobs","page","within","beyond","totalCases","totalWithin","totalBeyond","InProgressJobs","inprogressJobStatsTranformed","inTarget","find","y","outOfTarget","beyondStat","calculatedResult","formattedResult","totals","jobType","Number","seriesName","pointClicked","point","colorIndex","category","$refs","points","select","window","innerWidth","top","chartCenterY","left","chartCenterX","self","load","x","plotLeft","center","plotTop","redraw","PieLegend","pie","dataLabels","showInLegend","borderWidth","legendItemClick","preventDefault","target","selected","innerSize","slicedOffset","click","components","ToggleSwitch","teamMembers","teamMember","id","jobTitle","phone","email","ContactTile","clientConfig","teamMembersChanged","loadingUrls","totalCorrespondenceViewed","PayslipViewsByStatusPie","documentStats","correspondenceTransformed","correspondenceViewedByStatus","PayslipViewsByStatus","dataTypes","documentStatsTransformed","dataTypeData","formatDocument","document","result","replace","charAt","toUpperCase","slice","dataDate","directives","rawName","commonData","rank","maxWidth","combined","schemeData","DataScores","clients","clientName","$route","path","indexOf","governanceInformation","dataScores","governanceInformationChanged","commonScore","specificScore","totalDataUpdates","DataUpdatesByAgePie","max","dataUpdates","dataUpdatesTransformed","ageBands","ageBand","dataByAge","age","number","DataUpdatesByAgeChart","ageBandData","every","MemberDataUpdatesByDataTypePie","dataByType","dataType","formatDataType","DataUpdatesByDataTypeChart","MemberDataUpdatesByStatusPie","dataByStatus","clientContext","datesToggled","minDate","maxDate","dateOptions","datePresetChanged","datePreset","viewMonthly","HeaderBar","clientContextChanged","hasLoaded","loadDateData","commit","showDates","meta","presetDateOptions","start","end","localDefinition","isValid","datePresetObject","obj","dispatch","DynamicUiDate","DynamicUiEnumDropdown","viewAsTable","memberTypes","tableData","Demographics","tableViewChanged","tableView","memberDemographics","ages","countByStatusAndAge","count","memberDemographicsTransformed","colours","minAge","maxAge","colors","animation","apply","arguments","totalDocumentsViewed","documentsViewed","splitByStatus","height","viewByFileType","documentNames","documentName","background","getColour","c","console","log","toUppercase","word","wordArr","split","join","newUrl","startsWith","substring","Errors","previousFourFeedback","tile","isGovernanceScreen","flex","isCommunication","yearFeedback","feedback","quarter","serviceScore","isService","communicationScore","FeedbackQuarterlyScore","feedbackScores","memberFeedbackScores","distinctyears","findDistinctYears","item","memberFeedbacksFiltered","Array","mf","yearlyFeedback","YearlyQuarterlyFeedback","memberFeedback","Map","isFeedbackForClient","hasScores","currentServiceScore","active","currentCommunicationScore","clientConfiguration","memberFeedbackType","clientFontSize","showPrint","hasReportingRole","showingPrint","loggedIn","signOut","require","clientPath","ClientNameService","clientIdChanged","then","context","hasReportingRoleChanged","PrintPreview","currentFilter","filterRow","negative","groupNames","period","groups","group","groupName","amount","highestVal","abs","barColour","e","pos","width","ceil","currency","Info","inProgressJobStats","showCurrent","cases","historicInProgressJobStats","allKeys","add","last","personalCorrespondenceCreatedTotal","formsSubmittedTotal","webQueriesTotal","documentsViewedTotal","MemberCorrespondenceViews","correspondenceCreatedTotal","webQueriesSubmittedTotal","webFormsSubmitted","d","f","memberInteractions","Emails","phoneCalls","webQueries","emails","hasMemberWeb","client","useHTML","distance","MemberInteractionsComponent","memberInteractionsTransformed","totalLogins","MemberLoginsPie","memberLogins","memberLoginsTranformed","loginsByAge","MemberLoginsByAgeChart","ageTotal","loginsByStatus","trim","totalRegistrations","logins","repeatVisits","memberMovements","movements","statusName","formattedFromDate","byStatusAtFromDate","rows","exit","typeVal","arrowPos","moveFrom","moveTo","hasFrom","formattedToDate","byStatusAtToDate","MemberMovementsTile","index","firstIndex","secondIndex","typeCount","n","highestNumber","movement","MemberRegistrationsByAge","memberRegistrations","memberRegistrationsTransformed","mapOptions","mapData","slot","hoveredArea","areaName","areaValue","abroadColour","undefined","MemberRegistrationsByLocation","dataByLocation","postcode","postcodes","postcodesMap","areaMap","splitRow","areaNamesMap","topoJsonSettings","jsonPath","featureCollectionName","areaPropertyName","interactive","allowPan","allowSelectArea","allowSelectRegion","allowZoom","display","colourRange","gradient","gradientAmount","hue","saturation","lightness","zoomAnimationDuration","colourAnimationDuration","rotateAnimationDuration","extents","extentsFunction","loaded","areaHovered","getValueColour","areaCode","MemberRegistrationsByStatus","memberRegistrationsTranformed","viewAdvancedSearch","_k","keyCode","getResults","surname","forenames","memberId","dateOfBirth","nino","advancedSearchDisabled","isLoading","hasSearched","searchResults","sorted","endsWith","inverse","sortBy","systemMemberId","gotoMember","_f","dateBirth","servicePeriods","servicePeriodId","totalResults","pageNumber","pageSize","decrementPage","incrementPage","MemberSearch","searchParams","isInvalidMemberId","isInversed","includes","searchParamsChanged","reg","test","resetPage","MemberApi","results","headers","options","finally","DynamicUiText","memberStats","memberCount","countByStatus","MemberStatisticsTile","items","source","balances","element","effectiveDate","balance","AVCAccumulationHistoryVue","hasLumpSum","hasComparator","hasAlternativeBenefit","hasAlternativeBenefitComparator","numberName","numberValue","lumpSum","comparator","alternativeBenefit","alternativeBenefitComparator","ActiveCeasedAccrualCollectionsVue","some","overNraRetiringLate","overNraNotTraced","leftWithOptions","dcAvcsOnly","finalPensionableSalary","additionalClientSpecificFigures","additionalClientSpecificNumbers","AddDefInfoVue","dateOfEngagement","isLtaChargePayable","ltaCharge","notificationDate","datePaid","percentageOfLtaUsed","totalPercentageOfLtaUsed","BCEsVue","isDateOfBirthConfirmed","niNumber","sex","BasicInfoVue","benefitCategory","categoryName","categoryValue","flags","flag","flagName","flagValue","references","reference","referenceName","referenceValue","dates","dateName","dateValue","numbers","financialNumbers","percentages","CategoriesVue","phoneNumbers","phoneNumber","description","getFormattedValue","preferred","ContactInfoVue","phoneNumberString","parsePhoneNumberFromString","country","formatNational","formatInternational","contributionsByDate","contributionDate","pre97","post97","ContributionsVue","line1","line2","line3","line4","postCode","isConfirmed","isNotUsedForMailing","provider","units","dcFundsVue","elements","DeferredDataHistoryVue","DeferreddatabycollectionsVue","originalMemberId","originalServicePeriodId","dependantType","DepSetupVue","earmarkingCollection","exSpouseName","exSpouseDoB","exSpouseDoBConfirmed","percentageOfOrder","earmarkingBenefitType","EarmarkingCollectionsVue","columnNames","orderedItems","salaryDate","salaries","EarningsVue","columns","dateContractedOut","dateContractedOutCeased","dateExpressionOfWishUpdated","dateJoinedEmployment","dateNominationForDependantPensionUpdated","datePensionableServiceCommenced","normalRetirementDate","KeyServicePeriodDatesVue","maritalStatus","dateOfMarriage","isDateOfMarriageConfirmed","MaritalConstructorVue","history","schemeName","MembershipHistoryVue","taxYearFrom","NIEarningsVue","getToDate","to","from","reason","PensionSuspensionsVue","elementIndex","spousesAmount","ringfenced","spousesRingfenced","spousesComparator","totalAmount","totalSpouseAmount","PensionHistoryVue","pensionSharing","splits","PensionSharingCollectionsVue","statusDate","iplta","ProtectionCertsVue","hasLeftWithNoBenefit","schemeContributions","avcs","interestAvcGrowth","certifiedAmount","schemeTax","cep","dateCepPaid","dateRefundPaid","refundsVue","pensionSources","sourceOfPension","residualPension","spousePension","pensionExchanged","lumpSumTaken","expiryDate","RetirementEvents","taxYearEnding","dateElectionFormReceived","method","aaEffectiveDate","dateAaChargePaid","aaCharge","tranches","tranche","trancheIndex","SchemePaysVue","lumpSumPayments","tax","taxablePAYEElement","SinglePaymentsVue","dateOfChange","StatusHistoryVue","payee","memberConts","lrpPaid","sconAscon","coRights","TVOutVue","dateRequestReceived","calculationDate","dbTransferValue","TVQuotesVue","dateReceived","memberContributions","dateOfLeaving","transferInBenefit","addedPension","addedWidowsPension","benefitsAddedYears","benefitsAddedMonths","benefitsAddedDays","cash","benefitsPercentageOfSalary","transferInGMPBenefit","pre88GMP","post88GMP","pre88GMPAtGMPAge","post88GMPAtGMPAge","coCeased","ratePreDol","ratePostDol","nicoAction","revaluedTo","TVINVue","totalModellerViews","ModellerInteractionsByAgePie","modellerStats","modellerViewsTranformed","ageGroupInteractions","section","ModellerInteractionsByAgeChart","modellerStatistics","modellerInteractionPages","pages","interactionName","modellerStatisticsTransformed","viewByType","formatInteraction","interaction","ModelelrTimesByAgePie","ageGroupSections","sectionName","timesByAge","visitsByAge","ModellerTimesByAgeChart","modellerData","documentTypes","filteredPages","modellerDataTransformed","viewByPage","viewsByAge","formatSectionName","viewViewsByPage","ModellerVisitsByAge","modellerVisits","modellerVisitsTransformed","smaller","expanded","showNextRow","hasPacia","hasPaciaRole","showFinancials","Navbar","isLive","location","href","printedNews","staticStyle","news","i2","paddingTop","domProps","getSnippet","pensionNews","selectedNews","image","currentTarget","html","News","snippet","grouped","lastBreakHeight","children","el","getAttribute","classList","remove","pageHeight","offsetTop","nextEl","offsetHeight","pageStats","visits","formatUrl","time","totalVisits","totalAverageTimeSpent","PageVisitsTable","pageVisits","filteredPageVisitsByDate","pageVisitsByDate","pageName","totalTime","url","pageNames","pageVisitsTransformed","payslipDataByStatus","reportTypes","selectedReportType","option","wide","selectedOptions","formattedOptions","_b","tag","props","clientEntity","getFullYear","loadingData","lastPreview","print","viewByValue","fullReportOptions","mounted","memberWebTiles","financialTiles","copiedSelectedOptions","JSON","parse","stringify","splice","filterTiles","printDate","$nextTick","styles","styleSheets","sheet","j","cssRules","cssText","ex","els","printPreview","querySelectorAll","src","base64Image","catch","setTimeout","needBreak","axios","replaceAll","parentElement","innerHTML","footer","margin","bottom","right","responseType","blob","Blob","file","URL","createObjectURL","iframe","currentRow","createElement","download","selectedReportTypeChanged","loadingDataChanged","newLoadingState","createPdf","selectedOptionsChanged","newSelectedOptions","oldSelectedOptions","webRegistrationBySummaryEnabled","STORE","webRegistrationByTimeEnabled","webRegistrationByLocationEnabled","webRegistrationByStatusEnabled","webRegistrationByAgeEnabled","memberLoginEnabled","memberLoginByAgeEnabled","memberLoginByStatusEnabled","pageVisitsEnabled","pageVisitsByTimeEnabled","modellerVisitsByAgeEnabled","modellerVisitsByTimeEnabled","modellerTimesByAgeEnabled","modellerTimesByTimeEnabled","modellerInteractionsByAgeEnabled","modellerInteractionsByPageEnabled","dateUpdatesByAgeEnabled","dateUpdatesByAgeByTimeEnabled","dateUpdatesByDataTypeEnabled","dateUpdatesByDataTypeByTimeEnabled","dateUpdatesByStatusEnabled","dateUpdatesByStatusByTimeEnabled","memberCorrespondenceEnabled","payslipViewsVisible","payslipViewsByStatusEnabled","payslipViewsByTimeEnabled","correspondenceViewsByStatusEnabled","correspondenceViewsByTimeEnabled","documentViewsByStatusEnabled","documentViewsByTimeEnabled","webFormsViewsByStatusEnabled","webFormsViewsByTimeEnabled","showModeller","showPayslips","disabledPrintTiles","tiles","draggable","TermsWording","valueView","viewByValueChanged","quotesAmount","quotes","transferAmount","transfers","hoverText","useFallback","default","prescence","fallbackmage","disabled","methods","computed","userUrl","watch","totalWebFormsViewed","webFormStats","webForm","webFormNames","webFormName","formatName","percentageRegistered","webRegistrations","registrations","toFixed","availableToRegister","tickPositions","align","layout","verticalAlign","floating","itemMarginBottom","navigation","pane","startAngle","endAngle","outerRadius","innerRadius","solidgauge","linecap","stickyTracking","rounded","numberRegistered","numberIncreased","percentageIncrease","increaseChartOptions","registeredPeriodPercentageOfTotal","numberRegisteredAtStart","registeredStatsTranformed","registeredTotal","registeredPeriod","registeredPercentage","numberNotRegistered","unregistered","Registrations","webRegistrationsTransformed","showResults","addressResponse","addresses","addressSelected","selectedAddress","reset","lookupFailed","address","addressLine1","$set","addressLine2","addressLine3","addressLine4","countryOptions","addressCountry","addressPostCode","searchPostcode","Address","AddressResponse","formatted_address","AddressesResponse","Type","AddressComponent","Authorization","pulseApiUrl","getAddressDomainToken","lookupUrl","axiosInstance","get","response","error","nextValid","Line4","valueChanged","addressChanged","deep","isMember","batchJobs","scopedSlots","_u","fn","searchExpression","composing","onSearch","lastRefreshed","reload","scheduledTime","jobsTotal","pageNumberChanged","pageSizeChanged","BatchJobSummary","apiVersion","BatchJobsApi","static","search","Http","returnHeaders","useBasePath","BatchJobs","getClient","getBatchJobs","clientsApi","clientByName","code","newPageSize","pageNumberNeedsChanging","batchJobsApi","pulseUrl","moment","isFromMemberData","clientCode","getUser","userId","user","allUsersById","getSearchDebounce","userInfo","_","Column","prop","filterable","sortable","r","application","exception","created","updated","createdBy","currentFilterChanged","confirmationMessage","_g","classes","icon","iconOnLeft","secondaryIcon","showModal","listeners","iconStylesToUse","confirmationTitle","confirmationIcon","confirmButtonText","confirm","modal","iconStyles","clicked","timeOfCall","callOptions","incomingCall","otherName","otherCallerCapacity","otherCompany","otherNumber","subject","conversation","requiredFields","closeWindow","canSave","save","ClientTelephoneConversation","timeZones","currentClient","fieldsRequired","fields","close","phoneCallData","otherCallerDetails","capacity","company","clientApi","err","root","copyLink","CopyLinkbutton","copyText","getElementById","setSelectionRange","execCommand","popup","message","assignedJob","getColor","getIcon","definitionName","targetDate","showAssignmentOptions","showJobUnassignJob","showJobAssignModal","hideReturnToIndex","showReturnToIndex","CorrespondenceJob","Status","getName","noHours","utc","deathNotification","isTelephoneNotification","isDateOfDeathUnknown","dateOfDeath","yesNoUnknownOptions","isDeceasedBankAccountOpen","showSpouseOrCivilPartnerForm","yesNoDontKnowOptions","changeShowSpouseOrCivilPartnerContactOption","hasSpouseOrCivilPartner","hasChildrenUnder23","hasOtherFinancialDependants","furtherInformation","informantContactDetails","futureCorrespondenceDiffers","showFutureCorrespondenceDetails","futureCorrespondenceContactDetails","showSpouseOrCivilPartnerContactOption","spouseOrCivilPartnerContactOptions","spouseOrCivilPartnerContactOption","showSpouseOrCivilPartnerDetails","spouseOrCivilPartnerContactDetails","validationFailedMessage","DeathFutureCorespondenceContactDetails","DeathSpouseOrCivilPartnerContactDetails","DeathNotificationForm","YesNoUnknown","YesNoDontKnow","SpouseOrCivilPartnerContactOptions","hasSpouseOrCivilPartnerCheck","informantRelationship","relationshipToDeceased","fututeCorrespondenceRelationship","RelationshipToDeceased","relationshipChanged","deathNotificationChanged","isDirty","futureCorrespondenceDiffersChanged","FutureCorrespondenceContactDetails","contactPreference","ContactPreferences","hasSpouseOrCivilPartnerChanged","SpouseOrCivilPartnerContactDetails","spouseOrCivilPartnerContactOptionChanged","validationFailedMessageChanged","isDateOfDeathUnknownChanged","errors","dn","informantErrors","checkContactDetails","futureCorrespondenceErrors","spouseOrCivilPartnerErrors","contactDetails","isInformant","telephoneNumber","match","EMAIL_REGEX","InformantContactDetailsVue","FutureCorrespondenceContactDetailsVue","SpouseOrCivilPartnerContactDetailsVue","memberTitleOptions","emailRegex","relationshipToDeceasedOptions","contactPreferenceOptions","DeathNotificationFutureCorrespondenceContactDetails","loadMemberTitles","list","DeathNotificationInformantContactDetails","DeathNotificationSpouseorCivilPartnerContactDetails","documentEdited","isUser","isScanning","isEmail","editingAvailable","canRename","filteredCategories","invalidFileDetailsMessage","fileDetailsChanged","saveFileDetails","hasWorkmanagement","documentStatus","isValidExcelDocumentExtension","canDuplicateFinalised","showDuplicateFinalised","job","showJobAssign","unassignJob","deleteDocument","previous","workingDocument","showRevertToDraftDialog","draftIcon","versionHistory","updateOnlineStatus","finalisedBy","onlineAvailable","showFinalConfirmation","makeFinal","userCanMakeOnline","documentPreEdit","notificationStatus","onlineBy","calculationLogId","clickable","calculationId","gotoCalc","fileExtension","editDocument","returnToIndex","getDocument","linkUrl","reversedVersionHistory","activity","updatedBy","previewUrl","getPreview","loadingPreview","newDocumentName","duplicateFinalisedDocument","showEffectiveDateChangeNotification","today","revertToDraft","storeCurrentClient","isClientDoc","jobPrefix","newJobId","jobId","assignJob","Document","canEdit","CreateDocumentResponse","DocumentsApi","documentId","DocumentCatgeory","request","clienId","useToken","config","reassigned","showSuccessMessage","showPopup","successTitle","jobDocumentId","EditDocument","users","apiUrl","docId","getCategories","fileName","usersById","isIframed","query","hideIntro","documentCategories","isEnabled","itemDetails","availableJobs","jobs","memberData","hostUrl","sequence","reverse","isProduction","environment","workManagement","process","protocol","host","invalidCharacters","existingFileNamesUpperCase","existingFilenames","t","isAvailableOnline","fileType","oid","found","documentMemberId","docReference","extension","calcId","open","documentsApi","initialiseForDocument","findJob","getJob","performParentMessage","cloneDeep","parent","postMessage","reloadParentWindow","documentCategoryId","suffix","docIdChanged","hasFileDetailsChanged","embedded","isEmbedded","openWebLink","webLink","deleteEmail","hasEmailHistory","historyButtonText","viewHistory","openJob","returnToIndexing","emailUrl","isDescriptionSet","hasEmailDetailsChanged","saveEmailDetails","emailAddress","toRecipients","ccRecipients","cc","receivedDateTime","allInlineLoaded","emailContent","hasAttachments","filteredAttachments","at","downloadAttachment","getDocumentType","isInline","getFileSize","size","EmailAttachment","EmailViewer","getEmail","jobReference","emailId","emailMemberId","emailReference","wm","body","content","attachments","jobCount","memberDataApiUrl","setOriginalDescription","originalDescription","MembersApi","getInlineAttachments","unloaded","contentBytes","attachment","contentId","getJobByReference","fileArr","link","isSaving","isQuickPreview","attachmentId","emailAttachmentResult","linkSource","contentType","downloadLink","inboxApi","jobsChanged","correspondenceJob","errorMsg","internalPageSize","$$selectedVal","prototype","call","o","_value","multiple","getPageSizeOptions","pageSizeOption","areNavigationButtonsDisabled","previousClick","nextClick","GridPaging","Error","pageSizeOptions","pageSizePropChanged","hideHome","hideNav","routes","route","isClientRoute","isDeathStatus","goToMember","environmentCode","isChristmas","excludedHeaderPaths","currentKeyDown","beforeDestroy","paths","guids","teams","siteConfiguration","keyDown","keyUp","isGuid","updateTitle","goToOriginalMember","goToDeathInformation","ctx","handler","reassigning","input","jobSelected","JobSelector","removePrefix","storedSystemMemberId","memberDetails","jobUrl","clientLevel","commitJob","currentJob","allowedStatuses","selectedJobId","memberIdChanged","getJobs","currentClientChanged","LastRefreshed","login","logout","showAdvancedSearchOptions","memberIdDisabled","willResetPage","searchOptions","listFilterOptions","isSearchInvalid","loadedSearch","tableSorted","selectedMember","servicePeriod","Search","NaN","$el","focus","newValue","members","getDebounce","debounce","sortValue","param","isAscending","formatLcpDate","getMonth","getDay","searchNumber","pendingGoto","isNaN","tryNavigateToMember","selectedOptionChanged","MemberButton","routeData","resolve","memberDetailsForCall","_q","selectedNumber","phoneNumberType","callClicked","telephoneTypes","hasExistingNumbers","existingNumbers","capitalize","preferredPhoneNumber","getClockMarkerPos","memberHourAngle","memberMinuteAngle","fullTime","memberTime","selectedUser","resetUser","selectUser","authChecked","securityRequired","securityPassed","securityChecks","fullName","security","keyDates","recordCalls","informedRecording","createDeathNotificationButtonVisible","stopPropagation","switchToDeathNotification","_confirmChanges","dirtyFunction","$root","$children","destroyed","confirmLeaveSetupDirtyFunction","func","setupDirtyFunction","confirmLeaveSetupClearFunction","setupClearFunction","confirmLeavePrompt","next","stop","confirmUnsavedChanges","MemberTelephoneConversation","mixins","ConfirmLeaveDialog","memberApi","numberType","getUsers","localSecondsAngle","transform","localTime","localMinuteAngle","localHourAngle","localTimeUtc","gmt","memberSecondsAngle","numberToSave","hasDate","selectedNumberType","userToSave","verifiedSecurityItems","telNo","copy","minDeg","minRad","PI","cos","sin","postData","internalContactId","internalContactName","internalContactEmail","isInternal","identityChecked","identityAndAuthorisationChecked","canCreateDeathNotification","localStorage","setItem","requiredFieldsChanged","selectedMemberId","filterMethod","selectMember","showAdvancedSearch","advancedMemberSelected","MemberAdvancedSearch","forceMember","selectById","popupMessage","dismissMessage","selectedError","messages","dismissAllMessages","isError","warning","isWarning","permissions","copyMessage","inline","disableClose","closeModal","inverseSecondaryIcon","contentHeight","showFooter","modalOpen","selectedCall","isEditing","onEdit","onDelete","onDuplicate","onSave","onCancel","selectedHistory","desc","copyLinkValue","onUnassignJob","onReturnToIndex","jobSelectionChanged","newJobGuid","reAssignMatches","onAssignJob","callTakenByName","contactType","PhoneViewer","callId","loadCall","phoneCallMemberId","callNumber","duplicateInfo","lastModified","duplicatedDate","userName","isDuplicate","lastModifiedInfoUserId","lastModifiedInfoUsername","findIndex","formatHistoryDate","getDuplicatedMessage","formattedDate","duplicatedBy","originalCallId","duplicatedCallId","getDescription","oldSubject","oldConversation","excludeTime","$options","filters","localDateTime","localDateTimeHMS","encodeURIComponent","getJobById","jobApi","phoneCallId","resetEditState","performDeletedCall","performDuplicatedCall","performAmendedCall","historyChanged","selectedHistoryChanged","JobSelectorPulse","presence","userPhotoUrl","ProfilePhoto","idChanged","schedulerEnabled","scheduledRunNowChanged","scheduledRunNow","emitValue","Scheduler","order","customComponent","tabs","orderedTabs","tab","currentTab","tabClicked","updateRoute","baseRoute","alternateRoutes","activated","findTab","foundTab","changeTab","addTab","removeTab","formattedPath","changeTabFromUrl","TiffViewer","tiff","Tiff","buffer","len","countDirectory","setDirectory","canvas","toCanvas","append","tiffUrlChanged","tiffUrl","getTiffImage","fromName","componentId","toggleActive","dropdownUsers","filterUsers","allowNull","changed","blurred","returnFullObject","opening","allUsers","webQuery","iframed","isBasicValueKeyPairFormat","queryType","formatKey","formatValue","notificationOfDeath","basicInformation","receivingFunds","spouseCivilPartner","marriedOrCivilPartnership","spouseCivilDetails","childDependents","otherDependents","primaryContact","powerOfAttorney","accessCode","userType","member","firstName","isNinoUnknown","isDateOfBirthUnknown","attorney","telephoneNo","documents","downloadDocument","filename","Message","jobSelectionChange","assignedJobId","WebQueryViewer","queryId","getMemberWebQuery","getClientWebQuery","webQueryMemberId","webQueryId","getTitle","fullTitle","capitalizeKey","JobApi","sasLink","webpackContext","req","webpackContextResolve","__webpack_require__","module","exports","ClientCalendar","ClientContext","ClientStats","DataUpdateStats","MemberDocumentStats","FinancialData","GovernanceInformation","JobDateStat","JobDateStats","MemberDemographics","MemberFeedbackScores","MemberInteractions","MemberLogins","MemberMovements","MemberRegistrations","ModellerStats","PageVisits","TransferStats","WebRegistrations","Client","granularity","String","MemberSearchResult","URLSearchParams","args","MSAL_CONFIG","auth","authority","cache","cacheLocation","storeAuthStateInCookie","system","loggerOptions","loggerCallback","level","containsPii","LogLevel","warn","ExternalAuthenticationService","constructor","myMSALObj","PublicClientApplication","account","loginRequest","loginRedirectRequest","redirectStartPage","silentLoginRequest","loginHint","loadAuthModule","getAccount","currentAccounts","getAllAccounts","handleRedirectPromise","setActiveAccount","attemptSsoSilent","ssoSilent","InteractionRequiredAuthError","signInType","loginPopup","loginRedirect","logOutRequest","logoutRedirect","scopes","getTokenRedirect","forceRefresh","redirectUri","silentRequest","interactiveRequest","getActiveAccount","acquireTokenSilent","acquireTokenPopup","acquireTokenRedirect","Config","pageRequiresLogin","hideHeader","hasAcceptedTerms","acceptTerms","App","isIdle","state","idleVue","public","sessionStorage","ClientApi","terms","getItem","info","loggedInChanged","isIdleChanged","clientNameChanged","LoginPage","headerBar","navbar","nativeOn","Home","MemberStatisticsOverview","InprogressPie","CompletedJobsRag","WebRegistrationsGauge","BankBalance","DocumentSearch","pointSelected","selectedSeries","liveJobs","completedJobs","viewByCaseChanged","completedJobsSla","interactions","Membership","scrollTop","InprogressJobs","CompletedPie","MemberInteractionsPie","WebRegistrationsPie","CompletedPieSla","CompletedJobsSla","SchemeGovernance","income","selectedFilter","formatFilter","filteredDocuments","Documents","newPath","documentToDownload","setAttribute","appendChild","revokeObjectURL","orderedClients","gotoClient","ClientList","clientsChanged","memberLoginsByAge","memberLoginsByStatus","viewViewsByPageChanged","modellerPageViews","viewTimesByPageChanged","modellerPageTimes","viewTimesByPage","viewInteractionsByTypeChanged","modellerInteractions","viewInteractionsByType","dataUpdatesByAge","dataUpdatesByDataType","dataUpdatesByStatus","payslipsByStatus","viewByCorrespondenceTypeChanged","correspondenceByStatus","viewByCorrespondenceType","viewByDocumentTypeChanged","documentsByStatus","viewByDocumentType","viewByWebFormTypeChanged","webFormsByStatus","viewByWebFormType","MemberWebsite","Terms","MemberSearchView","memberName","memberSummary","clientWebStatus","gotoSearch","availableDataTypes","calculationServicePeriods","showMemberCalculations","gotoDataType","dataTypeName","dataTypeKey","servicePeriodAvailableDataTypes","selectedCalculationServicePeriod","dateOfRetirement","showCalculation","calculationResult","calculationErrors","getDisplayValue","selectedDataTypeName","MemberDataView","memberStatus","getMemberInfo","getDataTypeData","res","getAvailableDataTypes","getDate","Day","Month","Year","calculationResultData","calculationResults","hasErrors","DynamicUiStringDropdown","VueRouter","MemberActivity","Finance","MemberData","router","mode","base","requireComponent","toWords","regex","toCamelCase","inputArray","currentStr","tempStr","substr","toCamelCaseString","words","componentConfig","componentName","upperFirst","camelCase","More","Highcharts","SolidGauge","HighchartsVue","FontAwesomeIcon","DynamicUiCommonUi","MapChart","eventsHub","IdleVue","eventEmitter","store","idleTime","startAtIdle","clickOutside","lang","thousandsSep","VTooltip","defaultTrigger","minimumFractionDigits","maximumFractionDigits","library","faUser","faPlus","faHome","faUserAlt","faUserClock","faPhone","faLink","faEnvelope","faUsersClass","faMoneyBill","faFileWord","faFilePdf","faFileExcel","faPoundSign","faSearch","faAngry","faTimesCircle","faNewspaper","faDownload","faFileAlt","faSignOutAlt","faUserFriends","faExchange","faFilePlus","faGlobe","faFileDownload","faTimes","faCalendar","faInfo","faFileSignature","faClipboardListCheck","faQuestion","faMoneyCheck","faArrowUp","faArrowDown","faCaretDown","faUserMagnifyingGlass","faArrowLeft","faArrowRight","h","$mount","seriesColourMap","seriesColourIndex","colour","demographics","Active","Pensioner","Dependant","Deferred","pieLegend","onresize","isMobile","matchMedia","matches","Vuex","modules","commonModules","strict","MemberSearchOptions","selectedClient","loadingClients","selectedClientConfiguration","memberSearchOptions","memberSearchResults","s","actions","defaultStartDate","defaultEndDate","mutations","setContext","setFromDate","setToDate","setViewMonthly","setSelectedClient","guid","setClients","setLoadingClients","setSelectedClientConfiguration","configuration","setSearchParams","setSearchResults","clientData","apiMappingForDates","apiMapping","stats","areAnyLoading","setClientData","setLoading","initialise","inProgressCases","completedCases","membershipMovements","memberDocumentsStats","financials","dashboardInProgressCases","dashboardCompletedCases","requireModule","getNamespace","subtree","namespace","shift","modulePath","pop","namespaced","Promise","reject","clear","Guid","ApiOptions","_request","_dataRequest","apiOptions","token","baseUrl","accessToken","errorMessage","errorTitle","isArray","UnverifiedDataSummary","CorrespondenceSummary","ClientHistory","MemberValidationAuditHistory","InsurerReceiptUploadQuery","MemberDataType","MemberSummary","teamId","sortAscending","memberDataType","searchTerm","includeWithdrawn","includeIndividual","includeBulk","historyType","feedbackId","memberDataTypeOverrides","memberDataTypeId","validationRuleDefinitionId","validationId","policyId","InboxApi","attachmentRequest","password","includeAssignedToTeam","assignClientId","documentDetails","JobSummary","Job","JobBilling","scope","getJobsByTeam","getJobsByMemberId","getActiveJobsByMemberId","getMember","getJobsByDefinitionId","jobDefinitionId","getUserJobs","getJobFollowUpPaneDetails","ceaseJob","reactivateJob","completeJob","deleteJob","getActiveJobs","getUpcomingJobs","jobRef","getRecent","referJobInternally","startJob","startScheduledJob","assignMultipleUsersToJob","getJobBilling","changeBilling","comment","changeBillingType","billingType","getBillingTypes","startCorrespondenceJob","assignReferral","unassignReferral","completeInternalReferral","cancelInternalReferral","getExternalContacts","referJobExternally","cancelExternalReferral","completeExternalReferral","getJobHistory","getTargetDateHistory","getTargetDate","searchJobs","queryString","User","updateJobDates","updateJobDescription","updateSsqRequired","isRequired","ssqRequired","getJobDefinition","assignJobToPhoneCall","unassignJobToPhoneCall","unAssignJobFromWebQuery","assignJobToWebQuery","generateAICorrespondence","DataTypeSummary","DataType","MemberDataTypeResponse","DataTypeReview","DataValidation","MemberHistoryItem","DeletedMember","MemberVerificationSummary","BasicMemberVerification","UnverifiedMemberDataSummary","getBaseUrl","dataKey","includeNewDataValidationChecks","memberDataId","MemberDataTypeRequestResponse","isInPayment","memberVerificationId","OverUnderPaymentOptions","AuthenticationService","msalObj","Msal","loginResponse","getToken","tokenResponse","er","authService","validateAuthority","knownAuthorities","origin","idTokenClaims","setLoggedIn","setUser","ManualCalculationDefinition","CalculationsApi","retirementOption","calculations","calculationsDate","getMemberCalculations","calculationsApi","clearCalculations","setCalculations","TeamSummary","TeamsApi","workstreamId","clientMap","teamMap","teamUsers","referralTeams","userClients","team","teamName","loadTeamUsers","getReferralTeams","teamsApi","getTeams","getUserClients","getClients","setclient","setTeam","setCurrentClient","setClientFromName","setReferralTeams","setUserClients","setclients","setTeams","setTeamUsers","SystemList","SystemListApi","listName","titles","countries","getTitles","getCountries","setTitles","setCountries","getList","formattedCountries","SiteConfiguration","ClientWebConfiguration","ClientConfigurationSummary","ClientConfigurationDetails","ClientConfigurationSummaryResponse","getConfiguration","getClientWebConfiguration","getHolidays","getClientConfiguration","getClientConfigurationDataType","setClientConfigurationDataType","getSystemConfiguration","getSystemConfigurationDataType","setSystemConfigurationDataType","site","clientWebSite","ConfigurationApi","setConfiguration","setClientWebConfiguration","correspondence","correspondenceDate","getMemberCorrespondence","clearCorrespondence","setCorrespondence","clientJobs","jobsDate","getPulseMemberJobs","getPulseClientJobs","setJobs","setClientJobs","addError","addMessage","messageId","UserRole","UserDetails","UserTeamAssignment","UsersApi","allUsersByUserId","gettingUsers","userDetails","permissionGroups","userPermissions","hasPermission","permissionName","globalPermission","p","clientSpecificPermisison","getUserDetails","details","setGettingUsers","setAllUsers","u","setUserDetails","validations","validationsDate","getMemberValidations","setValidations","verifications","verificationsDate","getMemberVerifications","setVerifications","formRequest","arrVal","webId","templateUrl","template","instance","now","webFormId","formTypes","formCollections","formEmailTemplates","formStatuses","getFormTypes","webformsApi","forms","emailTemplates","setFormTypes","setFormCollections","setFormEmailTemplates","GET_CLIENTS","GET_CURRENT_CLIENT","SET_CURRENT_CLIENT","GET_TITLES","GET_COUNTRIES","LOAD_TITLES","LOAD_COUNTRIES","GET_SITE_CONFIGURATION","GET_CLIENT_WEB_SITE_CONFIGURATION","PULSE_API_URL","GET_ALL_USERS","GET_ALL_USERS_BY_ID","SET_ALL_USERS","toDataURL","outputFormat","img","Image","crossOrigin","onload","getContext","drawImage","dataURL","onerror","complete","random","v","empty","str","validRegex","super","toJSON","statusCollection","Upcoming","InProgress","Complete","Ceased","Deleted","ReferredExternal","ReferredInternal","statusCollectionColours","statusCollectionIcons","getStatuses","getStatusMap","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","m","deferred","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","getter","__esModule","definition","defineProperty","enumerable","g","globalThis","Function","hasOwnProperty","Symbol","toStringTag","nmd","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","bind","__webpack_exports__"],"sourceRoot":""}