{"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","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--footer---cancel\":\"btn--footer---cancel____WeHnl\",\"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\",\"btn--icon-no-border\":\"btn--icon-no-border____BEsOd\",\"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\",\"task-access-modal__close\":\"task-access-modal__close____HvAqy\",\"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-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-task\":\"btn--icon-task____NSMFl 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--back-to-sign-in\":\"btn--back-to-sign-in____k77MV btn--back____Heh6I\",\"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\",\"task-delete-confirm-modal__delete\":\"task-delete-confirm-modal__delete____Og4tl\",\"task-delete-confirm-modal__cancel\":\"task-delete-confirm-modal__cancel____F32Lm\",\"button-options\":\"button-options____4kpfb\",\"cancel\":\"cancel____AkXdl\",\"tasksubmit\":\"tasksubmit____zbxtR\",\"forgotPasswordBtn\":\"forgotPasswordBtn____dgYy8\",\"show-complet-tasks\":\"show-complet-tasks____iAzXE\",\"fieldset\":\"fieldset____GtWhl\",\"fieldset-instruction\":\"fieldset-instruction____bgj3T\",\"fieldset--no-padding\":\"fieldset--no-padding____qBpwZ fieldset____GtWhl\",\"fieldset--alt\":\"fieldset--alt____RXkXX fieldset____GtWhl\",\"input-search\":\"input-search____Bo4Ir\",\"view-password\":\"view-password____O0FV_\",\"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\",\"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\",\"bg-blue-sky\":\"bg-blue-sky____WUsSL\",\"card-heading--advanced-search-results\":\"card-heading--advanced-search-results____Vj9en\",\"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--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\",\"task-options-modal\":\"task-options-modal____rPDYj\",\"recent-link-name\":\"recent-link-name____beKzu\",\"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 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\",\"btn--footer--cancel\":\"btn--footer--cancel____Ndhe5\",\"modal--header\":\"modal--header____YaWt2\",\"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\",\"association-action-column\":\"association-action-column____GCzk2\",\"note-action-column\":\"note-action-column____LH5w4\",\"branch-profile-content\":\"branch-profile-content____QaYkO\"};","import { 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 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){\r\n this.publishClientSaved();\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 (!result[0].hasOwnProperty('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 (!result[0].hasOwnProperty('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 (result.hasOwnProperty('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://' || value.substr(0,3) === 'www' ) , 'Url must start with either http://, https:// or www');\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","partyInstanceType","hasAsync","view","divisionType","getGeneralDetails","general","vulnerableClientDetail","vulnerableClientId","vulnerableFlag","vulnerableClientTypeId","comment","headerPageImage","entityImageId","getAcceptsDocsAndMailHistory","acceptsDocAndMailHistory","getVulnerableClientHistory","vulnerableClientHistory","systemParameters","clientDivisionMandatory","clientIntroMandatory","vulnerabilityTypes","yesNo","yesNoTypes","initializeGeneralValidation","getSalesDetails","sales","clientSalesDetail","getAdvisers","activeAdvisersByBranch","map","obj","id","adviserId","label","adviserName","getReferrers","activeReferrersByBranch","referralId","referralName","getAvailableReferrers","clientRole","activeUsersByBranch","securityUsersId","fullName","getStaff","roleLabel","find","x","clientRoleId","getAvailableClientRoles","getAddresses","getPhones","phones","sort","a","b","getEmails","emails","getWebsites","websites","fieldTypes","countryCode","forEach","type","address","typeId","push","allowDelete","initializeConsentValidation","getQuestions","questions","association","getAssociations","associations","getNotes","notes","cancel","hide","save","row","closeModal","validate","valid","model","commonRenewalDate","includes","updateGeneralDetails","publishClientSaved","followupDate","renewalDate","clientSalesId","updateSalesDetails","addSalesDetails","cloneDeep","validFrom","validTo","saveAdviser","hasOwnProperty","saveReferral","newStaffMember","saveStaff","clientStaffId","userFullName","removeEditFlags","showSuccessToast","editModel","manuallyAddLocation","addressLine1","saveAddress","addressee","addressLine2","addressLine3","suburb","region","state","postCode","latitude","longitude","Object","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","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","getAddressTypeLabel","ValidationRules","required","ensure","shortName","salutation","when","clientCategoryId","introductionTypeId","divisionId","on","customRules","adviser","satisfiesRule","referrer","isValidNumber","substr","note","observable","FileList","computedFrom","autoinject","useView","ValidationControllerFactory","BindingEngine","TaskQueue","EventAggregator","ClientProfileModal"],"sourceRoot":""}