{"version":3,"file":"app-1c5fe78a.xxxxxxxx.bundle.js","mappings":"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","sources":["webpack://iadviser/./src/components/client-profile-modal/client-profile-modal.html","webpack://iadviser/./src/components/client-profile-modal/templates/associations.html","webpack://iadviser/./src/components/client-profile-modal/templates/branch.html","webpack://iadviser/./src/components/client-profile-modal/templates/consent.html","webpack://iadviser/./src/components/client-profile-modal/templates/contact.html","webpack://iadviser/./src/components/client-profile-modal/templates/general.html","webpack://iadviser/./src/components/client-profile-modal/templates/notes.html","webpack://iadviser/./src/components/client-profile-modal/templates/questions.html","webpack://iadviser/./src/components/client-profile-modal/templates/sales.html","webpack://iadviser/./src/components/client-profile-modal/client-profile-modal.css?d168","webpack://iadviser/./src/components/client-profile-modal/client-profile-modal.ts"],"sourcesContent":["// Module\nvar code = \"\";\n// Exports\nexport default code;","// Module\nvar code = \"\";\n// Exports\nexport default code;","// Module\nvar code = \"\\r\\n\";\n// Exports\nexport default code;","// Module\nvar code = \"\\r\\n\";\n// Exports\nexport default code;","// Module\nvar code = \"\\r\\n\";\n// Exports\nexport default code;","// Module\nvar code = \"\\r\\n\";\n// Exports\nexport default code;","// Module\nvar code = \"\\r\\n\";\n// Exports\nexport default code;","// Module\nvar code = \"\";\n// Exports\nexport default code;","// Module\nvar code = \"\";\n// Exports\nexport default code;","// extracted by mini-css-extract-plugin\nexport default {\"btn\":\"btn____p9Nip\",\"btn--flat\":\"btn--flat____qeTgq btn____p9Nip\",\"btn--submit\":\"btn--submit____UZ4vY btn____p9Nip\",\"btn--delete\":\"btn--delete____stbnF btn____p9Nip\",\"btn--link\":\"btn--link____rLLzU btn____p9Nip\",\"btn--inline-text-link\":\"btn--inline-text-link____Sjc8x btn--link____rLLzU btn____p9Nip\",\"btn--footer\":\"btn--footer____YwcfZ btn____p9Nip\",\"btn--footer-submit\":\"btn--footer-submit____y9Oho btn--submit____UZ4vY btn____p9Nip btn--footer____YwcfZ btn____p9Nip\",\"btn--footer-cancel\":\"btn--footer-cancel____dL1jn btn--flat____qeTgq btn____p9Nip btn--footer____YwcfZ btn____p9Nip\",\"btn--footer-delete\":\"btn--footer-delete____mj_H9 btn--delete____stbnF btn____p9Nip btn--footer____YwcfZ btn____p9Nip\",\"btn--qce-dropdown\":\"btn--qce-dropdown____A3s9A btn--footer-submit____y9Oho btn--submit____UZ4vY btn____p9Nip btn--footer____YwcfZ btn____p9Nip\",\"btn--footer-combo\":\"btn--footer-combo____XJlWg btn--footer____YwcfZ btn____p9Nip\",\"btn--lmi-bicalc\":\"btn--lmi-bicalc____wJUSv btn____p9Nip\",\"btn--lmi-risk\":\"btn--lmi-risk____NVamc btn____p9Nip\",\"btn--lmi-policy-comparison\":\"btn--lmi-policy-comparison____sjNcK btn____p9Nip\",\"btn--lmi-policy-coach\":\"btn--lmi-policy-coach____flQAj btn____p9Nip\",\"btn--andrew-nock\":\"btn--andrew-nock____dgiJg btn____p9Nip\",\"btn--construction-cost-consultants\":\"btn--construction-cost-consultants____SqLui btn____p9Nip\",\"btn--5-star\":\"btn--5-star____hyItw btn____p9Nip\",\"btn--thermoscan\":\"btn--thermoscan____BpZhY btn____p9Nip\",\"btn--risk-survey-services\":\"btn--risk-survey-services____KXchs btn____p9Nip\",\"btn--risk-management\":\"btn--risk-management____TOApk btn____p9Nip\",\"btn--lmi-bicalc--disabled\":\"btn--lmi-bicalc--disabled____k3tnN btn--lmi-bicalc____wJUSv btn____p9Nip\",\"btn--lmi-risk--disabled\":\"btn--lmi-risk--disabled____ENlP_ btn--lmi-risk____NVamc btn____p9Nip\",\"btn--lmi-policy-comparison--disabled\":\"btn--lmi-policy-comparison--disabled____vnpwT btn--lmi-policy-comparison____sjNcK btn____p9Nip\",\"btn--initial-insured-location-risk\":\"btn--initial-insured-location-risk_____1ndX btn--flat____qeTgq btn____p9Nip btn____p9Nip\",\"btn--icon\":\"btn--icon____Nj82g btn____p9Nip\",\"badge-pop\":\"badge-pop____WeU2d\",\"btn--icon-no-border\":\"btn--icon-no-border____BEsOd\",\"btn--icon-task\":\"btn--icon-task____NSMFl btn--icon____Nj82g btn____p9Nip\",\"btn--icon-document\":\"btn--icon-document____Mgh7F btn--icon____Nj82g btn____p9Nip\",\"btn--icon-add\":\"btn--icon-add____YtxXg btn--icon____Nj82g btn____p9Nip\",\"btn--add-risk\":\"btn--add-risk____Q0v4r btn--icon____Nj82g btn____p9Nip\",\"btn--icon-close\":\"btn--icon-close____MZUYy btn--icon____Nj82g btn____p9Nip\",\"btn--icon-delete\":\"btn--icon-delete____zVOPk btn--icon____Nj82g btn____p9Nip\",\"btn--icon-download\":\"btn--icon-download____DoT6u btn--icon____Nj82g btn____p9Nip\",\"btn--icon-edit\":\"btn--icon-edit____yD6IZ btn--icon____Nj82g btn____p9Nip\",\"btn--icon-email\":\"btn--icon-email____SRaPm btn--icon____Nj82g btn____p9Nip\",\"btn--icon-download-email\":\"btn--icon-download-email____P1boX btn--icon____Nj82g btn____p9Nip\",\"btn--icon-eye\":\"btn--icon-eye____Nj02w btn--icon____Nj82g btn____p9Nip\",\"btn--icon-eye-slash\":\"btn--icon-eye-slash____cXYeR btn--icon-eye____Nj02w btn--icon____Nj82g btn____p9Nip\",\"btn--icon-folder\":\"btn--icon-folder____X7krS btn--icon____Nj82g btn____p9Nip\",\"btn--icon-folder-locked\":\"btn--icon-folder-locked____n_T8Z btn--icon____Nj82g btn____p9Nip\",\"btn--icon-folder-locked-active\":\"btn--icon-folder-locked-active____Tly8v btn--icon____Nj82g btn____p9Nip\",\"btn--icon-history\":\"btn--icon-history____GVVDQ btn--icon____Nj82g btn____p9Nip\",\"btn--icon-info\":\"btn--icon-info____quims btn--icon____Nj82g btn____p9Nip\",\"btn--icon-link\":\"btn--icon-link____oMqXN btn--icon____Nj82g btn____p9Nip\",\"btn--icon-unlink\":\"btn--icon-unlink____ISq4g btn--icon-delete____zVOPk btn--icon____Nj82g btn____p9Nip\",\"btn--icon-map\":\"btn--icon-map____lYlBE btn--icon____Nj82g btn____p9Nip\",\"btn--icon-more\":\"btn--icon-more____S1vEp btn--icon____Nj82g btn____p9Nip\",\"btn--icon-open-in-new-window\":\"btn--icon-open-in-new-window____msxmL btn--icon____Nj82g btn____p9Nip\",\"btn--icon-favourite--selected\":\"btn--icon-favourite--selected____yGmDr btn--icon____Nj82g btn____p9Nip\",\"btn--icon-favourite--deselected\":\"btn--icon-favourite--deselected____hQN9G btn--icon____Nj82g btn____p9Nip\",\"btn--icon-preview\":\"btn--icon-preview____NntpW btn--icon____Nj82g btn____p9Nip\",\"btn--icon-pre-printed\":\"btn--icon-pre-printed____nzak9 btn--icon____Nj82g btn____p9Nip\",\"btn--icon-print\":\"btn--icon-print____Y5E6U btn--icon____Nj82g btn____p9Nip\",\"btn--icon-save\":\"btn--icon-save____E1xCx btn--icon____Nj82g btn____p9Nip\",\"btn--icon-settings\":\"btn--icon-settings____H8ZME btn--icon____Nj82g btn____p9Nip\",\"btn--icon-show-details\":\"btn--icon-show-details____V99fe btn--icon____Nj82g btn____p9Nip\",\"btn--icon-show-details--alert\":\"btn--icon-show-details--alert____xb8Uq btn--icon____Nj82g btn____p9Nip\",\"btn--icon-show-summary\":\"btn--icon-show-summary_____6FMV btn--icon____Nj82g btn____p9Nip\",\"btn--icon-attachment\":\"btn--icon-attachment____yZzrE btn--icon____Nj82g btn____p9Nip\",\"btn--icon-tag\":\"btn--icon-tag____kvHLR btn--icon____Nj82g btn____p9Nip\",\"btn--icon-undo\":\"btn--icon-undo_____tVpc btn--icon____Nj82g btn____p9Nip\",\"btn--icon-sync\":\"btn--icon-sync____w2Da8 btn--icon____Nj82g btn____p9Nip\",\"btn--icon-arrow-forward\":\"btn--icon-arrow-forward____a3fzn btn--icon____Nj82g btn____p9Nip\",\"btn--aside-collapse\":\"btn--aside-collapse____uKbOh btn--icon____Nj82g btn____p9Nip\",\"btn--icon-expand-more\":\"btn--icon-expand-more____XU4a8 btn--icon____Nj82g btn____p9Nip\",\"btn--icon-expand-less\":\"btn--icon-expand-less____qTEC7 btn--icon____Nj82g btn____p9Nip\",\"btn--icon-general\":\"btn--icon-general____inbp9 btn--icon____Nj82g btn____p9Nip\",\"btn--icon-sales\":\"btn--icon-sales____S1uus btn--icon____Nj82g btn____p9Nip\",\"btn--icon-branch\":\"btn--icon-branch____THqbg btn--icon____Nj82g btn____p9Nip\",\"btn--icon-contact\":\"btn--icon-contact____RFobT btn--icon____Nj82g btn____p9Nip\",\"btn--icon-consent\":\"btn--icon-consent____sbJuX btn--icon____Nj82g btn____p9Nip\",\"btn--icon-questions\":\"btn--icon-questions____h403q btn--icon____Nj82g btn____p9Nip\",\"btn--icon-associated\":\"btn--icon-associated____Cu0BM btn--icon____Nj82g btn____p9Nip\",\"btn--icon-notes\":\"btn--icon-notes____USWWg btn--icon____Nj82g btn____p9Nip\",\"btn--back\":\"btn--back____Heh6I btn____p9Nip\",\"btn--back-to-sign-in\":\"btn--back-to-sign-in____k77MV btn--back____Heh6I btn____p9Nip\",\"btn--icon-advanced-search\":\"btn--icon-advanced-search____x7MIt btn--icon____Nj82g btn____p9Nip\",\"btn--wizard\":\"btn--wizard____wgkle btn____p9Nip\",\"btn--wizard-back\":\"btn--wizard-back____eC4c1 btn--wizard____wgkle btn____p9Nip\",\"btn--wizard-next\":\"btn--wizard-next____b1jNn btn--wizard____wgkle btn____p9Nip\",\"fieldset\":\"fieldset____GtWhl\",\"fieldset-instruction\":\"fieldset-instruction____bgj3T\",\"fieldset--no-padding\":\"fieldset--no-padding____qBpwZ fieldset____GtWhl\",\"fieldset--alt\":\"fieldset--alt____RXkXX fieldset____GtWhl\",\"view-password\":\"view-password____O0FV_\",\"input-search\":\"input-search____Bo4Ir\",\"ia-currency-input\":\"ia-currency-input____XaCd5\",\"ia-currency-negative\":\"ia-currency-negative____aEqMH\",\"select--mini\":\"select--mini____UA7xJ\",\"required-label\":\"required-label____BKltI\",\"alert\":\"alert____VFftO\",\"alert--important\":\"alert--important____HX7xt\",\"input-label\":\"input-label____bYxt6\",\"input-toggle\":\"input-toggle____tmrGS\",\"w-100\":\"w-100____zHoGS\",\"search-input-wrapper\":\"search-input-wrapper____yhRJL\",\"search-input--results\":\"search-input--results_____RoBD\",\"search-input--result\":\"search-input--result____I8NVV\",\"search-input--result--highlighted\":\"search-input--result--highlighted____W7CLa\",\"date-range-selections\":\"date-range-selections____Bn33F\",\"date-arrow-forward\":\"date-arrow-forward____n3qu7\",\"qce-dropdown\":\"qce-dropdown____QzVsy\",\"qce-or\":\"qce-or____KgvqY\",\"qce-dropdown-with-dropdown\":\"qce-dropdown-with-dropdown____l5Trt\",\"qce-vehicle-registration-search\":\"qce-vehicle-registration-search____HFj2h\",\"row-gap\":\"row-gap____HPrU4\",\"row-group\":\"row-group____odrFA\",\"row-group--three\":\"row-group--three____rPdd2 row-group____odrFA\",\"grid-14\":\"grid-14____yXhps\",\"row-group--auto\":\"row-group--auto____4tUkf row-group____odrFA\",\"space\":\"space____oO3P7\",\"display-none--lg\":\"display-none--lg____JPlM3\",\"display-none--md\":\"display-none--md____U6NW9\",\"card\":\"card____iifaX\",\"card-content\":\"card-content____T49Nm\",\"card-heading\":\"card-heading____pau6j\",\"control-group\":\"control-group____kZj9F\",\"label-group\":\"label-group____FHIPT\",\"label-group-item\":\"label-group-item____kv1Ht\",\"constrained-width\":\"constrained-width____TfV3e\",\"button-group\":\"button-group_____qnQT\",\"card--alert\":\"card--alert____9Acyv card____iifaX\",\"card-heading--alert\":\"card-heading--alert____gQi6A card-heading____pau6j\",\"card--status-message\":\"card--status-message____AWZ65\",\"card--status-message--left\":\"card--status-message--left____C2mDS card--status-message____AWZ65\",\"card-heading--sticky-header\":\"card-heading--sticky-header____UBwBK\",\"card-heading--no-icon\":\"card-heading--no-icon____kFh3l card-heading____pau6j\",\"card-heading--bold-title\":\"card-heading--bold-title____tDhDm\",\"table\":\"table____R99br\",\"table-heading-row\":\"table-heading-row____rJMwv\",\"table-row\":\"table-row____h28Ml\",\"table-result-row\":\"table-result-row____MDq4W\",\"break-word\":\"break-word____sWSSP\",\"no-wrap\":\"no-wrap____yepoV\",\"table-result-row--disabled\":\"table-result-row--disabled____p80TO\",\"table-modal\":\"table-modal____qAlf3 table____R99br\",\"table-enhanced\":\"table-enhanced____NINpp\",\"table--no-border-bottom\":\"table--no-border-bottom____tL7IO table____R99br\",\"height-45\":\"height-45____rHPy5\",\"edit-column\":\"edit-column____vh5ed\",\"delete-column\":\"delete-column____fL5qH\",\"date-table-heading\":\"date-table-heading____RjNDF\",\"button-edit\":\"button-edit____N2rje\",\"button-delete\":\"button-delete____YUj7u\",\"table-row-selected\":\"table-row-selected____MIbyo\",\"table-row-alert\":\"table-row-alert____ADjmd\",\"table-filter-row\":\"table-filter-row____N_4w8\",\"table-filter-row--endcap\":\"table-filter-row--endcap____VlkFg\",\"filter-column\":\"filter-column____JWrR9\",\"table-pagination\":\"table-pagination____MDNMT\",\"table-pagination-with-filter\":\"table-pagination-with-filter____YyxDn table-pagination____MDNMT\",\"table-button-group\":\"table-button-group____yeikW\",\"table-child-container\":\"table-child-container____g1nTP\",\"table-child-card\":\"table-child-card____lkENm\",\"child-table--selected-row\":\"child-table--selected-row____P4bgU\",\"child-table\":\"child-table____FQZSl table____R99br\",\"custom-pagination\":\"custom-pagination____UMPE9\",\"pagination-count\":\"pagination-count____pQ385\",\"pagination-button\":\"pagination-button____CbDBn btn____p9Nip\",\"pagination-prev\":\"pagination-prev____Guwad pagination-button____CbDBn btn____p9Nip\",\"pagination-next\":\"pagination-next____Tymts pagination-button____CbDBn btn____p9Nip\",\"pagination-disabled\":\"pagination-disabled_____lU7G pagination-button____CbDBn btn____p9Nip\",\"pagination-prev-disabled\":\"pagination-prev-disabled____h6A7N pagination-disabled_____lU7G pagination-button____CbDBn btn____p9Nip\",\"pagination-next-disabled\":\"pagination-next-disabled____adnAp pagination-disabled_____lU7G pagination-button____CbDBn btn____p9Nip\",\"pagination\":\"pagination____n1xvg\",\"pagination-top\":\"pagination-top____ePBpA pagination____n1xvg\",\"pagination-bottom\":\"pagination-bottom____J6Xdu pagination____n1xvg\",\"pagination-bottom--documents\":\"pagination-bottom--documents____QJEcF pagination-bottom____J6Xdu pagination____n1xvg\",\"table-cell-btn-icon\":\"table-cell-btn-icon____Zlbpe\",\"folder-table\":\"folder-table____Mwh5e table--no-border-bottom____tL7IO table____R99br\",\"doc-table-group--heading\":\"doc-table-group--heading____Yi27Y\",\"doc-table-group--heading-open\":\"doc-table-group--heading-open____MhPU_ doc-table-group--heading____Yi27Y\",\"doc-table-group--heading-with-options\":\"doc-table-group--heading-with-options____w1gP_\",\"constrained-width--folder-name\":\"constrained-width--folder-name____qSPNN constrained-width____TfV3e\",\"disable-entity\":\"disable-entity______lvJ\",\"button-options\":\"button-options____4kpfb\",\"button-options--add\":\"button-options--add____V7s8A button-options____4kpfb\",\"information-icon\":\"information-icon____RbqCc\",\"deleted-icon\":\"deleted-icon____I0Fj3\",\"exclamation-icon\":\"exclamation-icon____YEUyx\",\"success-icon\":\"success-icon____VVutR\",\"text-align-center\":\"text-align-center____tDjJm\",\"word-break\":\"word-break____dZ5gl\",\"btn-group\":\"btn-group____YIkNM\",\"accordion-content\":\"accordion-content____b_Daq\",\"toggle-collapse\":\"toggle-collapse____RyvWr\",\"toggle-collapse--disabled\":\"toggle-collapse--disabled____WOy0_ toggle-collapse____RyvWr\",\"toggle-expand\":\"toggle-expand____WWeYz toggle-collapse____RyvWr\",\"folder\":\"folder____WUNs7\",\"folder-locked\":\"folder-locked____KUNEE folder____WUNs7\",\"yesNo-filter-width\":\"yesNo-filter-width____bLBWP\",\"w-5\":\"w-5____ktFtm\",\"w-10\":\"w-10____LAdO5\",\"w-15\":\"w-15____ZMYB6\",\"w-20\":\"w-20____EJD_j\",\"w-25\":\"w-25____svypu\",\"w-30\":\"w-30____QJ2k5\",\"w-35\":\"w-35____xmwpJ\",\"w-40\":\"w-40____ZKJMh\",\"w-45\":\"w-45____KMRCu\",\"w-50\":\"w-50____jrczI\",\"w-60\":\"w-60____jfwQB\",\"table--sticky-header\":\"table--sticky-header____OPJYt\",\"table--sticky-footer\":\"table--sticky-footer____tgl0e\",\"table--sticky-column\":\"table--sticky-column____udJ4k\",\"table--sticky-column2\":\"table--sticky-column2____zzx9Y table--sticky-column____udJ4k\",\"table--sticky-column-right\":\"table--sticky-column-right____lqQFO table--sticky-column____udJ4k\",\"scrollable-table-container\":\"scrollable-table-container____ELlHF\",\"empty-state\":\"empty-state____wAc0R\",\"empty-state--icon\":\"empty-state--icon____WHcbK\",\"empty-heading\":\"empty-heading____hIpXZ\",\"empty-subheading\":\"empty-subheading____LYl6v\",\"kyc\":\"kyc____xEOfe\",\"advice\":\"advice____H22ag\",\"insured\":\"insured____veTwZ\",\"quotes\":\"quotes____y76bj\",\"policies\":\"policies____hp0ni\",\"claims\":\"claims____WLIf8\",\"tasks\":\"tasks____hviW7\",\"documents\":\"documents____gKv4f\",\"forms\":\"forms____qipBx\",\"view-block\":\"view-block_____06Ft\",\"view-block--heading\":\"view-block--heading____o50KG\",\"view-block--white\":\"view-block--white____bEjc8 view-block_____06Ft\",\"view-block--alert\":\"view-block--alert____isV3b view-block_____06Ft\",\"view-block--success\":\"view-block--success____uXybk view-block_____06Ft\",\"view-block--info\":\"view-block--info____cdK9C view-block_____06Ft\",\"view-block--warning\":\"view-block--warning____JS_Bs view-block_____06Ft view-block--warning____JS_Bs view-block_____06Ft\",\"view-block--alt\":\"view-block--alt____dS35c view-block_____06Ft\",\"view-block--with-icon\":\"view-block--with-icon____EhZzP view-block_____06Ft\",\"view-block-icon\":\"view-block-icon____nvN9O\",\"view-block--warning--with-icon\":\"view-block--warning--with-icon____SEoUJ view-block--warning____JS_Bs view-block_____06Ft\",\"view-block-checkbox\":\"view-block-checkbox____CBzzd view-block_____06Ft\",\"view-block-checkbox--alert\":\"view-block-checkbox--alert____Tt0OZ view-block--alert____isV3b view-block_____06Ft view-block-checkbox____CBzzd view-block_____06Ft\",\"text-view-content\":\"text-view-content____NfEjs\",\"tab-navigation\":\"tab-navigation____vxpM1\",\"has-warnings\":\"has-warnings____YqXdn\",\"tab-selected\":\"tab-selected____ynayJ tab____s8W2H\",\"disabled\":\"disabled____QNQQj\",\"tab\":\"tab____s8W2H\",\"btn--tab-overflow\":\"btn--tab-overflow____De0tG\",\"btn--tab-overflow-left\":\"btn--tab-overflow-left____BoIPq btn--tab-overflow____De0tG\",\"btn--tab-overflow-left-disabled\":\"btn--tab-overflow-left-disabled____fq7Dc btn--tab-overflow-left____BoIPq btn--tab-overflow____De0tG\",\"btn--tab-overflow-right\":\"btn--tab-overflow-right____rOgTG btn--tab-overflow____De0tG\",\"btn--tab-overflow-right-disabled\":\"btn--tab-overflow-right-disabled____qfFxR btn--tab-overflow-right____rOgTG btn--tab-overflow____De0tG\",\"constrained-width--tab\":\"constrained-width--tab____QJVXw constrained-width____TfV3e\",\"ia-modal\":\"ia-modal____tLkUt\",\"ia-modal-inner\":\"ia-modal-inner____M9XzS\",\"ia-modal-inner--context-menu\":\"ia-modal-inner--context-menu____z0Dc5 ia-modal-inner____M9XzS\",\"ia-modal-inner--wide-lg\":\"ia-modal-inner--wide-lg____gUeFK ia-modal-inner____M9XzS\",\"ia-modal-inner--wide-xxl\":\"ia-modal-inner--wide-xxl____rRbYL ia-modal-inner____M9XzS\",\"ia-modal-inner--take-over\":\"ia-modal-inner--take-over____qA6ij ia-modal-inner____M9XzS\",\"fixed-height\":\"fixed-height____iaeuN\",\"takeover-header\":\"takeover-header____kfuWH\",\"logo\":\"logo____w1eXo\",\"logo--broker\":\"logo--broker____CSseM logo____w1eXo\",\"close-search\":\"close-search____wPVDD\",\"ia-modal-content\":\"ia-modal-content____IQv5O\",\"ia-modal-overlay--transparent\":\"ia-modal-overlay--transparent____n3DDb ia-modal____tLkUt\",\"ia-modal-overlay--light-white\":\"ia-modal-overlay--light-white____EQDDg ia-modal____tLkUt\",\"ia-modal-overlay--transparent--light-white-client-nav\":\"ia-modal-overlay--transparent--light-white-client-nav____MBJlW ia-modal-overlay--light-white____EQDDg ia-modal____tLkUt\",\"modal-header\":\"modal-header____IgnFT\",\"modal-footer\":\"modal-footer____YNaBJ modal-header____IgnFT\",\"modal-footer--space-between\":\"modal-footer--space-between____fGSXE modal-footer____YNaBJ modal-header____IgnFT\",\"footer-btn-group\":\"footer-btn-group____s5eG_\",\"header-label\":\"header-label____hAkrG\",\"header-label-icon\":\"header-label-icon____FzVu2 header-label____hAkrG\",\"header-label--alert\":\"header-label--alert____ehNS1 header-label-icon____FzVu2 header-label____hAkrG\",\"header-label--info\":\"header-label--info____UJ8HP header-label-icon____FzVu2 header-label____hAkrG\",\"header-label--settings\":\"header-label--settings____gAZJH header-label-icon____FzVu2 header-label____hAkrG\",\"header-label--accounts\":\"header-label--accounts____JHPaY header-label-icon____FzVu2 header-label____hAkrG\",\"header-label--edit\":\"header-label--edit____Lg3GB header-label-icon____FzVu2 header-label____hAkrG\",\"header-label--download\":\"header-label--download____ntfNy header-label-icon____FzVu2 header-label____hAkrG\",\"header-label--delete\":\"header-label--delete____j88zn header-label-icon____FzVu2 header-label____hAkrG\",\"header-label--history\":\"header-label--history____XwEIM header-label-icon____FzVu2 header-label____hAkrG\",\"header-label--tag\":\"header-label--tag____k4eMB header-label-icon____FzVu2 header-label____hAkrG\",\"header-label--search\":\"header-label--search____RVAzE header-label-icon____FzVu2 header-label____hAkrG\",\"header-label--kyc\":\"header-label--kyc____amL5q header-label-icon____FzVu2 header-label____hAkrG\",\"header-label--advice\":\"header-label--advice____gT_0_ header-label-icon____FzVu2 header-label____hAkrG\",\"header-label--generate-advice\":\"header-label--generate-advice____t9G_C header-label-icon____FzVu2 header-label____hAkrG\",\"header-label--form\":\"header-label--form____thQgj header-label-icon____FzVu2 header-label____hAkrG\",\"header-label--insured\":\"header-label--insured____ByBaR header-label-icon____FzVu2 header-label____hAkrG\",\"header-label--quote\":\"header-label--quote____U41Fl header-label-icon____FzVu2 header-label____hAkrG\",\"header-label--policy\":\"header-label--policy____Kyb9t header-label-icon____FzVu2 header-label____hAkrG\",\"header-label--claim\":\"header-label--claim____qMhFQ header-label-icon____FzVu2 header-label____hAkrG\",\"header-label--fsg\":\"header-label--fsg____DwpIx header-label-icon____FzVu2 header-label____hAkrG\",\"header-label--mandatory-document\":\"header-label--mandatory-document____ZhTgL header-label-icon____FzVu2 header-label____hAkrG\",\"header-label--notification\":\"header-label--notification____VTlRO header-label-icon____FzVu2 header-label____hAkrG\",\"header-label--task\":\"header-label--task____UIEYV header-label-icon____FzVu2 header-label____hAkrG\",\"header-label--contact\":\"header-label--contact____msMkP header-label-icon____FzVu2 header-label____hAkrG header-label--client-profile____x5FrP header-label-icon____FzVu2 header-label____hAkrG\",\"header-label--note\":\"header-label--note____Cxb9D header-label-icon____FzVu2 header-label____hAkrG\",\"header-label--document\":\"header-label--document____nR7i1 header-label-icon____FzVu2 header-label____hAkrG\",\"header-label--email\":\"header-label--email____P7J6A header-label-icon____FzVu2 header-label____hAkrG\",\"header-label--template\":\"header-label--template____vORoM header-label-icon____FzVu2 header-label____hAkrG\",\"header-details\":\"header-details____rO82D\",\"header-detail-item\":\"header-detail-item____n6_jS\",\"header-label--context-menu\":\"header-label--context-menu____m9CME header-label-icon____FzVu2 header-label____hAkrG\",\"context-menu-sep\":\"context-menu-sep____iWKxm\",\"context-menu--one-col\":\"context-menu--one-col____L2u5R\",\"context-menu-disabled\":\"context-menu-disabled____ZHjON\",\"context-menu--two-col\":\"context-menu--two-col____Ech5m context-menu--one-col____L2u5R\",\"context-menu--three-col\":\"context-menu--three-col____uPWVx context-menu--two-col____Ech5m context-menu--one-col____L2u5R\",\"modal-content-copy\":\"modal-content-copy____Bq2Mi\",\"processing-step\":\"processing-step____GCami\",\"processing-step--failed\":\"processing-step--failed____k6seg processing-step____GCami\",\"document--processing\":\"document--processing____mdcwN\",\"eclipse-loader\":\"eclipse-loader____d1qPm\",\"confirmation-content\":\"confirmation-content____RnTMa\",\"ia-modal--search\":\"ia-modal--search____qJrez\",\"view-block--alert--progress-modal\":\"view-block--alert--progress-modal____Ew7Y_ view-block--alert____isV3b view-block_____06Ft\",\"header-label--client-profile\":\"header-label--client-profile____x5FrP header-label-icon____FzVu2 header-label____hAkrG\",\"header-label--general\":\"header-label--general____dxrnl header-label--client-profile____x5FrP header-label-icon____FzVu2 header-label____hAkrG\",\"header-label--sales\":\"header-label--sales____tqAtN header-label--client-profile____x5FrP header-label-icon____FzVu2 header-label____hAkrG\",\"header-label--branch\":\"header-label--branch____RwsrX header-label--client-profile____x5FrP header-label-icon____FzVu2 header-label____hAkrG\",\"header-label--consent\":\"header-label--consent____bxjMq header-label--client-profile____x5FrP header-label-icon____FzVu2 header-label____hAkrG\",\"header-label--questions\":\"header-label--questions____dWrHZ header-label--client-profile____x5FrP header-label-icon____FzVu2 header-label____hAkrG\",\"header-label--associations\":\"header-label--associations____GXbu9 header-label--client-profile____x5FrP header-label-icon____FzVu2 header-label____hAkrG\",\"header-label--notes\":\"header-label--notes____xDhEn header-label--client-profile____x5FrP header-label-icon____FzVu2 header-label____hAkrG\",\"qce__h2\":\"qce__h2____mBqaW\",\"disclosure-wording\":\"disclosure-wording____VTK_w\",\"sales\":\"sales____CPAeP\",\"add-address\":\"add-address____jz9iJ\",\"add-address--same-as\":\"add-address--same-as____Cvolw add-address____jz9iJ\",\"search-width\":\"search-width____q4Vtk\",\"table--associated-search\":\"table--associated-search____Kqhhw table____R99br\",\"client-name-column\":\"client-name-column____leJYL\",\"button-options--edit-history\":\"button-options--edit-history____w6KbN button-options____4kpfb\",\"contact-options\":\"contact-options____UNp7P\",\"post-state-group\":\"post-state-group____v2xZL\",\"post-state-group-nz\":\"post-state-group-nz____No_Hj post-state-group____v2xZL\",\"manual-finder-group\":\"manual-finder-group____zeEQY\",\"ia-address-group\":\"ia-address-group____bYspa\",\"ia-address-group--lat-lon\":\"ia-address-group--lat-lon____Wr8sS\",\"address-grid\":\"address-grid____SBRhO\",\"address-detail\":\"address-detail____JgXPq\",\"preferred-control\":\"preferred-control____JtkSa\",\"contact-control\":\"contact-control____M9wWL\",\"preferred-contact\":\"preferred-contact____U_vAT\",\"preferred-control--email\":\"preferred-control--email____LC6mc preferred-control____JtkSa\",\"preferred-control--email-modal\":\"preferred-control--email-modal____k0Z3q preferred-control____JtkSa\",\"date-column-width\":\"date-column-width____pptHF\",\"constrained-width--client-name\":\"constrained-width--client-name____nuSsu constrained-width____TfV3e\",\"note-width--new\":\"note-width--new____FZLtp\",\"note-width--view\":\"note-width--view____PCf3Y\",\"history--date-column-width\":\"history--date-column-width____nN9fr\",\"button-group--address\":\"button-group--address____TZjW0\",\"label-button-group\":\"label-button-group____bTgkP\",\"btn-group--readOnly\":\"btn-group--readOnly____rRVH_ btn-group____YIkNM\",\"btn-group--image\":\"btn-group--image____jsg_z btn-group____YIkNM\"};","import { errorToast, successToast } from 'resources/utilities/toastr-helper';\r\nimport { autoinject, PLATFORM, useView, computedFrom, BindingEngine, TaskQueue, observable } from 'aurelia-framework';\r\nimport { ModalService } from '../modal/modal-service';\r\nimport { Api } from './api';\r\nimport styles from './client-profile-modal.css';\r\nimport { ApplicationCountryCodes, PartyInstanceType, ProfilePages } from 'resources/enums';\r\nimport { LookupDataService } from 'resources/services/lookup-data';\r\nimport { Note, ClientAssociation, Address, Phone, Email, Website, StaffMember } from 'resources/models/client';\r\nimport { ClientType } from 'resources/enums';\r\nimport { cleanQceModel } from 'resources/clean-qce-model';\r\nimport { momentToISOString, createUTCMoment, momentToString, newMoment } from 'resources/moment-helpers';\r\nimport moment from 'moment';\r\nimport { ValidationControllerFactory, ValidationController, ValidationRules } from 'aurelia-validation';\r\nimport { FormValidationRenderer } from 'resources/form-validation-renderer';\r\nimport { handleQceIssues, validateQce } from 'routes/app-adviser/client/wizard/functions';\r\nimport {\r\n AddressFetchedEventDto,\r\n IaAddressAutocomplete,\r\n} from 'components/ia-address-autocomplete/ia-address-autocomplete';\r\nimport { cloneDeep, differenceBy } from 'lodash';\r\nimport { isValidNumber } from 'libphonenumber-js';\r\nimport { EventAggregator } from 'aurelia-event-aggregator';\r\nimport { eventAggregatorEvents } from 'resources/constants';\r\nimport { ClaimsService } from 'resources/services/claims-service';\r\nimport { parseNumber } from 'components/forms/phone-number/ia-phone-number';\r\nimport { IFieldValueDefiniton } from 'interfaces/lookups/i-field-value-definition';\r\nimport { OperationModel } from 'resources/models/operation';\r\n\r\nPLATFORM.moduleName('./templates/general.html');\r\nPLATFORM.moduleName('./templates/sales.html');\r\nPLATFORM.moduleName('./templates/branch.html');\r\nPLATFORM.moduleName('./templates/contact.html');\r\nPLATFORM.moduleName('./templates/consent.html');\r\nPLATFORM.moduleName('./templates/questions.html');\r\nPLATFORM.moduleName('./templates/associations.html');\r\nPLATFORM.moduleName('./templates/notes.html');\r\n\r\n@autoinject()\r\n@useView(PLATFORM.moduleName('components/client-profile-modal/client-profile-modal.html'))\r\nexport class ClientProfileModal {\r\n public styles = styles;\r\n private validationController: ValidationController;\r\n\r\n private hasClientViewPermission = false;\r\n private hasClientEditPermission = false;\r\n private hasBranchEditPermission = false;\r\n\r\n private clientId;\r\n private profilePageId;\r\n private view;\r\n private isCloseOnly = false;\r\n private isLoading = true;\r\n private appClientType;\r\n private isClient;\r\n private partyInstanceType;\r\n private clientCode;\r\n private clientName;\r\n private clientActive = false;\r\n private isNewMode = false;\r\n private isEditMode = false;\r\n private isDeleteMode = false;\r\n private isSaving = false;\r\n private clientSelected = false;\r\n\r\n private general;\r\n private acceptsDocAndMailHistory;\r\n private vulnerableClientHistory;\r\n private clientType: IFieldValueDefiniton[] = [];\r\n private clientCategory: IFieldValueDefiniton[] = [];\r\n private divisionTypes: IFieldValueDefiniton[] = [];\r\n private introductionType: IFieldValueDefiniton[] = [];\r\n private acceptsElectronicDisclosureDocuments: IFieldValueDefiniton[] = [];\r\n private acceptsMarketingMail: IFieldValueDefiniton[] = [];\r\n private clientDisclosureType: IFieldValueDefiniton[] = [];\r\n private clientDivisionMandatory;\r\n private clientIntroMandatory;\r\n public yesNoTypes;\r\n public vulnerabilityTypes;\r\n @observable() private fileList: FileList;\r\n public canPreviewImage = false;\r\n\r\n private sales;\r\n private clientTypeId;\r\n private salesStatusType: IFieldValueDefiniton[] = [];\r\n private salesRatingType: IFieldValueDefiniton[] = [];\r\n\r\n private advisers = [];\r\n private availableAdvisers = [];\r\n private isAdviserHistoryEdit = false;\r\n private advisersEditModal = [];\r\n\r\n private referrers = [];\r\n private referrersByBranch = [];\r\n private availableReferrers = [];\r\n private isReferrerHistoryEdit = false;\r\n private referrersEditModal = [];\r\n private inactiveReferrer = false;\r\n\r\n private staff = [];\r\n private availableUsers = [];\r\n private staffRoles: IFieldValueDefiniton[] = [];\r\n private availableClientRoles: IFieldValueDefiniton[] = [];\r\n private isStaffEdit = false;\r\n\r\n private addresses = [];\r\n private newAddress;\r\n private isNewAddress = false;\r\n private isAddressEdit = false;\r\n private addressTypes = [];\r\n private countryTypes: IFieldValueDefiniton[] = [];\r\n private addressFinderVM: IaAddressAutocomplete[] = [];\r\n private showAddressFinderValidation = false;\r\n\r\n private phones;\r\n private newPhone;\r\n private isNewPhone = false;\r\n private isPhoneEdit = false;\r\n private phoneTypes = [];\r\n\r\n private emails;\r\n private newEmail;\r\n private isNewEmail = false;\r\n private isEmailEdit = false;\r\n private emailTypes = [];\r\n\r\n private websites;\r\n private newWebsite;\r\n private isNewWebsite = false;\r\n private isWebsiteEdit = false;\r\n private websiteTypes = [];\r\n\r\n private consentTypes = [];\r\n private consentToday = moment().format('DD/MM/YYYY');\r\n private consentClientDisplayText = '';\r\n\r\n private notes;\r\n private noteType: IFieldValueDefiniton[] = [];\r\n\r\n private questions;\r\n\r\n private associations;\r\n private associationTypes: IFieldValueDefiniton[] = [];\r\n private newAssociation = new ClientAssociation();\r\n private associationSearchString = '';\r\n private associatedSearchResults = [];\r\n\r\n private isSearchComplete = false;\r\n private isAssociationEdit = false;\r\n\r\n private inputMaskOptions: any = {\r\n decimalPlaces: 0,\r\n minimumValue: 0,\r\n maximumValue: '999999999',\r\n emptyInputBehavior: 'focus',\r\n };\r\n\r\n private originalVulnerableFlag = null;\r\n\r\n constructor(\r\n private validationControllerFactory: ValidationControllerFactory,\r\n private api: Api,\r\n private modal: ModalService,\r\n private lookupDataService: LookupDataService,\r\n private bindingEngine: BindingEngine,\r\n private taskQueue: TaskQueue,\r\n private ea: EventAggregator,\r\n private claimsService: ClaimsService\r\n ) {\r\n this.validationController = this.validationControllerFactory.createForCurrentScope();\r\n this.validationController.addRenderer(new FormValidationRenderer());\r\n }\r\n\r\n @computedFrom('isLoading', 'isSaving')\r\n get isSaveDisabled() {\r\n return this.isLoading || this.isSaving || this.isReadOnly;\r\n }\r\n\r\n @computedFrom('isLoading', 'isNewMode', 'isEditMode', 'isDeleteMode', 'isSaving', 'isAdviserHistoryEdit', 'isReferrerHistoryEdit')\r\n get isCancelDisabled() {\r\n return this.isLoading || this.isNewMode || this.isEditMode || this.isDeleteMode || this.isSaving || this.isAdviserHistoryEdit || this.isReferrerHistoryEdit;\r\n }\r\n\r\n @computedFrom('hasClientViewPermission', 'hasClientEditPermission')\r\n get isReadOnly() {\r\n return this.hasClientViewPermission && !this.hasClientEditPermission || !this.clientActive;\r\n }\r\n\r\n async activate({ clientId: clientId, profilePageId: profilePageId, appClientType: appClientType, clientTypeId: clientTypeId, clientCode: clientCode, clientName: clientName, clientActive: clientActive }) {\r\n this.clientId = clientId;\r\n this.profilePageId = profilePageId;\r\n this.appClientType = appClientType;\r\n this.isClient = clientTypeId === ClientType.CLIENT;\r\n this.partyInstanceType = this.isClient ? PartyInstanceType.Client : PartyInstanceType.Prospect;\r\n this.clientCode = clientCode;\r\n this.clientName = clientName;\r\n this.clientActive = clientActive;\r\n\r\n (async () => {\r\n\r\n // client\r\n this.hasClientViewPermission = await this.claimsService.hasAsync('IadviserProcessingClientFindClientView');\r\n this.hasClientEditPermission = await this.claimsService.hasAsync('IadviserProcessingClientFindClientEdit');\r\n this.hasBranchEditPermission = await this.claimsService.hasAsync('IadviserProcessingClientBranchHistoryEdit');\r\n\r\n if (this.profilePageId === ProfilePages.GENERAL) {\r\n this.view = 'general';\r\n this.clientType = await this.lookupDataService.clientType();\r\n this.clientCategory = await this.lookupDataService.clientCategory();\r\n this.divisionTypes = await this.lookupDataService.divisionType();\r\n this.introductionType = await this.lookupDataService.introductionType();\r\n this.acceptsElectronicDisclosureDocuments = await this.lookupDataService.acceptsElectronicDisclosureDocuments();\r\n this.acceptsMarketingMail = await this.lookupDataService.acceptsMarketingMail();\r\n this.clientDisclosureType = await this.lookupDataService.clientDisclosureType();\r\n this.general = await this.api.getGeneralDetails(this.clientId);\r\n\r\n if(this.general.vulnerableClientDetail === null) {\r\n this.general.vulnerableClientDetail = {\r\n vulnerableClientId : null,\r\n vulnerableFlag: null,\r\n vulnerableClientTypeId: null,\r\n comment: null\r\n };\r\n }else{\r\n this.originalVulnerableFlag = this.general.vulnerableClientDetail.vulnerableFlag;\r\n }\r\n\r\n this.canPreviewImage = this.general?.headerPageImage?.entityImageId > 0;\r\n\r\n this.acceptsDocAndMailHistory = await this.api.getAcceptsDocsAndMailHistory(this.clientId);\r\n this.vulnerableClientHistory = await this.api.getVulnerableClientHistory(this.clientId);\r\n\r\n this.clientDivisionMandatory = (await this.lookupDataService.systemParameters()).clientDivisionMandatory;\r\n this.clientIntroMandatory = (await this.lookupDataService.systemParameters()).clientIntroMandatory;\r\n this.vulnerabilityTypes = await this.lookupDataService.vulnerabilityTypes();\r\n this.yesNoTypes = await this.lookupDataService.yesNo();\r\n\r\n this.initializeGeneralValidation();\r\n }\r\n\r\n if (this.profilePageId === ProfilePages.SALES) {\r\n this.view = 'sales';\r\n this.isCloseOnly = this.isClient;\r\n\r\n this.salesStatusType = await this.lookupDataService.salesStatusType();\r\n this.salesRatingType = await this.lookupDataService.salesRatingType();\r\n const result = await this.api.getSalesDetails(this.clientId);\r\n this.clientTypeId = result.clientTypeId;\r\n this.sales = result.clientSalesDetail;\r\n }\r\n\r\n if (this.profilePageId === ProfilePages.BRANCH) {\r\n this.view = 'branch';\r\n this.isCloseOnly = true;\r\n\r\n this.advisers = await this.api.getAdvisers(this.clientId);\r\n this.availableAdvisers = (await this.api.activeAdvisersByBranch(this.clientId)).map((obj: any) => ({\r\n id: obj.adviserId,\r\n label: obj.adviserName,\r\n }));\r\n\r\n await this.getReferrers();\r\n this.referrersByBranch = (await this.api.activeReferrersByBranch(this.clientId)).map((obj: any) => ({\r\n id: obj.referralId,\r\n label: obj.referralName\r\n }));\r\n\r\n this.getAvailableReferrers();\r\n\r\n this.staffRoles = await this.lookupDataService.clientRole();\r\n\r\n this.availableUsers = (await this.api.activeUsersByBranch(this.clientId)).map((obj: any) => ({\r\n id: obj.securityUsersId,\r\n label: obj.fullName,\r\n }));\r\n\r\n this.staff = (await this.api.getStaff(this.clientId)).map((staff) => {\r\n staff.roleLabel = this.staffRoles.find((x) => x.id === staff.clientRoleId).label;\r\n return staff;\r\n });\r\n\r\n this.getAvailableClientRoles();\r\n }\r\n\r\n if (this.profilePageId === ProfilePages.CONTACT) {\r\n this.view = 'contact';\r\n this.isCloseOnly = true;\r\n\r\n const addresses = await this.api.getAddresses(this.clientId);\r\n this.phones = (await this.api.getPhones(this.clientId)).sort((a, b) => b.id - a.id);\r\n this.emails = (await this.api.getEmails(this.clientId)).sort((a, b) => b.id - a.id);\r\n this.websites = (await this.api.getWebsites(this.clientId)).sort((a, b) => b.id - a.id);\r\n\r\n this.addressTypes = await this.lookupDataService.fieldTypes('address', this.partyInstanceType);\r\n this.phoneTypes = await this.lookupDataService.fieldTypes('phone', this.partyInstanceType);\r\n this.emailTypes = await this.lookupDataService.fieldTypes('email', this.partyInstanceType);\r\n this.websiteTypes = await this.lookupDataService.fieldTypes('website', this.partyInstanceType);\r\n this.countryTypes = await this.lookupDataService.countryCode();\r\n\r\n // Filter addresses by type\r\n this.addressTypes.forEach((type) => {\r\n const address = addresses.find((address) => address.typeId === type.id);\r\n if(address){\r\n this.addresses.push(address);\r\n }\r\n });\r\n\r\n this.allowDelete();\r\n }\r\n\r\n if (this.profilePageId === ProfilePages.CONSENT) {\r\n this.view = 'consent';\r\n this.consentTypes = await this.lookupDataService.consentTypes();\r\n this.consentClientDisplayText = await this.lookupDataService.consentClientDisplayText();\r\n this.general = await this.api.getGeneralDetails(this.clientId);\r\n this.initializeConsentValidation();\r\n }\r\n\r\n if (this.profilePageId === ProfilePages.FSG) {\r\n this.view = 'fsg';\r\n }\r\n\r\n if (this.profilePageId === ProfilePages.QUESTIONS) {\r\n this.view = 'questions';\r\n this.questions = await this.api.getQuestions(this.clientId);\r\n }\r\n\r\n if (this.profilePageId === ProfilePages.ASSOCIATIONS) {\r\n this.view = 'associations';\r\n this.isCloseOnly = true;\r\n this.associationTypes = await this.lookupDataService.association();\r\n this.associations = await this.api.getAssociations(this.clientId);\r\n }\r\n\r\n if (this.profilePageId === ProfilePages.NOTES) {\r\n this.view = 'notes';\r\n this.isCloseOnly = true;\r\n this.noteType = await this.lookupDataService.fieldTypes('note', this.partyInstanceType);\r\n this.notes = await this.api.getNotes(this.clientId);\r\n }\r\n\r\n this.isLoading = false;\r\n })();\r\n }\r\n\r\n cancel() {\r\n this.modal.hide();\r\n }\r\n\r\n async save(row, type) {\r\n this.isSaving = true;\r\n\r\n let result;\r\n let closeModal = true;\r\n\r\n const isValid = (await this.validationController.validate()).valid;\r\n\r\n if (isValid) {\r\n\r\n try {\r\n if (this.profilePageId === ProfilePages.GENERAL) {\r\n const model = { ...this.general };\r\n\r\n if(model.commonRenewalDate && model.commonRenewalDate.includes('/')){\r\n\r\n if(model.commonRenewalDate === '29/02'){\r\n model.commonRenewalDate = '28/02'\r\n }\r\n\r\n model.commonRenewalDate = momentToISOString(model.commonRenewalDate);\r\n }\r\n\r\n if(model.vulnerableClientDetail.vulnerableFlag && !this.originalVulnerableFlag || !model.vulnerableClientDetail.vulnerableFlag && this.originalVulnerableFlag){\r\n model.vulnerableClientDetail.vulnerableClientId = null;\r\n }\r\n\r\n result = await this.api.updateGeneralDetails(this.clientId, model);\r\n if(result === true){\r\n this.publishClientSaved();\r\n } else {\r\n this.isSaving = false;\r\n errorToast('Client profile could not be saved.', 'Unable to save client profile');\r\n return;\r\n }\r\n }\r\n\r\n if (this.profilePageId === ProfilePages.SALES) {\r\n const model = { ...this.sales };\r\n model.followupDate = momentToISOString(model.followupDate);\r\n model.renewalDate = momentToISOString(model.renewalDate);\r\n\r\n if (this.sales.clientSalesId) {\r\n result = await this.api.updateSalesDetails(this.clientId, model);\r\n } else {\r\n result = await this.api.addSalesDetails(this.clientId, model);\r\n }\r\n }\r\n\r\n if (this.profilePageId === ProfilePages.BRANCH) {\r\n switch (type) {\r\n case 'adviser':\r\n {\r\n let model;\r\n\r\n if(this.isAdviserHistoryEdit){\r\n model = cloneDeep(this.advisersEditModal);\r\n model.forEach(row => {\r\n if (row.validFrom) {\r\n row.validFrom = momentToISOString(row.validFrom);\r\n }\r\n if (row.validTo) {\r\n row.validTo = momentToISOString(row.validTo);\r\n }\r\n });\r\n } else {\r\n model = cloneDeep(this.advisers);\r\n model[0].validFrom = momentToISOString(model[0].validFrom);\r\n if (model[0].validTo) {\r\n model[0].validTo = momentToISOString(model[0].validTo);\r\n }\r\n model[1].validTo = momentToISOString(model[1].validTo);\r\n }\r\n\r\n result = await this.api.saveAdviser(this.clientId, model);\r\n if (!Object.prototype.hasOwnProperty.call(result[0], 'errors')) {\r\n this.advisers = result;\r\n this.isAdviserHistoryEdit = false;\r\n this.isNewMode = false;\r\n this.isSaving = false;\r\n }else{\r\n this.isSaving = false;\r\n return\r\n }\r\n }\r\n\r\n break;\r\n case 'referrer':\r\n {\r\n\r\n let model;\r\n\r\n if(this.isReferrerHistoryEdit){\r\n model = cloneDeep(this.referrersEditModal);\r\n model.forEach(row => {\r\n if (row.validFrom) {\r\n row.validFrom = momentToISOString(row.validFrom);\r\n }\r\n if (row.validTo) {\r\n row.validTo = momentToISOString(row.validTo);\r\n }\r\n });\r\n }else{\r\n model = cloneDeep(this.referrers);\r\n model[0].validFrom = momentToISOString(model[0].validFrom);\r\n if (model[0].validTo) {\r\n model[0].validTo = momentToISOString(model[0].validTo);\r\n }\r\n if (model[1]) {\r\n model[1].validTo = momentToISOString(model[1].validTo);\r\n }\r\n }\r\n\r\n result = await this.api.saveReferral(this.clientId, model);\r\n if (!Object.prototype.hasOwnProperty.call(result[0], 'errors')) {\r\n await this.getReferrers();\r\n this.getAvailableReferrers();\r\n this.referrers = result;\r\n this.isReferrerHistoryEdit = false;\r\n this.isNewMode = false;\r\n this.isSaving = false;\r\n }else {\r\n this.isSaving = false;\r\n return\r\n }\r\n }\r\n\r\n break;\r\n case 'staff':\r\n {\r\n const newStaffMember = this.staff[0];\r\n result = await this.api.saveStaff(this.clientId, newStaffMember);\r\n if (Object.prototype.hasOwnProperty.call(result, 'clientStaffId')) {\r\n newStaffMember.clientStaffId = result.clientStaffId;\r\n newStaffMember.roleLabel = this.staffRoles.find((x) => x.id === result.clientRoleId).label;\r\n newStaffMember.userFullName = result.userFullName;\r\n newStaffMember.isNewMode = false;\r\n this.isNewMode = false;\r\n this.getAvailableClientRoles();\r\n this.removeEditFlags();\r\n }\r\n }\r\n\r\n break;\r\n }\r\n\r\n this.showSuccessToast();\r\n this.publishClientSaved();\r\n closeModal = false;\r\n this.isSaving = false;\r\n return;\r\n }\r\n\r\n if (this.profilePageId === ProfilePages.CONTACT) {\r\n\r\n switch (type) {\r\n case 'address':\r\n if (!row.editModel.manuallyAddLocation && !row.editModel.addressLine1) {\r\n this.showAddressFinderValidation = true;\r\n this.isSaving = false;\r\n return;\r\n }\r\n\r\n result = await this.api.saveAddress(this.clientId, row.editModel);\r\n if (result) {\r\n this.isNewMode = false;\r\n this.isEditMode = false;\r\n\r\n if (row.editModel.id) {\r\n row.typeId = row.editModel.typeId;\r\n row.addressee = row.editModel.addressee;\r\n row.addressLine1 = row.editModel.addressLine1;\r\n row.addressLine2 = row.editModel.addressLine2;\r\n row.addressLine3 = row.editModel.addressLine3;\r\n row.countryCode = row.editModel.countryCode;\r\n row.suburb = row.editModel.suburb;\r\n row.region = row.editModel.region;\r\n row.state = row.editModel.state;\r\n row.postCode = row.editModel.postCode;\r\n row.latitude = row.editModel.latitude;\r\n row.longitude = row.editModel.longitude;\r\n } else {\r\n Object.assign(row, result);\r\n }\r\n\r\n delete row.editModel;\r\n this.allowDelete();\r\n }\r\n break;\r\n case 'phone':\r\n if (row.editModel.preferredFlag) {\r\n this.phones.forEach((x) => (x.preferredFlag = false));\r\n }\r\n\r\n result = await this.api.savePhone(this.clientId, row.editModel);\r\n if (result) {\r\n this.isNewMode = false;\r\n this.isEditMode = false;\r\n\r\n if (row.editModel.id) {\r\n row.countryCode = row.editModel.countryCode;\r\n row.telephoneNumber = parseNumber(row.editModel.telephoneNumber, row.editModel.countryCode) ;\r\n row.preferredFlag = row.editModel.preferredFlag;\r\n row.contact = row.editModel.contact;\r\n } else {\r\n Object.assign(row, result);\r\n }\r\n\r\n delete row.editModel;\r\n this.allowDelete();\r\n }\r\n\r\n break;\r\n case 'email':\r\n if (row.editModel.preferredFlag) {\r\n this.emails.forEach((x) => (x.preferredFlag = false));\r\n }\r\n\r\n result = await this.api.saveEmail(this.clientId, row.editModel);\r\n if (result) {\r\n this.isNewMode = false;\r\n this.isEditMode = false;\r\n\r\n if (row.editModel.id) {\r\n row.emailAddress = row.editModel.emailAddress;\r\n row.preferredFlag = row.editModel.preferredFlag;\r\n row.contact = row.editModel.contact;\r\n } else {\r\n Object.assign(row, result);\r\n }\r\n\r\n delete row.editModel;\r\n this.allowDelete();\r\n }\r\n\r\n break;\r\n case 'website':\r\n result = await this.api.saveWebsite(this.clientId, row.editModel);\r\n if (result) {\r\n this.isNewMode = false;\r\n this.isEditMode = false;\r\n\r\n if (row.editModel.id) {\r\n row.url = row.editModel.url;\r\n } else {\r\n Object.assign(row, result);\r\n }\r\n\r\n delete row.editModel;\r\n this.allowDelete();\r\n }\r\n\r\n break;\r\n }\r\n\r\n if (result) {\r\n row.isEditMode = false;\r\n this.isEditMode = false;\r\n\r\n this.removeEditFlags();\r\n this.publishClientSaved();\r\n }\r\n\r\n closeModal = false;\r\n }\r\n\r\n if (this.profilePageId === ProfilePages.CONSENT) {\r\n\r\n const operations = [\r\n new OperationModel('replace', '/consentRequestSentDate', momentToISOString(this.general.consentRequestSentDate)),\r\n new OperationModel('replace', '/consentReceivedDate', momentToISOString(this.general.consentReceivedDate)),\r\n new OperationModel('replace', '/consentTypeId', this.general.consentTypeId),\r\n new OperationModel('replace', '/consentComment', this.general.consentComment)\r\n ];\r\n\r\n result = await this.api.patch(this.clientId, operations);\r\n\r\n if(result){\r\n this.publishClientSaved();\r\n }\r\n }\r\n\r\n if (this.profilePageId === ProfilePages.QUESTIONS) {\r\n const qceIsValid = validateQce({ questionsAndResponses: this.questions });\r\n if (qceIsValid) {\r\n const cleanedModel = cleanQceModel(this.questions, true);\r\n result = await this.api.updateQuestions(this.clientId, cleanedModel);\r\n handleQceIssues(result, this);\r\n this.publishClientSaved();\r\n }else{\r\n this.isSaving = false;\r\n return;\r\n }\r\n }\r\n\r\n if (this.profilePageId === ProfilePages.ASSOCIATIONS) {\r\n result = await this.api.saveAssociation(this.clientId, row.editModel);\r\n if (result) {\r\n this.isNewMode = false;\r\n this.isEditMode = false;\r\n\r\n if (row.editModel.clientAssociatedClientId) {\r\n row.association = row.editModel.association;\r\n row.comment = row.editModel.comment;\r\n } else {\r\n Object.assign(row, result);\r\n }\r\n\r\n row.isEditMode = false;\r\n delete row.editModel;\r\n this.removeEditFlags();\r\n\r\n this.publishClientSaved();\r\n }\r\n\r\n closeModal = false;\r\n }\r\n\r\n if (this.profilePageId === ProfilePages.NOTES) {\r\n result = await this.api.addNote(this.clientId, row.editModel);\r\n if (result) {\r\n this.isNewMode = false;\r\n this.isEditMode = false;\r\n\r\n Object.assign(row, result);\r\n row.isEditMode = false;\r\n delete row.editModel;\r\n\r\n this.publishClientSaved();\r\n }\r\n closeModal = false;\r\n }\r\n\r\n if (Array.isArray(result) || result === false) {\r\n this.isSaving = false;\r\n } else {\r\n this.isSaving = false;\r\n this.showSuccessToast();\r\n if (closeModal) {\r\n this.modal.hide();\r\n }\r\n }\r\n } catch (error) {\r\n this.isSaving = false;\r\n }\r\n } else {\r\n this.isSaving = false;\r\n }\r\n }\r\n\r\n showSuccessToast() {\r\n successToast('Client profile saved');\r\n }\r\n\r\n cancelEdit(row) {\r\n this.isEditMode = false;\r\n row.isEditMode = false;\r\n\r\n if (this.profilePageId === ProfilePages.CONTACT) {\r\n this.removeEditFlags();\r\n }\r\n\r\n if (this.profilePageId === ProfilePages.ASSOCIATIONS) {\r\n this.removeEditFlags();\r\n }\r\n }\r\n\r\n // general\r\n\r\n private getVulnerableClientHistoryLabel(typeId){\r\n const found = this.vulnerabilityTypes.find((x) => x.id === typeId);\r\n return found ? found.label : '';\r\n }\r\n\r\n private async fileListChanged(fileList: FileList) {\r\n this.taskQueue.queueTask(async () => {\r\n const base64 = await this.blobToBase64(fileList[0]).catch((error) => error);\r\n\r\n if (base64 instanceof Error) {\r\n return;\r\n }\r\n\r\n if(!this.general.headerPageImage){\r\n this.general.headerPageImage = {};\r\n }\r\n\r\n this.general.headerPageImage.entityId = this.clientId;\r\n this.general.headerPageImage.fileName = fileList[0].name;\r\n this.general.headerPageImage.file = base64;\r\n });\r\n }\r\n\r\n private blobToBase64 = (file: Blob) => new Promise((resolve, reject) => {\r\n const fileReader = new FileReader();\r\n fileReader.readAsDataURL(file);\r\n fileReader.onload = () => resolve((fileReader.result as string).split(',')[1]);\r\n fileReader.onerror = (error) => reject(error);\r\n });\r\n\r\n private async previewImage() {\r\n const result = await this.api.preview(this.clientId, this.general.headerPageImage.entityImageId);\r\n if(result){\r\n PLATFORM.global.open(result, '_blank');\r\n }\r\n }\r\n\r\n private deleteImage() {\r\n this.canPreviewImage = false;\r\n\r\n if(this.fileList?.length){\r\n const file = document.querySelector('#imageFileInput') as HTMLInputElement;\r\n file.value = '';\r\n }\r\n\r\n this.general.headerPageImage.fileName = null;\r\n }\r\n\r\n // branch\r\n\r\n private addBranch(type) {\r\n this.isNewMode = true;\r\n\r\n switch (type) {\r\n case 'adviser':\r\n {\r\n if (this.advisers.length > 0) {\r\n this.advisers[0].isValidToReqiuired = true;\r\n }\r\n\r\n const newAdviser = { isNewMode: true };\r\n this.advisers.unshift(newAdviser);\r\n this.initializeAdviserValidation(newAdviser);\r\n }\r\n break;\r\n case 'referrer':\r\n {\r\n if (this.referrers.length > 0) {\r\n this.referrers[0].isValidToReqiuired = true;\r\n\r\n // Setup validToMinDate on currently active row\r\n if (this.referrers[0].validTo) {\r\n const today = `${momentToISOString(newMoment()).split('T')[0]}T00:00:00`;\r\n if (this.referrers[0].validTo > today) {\r\n // future date cannot be changed to past date\r\n this.referrers[0].validToMinDate = today;\r\n } else if (this.referrers[0].validTo < today) {\r\n const yesterday = `${momentToISOString(newMoment().subtract('1', 'day')).split('T')[0]}T00:00:00`;\r\n // past date cannot be changed to current or future date\r\n this.referrers[0].validToMinDate = this.referrers[0].validFrom;\r\n this.referrers[0].validToMaxDate = yesterday;\r\n } else if (this.referrers[0].validTo === today) {\r\n // current date cannot be changed to past or future date\r\n this.referrers[0].validToMinDate = today;\r\n this.referrers[0].validToMaxDate = today;\r\n }\r\n } else {\r\n // past dates cannot be less than validFrom\r\n this.referrers[0].validToMinDate = this.referrers[0].validFrom;\r\n }\r\n }\r\n\r\n const newReferrer = {\r\n isNewMode: true,\r\n };\r\n this.referrers.unshift(newReferrer);\r\n this.initializeReferrerValidation(newReferrer);\r\n }\r\n break;\r\n case 'staff':\r\n {\r\n const newStaffMember = { isNewMode: true };\r\n this.staff.unshift(newStaffMember);\r\n this.initializeStaffValidation(newStaffMember);\r\n this.addEditFlags('staff', this.staff[0])\r\n }\r\n break;\r\n }\r\n }\r\n\r\n private cancelAddBranch(row, type) {\r\n switch (type) {\r\n case 'adviser':\r\n {\r\n this.advisers.shift();\r\n if (this.advisers.length) {\r\n this.advisers[0].validTo = null;\r\n this.advisers[0].isValidToReqiuired = false;\r\n }\r\n }\r\n break;\r\n case 'referrer':\r\n {\r\n this.referrers.shift();\r\n if (this.referrers.length) {\r\n this.referrers[0].isValidToReqiuired = false;\r\n }\r\n }\r\n break;\r\n case 'staff':\r\n {\r\n this.staff.shift();\r\n this.removeEditFlags();\r\n }\r\n break;\r\n }\r\n\r\n this.isNewMode = false;\r\n }\r\n\r\n private editBranch(type) {\r\n\r\n switch (type) {\r\n case 'adviser':\r\n this.isAdviserHistoryEdit = true;\r\n this.advisersEditModal = cloneDeep(this.advisers);\r\n this.initializeAdviserValidation([]);\r\n break;\r\n case 'referrer':\r\n this.isReferrerHistoryEdit = true;\r\n this.referrersEditModal = cloneDeep(this.referrers);\r\n this.initializeReferrerValidation([]);\r\n\r\n break;\r\n }\r\n\r\n }\r\n\r\n private cancelEditBranch(type) {\r\n\r\n switch (type) {\r\n case 'adviser':\r\n this.isAdviserHistoryEdit = false;\r\n this.advisersEditModal = [];\r\n break;\r\n case 'referrer':\r\n this.isReferrerHistoryEdit = false;\r\n this.referrersEditModal = [];\r\n break;\r\n }\r\n\r\n }\r\n\r\n private deleteBranch(row, type) {\r\n this.isDeleteMode = true;\r\n row.confirmDelete = true;\r\n\r\n this.addEditFlags(type, row);\r\n }\r\n\r\n private cancelDeleteBranch(row) {\r\n this.isDeleteMode = false;\r\n row.confirmDelete = false;\r\n\r\n this.removeEditFlags();\r\n }\r\n\r\n private async confirmDeleteBranch(row, type) {\r\n this.isSaving = true;\r\n\r\n let today\r\n let from\r\n let response;\r\n switch (type) {\r\n case 'adviser':\r\n break;\r\n case 'referrer':\r\n today = createUTCMoment(newMoment());\r\n from = createUTCMoment(row.validFrom);\r\n row.validTo = from.isAfter(today) ? row.validFrom : momentToISOString(today.format('DD/MM/YYYY'));\r\n this.save(row, type);\r\n break;\r\n\r\n case 'staff':\r\n response = await this.api.deleteStaff(this.clientId, row.clientStaffId);\r\n if (response) {\r\n const index = this.staff.findIndex((x) => x.clientStaffId === row.clientStaffId);\r\n this.staff.splice(index, 1);\r\n this.getAvailableClientRoles();\r\n this.publishClientSaved()\r\n }\r\n break;\r\n }\r\n\r\n this.isSaving = false;\r\n this.isDeleteMode = false;\r\n row.confirmDelete = false;\r\n this.removeEditFlags();\r\n if(type === 'staff') this.showSuccessToast();\r\n }\r\n\r\n private getAvailableReferrers() {\r\n const usedReferrerIds = this.referrers.filter((x) => x.activeFlag).map((val, i, arr) => ({ id: val.referralId }));\r\n this.availableReferrers = differenceBy(this.referrersByBranch, usedReferrerIds, 'id');\r\n }\r\n\r\n private getAvailableClientRoles() {\r\n const usedStaffIds = this.staff.map((val, i, arr) => ({ id: val.clientRoleId }));\r\n this.availableClientRoles = differenceBy(this.staffRoles, usedStaffIds, 'id');\r\n }\r\n\r\n private calculateNewValidFromDate(row, type) {\r\n if (row.validTo.length === 10 && type === 'adviser') {\r\n this.advisers[0].validFrom = momentToString(createUTCMoment(row.validTo).add('1', 'day'));\r\n }\r\n }\r\n\r\n private async getReferrers(){\r\n this.referrers = await this.api.getReferrers(this.clientId);\r\n if(this.referrers.length){\r\n this.inactiveReferrer = this.referrers.filter((x) => x.activeFlag).filter((x) => !x.referralActive).length > 0;\r\n }\r\n }\r\n\r\n @computedFrom('advisers')\r\n get futureDatedAdviserExists() {\r\n let futureDatedAdviserExists = false;\r\n\r\n this.advisers.forEach((x) => {\r\n if (x.validFrom > momentToISOString(newMoment())) {\r\n futureDatedAdviserExists = true;\r\n }\r\n });\r\n\r\n return futureDatedAdviserExists;\r\n }\r\n\r\n @computedFrom('referrers')\r\n get futureDatedReferrerExists() {\r\n let futureDatedReferrerExists = false;\r\n\r\n this.referrers.forEach((x) => {\r\n if (x.validFrom > momentToISOString(newMoment())) {\r\n futureDatedReferrerExists = true;\r\n }\r\n });\r\n\r\n return futureDatedReferrerExists;\r\n }\r\n\r\n // contact\r\n private addContact(type) {\r\n this.isNewMode = true;\r\n\r\n this.isNewAddress = false;\r\n this.isNewPhone = false;\r\n this.isNewEmail = false;\r\n this.isNewWebsite = false;\r\n\r\n switch (type) {\r\n case 'address':\r\n {\r\n this.showAddressFinderValidation = false;\r\n this.isNewAddress = true;\r\n const newAddress = new Address();\r\n\r\n const usedAddressTypeIds = this.addresses.map((val, i, arr) => {\r\n return { id: val.typeId };\r\n });\r\n\r\n const availableAddressTypes = differenceBy(this.addressTypes, usedAddressTypeIds, 'id');\r\n\r\n if (this.addresses.length < this.addressTypes.length) {\r\n newAddress.countryCode = this.appClientType;\r\n newAddress.typeId = availableAddressTypes[0].id;\r\n newAddress.addressTypeLabel = availableAddressTypes[0].label;\r\n }\r\n\r\n this.addresses.push(newAddress);\r\n this.initializeAddressValidation(newAddress);\r\n this.editContact(\r\n 'address',\r\n this.addresses.find((x) => x.typeId === newAddress.typeId),\r\n );\r\n }\r\n\r\n break;\r\n\r\n case 'phone': {\r\n this.isNewPhone = true;\r\n const newPhone = new Phone();\r\n newPhone.countryCode = this.appClientType;\r\n newPhone.preferredFlag = this.phones.length === 0;\r\n this.phones.unshift(newPhone);\r\n this.initializePhoneValidation(newPhone);\r\n this.editContact('phone', this.phones[0]);\r\n break;\r\n }\r\n\r\n case 'email': {\r\n this.isNewEmail = true;\r\n const newEmail = new Email();\r\n newEmail.preferredFlag = this.emails.length === 0;\r\n this.emails.unshift(newEmail);\r\n this.initializeEmailValidation(newEmail);\r\n this.editContact('email', this.emails[0]);\r\n break;\r\n }\r\n\r\n case 'website': {\r\n this.isNewWebsite = true;\r\n const newWebsite = new Website();\r\n this.websites.unshift(newWebsite);\r\n this.initializeWebsiteValidation(newWebsite);\r\n this.editContact('website', this.websites[0]);\r\n break;\r\n }\r\n }\r\n\r\n this.isNewMode = true;\r\n this.newAddress = new Address();\r\n }\r\n\r\n private cancelAddContact(row, type) {\r\n this.isNewMode = false;\r\n this.isEditMode = false;\r\n\r\n this.isNewAddress = false;\r\n this.isNewPhone = false;\r\n this.isNewEmail = false;\r\n this.isNewWebsite = false;\r\n\r\n switch (type) {\r\n case 'address':\r\n this.addresses.pop();\r\n break;\r\n case 'phone':\r\n this.phones.shift();\r\n break;\r\n case 'email':\r\n this.emails.shift();\r\n break;\r\n case 'website':\r\n this.websites.shift();\r\n break;\r\n }\r\n\r\n this.removeEditFlags();\r\n }\r\n\r\n private editContact(type, row) {\r\n this.isEditMode = true;\r\n row.isEditMode = true;\r\n row.editModel = { ...row };\r\n\r\n switch (type) {\r\n case 'address':\r\n this.showAddressFinderValidation = false;\r\n if (row.editModel.countryCode !== this.appClientType) {\r\n row.editModel.manuallyAddLocation = true;\r\n }\r\n this.initializeAddressValidation(row.editModel);\r\n break;\r\n case 'phone':\r\n if (!row.editModel.id) {\r\n row.editModel.countryCode = this.appClientType;\r\n }\r\n this.initializePhoneValidation(row.editModel);\r\n break;\r\n case 'email':\r\n this.initializeEmailValidation(row.editModel);\r\n break;\r\n case 'website':\r\n this.initializeWebsiteValidation(row.editModel);\r\n break;\r\n }\r\n\r\n this.addEditFlags(type, row);\r\n }\r\n\r\n private deleteContact(type, row) {\r\n this.isDeleteMode = true;\r\n row.confirmDelete = true;\r\n\r\n this.addEditFlags(type, row);\r\n }\r\n\r\n private cancelDeleteContact(row) {\r\n this.isDeleteMode = false;\r\n row.confirmDelete = false;\r\n\r\n this.removeEditFlags();\r\n }\r\n\r\n private async confirmDeleteContact(type, row) {\r\n this.isSaving = true;\r\n\r\n let response;\r\n switch (type) {\r\n case 'address':\r\n response = await this.api.deleteAddress(this.clientId, row);\r\n if (response) {\r\n const index = this.addresses.findIndex((x) => x.id === row.id);\r\n this.addresses.splice(index, 1);\r\n this.isDeleteMode = false;\r\n }\r\n break;\r\n\r\n case 'phone':\r\n response = await this.api.deletePhone(this.clientId, row);\r\n if (response) {\r\n const index = this.phones.findIndex((x) => x.id === row.id);\r\n this.phones.splice(index, 1);\r\n this.isDeleteMode = false;\r\n }\r\n break;\r\n\r\n case 'email':\r\n response = await this.api.deleteEmail(this.clientId, row);\r\n if (response) {\r\n const index = this.emails.findIndex((x) => x.id === row.id);\r\n this.emails.splice(index, 1);\r\n this.isDeleteMode = false;\r\n }\r\n break;\r\n\r\n case 'website':\r\n response = await this.api.deleteWebsite(this.clientId, row);\r\n if (response) {\r\n const index = this.websites.findIndex((x) => x.id === row.id);\r\n this.websites.splice(index, 1);\r\n this.isDeleteMode = false;\r\n }\r\n break;\r\n }\r\n\r\n this.isSaving = false;\r\n this.isDeleteMode = false;\r\n row.confirmDelete = false;\r\n this.removeEditFlags();\r\n this.allowDelete();\r\n this.showSuccessToast();\r\n this.publishClientSaved();\r\n }\r\n\r\n private addEditFlags(type, row) {\r\n switch (type) {\r\n case 'address':\r\n this.isAddressEdit = true;\r\n this.addresses.forEach((address) => {\r\n if (address.id !== row.id) {\r\n address.editInProgess = true;\r\n }\r\n });\r\n break;\r\n\r\n case 'phone':\r\n this.isPhoneEdit = true;\r\n this.phones.forEach((phone) => {\r\n if (phone.id !== row.id) {\r\n phone.editInProgess = true;\r\n }\r\n });\r\n break;\r\n\r\n case 'email':\r\n this.isEmailEdit = true;\r\n this.emails.forEach((email) => {\r\n if (email.id !== row.id) {\r\n email.editInProgess = true;\r\n }\r\n });\r\n break;\r\n\r\n case 'website':\r\n this.isWebsiteEdit = true;\r\n this.websites.forEach((website) => {\r\n if (website.id !== row.id) {\r\n website.editInProgess = true;\r\n }\r\n });\r\n break;\r\n\r\n case 'staff':\r\n this.isStaffEdit = true;\r\n this.staff.forEach((staff) => {\r\n if (staff.clientStaffId !== row.clientStaffId) {\r\n staff.editInProgess = true;\r\n }\r\n });\r\n break;\r\n\r\n case 'association':\r\n this.isAssociationEdit = true;\r\n this.associations.forEach((association) => {\r\n if (association.clientAssociatedClientId !== row.clientAssociatedClientId) {\r\n association.editInProgess = true;\r\n }\r\n });\r\n break;\r\n }\r\n }\r\n\r\n private removeEditFlags() {\r\n // Address\r\n this.isAddressEdit = false;\r\n this.addresses?.forEach((address) => {\r\n address.editInProgess = false;\r\n });\r\n\r\n // Phone\r\n this.isPhoneEdit = false;\r\n this.phones?.forEach((phone) => {\r\n phone.editInProgess = false;\r\n });\r\n\r\n // Email\r\n this.isEmailEdit = false;\r\n this.emails?.forEach((email) => {\r\n email.editInProgess = false;\r\n });\r\n\r\n // Website\r\n this.isWebsiteEdit = false;\r\n this.websites?.forEach((website) => {\r\n website.editInProgess = false;\r\n });\r\n\r\n // Staff\r\n this.isStaffEdit = false;\r\n this.staff?.forEach((staff) => {\r\n staff.editInProgess = false;\r\n });\r\n\r\n // Association\r\n this.isAssociationEdit = false;\r\n this.associations?.forEach((association) => {\r\n association.editInProgess = false;\r\n });\r\n }\r\n\r\n private allowDelete() {\r\n this.addresses = this.addresses.map((address) => {\r\n const addressType = this.addressTypes.find((x) => x.id === address.typeId);\r\n address.allowDelete = addressType && addressType.mandatory !== true;\r\n address.addressTypeLabel = addressType.label;\r\n address.country = this.countryTypes.find((x) => x.id === address.countryCode).label;\r\n return address;\r\n });\r\n\r\n this.calculateAllowDelete(this.phones, this.phoneTypes[0].mandatory);\r\n this.calculateAllowDelete(this.emails, this.emailTypes[0].mandatory);\r\n this.calculateAllowDelete(this.websites, this.websiteTypes[0].mandatory);\r\n }\r\n\r\n private calculateAllowDelete(items, isMandatory: boolean) {\r\n const itemCount = items.length;\r\n const savedItemCount = items.filter((a) => a.id > 0).length;\r\n return items.map((item) => {\r\n item.allowDelete = false;\r\n\r\n if (itemCount === 1) {\r\n item.allowDelete = !isMandatory;\r\n } else if (!item.id) {\r\n item.allowDelete = true;\r\n } else {\r\n if (savedItemCount > 1 && !item.preferredFlag) {\r\n item.allowDelete = true;\r\n }\r\n }\r\n\r\n return item;\r\n });\r\n }\r\n\r\n private addressFetched(fetched: AddressFetchedEventDto, row) {\r\n row.editModel.addressLine1 = fetched.address.addressLine1;\r\n row.editModel.addressLine2 = fetched.address.addressLine2;\r\n row.editModel.addressLine3 = fetched.address.addressLine3;\r\n row.editModel.countryCode = fetched.address.countryCode;\r\n row.editModel.suburb = fetched.address.suburb;\r\n row.editModel.region = fetched.address.region;\r\n row.editModel.state = fetched.address.state;\r\n row.editModel.postCode = fetched.address.postCode;\r\n row.editModel.latitude = fetched.address.latitude;\r\n row.editModel.longitude = fetched.address.longitude;\r\n }\r\n\r\n private clearAddressModel(row, index) {\r\n // only clear address fields when manuallyAddLocation is uncheck\r\n // this forces user to use the addressFinder which will repopulate lat/lon\r\n if (row.editModel.manuallyAddLocation) {\r\n row.editModel.addressLine1 = undefined;\r\n row.editModel.addressLine2 = undefined;\r\n row.editModel.addressLine3 = undefined;\r\n row.editModel.suburb = undefined;\r\n row.editModel.region = undefined;\r\n row.editModel.state = undefined;\r\n row.editModel.postCode = undefined;\r\n row.editModel.latitude = undefined;\r\n row.editModel.longitude = undefined;\r\n\r\n setTimeout(() => {\r\n if (this?.addressFinderVM?.length > 0 && this.addressFinderVM[index]) {\r\n this.addressFinderVM[index].iaAddressInput.focus();\r\n }\r\n }, 120);\r\n }\r\n\r\n // clear lat/lon when user checks add address manully\r\n if (!row.editModel.manuallyAddLocation) {\r\n if (this.addressFinderVM[index]) {\r\n this.addressFinderVM[index].clearInput();\r\n }\r\n row.editModel.latitude = undefined;\r\n row.editModel.longitude = undefined;\r\n this.showAddressFinderValidation = false;\r\n }\r\n }\r\n\r\n private countryChanged(address) {\r\n this.taskQueue.queueMicroTask(() => {\r\n if (address.editModel.countryCode !== this.appClientType) {\r\n address.editModel.manuallyAddLocation = true;\r\n\r\n // clear lat/lon\r\n address.editModel.latitude = undefined;\r\n address.editModel.longitude = undefined;\r\n }\r\n });\r\n }\r\n\r\n private copyAddress() {\r\n if(this.addressFinderVM[1]?.iaAddressInput?.value){\r\n this.addressFinderVM[1].iaAddressInput.value = null;\r\n }\r\n\r\n const firstAddress = this.addresses[0];\r\n const secondAddress = this.addresses[1];\r\n\r\n secondAddress.editModel.addressee = firstAddress.addressee;\r\n secondAddress.editModel.addressLine1 = firstAddress.addressLine1;\r\n secondAddress.editModel.addressLine2 = firstAddress.addressLine2;\r\n secondAddress.editModel.addressLine3 = firstAddress.addressLine3;\r\n secondAddress.editModel.suburb = firstAddress.suburb;\r\n secondAddress.editModel.region = firstAddress.region;\r\n secondAddress.editModel.state = firstAddress.state;\r\n secondAddress.editModel.postCode = firstAddress.postCode;\r\n secondAddress.editModel.countryCode = firstAddress.countryCode;\r\n secondAddress.editModel.latitude = firstAddress.latitude;\r\n secondAddress.editModel.longitude = firstAddress.longitude;\r\n }\r\n\r\n // Association\r\n private addAssociation() {\r\n this.associationSearchString = '';\r\n this.associatedSearchResults = [];\r\n this.isSearchComplete = false;\r\n\r\n this.isNewMode = true;\r\n const newAssociation = new ClientAssociation();\r\n this.associations.unshift(newAssociation);\r\n this.initializeAssociatedValidation(newAssociation);\r\n this.editAssociation(this.associations[0]);\r\n }\r\n\r\n private cancelAddAssociation() {\r\n this.isNewMode = false;\r\n this.isEditMode = false;\r\n this.clientSelected = false;\r\n this.associations.shift();\r\n this.removeEditFlags();\r\n }\r\n\r\n private async associationSearch() {\r\n if (this.associationSearchString.trim() !== '') {\r\n const response = await this.api.clientSearch(this.clientId, this.associationSearchString);\r\n this.associatedSearchResults = response.filter((r) => {\r\n return !this.associations.find((x) => x.associatedClientId === r.entityId);\r\n });\r\n this.isSearchComplete = true;\r\n }\r\n }\r\n\r\n handleSearchKeypress($event: KeyboardEvent) {\r\n if ($event.key === 'Enter') {\r\n this.associationSearch();\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n private clearSearchResults() {\r\n this.associationSearchString = '';\r\n this.associatedSearchResults = [];\r\n this.isSearchComplete = false;\r\n }\r\n\r\n private async associationClicked(item) {\r\n this.associationSearchString = '';\r\n this.associatedSearchResults = [];\r\n\r\n const newAssociation = this.associations[0].editModel;\r\n newAssociation.clientId = this.clientId;\r\n newAssociation.associatedClientId = item.entityId;\r\n newAssociation.clientName = item.entityName;\r\n\r\n this.clientSelected = true;\r\n this.isSearchComplete = false;\r\n }\r\n\r\n private async editAssociation(row) {\r\n this.isEditMode = true;\r\n row.isEditMode = true;\r\n row.editModel = { ...row };\r\n\r\n this.initializeAssociatedValidation(row.editModel);\r\n this.addEditFlags('association', row);\r\n }\r\n\r\n private deleteAssociation(association) {\r\n this.isDeleteMode = true;\r\n association.confirmDelete = true;\r\n this.addEditFlags('association', association);\r\n }\r\n\r\n private async confirmDeleteAssociation(association) {\r\n this.isSaving = true;\r\n\r\n const response = await this.api.deleteAssociation(this.clientId, association.clientAssociatedClientId);\r\n if (response) {\r\n const index = this.associations.findIndex(\r\n (x) => x.clientAssociatedClientId === association.clientAssociatedClientId,\r\n );\r\n this.associations.splice(index, 1);\r\n\r\n this.isSaving = false;\r\n this.isDeleteMode = false;\r\n this.showSuccessToast();\r\n this.removeEditFlags();\r\n\r\n this.publishClientSaved();\r\n }\r\n }\r\n\r\n private cancelDeleteAssociation(association) {\r\n this.isDeleteMode = false;\r\n association.confirmDelete = false;\r\n this.removeEditFlags();\r\n }\r\n\r\n // Notes\r\n private addNote() {\r\n this.isNewMode = true;\r\n this.isEditMode = true;\r\n\r\n const newNote = new Note();\r\n this.notes.unshift(newNote);\r\n newNote.isEditMode = true;\r\n newNote.editModel = { ...newNote };\r\n this.initializeNoteValidation(newNote.editModel);\r\n }\r\n\r\n private cancelAddNote() {\r\n this.isNewMode = false;\r\n this.isEditMode = false;\r\n this.notes.shift();\r\n }\r\n\r\n private noteTypeDisplayValue(typeId: number) {\r\n return this.noteType.find((t) => t.id === typeId)?.label;\r\n }\r\n\r\n private publishClientSaved(){\r\n this.ea.publish(eventAggregatorEvents.clientSaved);\r\n }\r\n\r\n getAddressTypeLabel(id) {\r\n return this.addressTypes.find((x) => x.id === id)?.label;\r\n }\r\n\r\n // Validation\r\n private initializeGeneralValidation() {\r\n ValidationRules.off(this);\r\n\r\n ValidationRules.ensure((x: any) => x.clientName)\r\n .required()\r\n .ensure((x: any) => x.shortName)\r\n .required()\r\n .ensure((x: any) => x.salutation)\r\n .required()\r\n .when(() => this.general.clientTypeId === ClientType.CLIENT)\r\n .ensure((x: any) => x.contact)\r\n .required()\r\n .when(() => this.general.clientTypeId === ClientType.CLIENT)\r\n .ensure((x: any) => x.clientCategoryId)\r\n .required()\r\n .ensure((x: any) => x.introductionTypeId)\r\n .required()\r\n .when((x: any) => this.clientIntroMandatory)\r\n .ensure((x: any) => x.divisionId)\r\n .required()\r\n .when((x: any) => this.clientDivisionMandatory)\r\n .ensure((x: any) => x.acceptsElectronicDisclosureDocuments)\r\n .required()\r\n .ensure((x: any) => x.acceptsMarketingMail)\r\n .required()\r\n .on(this.general);\r\n\r\n ValidationRules.ensure((x: any) => x.vulnerableFlag)\r\n .required()\r\n .ensure((x: any) => x.vulnerableClientTypeId)\r\n .required()\r\n .when((x: any) => x.vulnerableFlag)\r\n .on(this.general.vulnerableClientDetail);\r\n }\r\n\r\n private customRules() {\r\n ValidationRules.customRule(\r\n 'checkValidFromDate',\r\n (value, obj) =>\r\n obj.validFrom !== null &&\r\n obj.validFrom !== '' &&\r\n typeof obj.validFrom !== 'undefined' &&\r\n (obj.validFrom.includes('/') || obj.validFrom.includes('T')),\r\n '',\r\n );\r\n\r\n ValidationRules.customRule(\r\n 'checkValidToDate',\r\n (value, obj) =>\r\n obj.validTo !== null &&\r\n obj.validTo !== '' &&\r\n typeof obj.validTo !== 'undefined' &&\r\n (obj.validTo.includes('/') || obj.validTo.includes('T')),\r\n '',\r\n );\r\n }\r\n\r\n private initializeAdviserValidation(newAdviser) {\r\n ValidationRules.off(this);\r\n this.customRules();\r\n\r\n if(this.isAdviserHistoryEdit){\r\n this.advisersEditModal.forEach(adviser => {\r\n ValidationRules.ensure((x: any) => x.validFrom)\r\n .satisfiesRule('checkValidFromDate')\r\n .on(adviser);\r\n });\r\n }else{\r\n ValidationRules.ensure((x: any) => x.adviserId)\r\n .required()\r\n .on(newAdviser);\r\n\r\n ValidationRules.ensure((x: any) => x.validTo)\r\n .satisfiesRule('checkValidToDate')\r\n .on(this.advisers[1]);\r\n }\r\n }\r\n\r\n private initializeReferrerValidation(newReferrer) {\r\n ValidationRules.off(this);\r\n this.customRules();\r\n\r\n if(this.isReferrerHistoryEdit){\r\n this.referrersEditModal.forEach(referrer => {\r\n ValidationRules.ensure((x: any) => x.validFrom)\r\n .satisfiesRule('checkValidFromDate')\r\n .on(referrer);\r\n });\r\n }else{\r\n ValidationRules.ensure((x: any) => x.referralId)\r\n .required()\r\n .ensure((x: any) => x.validFrom)\r\n .satisfiesRule('checkValidFromDate')\r\n .on(newReferrer);\r\n }\r\n }\r\n\r\n private initializeStaffValidation(newStaffMember) {\r\n ValidationRules.off(this);\r\n\r\n ValidationRules.ensure((x: StaffMember) => x.clientRoleId)\r\n .required()\r\n .ensure((x: StaffMember) => x.securityUsersId)\r\n .required()\r\n .on(newStaffMember);\r\n }\r\n\r\n private initializeAddressValidation(model) {\r\n ValidationRules.off(this);\r\n\r\n ValidationRules\r\n .ensure((x: Address) => x.addressLine1)\r\n .required()\r\n .when((obj: any) => obj.manuallyAddLocation)\r\n\r\n .ensure((x: Address) => x.suburb)\r\n .required()\r\n .when((obj: any) => {\r\n if(this.appClientType === ApplicationCountryCodes.AUSTRALIA){\r\n return obj.countryCode === ApplicationCountryCodes.AUSTRALIA && obj.manuallyAddLocation\r\n }\r\n })\r\n .ensure((x: Address) => x.state)\r\n .required()\r\n .when((obj: any) => {\r\n if(this.appClientType === ApplicationCountryCodes.AUSTRALIA){\r\n return obj.countryCode === ApplicationCountryCodes.AUSTRALIA && obj.manuallyAddLocation\r\n }\r\n })\r\n .ensure((x: Address) => x.region)\r\n .required()\r\n .when((obj: any) => {\r\n if(this.appClientType === ApplicationCountryCodes.NEW_ZEALAND){\r\n return obj.countryCode === ApplicationCountryCodes.NEW_ZEALAND && obj.manuallyAddLocation\r\n }\r\n })\r\n .ensure((x: Address) => x.postCode)\r\n .required()\r\n .when((obj: any) => {\r\n if(this.appClientType === ApplicationCountryCodes.AUSTRALIA){\r\n return obj.countryCode === ApplicationCountryCodes.AUSTRALIA && obj.manuallyAddLocation\r\n }else if(this.appClientType === ApplicationCountryCodes.NEW_ZEALAND){\r\n return obj.countryCode === ApplicationCountryCodes.NEW_ZEALAND && obj.manuallyAddLocation\r\n }\r\n })\r\n\r\n .on(model);\r\n }\r\n\r\n private initializePhoneValidation(model) {\r\n ValidationRules.off(this);\r\n\r\n ValidationRules.customRule(\r\n 'isValidTelephoneNumber',\r\n (value, obj) => typeof value !== 'undefined' && value !== null && isValidNumber(value, obj.countryCode),\r\n '',\r\n );\r\n\r\n ValidationRules.ensure((x: Phone) => x.telephoneNumber)\r\n .required()\r\n .satisfiesRule('isValidTelephoneNumber')\r\n .on(model);\r\n }\r\n\r\n private initializeEmailValidation(model) {\r\n ValidationRules.off(this);\r\n\r\n ValidationRules.ensure((x: Email) => x.emailAddress)\r\n .required()\r\n .email()\r\n .on(model);\r\n }\r\n\r\n private initializeWebsiteValidation(model) {\r\n ValidationRules.off(this);\r\n\r\n ValidationRules.customRule('isValidUrl', (value, obj) => typeof value !== 'undefined' && (value.substr(0,7) === 'http://' || value.substr(0,8) === 'https://' ) , 'Url must start with either http:// or https://');\r\n\r\n ValidationRules.ensure((x: Website) => x.url)\r\n .satisfiesRule('isValidUrl')\r\n .on(model);\r\n }\r\n\r\n private initializeConsentValidation() {\r\n ValidationRules.off(this);\r\n\r\n ValidationRules.ensure((x: any) => x.consentTypeId)\r\n .required()\r\n .when(() => this.general.consentReceivedDate)\r\n .on(this.general);\r\n }\r\n\r\n private initializeAssociatedValidation(model) {\r\n ValidationRules.off(this);\r\n\r\n ValidationRules.ensure((x: ClientAssociation) => x.clientName)\r\n .required()\r\n .on(model);\r\n }\r\n\r\n private initializeNoteValidation(newNote) {\r\n ValidationRules.off(this);\r\n\r\n ValidationRules.ensure((x: Note) => x.typeId)\r\n .required()\r\n .ensure((x: Note) => x.note)\r\n .required()\r\n .on(newNote);\r\n }\r\n}\r\n"],"names":["validationControllerFactory","api","modal","lookupDataService","bindingEngine","taskQueue","ea","claimsService","styles","hasClientViewPermission","hasClientEditPermission","hasBranchEditPermission","isCloseOnly","isLoading","clientActive","isNewMode","isEditMode","isDeleteMode","isSaving","clientSelected","clientType","clientCategory","divisionTypes","introductionType","acceptsElectronicDisclosureDocuments","acceptsMarketingMail","clientDisclosureType","canPreviewImage","salesStatusType","salesRatingType","advisers","availableAdvisers","isAdviserHistoryEdit","advisersEditModal","referrers","referrersByBranch","availableReferrers","isReferrerHistoryEdit","referrersEditModal","inactiveReferrer","staff","availableUsers","staffRoles","availableClientRoles","isStaffEdit","addresses","isNewAddress","isAddressEdit","addressTypes","countryTypes","addressFinderVM","showAddressFinderValidation","isNewPhone","isPhoneEdit","phoneTypes","isNewEmail","isEmailEdit","emailTypes","isNewWebsite","isWebsiteEdit","websiteTypes","consentTypes","consentToday","format","consentClientDisplayText","noteType","associationTypes","newAssociation","associationSearchString","associatedSearchResults","isSearchComplete","isAssociationEdit","inputMaskOptions","decimalPlaces","minimumValue","maximumValue","emptyInputBehavior","originalVulnerableFlag","blobToBase64","file","Promise","resolve","reject","fileReader","FileReader","readAsDataURL","onload","result","split","onerror","error","this","validationController","createForCurrentScope","addRenderer","isReadOnly","activate","clientId","profilePageId","appClientType","clientTypeId","clientCode","clientName","isClient","CLIENT","partyInstanceType","Client","Prospect","hasAsync","GENERAL","view","divisionType","getGeneralDetails","general","vulnerableClientDetail","vulnerableClientId","vulnerableFlag","vulnerableClientTypeId","comment","headerPageImage","entityImageId","getAcceptsDocsAndMailHistory","acceptsDocAndMailHistory","getVulnerableClientHistory","vulnerableClientHistory","systemParameters","clientDivisionMandatory","clientIntroMandatory","vulnerabilityTypes","yesNo","yesNoTypes","initializeGeneralValidation","SALES","getSalesDetails","sales","clientSalesDetail","BRANCH","getAdvisers","activeAdvisersByBranch","map","obj","id","adviserId","label","adviserName","getReferrers","activeReferrersByBranch","referralId","referralName","getAvailableReferrers","clientRole","activeUsersByBranch","securityUsersId","fullName","getStaff","roleLabel","find","x","clientRoleId","getAvailableClientRoles","CONTACT","getAddresses","getPhones","phones","sort","a","b","getEmails","emails","getWebsites","websites","fieldTypes","countryCode","forEach","type","address","typeId","push","allowDelete","CONSENT","initializeConsentValidation","FSG","QUESTIONS","getQuestions","questions","ASSOCIATIONS","association","getAssociations","associations","NOTES","getNotes","notes","cancel","hide","save","row","closeModal","validate","valid","model","commonRenewalDate","includes","updateGeneralDetails","publishClientSaved","followupDate","renewalDate","clientSalesId","updateSalesDetails","addSalesDetails","cloneDeep","validFrom","validTo","saveAdviser","Object","prototype","hasOwnProperty","call","saveReferral","newStaffMember","saveStaff","clientStaffId","userFullName","removeEditFlags","showSuccessToast","editModel","manuallyAddLocation","addressLine1","saveAddress","addressee","addressLine2","addressLine3","suburb","region","state","postCode","latitude","longitude","assign","preferredFlag","savePhone","telephoneNumber","parseNumber","contact","saveEmail","emailAddress","saveWebsite","url","operations","consentRequestSentDate","consentReceivedDate","consentTypeId","consentComment","patch","questionsAndResponses","cleanedModel","updateQuestions","saveAssociation","clientAssociatedClientId","addNote","Array","isArray","cancelEdit","getVulnerableClientHistoryLabel","found","fileListChanged","fileList","queueTask","catch","base64","Error","entityId","fileName","name","previewImage","preview","PLATFORM","global","open","deleteImage","length","document","querySelector","value","addBranch","isValidToReqiuired","newAdviser","unshift","initializeAdviserValidation","today","validToMinDate","yesterday","subtract","validToMaxDate","newReferrer","initializeReferrerValidation","initializeStaffValidation","addEditFlags","cancelAddBranch","shift","editBranch","cancelEditBranch","deleteBranch","confirmDelete","cancelDeleteBranch","confirmDeleteBranch","from","isAfter","deleteStaff","index","findIndex","splice","usedReferrerIds","filter","activeFlag","val","i","arr","differenceBy","usedStaffIds","calculateNewValidFromDate","add","referralActive","futureDatedAdviserExists","futureDatedReferrerExists","addContact","usedAddressTypeIds","availableAddressTypes","addressTypeLabel","initializeAddressValidation","editContact","newPhone","initializePhoneValidation","newEmail","initializeEmailValidation","newWebsite","initializeWebsiteValidation","newAddress","cancelAddContact","pop","deleteContact","cancelDeleteContact","confirmDeleteContact","deleteAddress","deletePhone","deleteEmail","deleteWebsite","editInProgess","phone","email","website","addressType","mandatory","country","calculateAllowDelete","items","isMandatory","itemCount","savedItemCount","item","addressFetched","fetched","clearAddressModel","undefined","setTimeout","iaAddressInput","focus","clearInput","countryChanged","queueMicroTask","copyAddress","firstAddress","secondAddress","addAssociation","initializeAssociatedValidation","editAssociation","cancelAddAssociation","associationSearch","trim","clientSearch","response","r","associatedClientId","handleSearchKeypress","$event","key","clearSearchResults","associationClicked","entityName","deleteAssociation","confirmDeleteAssociation","cancelDeleteAssociation","newNote","initializeNoteValidation","cancelAddNote","noteTypeDisplayValue","t","publish","clientSaved","getAddressTypeLabel","ValidationRules","off","ensure","required","shortName","salutation","when","clientCategoryId","introductionTypeId","divisionId","on","customRules","customRule","adviser","satisfiesRule","referrer","AUSTRALIA","NEW_ZEALAND","isValidNumber","substr","note","observable","FileList","computedFrom","autoinject","useView","ValidationControllerFactory","BindingEngine","TaskQueue","EventAggregator","ClientProfileModal"],"sourceRoot":""}