{"version":3,"file":"app-1cadf792.xxxxxxxx.bundle.js","mappings":"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","sources":["webpack://iadviser/./src/routes/app-adviser/client/wizard/steps/quote/risk-package-costs/risk-package-costs.html","webpack://iadviser/./src/routes/app-adviser/client/wizard/steps/quote/risk-package-costs/risk-package-costs.css","webpack://iadviser/./src/routes/app-adviser/client/wizard/steps/quote/risk-package-costs/risk-package-costs.ts"],"sourcesContent":["// Module\nvar code = \"\\r\\n\";\n// Exports\nexport default code;","// extracted by mini-css-extract-plugin\nexport default {\"screen-container\":\"screen-container____IRzBo\",\"screen-container--client\":\"screen-container--client____lgk24 screen-container____IRzBo\",\"screen-container--dashboard\":\"screen-container--dashboard____SfXMJ screen-container--client____lgk24 screen-container____IRzBo\",\"screen-container--home\":\"screen-container--home____UviQE screen-container____IRzBo\",\"screen-container--menu\":\"screen-container--menu____Q9ktg screen-container____IRzBo\",\"screen-container--accounts-override\":\"screen-container--accounts-override____y1Xbk screen-container____IRzBo\",\"screen-container--accounts-override-xxl\":\"screen-container--accounts-override-xxl____Ioc8G screen-container____IRzBo\",\"empty-state\":\"empty-state____WOYPj\",\"empty-state--icon\":\"empty-state--icon____BuwW4\",\"empty-heading\":\"empty-heading____G5oub\",\"empty-subheading\":\"empty-subheading____puQMx\",\"kyc\":\"kyc____yNdFk\",\"advice\":\"advice____lt4Hn\",\"insured\":\"insured____j7DmG\",\"quotes\":\"quotes____VqUFK\",\"policies\":\"policies____MyEhB\",\"claims\":\"claims____j99HF\",\"tasks\":\"tasks____T7m7B\",\"documents\":\"documents____pNpQx\",\"forms\":\"forms____rAbmM\",\"btn\":\"btn____p6ykY\",\"btn--flat\":\"btn--flat____iaRc8 btn____p6ykY\",\"btn--submit\":\"btn--submit____dWOPH btn____p6ykY\",\"btn--delete\":\"btn--delete____o2gIv btn____p6ykY\",\"btn--link\":\"btn--link____xZNZx btn____p6ykY\",\"btn--inline-text-link\":\"btn--inline-text-link____t6HPK btn--link____xZNZx btn____p6ykY\",\"btn--footer\":\"btn--footer____iDi32 btn____p6ykY\",\"btn--footer-submit\":\"btn--footer-submit____Jgdj_ btn--submit____dWOPH btn____p6ykY btn--footer____iDi32 btn____p6ykY\",\"btn--footer-cancel\":\"btn--footer-cancel____kSj6E\",\"btn--footer---cancel\":\"btn--footer---cancel____Y1GG5\",\"btn--footer-delete\":\"btn--footer-delete____EQxjC btn--delete____o2gIv btn____p6ykY btn--footer____iDi32 btn____p6ykY\",\"btn--qce-dropdown\":\"btn--qce-dropdown____dUwRt btn--footer-submit____Jgdj_ btn--submit____dWOPH btn____p6ykY btn--footer____iDi32 btn____p6ykY\",\"btn--footer-combo\":\"btn--footer-combo____MM_AZ btn--footer____iDi32 btn____p6ykY\",\"btn--lmi-bicalc\":\"btn--lmi-bicalc____e8PHU btn____p6ykY\",\"btn--lmi-risk\":\"btn--lmi-risk____a8HCZ btn____p6ykY\",\"btn--lmi-policy-comparison\":\"btn--lmi-policy-comparison____JtqOO btn____p6ykY\",\"btn--lmi-policy-coach\":\"btn--lmi-policy-coach____lVQKX btn____p6ykY\",\"btn--andrew-nock\":\"btn--andrew-nock____lZNDh btn____p6ykY\",\"btn--construction-cost-consultants\":\"btn--construction-cost-consultants____VeNM6 btn____p6ykY\",\"btn--5-star\":\"btn--5-star____Bm8WW btn____p6ykY\",\"btn--thermoscan\":\"btn--thermoscan____hK47f btn____p6ykY\",\"btn--risk-survey-services\":\"btn--risk-survey-services____vzrkr btn____p6ykY\",\"btn--risk-management\":\"btn--risk-management____T299T btn____p6ykY\",\"btn--lmi-bicalc--disabled\":\"btn--lmi-bicalc--disabled____JQ3Rd btn--lmi-bicalc____e8PHU btn____p6ykY\",\"btn--lmi-risk--disabled\":\"btn--lmi-risk--disabled____ZFJ3O btn--lmi-risk____a8HCZ btn____p6ykY\",\"btn--lmi-policy-comparison--disabled\":\"btn--lmi-policy-comparison--disabled____TYREg btn--lmi-policy-comparison____JtqOO btn____p6ykY\",\"btn--initial-insured-location-risk\":\"btn--initial-insured-location-risk____sJt4f btn--flat____iaRc8 btn____p6ykY btn____p6ykY\",\"btn--icon\":\"btn--icon____yq7cr btn____p6ykY\",\"btn--icon-no-border\":\"btn--icon-no-border____e1mwz\",\"btn--icon-add\":\"btn--icon-add____btPij btn--icon____yq7cr btn____p6ykY\",\"btn--add-risk\":\"btn--add-risk____fUxPe btn--icon____yq7cr btn____p6ykY\",\"btn--icon-close\":\"btn--icon-close____xEGz6\",\"task-access-modal__close\":\"task-access-modal__close____f56fv\",\"btn--icon-delete\":\"btn--icon-delete____BBKeF btn--icon____yq7cr btn____p6ykY\",\"btn--icon-download\":\"btn--icon-download____m67OM btn--icon____yq7cr btn____p6ykY\",\"btn--icon-edit\":\"btn--icon-edit____nH95n btn--icon____yq7cr btn____p6ykY\",\"btn--icon-email\":\"btn--icon-email____m5tq_ btn--icon____yq7cr btn____p6ykY\",\"btn--icon-download-email\":\"btn--icon-download-email____NuF7r btn--icon____yq7cr btn____p6ykY\",\"btn--icon-folder\":\"btn--icon-folder____iDOIh btn--icon____yq7cr btn____p6ykY\",\"btn--icon-folder-locked\":\"btn--icon-folder-locked____FhCWJ btn--icon____yq7cr btn____p6ykY\",\"btn--icon-folder-locked-active\":\"btn--icon-folder-locked-active____crMnQ btn--icon____yq7cr btn____p6ykY\",\"btn--icon-history\":\"btn--icon-history____WBq8w btn--icon____yq7cr btn____p6ykY\",\"btn--icon-info\":\"btn--icon-info____rZuFD btn--icon____yq7cr btn____p6ykY\",\"btn--icon-task\":\"btn--icon-task____rvV8a btn--icon____yq7cr btn____p6ykY\",\"btn--icon-link\":\"btn--icon-link____fdDOt btn--icon____yq7cr btn____p6ykY\",\"btn--icon-unlink\":\"btn--icon-unlink____er4wf btn--icon-delete____BBKeF btn--icon____yq7cr btn____p6ykY\",\"btn--icon-map\":\"btn--icon-map____SRE26 btn--icon____yq7cr btn____p6ykY\",\"btn--icon-more\":\"btn--icon-more____R3yBh btn--icon____yq7cr btn____p6ykY\",\"btn--icon-open-in-new-window\":\"btn--icon-open-in-new-window____KwB3p btn--icon____yq7cr btn____p6ykY\",\"btn--icon-favourite--selected\":\"btn--icon-favourite--selected____YjqRn btn--icon____yq7cr btn____p6ykY\",\"btn--icon-favourite--deselected\":\"btn--icon-favourite--deselected____byjpv btn--icon____yq7cr btn____p6ykY\",\"btn--icon-preview\":\"btn--icon-preview____N9AAr btn--icon____yq7cr btn____p6ykY\",\"btn--icon-pre-printed\":\"btn--icon-pre-printed____aVdyd btn--icon____yq7cr btn____p6ykY\",\"btn--icon-print\":\"btn--icon-print____gjBoQ btn--icon____yq7cr btn____p6ykY\",\"btn--icon-save\":\"btn--icon-save____R4ytm btn--icon____yq7cr btn____p6ykY\",\"btn--icon-settings\":\"btn--icon-settings____C9ZTi btn--icon____yq7cr btn____p6ykY\",\"btn--icon-show-details\":\"btn--icon-show-details____htYO7 btn--icon____yq7cr btn____p6ykY\",\"btn--icon-show-details--alert\":\"btn--icon-show-details--alert____UJw58 btn--icon____yq7cr btn____p6ykY\",\"btn--icon-show-summary\":\"btn--icon-show-summary____1I1Yn btn--icon____yq7cr btn____p6ykY\",\"btn--icon-attachment\":\"btn--icon-attachment____ckvWg btn--icon____yq7cr btn____p6ykY\",\"btn--icon-tag\":\"btn--icon-tag____pB_ZF btn--icon____yq7cr btn____p6ykY\",\"btn--icon-undo\":\"btn--icon-undo____wZiUd btn--icon____yq7cr btn____p6ykY\",\"btn--icon-sync\":\"btn--icon-sync____tXcSM btn--icon____yq7cr btn____p6ykY\",\"btn--icon-arrow-forward\":\"btn--icon-arrow-forward____qKOrt btn--icon____yq7cr btn____p6ykY\",\"btn--aside-collapse\":\"btn--aside-collapse____WyQpV btn--icon____yq7cr btn____p6ykY\",\"btn--icon-expand-more\":\"btn--icon-expand-more____pTr5X btn--icon____yq7cr btn____p6ykY\",\"btn--icon-expand-less\":\"btn--icon-expand-less____TrXaV btn--icon____yq7cr btn____p6ykY\",\"btn--icon-general\":\"btn--icon-general____o26MX btn--icon____yq7cr btn____p6ykY\",\"btn--icon-sales\":\"btn--icon-sales____VZXHC btn--icon____yq7cr btn____p6ykY\",\"btn--icon-branch\":\"btn--icon-branch____Cmxm7 btn--icon____yq7cr btn____p6ykY\",\"btn--icon-contact\":\"btn--icon-contact____Stgcj btn--icon____yq7cr btn____p6ykY\",\"btn--icon-consent\":\"btn--icon-consent____mBBid btn--icon____yq7cr btn____p6ykY\",\"btn--icon-questions\":\"btn--icon-questions____jg337 btn--icon____yq7cr btn____p6ykY\",\"btn--icon-associated\":\"btn--icon-associated____eJycn btn--icon____yq7cr btn____p6ykY\",\"btn--icon-notes\":\"btn--icon-notes____RF8YK btn--icon____yq7cr btn____p6ykY\",\"btn--back\":\"btn--back____pxs24\",\"btn--back-to-sign-in\":\"btn--back-to-sign-in____vCUP0 btn--back____pxs24\",\"btn--icon-advanced-search\":\"btn--icon-advanced-search____DQclE btn--icon____yq7cr btn____p6ykY\",\"btn--wizard\":\"btn--wizard____p3AQv btn____p6ykY\",\"btn--wizard-back\":\"btn--wizard-back____sJp94 btn--wizard____p3AQv btn____p6ykY\",\"btn--wizard-next\":\"btn--wizard-next____sSaEE btn--wizard____p3AQv btn____p6ykY\",\"task-delete-confirm-modal__delete\":\"task-delete-confirm-modal__delete____YpJGn\",\"task-delete-confirm-modal__cancel\":\"task-delete-confirm-modal__cancel____vItOo\",\"button-options\":\"button-options____D9TJZ\",\"cancel\":\"cancel____I3eOT\",\"tasksubmit\":\"tasksubmit____HcC5Z\",\"forgotPasswordBtn\":\"forgotPasswordBtn____Jet4P\",\"show-complet-tasks\":\"show-complet-tasks____Y68cB\",\"fieldset\":\"fieldset____IqQIA\",\"fieldset-instruction\":\"fieldset-instruction____QpOof\",\"fieldset--no-padding\":\"fieldset--no-padding____YtlLW fieldset____IqQIA\",\"fieldset--alt\":\"fieldset--alt____O8nME fieldset____IqQIA\",\"input-search\":\"input-search____UArL3\",\"view-password\":\"view-password____pDlmj\",\"ia-currency-input\":\"ia-currency-input____Tou8U\",\"ia-currency-negative\":\"ia-currency-negative____mgrtz\",\"select--mini\":\"select--mini____o0D1A\",\"required-label\":\"required-label____haNa9\",\"alert\":\"alert____M1ia7\",\"alert--important\":\"alert--important____uvg7q\",\"input-label\":\"input-label____DFBhn\",\"w-100\":\"w-100____zW4nd\",\"search-input-wrapper\":\"search-input-wrapper_____2SoE\",\"search-input--results\":\"search-input--results____giqeD\",\"search-input--result\":\"search-input--result____yVZ0O\",\"search-input--result--highlighted\":\"search-input--result--highlighted____EYWmf\",\"date-range-selections\":\"date-range-selections____UGHKj\",\"date-arrow-forward\":\"date-arrow-forward____v35GX\",\"qce-dropdown\":\"qce-dropdown____AchVJ\",\"qce-or\":\"qce-or____JLkfo\",\"qce-dropdown-with-dropdown\":\"qce-dropdown-with-dropdown____X3BW3\",\"qce-vehicle-registration-search\":\"qce-vehicle-registration-search____uNvAM\",\"row-gap\":\"row-gap____t73ih\",\"row-group\":\"row-group____omBZj\",\"row-group--three\":\"row-group--three____nPXKU row-group____omBZj\",\"grid-14\":\"grid-14____dw0hQ\",\"row-group--auto\":\"row-group--auto____TX2jn row-group____omBZj\",\"space\":\"space____eF9cT\",\"display-none--lg\":\"display-none--lg____JQaL5\",\"display-none--md\":\"display-none--md____YG4oX\",\"tab-navigation\":\"tab-navigation____GwvrJ\",\"has-warnings\":\"has-warnings____Qw8jy\",\"tab-selected\":\"tab-selected____TT9B8 tab____CTCpq\",\"disabled\":\"disabled____apmOE\",\"tab\":\"tab____CTCpq\",\"btn--tab-overflow\":\"btn--tab-overflow____O8Pte\",\"btn--tab-overflow-left\":\"btn--tab-overflow-left____MkEE4 btn--tab-overflow____O8Pte\",\"btn--tab-overflow-left-disabled\":\"btn--tab-overflow-left-disabled____f38KE btn--tab-overflow-left____MkEE4 btn--tab-overflow____O8Pte\",\"btn--tab-overflow-right\":\"btn--tab-overflow-right____ktM8T btn--tab-overflow____O8Pte\",\"btn--tab-overflow-right-disabled\":\"btn--tab-overflow-right-disabled____C2uwa btn--tab-overflow-right____ktM8T btn--tab-overflow____O8Pte\",\"constrained-width\":\"constrained-width____HoDk0\",\"constrained-width--tab\":\"constrained-width--tab____Rb4RV constrained-width____HoDk0\",\"card\":\"card____p5yDN\",\"card-content\":\"card-content____j3IPC\",\"card-heading\":\"card-heading____AWJzS\",\"control-group\":\"control-group____wBSkY\",\"label-group\":\"label-group____lMQU2\",\"label-group-item\":\"label-group-item____sDfCk\",\"button-group\":\"button-group____UV6Mj checkbox-group____YE3uX\",\"card--alert\":\"card--alert_____SbN1 card____p5yDN\",\"card-heading--alert\":\"card-heading--alert____CBiu6 card-heading____AWJzS\",\"card--status-message\":\"card--status-message____XxMjs\",\"card--status-message--left\":\"card--status-message--left____X9rti card--status-message____XxMjs\",\"card-heading--sticky-header\":\"card-heading--sticky-header____q69lu\",\"card-heading--no-icon\":\"card-heading--no-icon____MjXfV card-heading____AWJzS\",\"card-heading--bold-title\":\"card-heading--bold-title____Bz2ND\",\"bg-blue-sky\":\"bg-blue-sky____cAvTn\",\"card-heading--advanced-search-results\":\"card-heading--advanced-search-results____ZhVbF\",\"table\":\"table____qVgjv\",\"table-heading-row\":\"table-heading-row____exmJK\",\"table-row\":\"table-row____YNWNd\",\"table-result-row\":\"table-result-row____qfvim\",\"break-word\":\"break-word____kiwhh\",\"no-wrap\":\"no-wrap____IUSWn\",\"table-result-row--disabled\":\"table-result-row--disabled____it_nz\",\"table-modal\":\"table-modal____LwYYR table____qVgjv\",\"table-enhanced\":\"table-enhanced____Ul0v_\",\"table--no-border-bottom\":\"table--no-border-bottom____qdw65 table____qVgjv\",\"height-45\":\"height-45____rzHOJ\",\"edit-column\":\"edit-column____NR6Oz\",\"delete-column\":\"delete-column____EYmGc\",\"date-table-heading\":\"date-table-heading____O78ku\",\"button-edit\":\"button-edit____dj4ST\",\"button-delete\":\"button-delete____nUSv9\",\"table-row-selected\":\"table-row-selected____LGfe8\",\"table-row-alert\":\"table-row-alert____E4XC8\",\"table-filter-row\":\"table-filter-row____NYz4c\",\"table-filter-row--endcap\":\"table-filter-row--endcap____ywAyD\",\"filter-column\":\"filter-column____lBWc8\",\"table-pagination\":\"table-pagination____OaL6j\",\"table-pagination-with-filter\":\"table-pagination-with-filter____fd27g table-pagination____OaL6j\",\"table-button-group\":\"table-button-group_____slKf\",\"table-child-container\":\"table-child-container____BF9eA\",\"table-child-card\":\"table-child-card____EgtHG\",\"child-table--selected-row\":\"child-table--selected-row____BdsJR\",\"child-table\":\"child-table____Wb6Ak table____qVgjv\",\"custom-pagination\":\"custom-pagination____enZXU\",\"pagination-count\":\"pagination-count____tvCv1\",\"pagination-button\":\"pagination-button____Ytd5V btn____p6ykY\",\"pagination-prev\":\"pagination-prev____NKLMF pagination-button____Ytd5V btn____p6ykY\",\"pagination-next\":\"pagination-next____NaSsX pagination-button____Ytd5V btn____p6ykY\",\"pagination-disabled\":\"pagination-disabled____CajnF pagination-button____Ytd5V btn____p6ykY\",\"pagination-prev-disabled\":\"pagination-prev-disabled____HZ7ZL pagination-disabled____CajnF pagination-button____Ytd5V btn____p6ykY\",\"pagination-next-disabled\":\"pagination-next-disabled____c1gyb pagination-disabled____CajnF pagination-button____Ytd5V btn____p6ykY\",\"pagination\":\"pagination____uGlan\",\"pagination-top\":\"pagination-top____TPL7I pagination____uGlan\",\"pagination-bottom\":\"pagination-bottom____jOqvk pagination____uGlan\",\"pagination-bottom--documents\":\"pagination-bottom--documents____RDNCT pagination-bottom____jOqvk pagination____uGlan\",\"table-cell-btn-icon\":\"table-cell-btn-icon____XK4jw\",\"folder-table\":\"folder-table____mzldC table--no-border-bottom____qdw65 table____qVgjv\",\"doc-table-group--heading\":\"doc-table-group--heading____NL5Ju\",\"doc-table-group--heading-open\":\"doc-table-group--heading-open_____HAOK doc-table-group--heading____NL5Ju\",\"doc-table-group--heading-with-options\":\"doc-table-group--heading-with-options____D5No5\",\"constrained-width--folder-name\":\"constrained-width--folder-name____PRkwE constrained-width____HoDk0\",\"disable-entity\":\"disable-entity____DGpvD\",\"button-options--add\":\"button-options--add____HwrZZ button-options____D9TJZ\",\"information-icon\":\"information-icon_____XHaL\",\"deleted-icon\":\"deleted-icon____N1OQC\",\"exclamation-icon\":\"exclamation-icon____T8oJh\",\"success-icon\":\"success-icon____xKXiZ\",\"text-align-center\":\"text-align-center____eIrRg\",\"word-break\":\"word-break____lq5Dz\",\"btn-group\":\"btn-group____EgOxm\",\"accordion-content\":\"accordion-content____lkwyB\",\"toggle-collapse\":\"toggle-collapse____TfbtR\",\"toggle-collapse--disabled\":\"toggle-collapse--disabled____VR_PT toggle-collapse____TfbtR\",\"toggle-expand\":\"toggle-expand____qHo7o toggle-collapse____TfbtR\",\"folder\":\"folder____iafx4\",\"folder-locked\":\"folder-locked____GM4Bo folder____iafx4\",\"yesNo-filter-width\":\"yesNo-filter-width____fYuFg\",\"w-5\":\"w-5____u0SKK\",\"w-10\":\"w-10____sC1in\",\"w-15\":\"w-15____hmrhE\",\"w-20\":\"w-20____vBiEj\",\"w-25\":\"w-25____r59aZ\",\"w-30\":\"w-30____LGsTV\",\"w-35\":\"w-35____VxsuA\",\"w-40\":\"w-40____VgtTf\",\"w-45\":\"w-45____UOuhz\",\"w-50\":\"w-50____L0Lso\",\"w-60\":\"w-60____Txpbo\",\"table--sticky-header\":\"table--sticky-header____NXRv6\",\"table--sticky-footer\":\"table--sticky-footer____vQDQa\",\"table--sticky-column\":\"table--sticky-column____v9xxX\",\"table--sticky-column2\":\"table--sticky-column2____RrMKn table--sticky-column____v9xxX\",\"table--sticky-column-right\":\"table--sticky-column-right____brnUv table--sticky-column____v9xxX\",\"scrollable-table-container\":\"scrollable-table-container____y2L5C\",\"task-options-modal\":\"task-options-modal____PmyJi\",\"recent-link-name\":\"recent-link-name____ABcEJ\",\"view-block\":\"view-block____MihFj\",\"view-block--heading\":\"view-block--heading____niUt3\",\"view-block--white\":\"view-block--white____odZqh view-block____MihFj\",\"view-block--alert\":\"view-block--alert____kll0v view-block____MihFj\",\"view-block--success\":\"view-block--success____Y4TLy view-block____MihFj\",\"view-block--info\":\"view-block--info____IV7x_ view-block____MihFj\",\"view-block--warning\":\"view-block--warning____hjlCc view-block____MihFj\",\"view-block--alt\":\"view-block--alt____MiwsG view-block____MihFj\",\"view-block--with-icon\":\"view-block--with-icon____XtVJL view-block____MihFj\",\"view-block-icon\":\"view-block-icon____Znjn6\",\"view-block--warning--with-icon\":\"view-block--warning--with-icon____rQ84L view-block--warning____hjlCc view-block____MihFj\",\"view-block-checkbox\":\"view-block-checkbox____JYhIJ view-block____MihFj\",\"view-block-checkbox--alert\":\"view-block-checkbox--alert____iHlVt view-block--alert____kll0v view-block____MihFj view-block-checkbox____JYhIJ view-block____MihFj\",\"text-view-content\":\"text-view-content____tD8E3\",\"ia-modal\":\"ia-modal____qjTPZ\",\"ia-modal-inner\":\"ia-modal-inner____a7kzu\",\"ia-modal-inner--context-menu\":\"ia-modal-inner--context-menu____pcomt ia-modal-inner____a7kzu\",\"ia-modal-inner--wide-lg\":\"ia-modal-inner--wide-lg____wm2G_ ia-modal-inner____a7kzu\",\"ia-modal-inner--wide-xxl\":\"ia-modal-inner--wide-xxl____IxAZB ia-modal-inner____a7kzu\",\"ia-modal-inner--take-over\":\"ia-modal-inner--take-over____gKoVu ia-modal-inner____a7kzu\",\"fixed-height\":\"fixed-height____F1j8b\",\"takeover-header\":\"takeover-header____VFPqY\",\"logo\":\"logo_____hH9W\",\"logo--broker\":\"logo--broker____kAkN5 logo_____hH9W logo_____hH9W\",\"close-search\":\"close-search____vV2BU\",\"ia-modal-content\":\"ia-modal-content____GAlVY\",\"ia-modal-overlay--transparent\":\"ia-modal-overlay--transparent____yNBdP ia-modal____qjTPZ\",\"ia-modal-overlay--light-white\":\"ia-modal-overlay--light-white____uNTxr ia-modal____qjTPZ\",\"ia-modal-overlay--transparent--light-white-client-nav\":\"ia-modal-overlay--transparent--light-white-client-nav____LnZMl ia-modal-overlay--light-white____uNTxr ia-modal____qjTPZ\",\"modal-header\":\"modal-header____mYCBQ\",\"modal-footer\":\"modal-footer____FdxAv modal-header____mYCBQ\",\"modal-footer--space-between\":\"modal-footer--space-between____oVQyd modal-footer____FdxAv modal-header____mYCBQ\",\"footer-btn-group\":\"footer-btn-group____F_VJ_\",\"header-label\":\"header-label____LE4NP\",\"header-label-icon\":\"header-label-icon____Yv71j header-label____LE4NP\",\"header-label--alert\":\"header-label--alert____vxn1e header-label-icon____Yv71j header-label____LE4NP\",\"header-label--info\":\"header-label--info____uf8Vq header-label-icon____Yv71j header-label____LE4NP\",\"header-label--settings\":\"header-label--settings____VtpH4 header-label-icon____Yv71j header-label____LE4NP\",\"header-label--accounts\":\"header-label--accounts____HxKqn header-label-icon____Yv71j header-label____LE4NP\",\"header-label--edit\":\"header-label--edit____SiOT_ header-label-icon____Yv71j header-label____LE4NP\",\"header-label--download\":\"header-label--download____qjYpE header-label-icon____Yv71j header-label____LE4NP\",\"header-label--delete\":\"header-label--delete____kJ1yz header-label-icon____Yv71j header-label____LE4NP\",\"header-label--history\":\"header-label--history____nOJA4 header-label-icon____Yv71j header-label____LE4NP\",\"header-label--tag\":\"header-label--tag____Vobt8 header-label-icon____Yv71j header-label____LE4NP\",\"header-label--search\":\"header-label--search____tlst4 header-label-icon____Yv71j header-label____LE4NP\",\"header-label--kyc\":\"header-label--kyc____p8tGF header-label-icon____Yv71j header-label____LE4NP\",\"header-label--advice\":\"header-label--advice____oxKGn header-label-icon____Yv71j header-label____LE4NP\",\"header-label--generate-advice\":\"header-label--generate-advice____lVJFq header-label-icon____Yv71j header-label____LE4NP\",\"header-label--form\":\"header-label--form____AgQK4 header-label-icon____Yv71j header-label____LE4NP\",\"header-label--insured\":\"header-label--insured____jGzCv header-label-icon____Yv71j header-label____LE4NP\",\"header-label--quote\":\"header-label--quote____rmq2E header-label-icon____Yv71j header-label____LE4NP\",\"header-label--policy\":\"header-label--policy____ISnpr header-label-icon____Yv71j header-label____LE4NP\",\"header-label--claim\":\"header-label--claim____Bs2mm header-label-icon____Yv71j header-label____LE4NP\",\"header-label--fsg\":\"header-label--fsg____B5sDG header-label-icon____Yv71j header-label____LE4NP\",\"header-label--mandatory-document\":\"header-label--mandatory-document____ngrj2 header-label-icon____Yv71j header-label____LE4NP\",\"header-label--notification\":\"header-label--notification____dTpix header-label-icon____Yv71j header-label____LE4NP\",\"header-label--task\":\"header-label--task____m0ZDS header-label-icon____Yv71j header-label____LE4NP\",\"header-label--contact\":\"header-label--contact____WeBlW header-label-icon____Yv71j header-label____LE4NP\",\"header-label--note\":\"header-label--note____kBTgh header-label-icon____Yv71j header-label____LE4NP\",\"header-label--document\":\"header-label--document____PLCdu header-label-icon____Yv71j header-label____LE4NP\",\"header-label--email\":\"header-label--email____TGCsU header-label-icon____Yv71j header-label____LE4NP\",\"header-label--template\":\"header-label--template____UD9u0 header-label-icon____Yv71j header-label____LE4NP\",\"header-details\":\"header-details____sJl1V\",\"header-detail-item\":\"header-detail-item____RZBYE\",\"header-label--context-menu\":\"header-label--context-menu____xdn7l header-label-icon____Yv71j header-label____LE4NP\",\"context-menu-sep\":\"context-menu-sep____clyDN\",\"context-menu--one-col\":\"context-menu--one-col____mmlJJ\",\"context-menu-disabled\":\"context-menu-disabled____nIqQz\",\"context-menu--two-col\":\"context-menu--two-col____YocRy context-menu--one-col____mmlJJ\",\"context-menu--three-col\":\"context-menu--three-col____vFX8l context-menu--two-col____YocRy context-menu--one-col____mmlJJ\",\"modal-content-copy\":\"modal-content-copy____vFykD\",\"processing-step\":\"processing-step____KsNyu\",\"processing-step--failed\":\"processing-step--failed____krZ84 processing-step____KsNyu\",\"document--processing\":\"document--processing____dZmV3\",\"eclipse-loader\":\"eclipse-loader____oRVZx\",\"confirmation-content\":\"confirmation-content____BXaZw\",\"ia-modal--search\":\"ia-modal--search____Xqo05\",\"view-block--alert--progress-modal\":\"view-block--alert--progress-modal____jGjEL view-block--alert____kll0v view-block____MihFj\",\"btn--footer--cancel\":\"btn--footer--cancel____xbkdL\",\"modal--header\":\"modal--header____C3Soh\",\"client-footer--right\":\"client-footer--right____NeJbJ\",\"wizard-button-group\":\"wizard-button-group____rZbSe\",\"wizard-nav-group\":\"wizard-nav-group____W_oFj\",\"wizard-nav-group--form\":\"wizard-nav-group--form____tXeBa wizard-nav-group____W_oFj\",\"footer-combo-selections\":\"footer-combo-selections____Esj5l\",\"btn--combo-option\":\"btn--combo-option____KYVNL\",\"footer-combo-container\":\"footer-combo-container____Yxl5q\",\"right\":\"right____HnWMg\",\"pdf-selection\":\"pdf-selection____nqB3i\",\"ia-file-upload\":\"ia-file-upload____hSEbM btn____p6ykY\",\"ia-file-upload--disabled\":\"ia-file-upload--disabled____f2K9A\",\"ia-file-info\":\"ia-file-info____bPMYo\",\"delete-pdf\":\"delete-pdf____qerma btn--icon-delete____BBKeF btn--icon____yq7cr btn____p6ykY\",\"pdf-section\":\"pdf-section____gGS_A\",\"margin-top\":\"margin-top____G7Wik\",\"new-pdf-action-buttons\":\"new-pdf-action-buttons____tq_0Y\",\"page-pdf-controls\":\"page-pdf-controls____JGPqM\",\"step-message\":\"step-message____kOg49\",\"checkbox-group\":\"checkbox-group____YE3uX\",\"fap\":\"fap____SirwJ\",\"packaged\":\"packaged____XAv5R\",\"risk-group\":\"risk-group____K9lBZ card____p5yDN\",\"risk-group-label\":\"risk-group-label____JxIDJ\",\"risk-headings\":\"risk-headings____swJL4\",\"risk-row\":\"risk-row____OXazm\",\"risk-headings--au\":\"risk-headings--au____kv4p0 risk-headings____swJL4\",\"risk-row--au\":\"risk-row--au____XPIya risk-headings____swJL4\",\"risk-headings--nz\":\"risk-headings--nz____Y_IUB risk-headings____swJL4\",\"risk-row--nz\":\"risk-row--nz____E6EO0 risk-headings____swJL4\",\"risk-package-costs-nav\":\"risk-package-costs-nav____WZ7F0\",\"risk\":\"risk_____TiyF\",\"risk--co-insured\":\"risk--co-insured____yqspQ risk_____TiyF\",\"risk-type\":\"risk-type____PFj0I\",\"co-insured-name\":\"co-insured-name____PC8NI risk-type____PFj0I\",\"co-insured-name-total\":\"co-insured-name-total____kLBRn co-insured-name____PC8NI risk-type____PFj0I\",\"co-insured-name--primary\":\"co-insured-name--primary____HMvrt co-insured-name____PC8NI risk-type____PFj0I\",\"co-insured-name-total--primary\":\"co-insured-name-total--primary____tkSzF co-insured-name--primary____HMvrt co-insured-name____PC8NI risk-type____PFj0I\",\"risk-heading-row\":\"risk-heading-row____mQpnF input-label____DFBhn\",\"totals\":\"totals____AuBY3\",\"totals--nz\":\"totals--nz____lpE0S totals____AuBY3\",\"totals--au\":\"totals--au____QYwZx totals____AuBY3\",\"totals--co-insured\":\"totals--co-insured____uGJl4 totals____AuBY3\",\"total-cell\":\"total-cell____WGF0l\",\"premium-total\":\"premium-total____JLOxX total-cell____WGF0l\",\"fes-total\":\"fes-total____oxFXj total-cell____WGF0l\",\"earthquake-premium\":\"earthquake-premium____vWCi8 total-cell____WGF0l\",\"earthquake-levy\":\"earthquake-levy____BSERU total-cell____WGF0l\",\"gst-total\":\"gst-total____oivUC total-cell____WGF0l\",\"fsl\":\"fsl____L0pEF total-cell____WGF0l\",\"gst\":\"gst____QwCJ3 total-cell____WGF0l\",\"stamp-duty-total\":\"stamp-duty-total____PlHmR total-cell____WGF0l\",\"premium-total-total\":\"premium-total-total____KlGm9 total-cell____WGF0l\",\"bkge-total\":\"bkge-total____YqQFj total-cell____WGF0l\",\"bkge-gst-total\":\"bkge-gst-total____eTesR total-cell____WGF0l\",\"empty-total-cell\":\"empty-total-cell____lG_hs total-cell____WGF0l\",\"bkge-total--co-insured\":\"bkge-total--co-insured____DLU_k total-cell____WGF0l\",\"bkge-gst-total--co-insured\":\"bkge-gst-total--co-insured_____4Lp5 total-cell____WGF0l\",\"bkge-total--co-insured-primary\":\"bkge-total--co-insured-primary____yr23J total-cell____WGF0l\",\"bkge-gst-total--co-insured-primary\":\"bkge-gst-total--co-insured-primary____eEXqJ total-cell____WGF0l\",\"cs-button-checkbox-group\":\"cs-button-checkbox-group____HSwyO\",\"deletedRisk\":\"deletedRisk____R71iQ\",\"insurer-referrals\":\"insurer-referrals____hPxAk\",\"co-insured-content\":\"co-insured-content____mmL6C\",\"co-insured-lead-insurer\":\"co-insured-lead-insurer____RU9l8\",\"co-insured-lead-insurer-false\":\"co-insured-lead-insurer-false____McQz_ co-insured-lead-insurer____RU9l8\",\"gst-exempt-warning\":\"gst-exempt-warning____v1mbX view-block--warning____hjlCc view-block____MihFj\",\"gstExemptRisk\":\"gstExemptRisk____lTLVv\",\"clause-text\":\"clause-text____Sxl3l\",\"calculated-value-overridden\":\"calculated-value-overridden____IE_sM\"};","import { LookupDataService } from 'resources/services/lookup-data';\r\nimport { EventAggregator } from 'aurelia-event-aggregator';\r\nimport { CountryCode } from 'libphonenumber-js';\r\nimport { I18N } from 'aurelia-i18n';\r\nimport { AppRouter } from 'aurelia-router';\r\nimport { IaToastService, IaToastMessage } from 'resources/services/ia-toast-service';\r\nimport { FormValidationRenderer } from 'resources/form-validation-renderer';\r\nimport { Api } from './api';\r\nimport { autoinject, TaskQueue, computedFrom, PLATFORM } from 'aurelia-framework';\r\nimport { BlobService } from 'resources/services/blob-service';\r\n\r\nimport styles from './risk-package-costs.css';\r\nimport { CoInsuredRiskConfigModel, RiskPackageConfigModel } from '../../../models/risk-package-config';\r\nimport { CoInsuredRiskCostsModel, RiskPackageCostsModel } from '../../../models/risk-package-costs-model';\r\nimport { ValidationControllerFactory, ValidationController } from 'aurelia-validation';\r\n\r\nimport { BigNumber } from 'bignumber.js';\r\nimport { log } from 'resources/services/log-service';\r\nimport { printPdfBlob } from 'resources/utilities/print-pdf';\r\nimport { calculateGst } from 'resources/calculate-gst';\r\nimport { evenRound } from 'resources/even-round';\r\nimport { EntityMode, EntityActionType, EntityType } from 'routes/app-adviser/client/quotes/interfaces';\r\nimport { ConfirmModalActions } from 'components/ia-modal/ia-modal';\r\nimport { getAppClientType } from 'resources/parse-jwt';\r\nimport { initScrollTabs, scrollTabs } from 'resources/tab-scroll';\r\nimport cloneDeep from 'lodash/cloneDeep';\r\n@autoinject()\r\nexport class RiskPackageCosts {\r\n public validationController: ValidationController;\r\n public config;\r\n private params: IStepModel;\r\n private model;\r\n private modelClone: RiskPackageCostsModel;\r\n private quote;\r\n private step;\r\n private styles = styles;\r\n private selectedInsurer;\r\n private selectedSituation;\r\n private selectedInsurerTab = 0;\r\n private selectedSituationTab = 0;\r\n private context = this;\r\n private insurers = {};\r\n private appClientType: CountryCode = getAppClientType();\r\n private coInsuredFlag;\r\n private botInsurerInterfaceAvailable;\r\n private botPreviouslyRequestedFlag;\r\n private botPreviouslyRequestedForInsurerCodes;\r\n private overrideRiskId = -1;\r\n private overrideParentSituationIndex = -1;\r\n\r\n private showGstWarning = false;\r\n private gstExemptEntities = [];\r\n\r\n private showRiskPackageCostsModal = false;\r\n private setPackageFocus = false;\r\n private changeRiskPackageCostTitle: string;\r\n private isDirty = false;\r\n\r\n private inputMaskOptions: any = {};\r\n\r\n private tabUl: HTMLDivElement;\r\n private tabClass = 'a.insurerTabs';\r\n private tabPosition;\r\n private isRightChevronDisabled = false;\r\n\r\n public showRequestBotQuoteModal = false;\r\n public botRequestValidating = false;\r\n public requestQuoteClicked = false;\r\n public botValidationResult;\r\n public selectedRows = [];\r\n public submittingQuoteRequest = false;\r\n public showCancelQuoteRequestModal = false;\r\n public isCancelingQuoteRequest = false;\r\n\r\n public listType = '';\r\n public showListModal = false;\r\n public list;\r\n\r\n public showInsurerDocumentsModal = false;\r\n public insurerDocuments = [];\r\n public insurerDocumentsLoading = false;\r\n public insurerDocumentBusyId = null;\r\n public popupBlocked = false;\r\n private iframeContainer: HTMLDivElement;\r\n // Object urls outlive the call that creates them - the preview tab and the print iframe both read\r\n // from them - so they are revoked together when the step goes away.\r\n private insurerDocumentObjectUrls: string[] = [];\r\n\r\n public isDeleteAllMode = false;\r\n public isDeleteMode = false;\r\n\r\n public isQuoteRequestSubmitted = false;\r\n\r\n private autorateConfig;\r\n\r\n private showReferralDetails = false;\r\n private showOverrideDetails = false;\r\n private authReasons = [];\r\n\r\n private ratingStatuses: any = {};\r\n\r\n private rejectSituation = '';\r\n private rejectRisk = '';\r\n private rejectReason = '';\r\n\r\n private authorisationCode = '';\r\n private authorisationReason = 0;\r\n\r\n private currentlySelectedRiskId = null;\r\n private overrideDetails: IOverride;\r\n\r\n private oldRisksModel = {};\r\n\r\n constructor(\r\n private api: Api,\r\n private i18n: I18N,\r\n private router: AppRouter,\r\n private taskQueue: TaskQueue,\r\n private toast: IaToastService,\r\n private validationControllerFactory: ValidationControllerFactory,\r\n private ea: EventAggregator,\r\n private lookupData: LookupDataService,\r\n private blobService: BlobService,\r\n ) {\r\n this.validationController = this.validationControllerFactory.createForCurrentScope();\r\n this.validationController.addRenderer(new FormValidationRenderer());\r\n }\r\n\r\n async activate(model: IStepModel) {\r\n try {\r\n this.params = model;\r\n\r\n // Prevent negatives\r\n if (\r\n this.params.actionType == EntityActionType.NewBusiness ||\r\n this.params.actionType == EntityActionType.Reinstatement\r\n ) {\r\n this.inputMaskOptions.minimumValue = 0;\r\n }\r\n\r\n this.validationController.removeObject(this.model);\r\n\r\n await this.loadConfiguration();\r\n\r\n this.ea.publish('stepRendered');\r\n\r\n log.debug(`Step 8 params: `, this.params);\r\n log.debug(`Step 8 'activate' config: `, this.config);\r\n log.debug(`Step 8 'activate' model: `, this.model);\r\n } catch (e) {\r\n this.ea.publish('stepRendered');\r\n }\r\n }\r\n\r\n async loadConfiguration() {\r\n const loadedConfig = await this.api.getRiskPackageCostsConfig(\r\n this.params.id,\r\n parseInt(this.params.entityId),\r\n this.params.actionType,\r\n this.params.entityType,\r\n this.params.entityMode,\r\n );\r\n\r\n this.coInsuredFlag = loadedConfig.coInsuredFlag;\r\n\r\n this.botInsurerInterfaceAvailable = loadedConfig.botInsurerInterfaceAvailable;\r\n this.botPreviouslyRequestedFlag = loadedConfig.botPreviouslyRequestedFlag;\r\n this.botPreviouslyRequestedForInsurerCodes = loadedConfig.botPreviouslyRequestedForInsurerCodes;\r\n\r\n this.config = this.coInsuredFlag\r\n ? new CoInsuredRiskConfigModel(loadedConfig.coInsuredRiskCostsConfig)\r\n : new RiskPackageConfigModel(loadedConfig.riskPackageCostsConfig);\r\n\r\n if (this.config?.ratingRequired) {\r\n try {\r\n const response = await this.api.postAutorate(\r\n this.params.id,\r\n parseInt(this.params.entityId),\r\n this.params.actionType,\r\n this.params.entityType,\r\n );\r\n\r\n log.debug('Autorate response after requiring: ', response);\r\n\r\n if (!response) {\r\n log.debug(`Autorate response had no body, it is valid: `, response);\r\n await this.loadConfiguration();\r\n\r\n return;\r\n }\r\n } catch (e) {\r\n log.error(e);\r\n }\r\n }\r\n\r\n if (!this.coInsuredFlag) {\r\n await this.insurerTabChanged(this.config.insurers[this.selectedInsurerTab], true);\r\n } else {\r\n const result = await this.getCoInsuredRiskQuote();\r\n this.model = new CoInsuredRiskCostsModel(result);\r\n this.setCoInsuredInsurerRiskBrokerageTypes();\r\n this.checkGstExemptStatus();\r\n }\r\n\r\n if (this.config.riskRatingStatuses?.length) {\r\n this.ratingStatuses = {};\r\n\r\n this.config.riskRatingStatuses.forEach((status) => {\r\n if (!this.ratingStatuses?.[status.quoteInsurerRiskId]) {\r\n this.ratingStatuses[status.quoteInsurerRiskId] = status;\r\n } else {\r\n this.ratingStatuses[status.quoteInsurerRiskId] = {\r\n ...this.ratingStatuses[status.quoteInsurerRiskId],\r\n ...status,\r\n };\r\n }\r\n });\r\n }\r\n\r\n this.authReasons = await this.lookupData.authorisationReasons();\r\n\r\n this.applyOverrideStyles();\r\n }\r\n\r\n applyOverrideStyles() {\r\n const isCoInsured = this.coInsuredFlag;\r\n const isPackagedCosts = this.model?.packageFlag;\r\n const isRiskCosts = !isPackagedCosts && !isCoInsured;\r\n const isAu = this.appClientType === 'AU';\r\n const isFap = this.model.useFapFlag;\r\n\r\n if(isCoInsured){\r\n this.model?.situations.forEach((situation) => {\r\n const situationConfig = this.config.situations.find((x) => x.entitySituationId === situation.entitySituationId);\r\n\r\n situation?.risks.forEach((risk) => {\r\n const config = situationConfig.risks.find((x) => x.entityRiskId == risk.entityRiskId);\r\n this.parseFslStampDutyRate(config);\r\n\r\n this.isCoInsuredTotalOverridden(isAu, risk, config);\r\n\r\n risk?.insurerRisks.forEach((insurerRisk) => {\r\n this.isValueOverridden(isAu, insurerRisk, config);\r\n });\r\n });\r\n });\r\n }\r\n\r\n if(isPackagedCosts){\r\n const config = this.selectedInsurer.packageConfiguration;\r\n this.parseFslStampDutyRate(config);\r\n this.isValueOverridden(isAu, this.model.packageCosts, config);\r\n }\r\n\r\n if(isRiskCosts) {\r\n this.model?.situations.forEach((situation) => {\r\n situation?.risks.forEach((risk) => {\r\n const config = this.config.insurers[this.selectedInsurerTab].riskConfiguration.find((x) => x.entityRiskId == risk.entityRiskId);\r\n this.parseFslStampDutyRate(config);\r\n\r\n if(isFap) {\r\n this.isFapValueOverridden(isAu, risk, config);\r\n }\r\n\r\n this.isValueOverridden(isAu, risk, config);\r\n });\r\n });\r\n }\r\n }\r\n\r\n parseFslStampDutyRate(config) {\r\n if (typeof config.fslRate === 'undefined' || config.fslRate === null) {\r\n config.fslRate = 0;\r\n }\r\n\r\n if (typeof config.stampDutyRate === 'undefined' || config.stampDutyRate === null) {\r\n config.stampDutyRate = 0;\r\n }\r\n }\r\n\r\n attached() {\r\n if (!this.coInsuredFlag) {\r\n initScrollTabs(this);\r\n }\r\n }\r\n\r\n scrollTabs(direction) {\r\n scrollTabs(this, direction);\r\n }\r\n\r\n @computedFrom('tabPosition')\r\n get isLeftChevronDisabled() {\r\n return this.tabPosition > 0;\r\n }\r\n\r\n async getRiskPackageQuote(entityInsurerId: number) {\r\n const result = await this.api.getRiskPackageQuote(\r\n this.params.id,\r\n this.params.actionType,\r\n this.params.entityType,\r\n parseInt(this.params.entityId),\r\n entityInsurerId,\r\n );\r\n\r\n // Ensure any null FAP values are set to 0\r\n if (result.useFapFlag) {\r\n const isPackagedCosts = result.packageFlag;\r\n const isRiskCosts = !isPackagedCosts;\r\n\r\n if (isRiskCosts && result.situations) {\r\n for (const situation of result.situations) {\r\n for (const risk of situation.risks) {\r\n risk.fapPremium = risk.fapPremium === null ? 0 : risk.fapPremium;\r\n risk.fapEarthquakePremium = risk.fapEarthquakePremium === null ? 0 : risk.fapEarthquakePremium;\r\n risk.fapEarthquakeLevy = risk.fapEarthquakeLevy === null ? 0 : risk.fapEarthquakeLevy;\r\n risk.fapFsl = risk.fapFsl === null ? 0 : risk.fapFsl;\r\n risk.fapGst = risk.fapGst === null ? 0 : risk.fapGst;\r\n risk.fapStampDuty = risk.fapStampDuty === null ? 0 : risk.fapStampDuty;\r\n }\r\n }\r\n }\r\n\r\n if (isPackagedCosts) {\r\n result.packageCosts.fapPremium = result.packageCosts.fapPremium === null ? 0 : result.packageCosts.fapPremium;\r\n result.packageCosts.fapEarthquakePremium =\r\n result.packageCosts.fapEarthquakePremium === null ? 0 : result.packageCosts.fapEarthquakePremium;\r\n result.packageCosts.fapEarthquakeLevy =\r\n result.packageCosts.fapEarthquakeLevy === null ? 0 : result.packageCosts.fapEarthquakeLevy;\r\n result.packageCosts.fapFsl = result.packageCosts.fapFsl === null ? 0 : result.packageCosts.fapFsl;\r\n result.packageCosts.fapGst = result.packageCosts.fapGst === null ? 0 : result.packageCosts.fapGst;\r\n result.packageCosts.fapStampDuty =\r\n result.packageCosts.fapStampDuty === null ? 0 : result.packageCosts.fapStampDuty;\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n async getCoInsuredRiskQuote() {\r\n const result = await this.api.getCoInsuredRiskQuote(\r\n this.params.id,\r\n this.params.actionType,\r\n this.params.entityType,\r\n parseInt(this.params.entityId),\r\n );\r\n\r\n return result;\r\n }\r\n\r\n async insurerTabChanged(insurer, initialLoad = false) {\r\n let isUpdateSuccessful;\r\n const $index = this.config.insurers.findIndex((el) => el.entityInsurerId === insurer.entityInsurerId);\r\n\r\n if (this.selectedInsurerTab !== $index) {\r\n isUpdateSuccessful = await this.updateCurrentInsurer();\r\n\r\n if (!isUpdateSuccessful) {\r\n const confirm = window.confirm(\r\n 'You have unsaved changes which are currently invalid. Do you want to discard them and change the selected insurer?',\r\n );\r\n\r\n if (confirm) {\r\n isUpdateSuccessful = true;\r\n }\r\n }\r\n\r\n this.selectedInsurerTab = isUpdateSuccessful ? $index : this.selectedInsurerTab;\r\n }\r\n\r\n if (initialLoad || isUpdateSuccessful) {\r\n this.selectedInsurer = insurer;\r\n\r\n const loadedInsurer = await this.getRiskPackageQuote(this.config.insurers[this.selectedInsurerTab].entityInsurerId);\r\n\r\n this.model = new RiskPackageCostsModel(loadedInsurer);\r\n this.model.packageFlag ? this.setPackageBrokerageTypes() : this.setRiskBrokerageTypes();\r\n this.setPackageFocus = this.model.packageFlag;\r\n this.model.showUseFap = this.config.insurers[this.selectedInsurerTab].showUseFap;\r\n this.model.showViewFap = this.config.insurers[this.selectedInsurerTab].showViewFap;\r\n\r\n this.checkGstExemptStatus();\r\n\r\n log.debug(`Insurer changed:`, this.model);\r\n\r\n log.debug(`Selected insurer`, this.selectedInsurer);\r\n\r\n if (this.model?.situations?.length) {\r\n this.model.situations.forEach((situation) => {\r\n if (situation?.risks?.length) {\r\n situation.risks.forEach((risk) => {\r\n if (risk.gstOverridden) {\r\n this.model.gstOverrideFlag = true;\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n // So we can disable GST checkbox\r\n if (this?.selectedInsurer?.riskConfiguration?.[0]?.autoRatedRisk) {\r\n this.config.autoRatedRisk = true;\r\n // Auto-check GST override for autorated risks\r\n this.model.gstOverrideFlag = true;\r\n }\r\n }\r\n\r\n if (!initialLoad) {\r\n this.toast.destroyAllToasts();\r\n }\r\n }\r\n\r\n checkGstExemptStatus () {\r\n const isPackagedCosts = this.model.packageFlag ?? false;\r\n\r\n const clientGstExempt = this.config.clientGstExemptFlag;\r\n const insurerOfficeGstExempt = this.coInsuredFlag ? false : this.selectedInsurer.insurerOfficeGstExemptFlag;\r\n const riskGstExempt = this.coInsuredFlag ?\r\n this.config.situations.some((x) => x.risks.some((r) => !r.gstApplies)) :\r\n !isPackagedCosts && this.selectedInsurer.riskConfiguration.some((x) => !x.gstApplies);\r\n\r\n this.gstExemptEntities = [];\r\n\r\n if(clientGstExempt){\r\n this.gstExemptEntities.push('Client');\r\n }\r\n\r\n if(insurerOfficeGstExempt){\r\n this.gstExemptEntities.push('Insurer');\r\n }\r\n\r\n if(!clientGstExempt && !insurerOfficeGstExempt && riskGstExempt){\r\n this.gstExemptEntities.push('Risk');\r\n }\r\n\r\n this.showGstWarning = this.params.entityMode === EntityMode.Edit && (clientGstExempt || insurerOfficeGstExempt || riskGstExempt);\r\n }\r\n\r\n setRiskBrokerageTypes() {\r\n if (this.model.situations) {\r\n for (const situation of this.model.situations) {\r\n for (const risk of situation.risks) {\r\n let selectedOption;\r\n\r\n const configBrokerageOptions = this.selectedInsurer.riskConfiguration.find(\r\n (x) => x.entityRiskId === risk.entityRiskId,\r\n ).brokerageOptions;\r\n\r\n selectedOption = configBrokerageOptions.find((b) => b.brokerageTypeId === parseInt(risk.brokerageTypeId));\r\n\r\n if (selectedOption) {\r\n risk.configBrokerageOptions = configBrokerageOptions;\r\n risk.selectedBrokerageOption = selectedOption;\r\n risk.brokerageTypeId = parseInt(selectedOption.brokerageTypeId);\r\n risk.amountEditable = selectedOption.amountEditable;\r\n risk.defaultPercentage = selectedOption.defaultPercentage;\r\n risk.percentageEditable = selectedOption.percentageEditable;\r\n }\r\n\r\n const configEarthquakeBrokerageOptions = this.selectedInsurer.riskConfiguration.find(\r\n (x) => x.entityRiskId === risk.entityRiskId,\r\n ).earthquakeBrokerageOptions;\r\n\r\n selectedOption = configEarthquakeBrokerageOptions?.find(\r\n (b) => b.brokerageTypeId === parseInt(risk.earthquakeBrokerageTypeId),\r\n );\r\n\r\n if (selectedOption) {\r\n risk.configEarthquakeBrokerageOptions = configEarthquakeBrokerageOptions;\r\n risk.selectedEarthquakeBrokerageOption = selectedOption;\r\n risk.earthquakeBrokerageTypeId = parseInt(selectedOption.brokerageTypeId);\r\n risk.earthquakeAmountEditable = selectedOption.amountEditable;\r\n risk.earthquakeDefaultPercentage = selectedOption.defaultPercentage;\r\n risk.earthquakePercentageEditable = selectedOption.percentageEditable;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n setPackageBrokerageTypes() {\r\n let selectedOption;\r\n\r\n const configBrokerageOptions = this.selectedInsurer.packageConfiguration.brokerageOptions;\r\n selectedOption = configBrokerageOptions.find(\r\n (b) => b.brokerageTypeId === parseInt(this.model.packageCosts.brokerageTypeId),\r\n );\r\n\r\n if (selectedOption) {\r\n this.model.packageCosts.configBrokerageOptions = configBrokerageOptions;\r\n this.model.packageCosts.selectedBrokerageOption = selectedOption;\r\n this.model.packageCosts.brokerageTypeId = selectedOption.brokerageTypeId;\r\n this.model.packageCosts.amountEditable = selectedOption.amountEditable;\r\n this.model.packageCosts.defaultPercentage = selectedOption.defaultPercentage;\r\n this.model.packageCosts.percentageEditable = selectedOption.percentageEditable;\r\n }\r\n\r\n const configEarthquakeBrokerageOptions = this.selectedInsurer.packageConfiguration.earthquakeBrokerageOptions;\r\n selectedOption = configEarthquakeBrokerageOptions?.find(\r\n (b) => b.brokerageTypeId === parseInt(this.model.packageCosts.earthquakeBrokerageTypeId),\r\n );\r\n\r\n if (selectedOption) {\r\n this.model.packageCosts.configEarthquakeBrokerageOptions = configEarthquakeBrokerageOptions;\r\n this.model.packageCosts.selectedEarthquakeBrokerageOption = selectedOption;\r\n this.model.packageCosts.earthquakeBrokerageTypeId = selectedOption.brokerageTypeId;\r\n this.model.packageCosts.earthquakeAmountEditable = selectedOption.amountEditable;\r\n this.model.packageCosts.earthquakeDefaultPercentage = selectedOption.defaultPercentage;\r\n this.model.packageCosts.earthquakePercentageEditable = selectedOption.percentageEditable;\r\n }\r\n }\r\n\r\n setCoInsuredInsurerRiskBrokerageTypes() {\r\n if (this.model.situations) {\r\n this.model.situations.forEach((situation) => {\r\n situation.risks.forEach((risk) => {\r\n risk.insurerRisks.forEach((insurerRisk) => {\r\n let selectedOption;\r\n\r\n const configBrokerageOptions = this.config.situations\r\n .find((s) => s.entitySituationId === situation.entitySituationId)\r\n .risks.find((r) => r.entityRiskId == risk.entityRiskId)\r\n .insurerRisks.find((ir) => ir.entityInsurerRiskId === insurerRisk.entityInsurerRiskId).brokerageOptions;\r\n\r\n selectedOption = configBrokerageOptions.find((b) => b.brokerageTypeId === insurerRisk.brokerageTypeId);\r\n\r\n if (selectedOption) {\r\n insurerRisk.configBrokerageOptions = configBrokerageOptions;\r\n insurerRisk.amountEditable = selectedOption.amountEditable;\r\n insurerRisk.percentageEditable = selectedOption.percentageEditable;\r\n }\r\n\r\n const configEarthquakeBrokerageOptions = this.config.situations\r\n .find((s) => s.entitySituationId === situation.entitySituationId)\r\n .risks.find((r) => r.entityRiskId == risk.entityRiskId)\r\n .insurerRisks.find(\r\n (ir) => ir.entityInsurerRiskId === insurerRisk.entityInsurerRiskId,\r\n ).earthquakeBrokerageOptions;\r\n\r\n selectedOption = configEarthquakeBrokerageOptions?.find(\r\n (b) => b.brokerageTypeId === insurerRisk.earthquakeBrokerageTypeId,\r\n );\r\n\r\n if (selectedOption) {\r\n insurerRisk.configEarthquakeBrokerageOptions = configEarthquakeBrokerageOptions;\r\n insurerRisk.earthquakeAmountEditable = selectedOption.amountEditable;\r\n insurerRisk.earthquakePercentageEditable = selectedOption.percentageEditable;\r\n }\r\n });\r\n });\r\n });\r\n }\r\n }\r\n\r\n // Called on toggle of the \"use package costs\" checkbox\r\n usePackageCosts() {\r\n if (this.config.isReadOnly || !this.selectedInsurer.packageCostsEnabled) {\r\n return;\r\n }\r\n\r\n this.changeRiskPackageCostTitle = !this.model.packageFlag\r\n ? 'Change to package costs and delete all risk costs?'\r\n : 'Change to risk costs and delete all package costs?';\r\n this.setPackageFocus = false;\r\n this.showRiskPackageCostsModal = true;\r\n }\r\n\r\n // Called on the confirm of Use Package Costs Modal\r\n async changeRiskPackageCostCallBack(type: ConfirmModalActions) {\r\n if (type === 'confirm') {\r\n this.model.packageFlag = !this.model.packageFlag;\r\n\r\n const operation = [{ op: 'replace', path: '/packageFlag', value: this.model.packageFlag }];\r\n this.model = await this.api.patchRiskPackageQuote(\r\n this.params.id,\r\n this.params.actionType,\r\n this.params.entityType,\r\n parseInt(this.params.entityId),\r\n this.config.insurers[this.selectedInsurerTab].entityInsurerId,\r\n operation,\r\n );\r\n\r\n if (this.model.packageFlag) {\r\n this.setPackageBrokerageTypes();\r\n this.setPackageFocus = true;\r\n } else {\r\n this.setRiskBrokerageTypes();\r\n }\r\n\r\n this.model.showUseFap = this.config.insurers[this.selectedInsurerTab].showUseFap;\r\n this.model.showViewFap = this.config.insurers[this.selectedInsurerTab].showViewFap;\r\n\r\n this.checkGstExemptStatus();\r\n }\r\n\r\n this.showRiskPackageCostsModal = false;\r\n }\r\n\r\n useFapFlag(selectedInsurer, $index: number) {\r\n this.taskQueue.queueTask(() => {\r\n this.isDirty = true;\r\n\r\n const isCoInsured = this.coInsuredFlag;\r\n const isPackagedCosts = this.model.packageFlag;\r\n const isRiskCosts = !isPackagedCosts && !isCoInsured;\r\n\r\n if (this.model.useFapFlag) {\r\n if (isRiskCosts && this.model.situations) {\r\n for (const situation of this.model.situations) {\r\n for (const risk of situation.risks) {\r\n risk.fapPremium = risk.fapPremium === null ? 0 : risk.fapPremium;\r\n risk.fapEarthquakePremium = risk.fapEarthquakePremium === null ? 0 : risk.fapEarthquakePremium;\r\n risk.fapEarthquakeLevy = risk.fapEarthquakeLevy === null ? 0 : risk.fapEarthquakeLevy;\r\n risk.fapFsl = risk.fapFsl === null ? 0 : risk.fapFsl;\r\n risk.fapGst = risk.fapGst === null ? 0 : risk.fapGst;\r\n risk.fapStampDuty = risk.fapStampDuty === null ? 0 : risk.fapStampDuty;\r\n }\r\n }\r\n }\r\n\r\n if (isPackagedCosts) {\r\n this.model.packageCosts.fapPremium =\r\n this.model.packageCosts.fapPremium === null ? 0 : this.model.packageCosts.fapPremium;\r\n this.model.packageCosts.fapEarthquakePremium =\r\n this.model.packageCosts.fapEarthquakePremium === null ? 0 : this.model.packageCosts.fapEarthquakePremium;\r\n this.model.packageCosts.fapEarthquakeLevy =\r\n this.model.packageCosts.fapEarthquakeLevy === null ? 0 : this.model.packageCosts.fapEarthquakeLevy;\r\n this.model.packageCosts.fapFsl = this.model.packageCosts.fapFsl === null ? 0 : this.model.packageCosts.fapFsl;\r\n this.model.packageCosts.fapGst = this.model.packageCosts.fapGst === null ? 0 : this.model.packageCosts.fapGst;\r\n this.model.packageCosts.fapStampDuty =\r\n this.model.packageCosts.fapStampDuty === null ? 0 : this.model.packageCosts.fapStampDuty;\r\n }\r\n }\r\n });\r\n }\r\n\r\n resetGstValues(riskOrPackageCosts, config) {\r\n this.isDirty = true;\r\n\r\n const isFap = this.model.useFapFlag;\r\n const isAu = this.appClientType === 'AU';\r\n const isNz = this.appClientType === 'NZ';\r\n\r\n if (isFap) {\r\n if (!this.config.fapValuesReadOnly) {\r\n riskOrPackageCosts.fapGst = this.calculateFapGst(isAu, riskOrPackageCosts, config);\r\n }\r\n riskOrPackageCosts.gst = this.calculateFapDerivedAmount(\r\n this.config,\r\n riskOrPackageCosts.fapGst,\r\n riskOrPackageCosts.fapPrevGst,\r\n );\r\n\r\n if (typeof config.stampDutyRate !== 'undefined' && config.stampDutyRate !== 0) {\r\n if (!this.config.fapValuesReadOnly) {\r\n riskOrPackageCosts.fapStampDuty = this.calculateFapStampDuty(riskOrPackageCosts, config);\r\n }\r\n riskOrPackageCosts.stampDuty = this.calculateFapDerivedAmount(\r\n this.config,\r\n riskOrPackageCosts.fapStampDuty,\r\n riskOrPackageCosts.fapPrevStampDuty,\r\n );\r\n }\r\n } else {\r\n riskOrPackageCosts.gst = this.calculateGst(isAu, riskOrPackageCosts, config);\r\n\r\n if (typeof config.stampDutyRate !== 'undefined' && config.stampDutyRate !== 0) {\r\n riskOrPackageCosts.stampDuty = this.calculateStampDuty(riskOrPackageCosts, config);\r\n }\r\n }\r\n\r\n riskOrPackageCosts.brokerageGst = this.calculateBrokerageGst(riskOrPackageCosts, config);\r\n\r\n if (isNz) {\r\n riskOrPackageCosts.earthquakeBrokerageGst = this.calculateEarthquakeBrokerageGst(riskOrPackageCosts, config);\r\n }\r\n\r\n if(isFap) {\r\n this.isFapValueOverridden(isAu, riskOrPackageCosts, config);\r\n }\r\n\r\n this.isValueOverridden(isAu, riskOrPackageCosts, config);\r\n }\r\n\r\n resetCoInsuredGstValues() {\r\n this.isDirty = true;\r\n\r\n const isAu = this.appClientType === 'AU';\r\n const isNz = this.appClientType === 'NZ';\r\n\r\n this.model.situations.forEach((situation) => {\r\n const situationConfig = this.config.situations.find((x) => x.entitySituationId === situation.entitySituationId);\r\n\r\n situation.risks.forEach((risk) => {\r\n const riskConfig = situationConfig.risks.find((x) => x.entityRiskId === risk.entityRiskId);\r\n\r\n risk.totalGst = this.calculateCoInsuredRiskTotalGst(isAu, risk, riskConfig);\r\n\r\n if (typeof riskConfig.stampDutyRate !== 'undefined' && riskConfig.stampDutyRate !== 0) {\r\n risk.totalStampDuty = this.calculateCoInsuredRiskTotalStampDuty(risk, riskConfig);\r\n }\r\n\r\n this.isCoInsuredTotalOverridden(isAu, risk, riskConfig);\r\n\r\n risk.insurerRisks.forEach((insurerRisk) => {\r\n const insurerConfig = riskConfig.insurerRisks.find(\r\n (x) => x.entityInsurerRiskId === insurerRisk.entityInsurerRiskId,\r\n );\r\n\r\n insurerRisk.gst = evenRound(\r\n new BigNumber(insurerConfig.percentageHeld).multipliedBy(risk.totalGst).dividedBy(100).toNumber(),\r\n 2,\r\n );\r\n\r\n insurerRisk.stampDuty = evenRound(\r\n new BigNumber(insurerConfig.percentageHeld).multipliedBy(risk.totalStampDuty).dividedBy(100).toNumber(),\r\n 2,\r\n );\r\n\r\n insurerRisk.brokerageGst = this.calculateBrokerageGst(insurerRisk, riskConfig);\r\n\r\n if (isNz) {\r\n insurerRisk.earthquakeBrokerageGst = this.calculateEarthquakeBrokerageGst(insurerRisk, riskConfig);\r\n }\r\n\r\n this.isValueOverridden(isAu, insurerRisk, riskConfig);\r\n });\r\n });\r\n });\r\n }\r\n\r\n // Called on toggle of the \"override gst\" checkbox\r\n overrideGst(selectedInsurer, $index: number) {\r\n const self = this;\r\n this.taskQueue.queueMicroTask(() => {\r\n this.isDirty = true;\r\n\r\n const isCoInsured = this.coInsuredFlag;\r\n const isPackagedCosts = this.model.packageFlag;\r\n const isRiskCosts = !isPackagedCosts && !isCoInsured;\r\n\r\n if (!this.model.gstOverrideFlag) {\r\n if (isRiskCosts) {\r\n this.model.situations.forEach((situation) => {\r\n if (situation.risks) {\r\n situation.risks.forEach((risk) => {\r\n const config = this.selectedInsurer.riskConfiguration.find((x) => x.entityRiskId === risk.entityRiskId);\r\n if (!config?.autoRatedRisk) {\r\n self.resetGstValues(risk, config);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n if (isPackagedCosts) {\r\n const config = this.selectedInsurer.packageConfiguration;\r\n self.resetGstValues(this.model.packageCosts, config);\r\n }\r\n\r\n if (isCoInsured) {\r\n self.resetCoInsuredGstValues();\r\n }\r\n }\r\n });\r\n }\r\n\r\n calculateFapDerivedAmount(config, fapValue, fapPrevValue) {\r\n let derivedValue = 0;\r\n const value = fapValue ? fapValue : 0;\r\n const prevValue = fapPrevValue ? fapPrevValue : 0;\r\n\r\n if (config.fapFormula === 'Math.Round(fapAmount * (fapTransactionDays / 365), 2)') {\r\n derivedValue = evenRound(value * (config.fapTransactionDays / 365), 2);\r\n } else if (config.fapFormula === 'Math.Round(fapAmount * (fapTransactionDays / 366), 2)') {\r\n derivedValue = evenRound(value * (config.fapTransactionDays / 366), 2);\r\n } else if (config.fapFormula === 'Math.Round((fapAmount - fapPrevAmount) * (fapTransactionDays / 365), 2)') {\r\n derivedValue = evenRound((value - prevValue) * (config.fapTransactionDays / 365), 2);\r\n } else if (config.fapFormula === 'Math.Round((fapAmount - fapPrevAmount) * (fapTransactionDays / 366), 2)') {\r\n derivedValue = evenRound((value - prevValue) * (config.fapTransactionDays / 366), 2);\r\n }\r\n\r\n return derivedValue;\r\n }\r\n\r\n calculateFapFsl(riskOrPackageCosts, config) {\r\n riskOrPackageCosts.isFapFslOverridden = false;\r\n\r\n return evenRound(\r\n new BigNumber(config.fslRate)\r\n .multipliedBy(riskOrPackageCosts.fapPremium)\r\n .dividedBy(100)\r\n .toNumber(),\r\n 2,\r\n );\r\n }\r\n\r\n calculateFapGst(isAu, riskOrPackageCosts, config) {\r\n riskOrPackageCosts.isFapGstOverridden = false;\r\n\r\n if (!Object.keys(riskOrPackageCosts).length) {\r\n return 0;\r\n }\r\n\r\n const value = isAu\r\n ? new BigNumber(riskOrPackageCosts.fapPremium).plus(riskOrPackageCosts.fapFsl).toNumber()\r\n : new BigNumber(riskOrPackageCosts.fapPremium)\r\n .plus(riskOrPackageCosts.fapEarthquakePremium)\r\n .plus(riskOrPackageCosts.fapEarthquakeLevy)\r\n .plus(riskOrPackageCosts.fapFsl)\r\n .toNumber();\r\n\r\n return config.gstApplies ? calculateGst(value, this.config.gstRate) : 0;\r\n }\r\n\r\n calculateFapStampDuty(riskOrPackageCosts, config) {\r\n riskOrPackageCosts.isFapStampDutyOverridden = false;\r\n\r\n if (!Object.keys(riskOrPackageCosts).length) {\r\n return 0;\r\n }\r\n\r\n return evenRound(\r\n new BigNumber(riskOrPackageCosts.fapPremium)\r\n .plus(riskOrPackageCosts.fapFsl)\r\n .plus(riskOrPackageCosts.fapGst)\r\n .multipliedBy(config.stampDutyRate)\r\n .dividedBy(100)\r\n .toNumber(),\r\n 2,\r\n );\r\n }\r\n\r\n calculateFsl(riskOrPackageCosts, config) {\r\n riskOrPackageCosts.isFslOverridden = false;\r\n\r\n return evenRound(\r\n new BigNumber(config.fslRate)\r\n .multipliedBy(riskOrPackageCosts.premium)\r\n .dividedBy(100)\r\n .toNumber(),\r\n 2\r\n );\r\n }\r\n\r\n calculateGst(isAu, riskOrPackageCosts, config) {\r\n riskOrPackageCosts.isGstOverridden = false;\r\n\r\n const value = isAu\r\n ? new BigNumber(riskOrPackageCosts.premium).plus(riskOrPackageCosts.fsl).toNumber()\r\n : new BigNumber(riskOrPackageCosts.premium)\r\n .plus(riskOrPackageCosts.earthquakePremium)\r\n .plus(riskOrPackageCosts.earthquakeLevy)\r\n .plus(riskOrPackageCosts.fsl)\r\n .toNumber();\r\n\r\n return config.gstApplies ? calculateGst(value, this.config.gstRate) : 0;\r\n }\r\n\r\n calculateStampDuty(riskOrPackageCosts, config) {\r\n riskOrPackageCosts.isStampDutyOverridden = false;\r\n\r\n return evenRound(\r\n new BigNumber(riskOrPackageCosts.premium)\r\n .plus(riskOrPackageCosts.fsl)\r\n .plus(riskOrPackageCosts.gst)\r\n .multipliedBy(config.stampDutyRate)\r\n .dividedBy(100)\r\n .toNumber(),\r\n 2,\r\n );\r\n }\r\n\r\n calculateBrokerageGst(riskOrPackageCosts, config) {\r\n riskOrPackageCosts.isBrokerageGstOverridden = false;\r\n\r\n return config.gstApplies ? calculateGst(riskOrPackageCosts.brokerage, this.config.gstRate) : 0;\r\n }\r\n\r\n calculateEarthquakeBrokerageGst(riskOrPackageCosts, config) {\r\n riskOrPackageCosts.isEarthquakeBrokerageGstOverridden = false;\r\n\r\n return config.gstApplies ? calculateGst(riskOrPackageCosts.earthquakeBrokerage, this.config.gstRate) : 0;\r\n }\r\n\r\n calculateCoInsuredInsurerRiskFsl(insurerRiskCosts, config) {\r\n insurerRiskCosts.isFslOverridden = false;\r\n\r\n return evenRound(\r\n new BigNumber(config.fslRate)\r\n .multipliedBy(insurerRiskCosts.premium)\r\n .dividedBy(100)\r\n .toNumber(),\r\n 2,\r\n );\r\n }\r\n\r\n calculateCoInsuredRiskTotalGst(isAu, riskCosts, config) {\r\n riskCosts.isTotalGstOverridden = false;\r\n\r\n const value = isAu\r\n ? new BigNumber(riskCosts.totalPremium).plus(riskCosts.totalFsl).toNumber()\r\n : new BigNumber(riskCosts.totalPremium)\r\n .plus(riskCosts.totalEarthquakePremium)\r\n .plus(riskCosts.totalEarthquakeLevy)\r\n .plus(riskCosts.totalFsl)\r\n .toNumber();\r\n\r\n return config.gstApplies ? calculateGst(value, this.config.gstRate) : 0;\r\n }\r\n\r\n calculateCoInsuredInsurerRiskGst(isAu, insurerRiskCosts, config) {\r\n insurerRiskCosts.isGstOverridden = false;\r\n\r\n const value = isAu\r\n ? new BigNumber(insurerRiskCosts.premium).plus(insurerRiskCosts.fsl).toNumber()\r\n : new BigNumber(insurerRiskCosts.premium)\r\n .plus(insurerRiskCosts.earthquakePremium)\r\n .plus(insurerRiskCosts.earthquakeLevy)\r\n .plus(insurerRiskCosts.fsl)\r\n .toNumber();\r\n\r\n return config.gstApplies ? calculateGst(value, this.config.gstRate) : 0;\r\n }\r\n\r\n calculateCoInsuredRiskTotalStampDuty(riskCosts, config) {\r\n riskCosts.isTotalStampDutyOverridden = false;\r\n\r\n return evenRound(\r\n new BigNumber(riskCosts.totalPremium)\r\n .plus(riskCosts.totalFsl)\r\n .plus(riskCosts.totalGst)\r\n .multipliedBy(config.stampDutyRate)\r\n .dividedBy(100)\r\n .toNumber(),\r\n 2,\r\n );\r\n }\r\n\r\n calculateCoInsuredInsurerRiskStampDuty(insurerRiskCosts, config) {\r\n insurerRiskCosts.isStampDutyOverridden = false;\r\n\r\n return evenRound(\r\n new BigNumber(insurerRiskCosts.premium)\r\n .plus(insurerRiskCosts.fsl)\r\n .plus(insurerRiskCosts.gst)\r\n .multipliedBy(config.stampDutyRate)\r\n .dividedBy(100)\r\n .toNumber(),\r\n 2,\r\n );\r\n }\r\n\r\n calculateCoInsuredRiskTotalFsl(riskCosts, config) {\r\n riskCosts.isTotalFslOverridden = false;\r\n\r\n return evenRound(\r\n new BigNumber(config.fslRate)\r\n .multipliedBy(riskCosts.totalPremium)\r\n .dividedBy(100).toNumber(),\r\n 2,\r\n );\r\n }\r\n\r\n calculateCoInsuredRiskFsl(risk, config) {\r\n risk.isFslOverridden = false;\r\n\r\n return evenRound(\r\n new BigNumber(config.percentageHeld)\r\n .multipliedBy(risk.totalFsl)\r\n .dividedBy(100)\r\n .toNumber(),\r\n 2,\r\n );\r\n }\r\n\r\n calculateCoInsuredRiskGst(risk, config) {\r\n risk.isGstOverridden = false;\r\n\r\n return evenRound(\r\n new BigNumber(config.percentageHeld)\r\n .multipliedBy(risk.totalGst)\r\n .dividedBy(100)\r\n .toNumber(),\r\n 2,\r\n );\r\n }\r\n\r\n calculateCoInsuredStampDuty(risk, config) {\r\n risk.isStampDutyOverridden = false;\r\n\r\n return evenRound(\r\n new BigNumber(config.percentageHeld)\r\n .multipliedBy(risk.totalStampDuty)\r\n .dividedBy(100)\r\n .toNumber(),\r\n 2,\r\n );\r\n }\r\n\r\n coInsuredRiskTotalsChanged(risk, fieldName, riskConfig) {\r\n this.taskQueue.queueTask(() => {\r\n this.isDirty = true;\r\n\r\n const isAu = this.appClientType === 'AU';\r\n const isNz = this.appClientType === 'NZ';\r\n\r\n this.parseFslStampDutyRate(riskConfig);\r\n\r\n /** Recalc Total Fsl **/\r\n const totalFslRecalcFields = ['totalPremium'];\r\n if (totalFslRecalcFields.includes(fieldName)) {\r\n if (riskConfig.fslRate !== 0) {\r\n risk.totalFsl = this.calculateCoInsuredRiskTotalFsl(risk, riskConfig);\r\n }\r\n }\r\n\r\n /** Recalc Total GST **/\r\n const totalGstRecalcFields = ['totalPremium', 'totalEarthquakePremium', 'totalEarthquakeLevy', 'totalFsl'];\r\n if (totalGstRecalcFields.includes(fieldName)) {\r\n risk.totalGst = this.calculateCoInsuredRiskTotalGst(isAu, risk, riskConfig);\r\n }\r\n\r\n /** Recalc Total Stamp Duty **/\r\n const totalStampDutyRecalcFields = ['totalPremium', 'totalFsl', 'totalGst'];\r\n if (totalStampDutyRecalcFields.includes(fieldName)) {\r\n if (riskConfig.stampDutyRate !== 0) {\r\n risk.totalStampDuty = this.calculateCoInsuredRiskTotalStampDuty(risk, riskConfig);\r\n }\r\n }\r\n\r\n this.isCoInsuredTotalOverridden(isAu, risk, riskConfig);\r\n\r\n /** Recalc Insurer Risks **/\r\n const insurerRiskRecalcFields = [\r\n 'totalPremium',\r\n 'totalEarthquakePremium',\r\n 'totalEarthquakeLevy',\r\n 'totalFsl',\r\n 'totalGst',\r\n 'totalStampDuty',\r\n ];\r\n if (insurerRiskRecalcFields.includes(fieldName)) {\r\n risk.insurerRisks.forEach((insurer) => {\r\n const insurerConfig = riskConfig.insurerRisks.find(\r\n (x) => x.entityInsurerRiskId === insurer.entityInsurerRiskId,\r\n );\r\n\r\n const premiumFields = ['totalPremium'];\r\n if (premiumFields.includes(fieldName)) {\r\n insurer.premium = evenRound(\r\n new BigNumber(insurerConfig.percentageHeld).multipliedBy(risk.totalPremium).dividedBy(100).toNumber(),\r\n 2,\r\n );\r\n }\r\n\r\n if (isNz) {\r\n const earthquakePremiumFields = ['totalEarthquakePremium'];\r\n if (earthquakePremiumFields.includes(fieldName)) {\r\n insurer.earthquakePremium = evenRound(\r\n new BigNumber(insurerConfig.percentageHeld)\r\n .multipliedBy(risk.totalEarthquakePremium)\r\n .dividedBy(100)\r\n .toNumber(),\r\n 2,\r\n );\r\n }\r\n\r\n const earthquakeLevyFields = ['totalEarthquakeLevy'];\r\n if (earthquakeLevyFields.includes(fieldName)) {\r\n insurer.earthquakeLevy = evenRound(\r\n new BigNumber(insurerConfig.percentageHeld)\r\n .multipliedBy(risk.totalEarthquakeLevy)\r\n .dividedBy(100)\r\n .toNumber(),\r\n 2,\r\n );\r\n }\r\n }\r\n\r\n const fslFields = ['totalPremium', 'totalEarthquakePremium', 'totalEarthquakeLevy', 'totalFsl'];\r\n if (fslFields.includes(fieldName)) {\r\n insurer.fsl = this.calculateCoInsuredRiskFsl(risk, insurerConfig);\r\n }\r\n\r\n const gstFields = ['totalPremium', 'totalEarthquakePremium', 'totalEarthquakeLevy', 'totalFsl', 'totalGst'];\r\n if (gstFields.includes(fieldName)) {\r\n insurer.gst = this.calculateCoInsuredRiskGst(risk, insurerConfig);\r\n }\r\n\r\n const stampDutyFields = [\r\n 'totalPremium',\r\n 'totalEarthquakePremium',\r\n 'totalEarthquakeLevy',\r\n 'totalFsl',\r\n 'totalGst',\r\n 'totalStampDuty',\r\n ];\r\n if (stampDutyFields.includes(fieldName)) {\r\n insurer.stampDuty = this.calculateCoInsuredStampDuty(risk, insurerConfig);\r\n }\r\n\r\n // calculate brokerage and brokerageGst\r\n const brokerageFields = ['totalPremium'];\r\n if (brokerageFields.includes(fieldName)) {\r\n switch (insurer.brokerageTypeId) {\r\n case 1: // Standard\r\n case 2: // Non Standard\r\n insurer.brokerage = evenRound((insurer.premium * insurer.brokeragePercentage) / 100, 2);\r\n insurer.brokerageGst = this.calculateBrokerageGst(insurer, riskConfig);\r\n break;\r\n case 3: // Advised Value\r\n insurer.brokerageGst = this.calculateBrokerageGst(insurer, riskConfig);\r\n break;\r\n }\r\n }\r\n\r\n // calculate earthquakeBrokerage and earthquakeBrokerageGst\r\n const earthquakeBrokerageFields = ['totalEarthquakePremium'];\r\n if (earthquakeBrokerageFields.includes(fieldName)) {\r\n switch (insurer.earthquakeBrokerageTypeId) {\r\n case 1: // Standard\r\n case 2: // Non Standard\r\n insurer.earthquakeBrokerage = evenRound(\r\n (insurer.earthquakePremium * insurer.earthquakeBrokeragePercentage) / 100,\r\n 2,\r\n );\r\n insurer.earthquakeBrokerageGst = this.calculateEarthquakeBrokerageGst(insurer, riskConfig);\r\n break;\r\n case 3: // Advised Value\r\n insurer.earthquakeBrokerageGst = this.calculateEarthquakeBrokerageGst(insurer, riskConfig);\r\n break;\r\n }\r\n }\r\n\r\n this.isValueOverridden(isAu, insurer, riskConfig);\r\n });\r\n }\r\n });\r\n }\r\n\r\n coInsuredInsurerRiskChanged(risk, insurerRisk, fieldName, riskConfig) {\r\n this.taskQueue.queueTask(() => {\r\n this.isDirty = true;\r\n\r\n const isAu = this.appClientType === 'AU';\r\n const isNz = this.appClientType === 'NZ';\r\n\r\n this.parseFslStampDutyRate(riskConfig);\r\n\r\n /** Recalc Fsl **/\r\n const fslRecalcFields = ['premium'];\r\n if (fslRecalcFields.includes(fieldName)) {\r\n if (riskConfig.fslRate !== 0) {\r\n insurerRisk.fsl = this.calculateCoInsuredInsurerRiskFsl(insurerRisk, riskConfig);\r\n }\r\n }\r\n\r\n /** Recalc GST **/\r\n const gstRecalcFields = ['premium', 'earthquakePremium', 'earthquakeLevy', 'fsl'];\r\n if (gstRecalcFields.includes(fieldName)) {\r\n insurerRisk.gst = this.calculateCoInsuredInsurerRiskGst(isAu, insurerRisk, riskConfig);\r\n }\r\n\r\n /** Recalc Stamp Duty **/\r\n const stampDutyRecalcFields = ['premium', 'fsl', 'gst'];\r\n if (stampDutyRecalcFields.includes(fieldName)) {\r\n if (riskConfig.stampDutyRate !== 0) {\r\n insurerRisk.stampDuty = this.calculateCoInsuredInsurerRiskStampDuty(insurerRisk, riskConfig);\r\n }\r\n }\r\n\r\n /** Brokerage Options **/\r\n const brokerageFields = [\r\n 'premium',\r\n 'earthquakePremium',\r\n 'brokerageOptions',\r\n 'earthquakeBrokerageOptions',\r\n 'brokerage',\r\n 'earthquakeBrokerage',\r\n 'brokeragePercentage',\r\n 'earthquakeBrokeragePercentage',\r\n ];\r\n if (brokerageFields.includes(fieldName)) {\r\n const selectedBrokerageOption = riskConfig.insurerRisks\r\n .find((x) => x.entityInsurerRiskId === insurerRisk.entityInsurerRiskId)\r\n .brokerageOptions.find((b) => b.brokerageTypeId === insurerRisk.brokerageTypeId);\r\n\r\n // Merge in selected brokerage option\r\n insurerRisk.amountEditable = selectedBrokerageOption.amountEditable;\r\n insurerRisk.percentageEditable = selectedBrokerageOption.percentageEditable;\r\n\r\n if (!selectedBrokerageOption.percentageEditable) {\r\n insurerRisk.brokeragePercentage = selectedBrokerageOption.defaultPercentage;\r\n }\r\n\r\n // only reset values when dropdown changes\r\n if (fieldName === 'brokerageOptions') {\r\n switch (insurerRisk.brokerageTypeId) {\r\n case 2: // Non Standard\r\n case 3: // Advised Value\r\n case 4: // To be Advised\r\n insurerRisk.brokeragePercentage = 0;\r\n insurerRisk.brokerage = 0.0;\r\n insurerRisk.brokerageGst = 0.0;\r\n break;\r\n }\r\n }\r\n\r\n // calculate brokerage and brokerageGst\r\n switch (insurerRisk.brokerageTypeId) {\r\n case 1: // Standard\r\n case 2: // Non Standard\r\n insurerRisk.brokerage = evenRound((insurerRisk.premium * insurerRisk.brokeragePercentage) / 100, 2);\r\n insurerRisk.brokerageGst = this.calculateBrokerageGst(insurerRisk, riskConfig);\r\n break;\r\n case 3: // Advised Value\r\n insurerRisk.brokerageGst = this.calculateBrokerageGst(insurerRisk, riskConfig);\r\n break;\r\n }\r\n\r\n if (isNz) {\r\n /** Earthquake Brokerage Options **/\r\n const selectedBrokerageOption = riskConfig.insurerRisks\r\n .find((x) => x.entityInsurerRiskId === insurerRisk.entityInsurerRiskId)\r\n .earthquakeBrokerageOptions.find((b) => b.brokerageTypeId === insurerRisk.earthquakeBrokerageTypeId);\r\n\r\n // Merge in selected brokerage option\r\n insurerRisk.earthquakeAmountEditable = selectedBrokerageOption.amountEditable;\r\n insurerRisk.earthquakePercentageEditable = selectedBrokerageOption.percentageEditable;\r\n\r\n if (!selectedBrokerageOption.percentageEditable) {\r\n insurerRisk.earthquakeBrokeragePercentage = selectedBrokerageOption.defaultPercentage;\r\n }\r\n\r\n // only reset values when dropdown changes\r\n if (fieldName === 'earthquakeBrokerageOptions') {\r\n switch (insurerRisk.earthquakeBrokerageTypeId) {\r\n case 2: // Non Standard\r\n case 3: // Advised Value\r\n case 4: // To be Advised\r\n insurerRisk.earthquakeBrokeragePercentage = 0;\r\n insurerRisk.earthquakeBrokerage = 0.0;\r\n insurerRisk.earthquakeBrokerageGst = 0.0;\r\n break;\r\n }\r\n }\r\n\r\n // calculate earthquakeBrokerage and earthquakeBrokerageGst\r\n switch (insurerRisk.earthquakeBrokerageTypeId) {\r\n case 1: // Standard\r\n case 2: // Non Standard\r\n insurerRisk.earthquakeBrokerage = evenRound(\r\n (insurerRisk.earthquakePremium * insurerRisk.earthquakeBrokeragePercentage) / 100,\r\n 2,\r\n );\r\n insurerRisk.earthquakeBrokerageGst = this.calculateEarthquakeBrokerageGst(insurerRisk, riskConfig);\r\n break;\r\n case 3: // Advised Value\r\n insurerRisk.earthquakeBrokerageGst = this.calculateEarthquakeBrokerageGst(insurerRisk, riskConfig);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n /** Update Risk Totals **/\r\n const totalRecalcFields = ['premium', 'earthquakePremium', 'earthquakeLevy', 'fsl', 'gst', 'stampDuty'];\r\n if (totalRecalcFields.includes(fieldName)) {\r\n risk.totalPremium = risk.insurerRisks.reduce(\r\n (total, { premium }) => evenRound(new BigNumber(total).plus(premium).toNumber(), 2),\r\n 0,\r\n );\r\n\r\n if (isNz) {\r\n risk.totalEarthquakePremium = risk.insurerRisks.reduce(\r\n (total, { earthquakePremium }) => evenRound(new BigNumber(total).plus(earthquakePremium).toNumber(), 2),\r\n 0,\r\n );\r\n risk.totalEarthquakeLevy = risk.insurerRisks.reduce(\r\n (total, { earthquakeLevy }) => evenRound(new BigNumber(total).plus(earthquakeLevy).toNumber(), 2),\r\n 0,\r\n );\r\n }\r\n\r\n risk.totalFsl = risk.insurerRisks.reduce(\r\n (total, { fsl }) => evenRound(new BigNumber(total).plus(fsl).toNumber(), 2),\r\n 0,\r\n );\r\n risk.totalGst = risk.insurerRisks.reduce(\r\n (total, { gst }) => evenRound(new BigNumber(total).plus(gst).toNumber(), 2),\r\n 0,\r\n );\r\n risk.totalStampDuty = risk.insurerRisks.reduce(\r\n (total, { stampDuty }) => evenRound(new BigNumber(total).plus(stampDuty).toNumber(), 2),\r\n 0,\r\n );\r\n\r\n this.isCoInsuredTotalOverridden(isAu, risk, riskConfig);\r\n }\r\n\r\n this.isValueOverridden(isAu, insurerRisk, riskConfig);\r\n });\r\n }\r\n\r\n riskChanged(risk, fieldName, riskConfiguration = null, override = false) {\r\n this.taskQueue.queueTask(() => {\r\n this.isDirty = true;\r\n\r\n if (fieldName === 'gst' && override) {\r\n this.model.gstOverrideFlag = true;\r\n }\r\n\r\n const isAu = this.appClientType === 'AU';\r\n const isNz = this.appClientType === 'NZ';\r\n const isCoInsured = this.coInsuredFlag;\r\n const isPackagedCosts = this.model.packageFlag;\r\n const isRiskCosts = !isPackagedCosts && !isCoInsured;\r\n const isFap = this.model.useFapFlag;\r\n const config = isRiskCosts\r\n ? this.selectedInsurer.riskConfiguration.find((x) => x.entityRiskId === risk.entityRiskId)\r\n : this.selectedInsurer.packageConfiguration;\r\n\r\n this.parseFslStampDutyRate(config);\r\n\r\n risk.premiumTotal = evenRound(\r\n new BigNumber(risk.premium)\r\n .plus(risk.fsl)\r\n .plus(risk.gst)\r\n .plus(risk.stampDuty || 0)\r\n .toNumber(),\r\n 2,\r\n );\r\n\r\n /** Recalc fapFsl **/\r\n const fapFslRecalcFields = ['fapPremium'];\r\n if (fapFslRecalcFields.includes(fieldName)) {\r\n if (config.fslRate !== 0) {\r\n risk.fapFsl = this.calculateFapFsl(risk, config);\r\n }\r\n }\r\n\r\n /** Recalc fapGst **/\r\n const fapGstRecalcFields = ['fapPremium', 'fapEarthquakePremium', 'fapEarthquakeLevy', 'fapFsl'];\r\n if (fapGstRecalcFields.includes(fieldName)) {\r\n risk.fapGst = this.calculateFapGst(isAu, risk, config);\r\n }\r\n\r\n /** Recalc fapStampDuty **/\r\n const fapStampDutyRecalcFields = ['fapPremium', 'fapFsl', 'fapGst'];\r\n if (fapStampDutyRecalcFields.includes(fieldName)) {\r\n if (config.stampDutyRate !== 0) {\r\n risk.fapStampDuty = this.calculateFapStampDuty(risk, config);\r\n }\r\n }\r\n\r\n /** Set premium **/\r\n if (fieldName === 'fapPremium') {\r\n risk.premium = this.calculateFapDerivedAmount(this.config, risk.fapPremium, risk.fapPrevPremium);\r\n\r\n // TODO: revisit this late on\r\n // this fixes an issue where updating the fapPremium causes the GST amount to be rounded incorrectly\r\n this.riskChanged(risk, 'premium');\r\n }\r\n\r\n /** Set earthquakePremium **/\r\n if (fieldName === 'fapEarthquakePremium') {\r\n risk.earthquakePremium = this.calculateFapDerivedAmount(\r\n this.config,\r\n risk.fapEarthquakePremium,\r\n risk.fapPrevEarthquakePremium,\r\n );\r\n }\r\n\r\n /** Set earthquakeLevy **/\r\n if (fieldName === 'fapEarthquakeLevy') {\r\n risk.earthquakeLevy = this.calculateFapDerivedAmount(\r\n this.config,\r\n risk.fapEarthquakeLevy,\r\n risk.fapPrevEarthquakeLevy,\r\n );\r\n }\r\n\r\n /** Set fsl **/\r\n if (fieldName === 'fapFsl' || (config.fslRate !== 0 && fapFslRecalcFields.includes(fieldName))) {\r\n risk.fsl = this.calculateFapDerivedAmount(this.config, risk.fapFsl, risk.fapPrevFsl);\r\n }\r\n\r\n /** Set gst **/\r\n if (fieldName === 'fapGst' || fapGstRecalcFields.includes(fieldName)) {\r\n risk.gst = this.calculateFapDerivedAmount(this.config, risk.fapGst, risk.fapPrevGst);\r\n }\r\n\r\n /** Set stampDuty **/\r\n if (\r\n fieldName === 'fapStampDuty' ||\r\n (config.stampDutyRate !== 0 && fapStampDutyRecalcFields.includes(fieldName))\r\n ) {\r\n risk.stampDuty = this.calculateFapDerivedAmount(this.config, risk.fapStampDuty, risk.fapPrevStampDuty);\r\n }\r\n\r\n /** Recalc FSL **/\r\n const fslRecalcFields = ['premium'];\r\n if (fslRecalcFields.includes(fieldName)) {\r\n if (config.fslRate !== 0) {\r\n risk.fsl = this.calculateFsl(risk, config);\r\n }\r\n }\r\n\r\n /** Recalc GST **/\r\n const gstRecalcFields = ['premium', 'earthquakePremium', 'earthquakeLevy', 'fsl'];\r\n if (gstRecalcFields.includes(fieldName)) {\r\n risk.gst = this.calculateGst(isAu, risk, config);\r\n }\r\n\r\n /** Recalc Stamp Duty **/\r\n const stampDutyRecalcFields = ['premium', 'fsl', 'gst'];\r\n if (stampDutyRecalcFields.includes(fieldName)) {\r\n if (config.stampDutyRate !== 0) {\r\n risk.stampDuty = this.calculateStampDuty(risk, config);\r\n }\r\n }\r\n\r\n /** Brokerage Options **/\r\n const brokerageFields = [\r\n 'premium',\r\n 'earthquakePremium',\r\n 'fapPremium',\r\n 'fapEarthquakePremium',\r\n 'brokerageOptions',\r\n 'earthquakeBrokerageOptions',\r\n 'brokerage',\r\n 'earthquakeBrokerage',\r\n 'brokeragePercentage',\r\n 'earthquakeBrokeragePercentage',\r\n ];\r\n if (brokerageFields.includes(fieldName)) {\r\n if (isRiskCosts) {\r\n const selectedBrokerageOption = config.brokerageOptions.find(\r\n (b) => b.brokerageTypeId === parseInt(risk.selectedBrokerageOption.brokerageTypeId),\r\n );\r\n\r\n // Merge in selected brokerage option\r\n risk.brokerageTypeId = selectedBrokerageOption.brokerageTypeId;\r\n risk.amountEditable = selectedBrokerageOption.amountEditable;\r\n risk.defaultPercentage = selectedBrokerageOption.defaultPercentage;\r\n risk.percentageEditable = selectedBrokerageOption.percentageEditable;\r\n\r\n if (!selectedBrokerageOption.percentageEditable) {\r\n risk.brokeragePercentage = selectedBrokerageOption.defaultPercentage;\r\n }\r\n\r\n // only reset values when dropdown changes\r\n if (fieldName === 'brokerageOptions') {\r\n switch (risk.brokerageTypeId) {\r\n case 2: // Non Standard\r\n case 3: // Advised Value\r\n case 4: // To be Advised\r\n risk.brokeragePercentage = 0;\r\n risk.brokerage = 0.0;\r\n risk.brokerageGst = 0.0;\r\n break;\r\n }\r\n }\r\n\r\n // calculate brokerage and brokerageGst\r\n switch (risk.brokerageTypeId) {\r\n case 1: // Standard\r\n case 2: // Non Standard\r\n risk.brokerage = evenRound((risk.premium * risk.brokeragePercentage) / 100, 2);\r\n\r\n risk.brokerageGst = this.calculateBrokerageGst(risk, config);\r\n break;\r\n case 3: // Advised Value\r\n risk.brokerageGst = this.calculateBrokerageGst(risk, config);\r\n break;\r\n }\r\n\r\n if (isNz) {\r\n /** Earthquake Brokerage Options **/\r\n const selectedBrokerageOption = config.earthquakeBrokerageOptions.find(\r\n (b) => b.brokerageTypeId === parseInt(risk.selectedEarthquakeBrokerageOption.brokerageTypeId),\r\n );\r\n\r\n // Merge in selected brokerage option\r\n risk.earthquakeBrokerageTypeId = selectedBrokerageOption.brokerageTypeId;\r\n risk.earthquakeAmountEditable = selectedBrokerageOption.amountEditable;\r\n risk.earthquakeDefaultPercentage = selectedBrokerageOption.defaultPercentage;\r\n risk.earthquakePercentageEditable = selectedBrokerageOption.percentageEditable;\r\n\r\n if (!selectedBrokerageOption.percentageEditable) {\r\n risk.earthquakeBrokeragePercentage = selectedBrokerageOption.defaultPercentage;\r\n }\r\n\r\n // only reset values when dropdown changes\r\n if (fieldName === 'earthquakeBrokerageOptions') {\r\n switch (risk.earthquakeBrokerageTypeId) {\r\n case 2: // Non Standard\r\n case 3: // Advised Value\r\n case 4: // To be Advised\r\n risk.earthquakeBrokeragePercentage = 0;\r\n risk.earthquakeBrokerage = 0.0;\r\n risk.earthquakeBrokerageGst = 0.0;\r\n break;\r\n }\r\n }\r\n\r\n // calculate earthquakeBrokerage and earthquakeBrokerageGst\r\n switch (risk.earthquakeBrokerageTypeId) {\r\n case 1: // Standard\r\n case 2: // Non Standard\r\n risk.earthquakeBrokerage = evenRound(\r\n (risk.earthquakePremium * risk.earthquakeBrokeragePercentage) / 100,\r\n 2,\r\n );\r\n\r\n risk.earthquakeBrokerageGst = this.calculateEarthquakeBrokerageGst(risk, config);\r\n break;\r\n case 3: // Advised Value\r\n risk.earthquakeBrokerageGst = this.calculateEarthquakeBrokerageGst(risk, config);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (isPackagedCosts) {\r\n const selectedBrokerageOption = config.brokerageOptions.find(\r\n (b) => b.brokerageTypeId === parseInt(this.model.packageCosts.selectedBrokerageOption.brokerageTypeId),\r\n );\r\n\r\n // Merge in selected brokerage option\r\n this.model.packageCosts.brokerageTypeId = selectedBrokerageOption.brokerageTypeId;\r\n this.model.packageCosts.amountEditable = selectedBrokerageOption.amountEditable;\r\n this.model.packageCosts.defaultPercentage = selectedBrokerageOption.defaultPercentage;\r\n this.model.packageCosts.percentageEditable = selectedBrokerageOption.percentageEditable;\r\n\r\n if (!selectedBrokerageOption.percentageEditable) {\r\n this.model.packageCosts.brokeragePercentage = selectedBrokerageOption.defaultPercentage;\r\n }\r\n\r\n switch (this.model.packageCosts.brokerageTypeId) {\r\n case 2: // Non Standard\r\n this.model.packageCosts.brokerage = evenRound(\r\n (this.model.packageCosts.premium * this.model.packageCosts.brokeragePercentage) / 100,\r\n 2,\r\n );\r\n\r\n this.model.packageCosts.brokerageGst = this.calculateBrokerageGst(this.model.packageCosts, config);\r\n break;\r\n case 3: // Advised Value\r\n this.model.packageCosts.brokerageGst = this.calculateBrokerageGst(this.model.packageCosts, config);\r\n break;\r\n }\r\n\r\n if (isNz) {\r\n /** Earthquake Brokerage Options **/\r\n const selectedBrokerageOption = config.earthquakeBrokerageOptions.find(\r\n (b) =>\r\n b.brokerageTypeId ===\r\n parseInt(this.model.packageCosts.selectedEarthquakeBrokerageOption.brokerageTypeId),\r\n );\r\n\r\n // Merge in selected brokerage option\r\n this.model.packageCosts.earthquakeBrokerageTypeId = selectedBrokerageOption.brokerageTypeId;\r\n this.model.packageCosts.earthquakeAmountEditable = selectedBrokerageOption.amountEditable;\r\n this.model.packageCosts.earthquakeDefaultPercentage = selectedBrokerageOption.defaultPercentage;\r\n this.model.packageCosts.earthquakePercentageEditable = selectedBrokerageOption.percentageEditable;\r\n\r\n if (!selectedBrokerageOption.percentageEditable) {\r\n this.model.packageCosts.earthquakeBrokeragePercentage = selectedBrokerageOption.defaultPercentage;\r\n }\r\n\r\n switch (this.model.packageCosts.earthquakeBrokerageTypeId) {\r\n case 2: // Non Standard\r\n this.model.packageCosts.earthquakeBrokerage = evenRound(\r\n (this.model.packageCosts.earthquakePremium * this.model.packageCosts.earthquakeBrokeragePercentage) /\r\n 100,\r\n 2,\r\n );\r\n\r\n this.model.packageCosts.earthquakeBrokerageGst = this.calculateEarthquakeBrokerageGst(\r\n this.model.packageCosts,\r\n config,\r\n );\r\n break;\r\n case 3: // Advised Value\r\n this.model.packageCosts.earthquakeBrokerageGst = this.calculateEarthquakeBrokerageGst(\r\n this.model.packageCosts,\r\n config,\r\n );\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if(isFap) {\r\n this.isFapValueOverridden(isAu, risk, config);\r\n }\r\n\r\n this.isValueOverridden(isAu, risk, config);\r\n });\r\n }\r\n\r\n isCoInsuredTotalOverridden(isAu, risk, config) {\r\n this.isCoInsuredTotalFslOverridden(risk, config);\r\n this.isCoInsuredTotalGstOverridden(isAu, risk, config);\r\n this.isCoInsuredTotalStampDutyOverridden(risk, config);\r\n }\r\n\r\n isFapValueOverridden(isAu, costs, config) {\r\n this.isFapFslOverridden(costs, config);\r\n this.isFapGstOverridden(isAu, costs, config);\r\n this.isFapStampDutyOverridden(costs, config);\r\n }\r\n\r\n isValueOverridden(isAu, costs, config) {\r\n this.isFslOverridden(costs, config);\r\n this.isGstOverridden(isAu, costs, config);\r\n this.isStampDutyOverridden(costs, config);\r\n this.isBrokerageGstOverridden(costs, config);\r\n this.isEarthquakeBrokerageGstOverridden(costs, config);\r\n }\r\n\r\n isFapFslOverridden(costs, config) {\r\n costs.isFapFslOverridden = new BigNumber(costs.fapFsl).toNumber() !== this.calculateFapFsl(costs, config);\r\n }\r\n\r\n isFapGstOverridden(isAu, costs, config) {\r\n costs.isFapGstOverridden = new BigNumber(costs.fapGst).toNumber() !== this.calculateFapGst(isAu, costs, config);\r\n }\r\n\r\n isFapStampDutyOverridden(costs, config) {\r\n costs.isFapStampDutyOverridden = new BigNumber(costs.fapStampDuty).toNumber() !== this.calculateFapStampDuty(costs, config);\r\n }\r\n\r\n isFslOverridden(costs, config) {\r\n costs.isFslOverridden = new BigNumber(costs.fsl).toNumber() !== this.calculateFsl(costs, config);\r\n }\r\n\r\n isGstOverridden(isAu, costs, config) {\r\n costs.isGstOverridden = new BigNumber(costs.gst).toNumber() !== this.calculateGst(isAu, costs, config);\r\n }\r\n\r\n isStampDutyOverridden(costs, config) {\r\n costs.isStampDutyOverridden = new BigNumber(costs.stampDuty).toNumber() !== this.calculateStampDuty(costs, config);\r\n }\r\n\r\n isBrokerageGstOverridden(costs, config) {\r\n costs.isBrokerageGstOverridden = new BigNumber(costs.brokerageGst).toNumber() !== this.calculateBrokerageGst(costs, config);\r\n }\r\n\r\n isEarthquakeBrokerageGstOverridden(costs, config) {\r\n costs.isEarthquakeBrokerageGstOverridden = new BigNumber(costs.earthquakeBrokerageGst).toNumber() !== this.calculateEarthquakeBrokerageGst(costs, config);\r\n }\r\n\r\n isCoInsuredTotalFslOverridden(risk, config) {\r\n risk.isTotalFslOverridden = new BigNumber(risk.totalFsl).toNumber() !== this.calculateCoInsuredRiskTotalFsl(risk, config);\r\n }\r\n\r\n isCoInsuredTotalGstOverridden(isAu, risk, config) {\r\n risk.isTotalGstOverridden = new BigNumber(risk.totalGst).toNumber() !== this.calculateCoInsuredRiskTotalGst(isAu, risk, config);\r\n }\r\n\r\n isCoInsuredTotalStampDutyOverridden(risk, config) {\r\n risk.isTotalStampDutyOverridden = new BigNumber(risk.totalStampDuty).toNumber() !== this.calculateCoInsuredRiskTotalStampDuty(risk, config);\r\n }\r\n\r\n async updateCurrentInsurer() {\r\n if (\r\n this.params.entityMode === EntityMode.View ||\r\n typeof this.config.insurers[this.selectedInsurerTab] === 'undefined' ||\r\n this.config.isReadOnly\r\n ) {\r\n return true;\r\n }\r\n\r\n if (this.config?.ratingRequired) {\r\n const entityInsurerRiskId = this.model.situations?.[0]?.risks?.[0]?.entityInsurerRiskId;\r\n\r\n const response = await this.api.putRiskPackageQuoteAutoRate(\r\n this.params.id,\r\n this.params.actionType,\r\n this.params.entityType,\r\n parseInt(this.params.entityId),\r\n this.config.insurers[this.selectedInsurerTab].entityInsurerId,\r\n entityInsurerRiskId,\r\n this.model,\r\n );\r\n\r\n return response.ok ? true : false;\r\n } else {\r\n const response = await this.api.putRiskPackageQuote(\r\n this.params.id,\r\n this.params.actionType,\r\n this.params.entityType,\r\n parseInt(this.params.entityId),\r\n this.config.insurers[this.selectedInsurerTab].entityInsurerId,\r\n this.model,\r\n );\r\n\r\n return response.ok ? true : false;\r\n }\r\n }\r\n\r\n async updateCoInsured() {\r\n if (this.params.entityMode === EntityMode.View || this.config.isReadOnly) {\r\n return true;\r\n }\r\n\r\n const response = await this.api.putCoInsuredRiskQuote(\r\n this.params.id,\r\n this.params.actionType,\r\n this.params.entityType,\r\n parseInt(this.params.entityId),\r\n this.model,\r\n );\r\n\r\n return response.ok ? true : false;\r\n }\r\n\r\n async validate() {\r\n return this.coInsuredFlag ? this.updateCoInsured() : this.updateCurrentInsurer();\r\n }\r\n\r\n async validateBotQuote() {\r\n return await this.api.validateBotQuote(\r\n this.params.id,\r\n this.params.actionType,\r\n this.params.entityType,\r\n parseInt(this.params.entityId),\r\n );\r\n }\r\n\r\n // Open request quote modal\r\n async requestQuote() {\r\n // prevent double click of request quote button\r\n if (this.requestQuoteClicked || this.botRequestValidating || this.showRequestBotQuoteModal) {\r\n return;\r\n }\r\n\r\n this.requestQuoteClicked = true;\r\n\r\n if (await this.validate()) {\r\n try {\r\n this.botRequestValidating = true;\r\n this.showRequestBotQuoteModal = true;\r\n\r\n this.botValidationResult = (await this.validateBotQuote()).insurers;\r\n\r\n // Add id for table select row support\r\n if (this.botValidationResult) {\r\n for (let index = 0; index < this.botValidationResult.length; index++) {\r\n this.botValidationResult[index].id = index;\r\n\r\n // The rest of this response is camelCase, but the bot contract documents this flag as\r\n // CaptureDiscountCode, so accept either rather than silently hiding the discount input.\r\n this.botValidationResult[index].captureDiscountCode =\r\n this.botValidationResult[index].captureDiscountCode ?? this.botValidationResult[index].CaptureDiscountCode;\r\n\r\n // Pre-select or disable\r\n if (this.botValidationResult[index].canProcess) {\r\n this.selectedRows.push(this.botValidationResult[index]);\r\n this.botValidationResult[index].showSuccessStatus = true;\r\n } else {\r\n this.botValidationResult[index].checkboxDisabled = true;\r\n this.botValidationResult[index].showErrorStatus = true;\r\n this.botValidationResult[index].message = 'Validation failed. Expand row for details.';\r\n }\r\n\r\n for (\r\n let childIndex = 0;\r\n childIndex < this.botValidationResult[index].validationIssues.length;\r\n childIndex++\r\n ) {\r\n this.botValidationResult[index].validationIssues[childIndex].id = childIndex;\r\n }\r\n }\r\n }\r\n\r\n this.botRequestValidating = false;\r\n } catch (error) {\r\n this.botRequestValidating = false;\r\n this.showRequestBotQuoteModal = false;\r\n this.requestQuoteClicked = false;\r\n }\r\n }\r\n }\r\n\r\n async submitQuoteRequest() {\r\n this.submittingQuoteRequest = true;\r\n const requestedInsurers = this.selectedRows.map((x) => ({\r\n insurerId: x.insurerId,\r\n discountCode: (x.captureDiscountCode && x.discountCode) || null,\r\n }));\r\n\r\n try {\r\n // An endorsement rates through the amendment endpoint, which fixes the insurer server-side. The modal still\r\n // runs so the broker sees the validation issues, but there is no insurer selection to send.\r\n // loose equality throughout - actionType arrives from the router as a string\r\n const isEndorsement = this.params.actionType == EntityActionType.Endorsement;\r\n\r\n const response = isEndorsement\r\n ? await this.api.submitBotAmendment(\r\n this.params.id,\r\n this.params.actionType,\r\n this.params.entityType,\r\n parseInt(this.params.entityId),\r\n )\r\n : await this.api.submitBotQuote(\r\n this.params.id,\r\n this.params.actionType,\r\n this.params.entityType,\r\n parseInt(this.params.entityId),\r\n requestedInsurers,\r\n );\r\n\r\n if (response) {\r\n this.isQuoteRequestSubmitted = true;\r\n }\r\n\r\n this.submittingQuoteRequest = false;\r\n } catch (error) {\r\n this.submittingQuoteRequest = false;\r\n }\r\n }\r\n\r\n closeQuoteRequestModal() {\r\n if (this.isQuoteRequestSubmitted) {\r\n if (this.params.entityType === EntityType.Quote) {\r\n this.router.navigateToRoute('clientQuotes', { id: this.params.id, quoteId: this.params.entityId });\r\n } else if (this.params.entityType === EntityType.Incomplete || this.params.entityType === EntityType.Policy) {\r\n this.router.navigateToRoute('clientPolicies', {\r\n id: this.params.id,\r\n policyId: this.params.parentEntityId,\r\n policyVersionId: 0,\r\n statusTypeId: this.params.statusTypeId,\r\n versionNo: this.params.versionNo,\r\n });\r\n }\r\n } else {\r\n this.botRequestValidating = false;\r\n this.showRequestBotQuoteModal = false;\r\n this.requestQuoteClicked = false;\r\n this.botValidationResult = undefined;\r\n this.selectedRows = [];\r\n }\r\n }\r\n\r\n // Open cancel quote request modal\r\n async cancelQuoteRequest() {\r\n this.showCancelQuoteRequestModal = true;\r\n }\r\n\r\n async confirmCancelQuoteRequest(action: ConfirmModalActions) {\r\n if (action === 'cancel') {\r\n this.showCancelQuoteRequestModal = false;\r\n return;\r\n }\r\n\r\n if (action === 'confirm') {\r\n try {\r\n this.isCancelingQuoteRequest = true;\r\n const response = await this.api.cancelBotQuote(\r\n this.params.id,\r\n this.params.actionType,\r\n this.params.entityType,\r\n parseInt(this.params.entityId),\r\n );\r\n\r\n if (response) {\r\n window.location.reload();\r\n }\r\n\r\n this.showCancelQuoteRequestModal = false;\r\n this.isCancelingQuoteRequest = false;\r\n } catch (error) {\r\n this.showCancelQuoteRequestModal = false;\r\n this.isCancelingQuoteRequest = false;\r\n }\r\n }\r\n }\r\n\r\n async getList(type) {\r\n this.listType = type;\r\n if (type === 'clause') {\r\n this.list = await this.api.insurerClauses(\r\n this.params.id,\r\n this.params.actionType,\r\n this.params.entityType,\r\n parseInt(this.params.entityId),\r\n this.config.insurers[this.selectedInsurerTab].entityInsurerId,\r\n );\r\n } else if (type === 'referral') {\r\n this.list = await this.api.insurerReferrals(\r\n this.params.id,\r\n this.params.actionType,\r\n this.params.entityType,\r\n parseInt(this.params.entityId),\r\n this.config.insurers[this.selectedInsurerTab].entityInsurerId,\r\n );\r\n }\r\n\r\n this.showListModal = true;\r\n }\r\n\r\n // Reads the insurer off the selected tab exactly as getList does, which is what keeps the\r\n // Insurer Documents popup scoped to one insurer without touching the recommended insurer.\r\n async getInsurerDocuments() {\r\n this.insurerDocuments = [];\r\n this.popupBlocked = false;\r\n this.insurerDocumentsLoading = true;\r\n this.showInsurerDocumentsModal = true;\r\n\r\n try {\r\n this.insurerDocuments = await this.api.insurerDocuments(\r\n this.params.id,\r\n this.params.actionType,\r\n this.params.entityType,\r\n parseInt(this.params.entityId),\r\n this.config.insurers[this.selectedInsurerTab].entityInsurerId,\r\n );\r\n } catch (error) {\r\n log.error('Could not load insurer documents', error);\r\n this.showInsurerDocumentError('insurerDocumentsLoadFailed');\r\n this.showInsurerDocumentsModal = false;\r\n } finally {\r\n this.insurerDocumentsLoading = false;\r\n }\r\n }\r\n\r\n closeInsurerDocumentsModal() {\r\n this.showInsurerDocumentsModal = false;\r\n this.popupBlocked = false;\r\n // The object urls are deliberately left alive here - a preview tab opened from this modal still\r\n // reads from one. They are revoked on deactivate, when the step itself goes away.\r\n }\r\n\r\n async previewInsurerDocument(row) {\r\n this.popupBlocked = false;\r\n\r\n await this.withInsurerDocument(row, (objectUrl) => {\r\n const routeFragment = this.router.generate('pdfPreview', { title: row.documentName, url: objectUrl });\r\n const openPreview = PLATFORM.global.open(routeFragment, '_blank');\r\n\r\n if (!openPreview) {\r\n this.popupBlocked = true;\r\n }\r\n });\r\n }\r\n\r\n async printInsurerDocument(row) {\r\n this.insurerDocumentBusyId = row.entityInsurerDocumentId;\r\n\r\n try {\r\n // printPdfBlob owns the object url for the print frame, so this does not go through\r\n // withInsurerDocument - that tracks urls handed to preview tabs, which outlive this call.\r\n const blob = await this.fetchInsurerDocument(row);\r\n await printPdfBlob(blob, this.iframeContainer);\r\n } catch (error) {\r\n log.error('Could not print insurer document', error);\r\n this.showInsurerDocumentError('insurerDocumentFailed');\r\n } finally {\r\n this.insurerDocumentBusyId = null;\r\n }\r\n }\r\n\r\n async downloadInsurerDocument(row) {\r\n this.insurerDocumentBusyId = row.entityInsurerDocumentId;\r\n\r\n try {\r\n const blob = await this.fetchInsurerDocument(row);\r\n // downloadFile rather than downloadBlobFromUrl - we already hold the bytes, so there is\r\n // nothing to round trip through the octet-stream endpoint.\r\n this.blobService.downloadFile(blob, `${row.documentName}.pdf`);\r\n } catch (error) {\r\n log.error('Could not download insurer document', error);\r\n this.showInsurerDocumentError('insurerDocumentFailed');\r\n } finally {\r\n this.insurerDocumentBusyId = null;\r\n }\r\n }\r\n\r\n private async withInsurerDocument(row, action: (objectUrl: string) => void) {\r\n this.insurerDocumentBusyId = row.entityInsurerDocumentId;\r\n\r\n try {\r\n const blob = await this.fetchInsurerDocument(row);\r\n const objectUrl = URL.createObjectURL(blob);\r\n this.insurerDocumentObjectUrls.push(objectUrl);\r\n\r\n action(objectUrl);\r\n } catch (error) {\r\n log.error('Could not open insurer document', error);\r\n this.showInsurerDocumentError('insurerDocumentFailed');\r\n } finally {\r\n this.insurerDocumentBusyId = null;\r\n }\r\n }\r\n\r\n private fetchInsurerDocument(row): Promise {\r\n return this.api.insurerDocumentContent(\r\n this.params.id,\r\n this.params.actionType,\r\n this.params.entityType,\r\n parseInt(this.params.entityId),\r\n this.config.insurers[this.selectedInsurerTab].entityInsurerId,\r\n row.entityInsurerDocumentId,\r\n );\r\n }\r\n\r\n private showInsurerDocumentError(translationKey: string) {\r\n const toast = new IaToastMessage();\r\n toast.title = this.i18n.tr('insurerDocuments');\r\n toast.message = this.i18n.tr(translationKey);\r\n this.toast.error(toast);\r\n }\r\n\r\n private revokeInsurerDocumentObjectUrls() {\r\n this.insurerDocumentObjectUrls.forEach((url) => URL.revokeObjectURL(url));\r\n this.insurerDocumentObjectUrls = [];\r\n }\r\n\r\n // The wizard composes each step, so detached is the hook that reliably fires when this step goes\r\n // away; deactivate covers a direct route change. Revoking twice is a no-op.\r\n detached() {\r\n this.revokeInsurerDocumentObjectUrls();\r\n }\r\n\r\n deactivate() {\r\n this.revokeInsurerDocumentObjectUrls();\r\n }\r\n\r\n deleteAll(action = 'delete') {\r\n this.isDeleteAllMode = action === 'delete';\r\n }\r\n\r\n async processDeleteAll() {\r\n try {\r\n let response;\r\n if (this.listType === 'clause') {\r\n response = await this.api.deleteAllInsurerClauses(\r\n this.params.id,\r\n this.params.actionType,\r\n this.params.entityType,\r\n parseInt(this.params.entityId),\r\n this.config.insurers[this.selectedInsurerTab].entityInsurerId,\r\n );\r\n } else if (this.listType === 'referral') {\r\n response = await this.api.deleteAllinsurerReferrals(\r\n this.params.id,\r\n this.params.actionType,\r\n this.params.entityType,\r\n parseInt(this.params.entityId),\r\n this.config.insurers[this.selectedInsurerTab].entityInsurerId,\r\n );\r\n }\r\n\r\n if (response) {\r\n this.isDeleteAllMode = false;\r\n this.list = [];\r\n this.disabledListButtons();\r\n }\r\n } catch (error) {\r\n this.isDeleteAllMode = false;\r\n console.log(error);\r\n }\r\n }\r\n\r\n deleteRow(row, action = 'delete') {\r\n this.isDeleteMode = action === 'delete';\r\n row.isDeleteMode = action === 'delete';\r\n }\r\n\r\n async processDeleteRow(row) {\r\n try {\r\n let response;\r\n if (this.listType === 'clause') {\r\n response = await this.api.deleteInsurerClause(\r\n this.params.id,\r\n this.params.actionType,\r\n this.params.entityType,\r\n parseInt(this.params.entityId),\r\n this.config.insurers[this.selectedInsurerTab].entityInsurerId,\r\n row.entityInsurerClauseListId,\r\n );\r\n } else if (this.listType === 'referral') {\r\n response = await this.api.deleteinsurerReferral(\r\n this.params.id,\r\n this.params.actionType,\r\n this.params.entityType,\r\n parseInt(this.params.entityId),\r\n this.config.insurers[this.selectedInsurerTab].entityInsurerId,\r\n row.entityReferDeclineValidationIssueId,\r\n );\r\n }\r\n\r\n if (response) {\r\n if (this.listType === 'clause') {\r\n this.config.insurers[this.selectedInsurerTab].insurerClauseCount =\r\n this.config.insurers[this.selectedInsurerTab].insurerClauseCount - 1;\r\n } else if (this.listType === 'referral') {\r\n this.config.insurers[this.selectedInsurerTab].referralIssueCount =\r\n this.config.insurers[this.selectedInsurerTab].referralIssueCount - 1;\r\n }\r\n\r\n const index = this.list.indexOf(row);\r\n this.list.splice(index, 1);\r\n this.isDeleteMode = false;\r\n if (!this.list.length) {\r\n this.disabledListButtons();\r\n }\r\n }\r\n } catch (error) {\r\n this.isDeleteMode = false;\r\n log.error(error);\r\n }\r\n }\r\n\r\n disabledListButtons() {\r\n if (this.listType === 'clause') {\r\n this.config.insurers[this.selectedInsurerTab].insurerClauseCount = 0;\r\n this.config.insurers[this.selectedInsurerTab].insurerClausesPresent = false;\r\n } else if (this.listType === 'referral') {\r\n this.config.insurers[this.selectedInsurerTab].referralIssueCount = 0;\r\n this.config.insurers[this.selectedInsurerTab].referralIssuesPresent = false;\r\n }\r\n }\r\n\r\n canShowOverrideButton(entityInsurerRiskId, riskConfig) {\r\n let canShow = false;\r\n\r\n // Don't show override if it's a decline\r\n if (this.isDeclineDetails(entityInsurerRiskId)) {\r\n return false;\r\n }\r\n\r\n const status = this.ratingStatuses[entityInsurerRiskId];\r\n\r\n if (status) {\r\n if (status.transactionStatus === 600000000) {\r\n canShow = true;\r\n }\r\n\r\n if (!status.errorDecline || !Object.keys(status.errorDecline).length) {\r\n if (riskConfig.autoRatedRisk) {\r\n canShow = false;\r\n }\r\n }\r\n }\r\n\r\n return canShow;\r\n }\r\n\r\n isDeclineDetails(entityInsurerRiskId) {\r\n let isDecline = false;\r\n\r\n const status = this.ratingStatuses[entityInsurerRiskId];\r\n\r\n // if (status && status.errorDecline) {\r\n // if (Object.keys(status.errorDecline).length) {\r\n // isDecline = true;\r\n // }\r\n // }\r\n\r\n if (status && status.transactionStatus === 600000004) {\r\n isDecline = true;\r\n }\r\n\r\n return isDecline;\r\n }\r\n\r\n canShowReferralDetailsButton(entityInsurerRiskId) {\r\n let canShow = false;\r\n\r\n const status = this.ratingStatuses[entityInsurerRiskId];\r\n\r\n if (status && status.errorDecline) {\r\n if (Object.keys(status.errorDecline).length) {\r\n canShow = true;\r\n }\r\n }\r\n\r\n return canShow;\r\n }\r\n\r\n async referralDetails(riskId, riskConfig) {\r\n this.showReferralDetails = true;\r\n\r\n this.rejectSituation = '';\r\n this.rejectRisk = '';\r\n this.rejectReason = '';\r\n\r\n const rejection = await this.api.getRejection(\r\n this.params.id,\r\n parseInt(this.params.entityId),\r\n this.params.actionType,\r\n this.params.entityType,\r\n riskId,\r\n );\r\n\r\n this.rejectSituation = rejection?.situation;\r\n this.rejectRisk = rejection?.risk;\r\n this.rejectReason = rejection?.rejectionReason ?? '';\r\n }\r\n\r\n async override(riskId, parentIndex, riskConfig) {\r\n this.oldRisksModel = cloneDeep(this.model);\r\n this.currentlySelectedRiskId = riskId;\r\n this.showOverrideDetails = true;\r\n\r\n const overrideDetails: IOverride = await this.api.getOverrideDetails(\r\n this.params.id,\r\n parseInt(this.params.entityId),\r\n this.params.actionType,\r\n this.params.entityType,\r\n riskId,\r\n );\r\n\r\n this.overrideDetails = overrideDetails;\r\n this.overrideRiskId = riskId;\r\n this.overrideParentSituationIndex = parentIndex;\r\n }\r\n\r\n async saveOverride() {\r\n const riskId = this.currentlySelectedRiskId;\r\n\r\n const foundRisk = this.model.situations\r\n .find((s) => s.risks.some((r) => r.entityInsurerRiskId === riskId))\r\n ?.risks.find((r) => r.entityInsurerRiskId === riskId);\r\n\r\n if (!foundRisk) {\r\n return false;\r\n }\r\n\r\n const overrideModel = {\r\n entityInsurerRiskId: riskId,\r\n authorisationCode: this.overrideDetails.authorisationCode,\r\n authorisationReasonId: this.overrideDetails.authorisationReasonId,\r\n overrideComment: this.overrideDetails.overrideComment,\r\n fapPremium: foundRisk.fapPremium,\r\n fapEarthquakePremium: foundRisk.fapEarthquakePremium,\r\n fapEarthquakeLevy: foundRisk.fapEarthquakeLevy,\r\n fapFsl: foundRisk.fapFsl,\r\n fapGst: foundRisk.fapGst,\r\n premium: foundRisk.premium,\r\n earthquakePremium: foundRisk.earthquakePremium,\r\n earthquakeLevy: foundRisk.earthquakeLevy,\r\n fsl: foundRisk.fsl,\r\n gst: foundRisk.gst,\r\n brokerageTypeId: foundRisk.brokerageTypeId,\r\n brokeragePercentage: foundRisk.brokeragePercentage,\r\n brokerage: foundRisk.brokerage,\r\n brokerageGst: foundRisk.brokerageGst,\r\n earthquakeBrokerageTypeId: foundRisk.earthquakeBrokerageTypeId,\r\n earthquakeBrokeragePercentage: foundRisk.earthquakeBrokeragePercentage,\r\n earthquakeBrokerage: foundRisk.earthquakeBrokerage,\r\n earthquakeBrokerageGst: foundRisk.earthquakeBrokerageGst,\r\n stampDuty: foundRisk.stampDuty\r\n };\r\n\r\n const response = await this.api.putOverride(\r\n this.params.id,\r\n parseInt(this.params.entityId),\r\n this.params.actionType,\r\n this.params.entityType,\r\n this.currentlySelectedRiskId,\r\n overrideModel,\r\n );\r\n\r\n if (response.ok === true) {\r\n this.currentlySelectedRiskId = null;\r\n this.showOverrideDetails = false;\r\n\r\n await this.loadConfiguration();\r\n }\r\n }\r\n\r\n closeOverride() {\r\n this.showOverrideDetails = false;\r\n this.overrideRiskId = -1;\r\n this.model = cloneDeep(this.oldRisksModel);\r\n this.currentlySelectedRiskId = null;\r\n\r\n this.oldRisksModel = {};\r\n }\r\n}\r\n\r\ninterface IOverride {\r\n authorisationCode: string;\r\n authorisationReasonId: number;\r\n brokerage?: number;\r\n brokerageGst?: number;\r\n brokeragePercentage?: number;\r\n brokerageTypeId?: number;\r\n earthquakeBrokerage?: number;\r\n earthquakeBrokerageGst?: number;\r\n earthquakeBrokeragePercentage?: number;\r\n earthquakeBrokerageTypeId?: number;\r\n earthquakeLevy?: number;\r\n earthquakePremium?: number;\r\n entityInsurerRiskId: number;\r\n fsl?: number;\r\n gst?: number;\r\n overrideComment: string;\r\n premium?: number;\r\n}\r\n"],"names":["api","i18n","router","taskQueue","toast","validationControllerFactory","ea","lookupData","blobService","styles","selectedInsurerTab","selectedSituationTab","context","this","insurers","appClientType","overrideRiskId","overrideParentSituationIndex","showGstWarning","gstExemptEntities","showRiskPackageCostsModal","setPackageFocus","isDirty","inputMaskOptions","tabClass","isRightChevronDisabled","showRequestBotQuoteModal","botRequestValidating","requestQuoteClicked","selectedRows","submittingQuoteRequest","showCancelQuoteRequestModal","isCancelingQuoteRequest","listType","showListModal","showInsurerDocumentsModal","insurerDocuments","insurerDocumentsLoading","insurerDocumentBusyId","popupBlocked","insurerDocumentObjectUrls","isDeleteAllMode","isDeleteMode","isQuoteRequestSubmitted","showReferralDetails","showOverrideDetails","authReasons","ratingStatuses","rejectSituation","rejectRisk","rejectReason","authorisationCode","authorisationReason","currentlySelectedRiskId","oldRisksModel","validationController","createForCurrentScope","addRenderer","activate","model","params","actionType","minimumValue","removeObject","loadConfiguration","publish","config","getRiskPackageCostsConfig","id","parseInt","entityId","entityType","entityMode","loadedConfig","coInsuredFlag","botInsurerInterfaceAvailable","botPreviouslyRequestedFlag","botPreviouslyRequestedForInsurerCodes","coInsuredRiskCostsConfig","riskPackageCostsConfig","ratingRequired","postAutorate","response","insurerTabChanged","getCoInsuredRiskQuote","result","setCoInsuredInsurerRiskBrokerageTypes","checkGstExemptStatus","riskRatingStatuses","length","forEach","status","quoteInsurerRiskId","authorisationReasons","applyOverrideStyles","isCoInsured","isPackagedCosts","packageFlag","isRiskCosts","isAu","isFap","useFapFlag","situations","situation","situationConfig","find","x","entitySituationId","risks","risk","entityRiskId","parseFslStampDutyRate","isCoInsuredTotalOverridden","insurerRisks","insurerRisk","isValueOverridden","selectedInsurer","packageConfiguration","packageCosts","riskConfiguration","isFapValueOverridden","fslRate","stampDutyRate","attached","scrollTabs","direction","tabPosition","getRiskPackageQuote","entityInsurerId","fapPremium","fapEarthquakePremium","fapEarthquakeLevy","fapFsl","fapGst","fapStampDuty","insurer","initialLoad","$index","findIndex","el","updateCurrentInsurer","isUpdateSuccessful","window","confirm","loadedInsurer","setPackageBrokerageTypes","setRiskBrokerageTypes","showUseFap","showViewFap","gstOverridden","gstOverrideFlag","autoRatedRisk","destroyAllToasts","clientGstExempt","clientGstExemptFlag","insurerOfficeGstExempt","insurerOfficeGstExemptFlag","riskGstExempt","some","r","gstApplies","push","selectedOption","configBrokerageOptions","brokerageOptions","b","brokerageTypeId","selectedBrokerageOption","amountEditable","defaultPercentage","percentageEditable","configEarthquakeBrokerageOptions","earthquakeBrokerageOptions","earthquakeBrokerageTypeId","selectedEarthquakeBrokerageOption","earthquakeAmountEditable","earthquakeDefaultPercentage","earthquakePercentageEditable","s","ir","entityInsurerRiskId","usePackageCosts","isReadOnly","packageCostsEnabled","changeRiskPackageCostTitle","changeRiskPackageCostCallBack","type","operation","op","path","value","patchRiskPackageQuote","queueTask","resetGstValues","riskOrPackageCosts","isNz","fapValuesReadOnly","calculateFapGst","gst","calculateFapDerivedAmount","fapPrevGst","calculateFapStampDuty","stampDuty","fapPrevStampDuty","calculateGst","calculateStampDuty","brokerageGst","calculateBrokerageGst","earthquakeBrokerageGst","calculateEarthquakeBrokerageGst","resetCoInsuredGstValues","riskConfig","totalGst","calculateCoInsuredRiskTotalGst","totalStampDuty","calculateCoInsuredRiskTotalStampDuty","insurerConfig","percentageHeld","multipliedBy","dividedBy","toNumber","overrideGst","self","queueMicroTask","fapValue","fapPrevValue","derivedValue","prevValue","fapFormula","fapTransactionDays","calculateFapFsl","isFapFslOverridden","isFapGstOverridden","Object","keys","plus","c","gstRate","isFapStampDutyOverridden","calculateFsl","isFslOverridden","premium","isGstOverridden","fsl","earthquakePremium","earthquakeLevy","isStampDutyOverridden","isBrokerageGstOverridden","brokerage","isEarthquakeBrokerageGstOverridden","earthquakeBrokerage","calculateCoInsuredInsurerRiskFsl","insurerRiskCosts","riskCosts","isTotalGstOverridden","totalPremium","totalFsl","totalEarthquakePremium","totalEarthquakeLevy","calculateCoInsuredInsurerRiskGst","isTotalStampDutyOverridden","calculateCoInsuredInsurerRiskStampDuty","calculateCoInsuredRiskTotalFsl","isTotalFslOverridden","calculateCoInsuredRiskFsl","calculateCoInsuredRiskGst","calculateCoInsuredStampDuty","coInsuredRiskTotalsChanged","fieldName","includes","brokeragePercentage","earthquakeBrokeragePercentage","coInsuredInsurerRiskChanged","reduce","total","riskChanged","override","premiumTotal","fapFslRecalcFields","fapGstRecalcFields","fapStampDutyRecalcFields","fapPrevPremium","fapPrevEarthquakePremium","fapPrevEarthquakeLevy","fapPrevFsl","isCoInsuredTotalFslOverridden","isCoInsuredTotalGstOverridden","isCoInsuredTotalStampDutyOverridden","costs","putRiskPackageQuoteAutoRate","ok","putRiskPackageQuote","updateCoInsured","putCoInsuredRiskQuote","validate","validateBotQuote","requestQuote","botValidationResult","index","captureDiscountCode","CaptureDiscountCode","canProcess","showSuccessStatus","checkboxDisabled","showErrorStatus","message","childIndex","validationIssues","submitQuoteRequest","requestedInsurers","map","insurerId","discountCode","submitBotAmendment","submitBotQuote","closeQuoteRequestModal","navigateToRoute","quoteId","policyId","parentEntityId","policyVersionId","statusTypeId","versionNo","undefined","cancelQuoteRequest","confirmCancelQuoteRequest","action","cancelBotQuote","location","reload","getList","insurerClauses","list","insurerReferrals","getInsurerDocuments","showInsurerDocumentError","closeInsurerDocumentsModal","previewInsurerDocument","row","withInsurerDocument","objectUrl","routeFragment","generate","title","documentName","url","PLATFORM","printInsurerDocument","entityInsurerDocumentId","fetchInsurerDocument","blob","iframeContainer","downloadInsurerDocument","downloadFile","URL","createObjectURL","insurerDocumentContent","translationKey","tr","error","revokeInsurerDocumentObjectUrls","revokeObjectURL","detached","deactivate","deleteAll","processDeleteAll","deleteAllInsurerClauses","deleteAllinsurerReferrals","disabledListButtons","console","log","deleteRow","processDeleteRow","deleteInsurerClause","entityInsurerClauseListId","deleteinsurerReferral","entityReferDeclineValidationIssueId","insurerClauseCount","referralIssueCount","indexOf","splice","insurerClausesPresent","referralIssuesPresent","canShowOverrideButton","canShow","isDeclineDetails","transactionStatus","errorDecline","isDecline","canShowReferralDetailsButton","referralDetails","riskId","getRejection","rejection","rejectionReason","parentIndex","getOverrideDetails","overrideDetails","saveOverride","foundRisk","overrideModel","authorisationReasonId","overrideComment","putOverride","closeOverride","computedFrom","autoinject","I18N","TaskQueue","ValidationControllerFactory","EventAggregator","RiskPackageCosts"],"sourceRoot":""}