import {Component, OnDestroy, OnInit} from '@angular/core'; import {FieldType} from '@ngx-formly/material'; import {AllService} from '../../../all.service'; import {ActivatedRoute} from '@angular/router'; import {FormGroup} from '@angular/forms'; import {FormlyFieldConfig} from '@ngx-formly/core'; @Component({ selector: 'jhi-step-partnerre', templateUrl: './step-partnerre.component.html', styleUrls: ['./step-partnerre.component.scss'] }) export class StepPartnerreComponent extends FieldType implements OnInit, OnDestroy { loadIframeMedical = false; contractId = ''; methodToCallAfter = null; showLoader = false; retryLoadIframe = false; formReadMore = new FormGroup({}); fieldsReadMore: FormlyFieldConfig[] = [ { fieldGroup: [ { "key": "mon-declaratif-medical", "type": "readMore", "templateOptions": { "label": "Comprendre mes garanties", "autocomplete": false, "title": "Vous présentez un risque aggravé de santé ?", "content": "

Il est précisé que vous ne devez pas déclarer dans le présent questionnaire les pathologies cancéreuses diagnostiquées :



(*) Fin du protocole thérapeutique : il s'agit de la date de fin de tout traitement actif du cancer, en absence de rechute (**), par chirurgie, radiothérapie, chimiothérapie effectuées en structure autorisée, à laquelle plus aucun traitement n'est nécessaire, hormis la possibilité d'une thérapeutique persistante de type hormonothérapie ou immunothérapie.


(**) Rechute : il s'agit d'une toute nouvelle manifestation médicalement constatée du cancer, qu'elle le soit par le biais d'un examen clinique, biologique ou d'imagerie.

" } } ] } ]; constructor(public allService: AllService, private route: ActivatedRoute) { super(); } ngOnInit(): void { this.contractId = this.route.snapshot.paramMap.get('contractid'); this.methodToCallAfter = this.handlerPartnerRe.bind(this); this.allService.showButtonPrevious = false; this.allService.showButtonNext = false; this.setCssTolocalStorage(); this.listenForFinish(); this.loadBodyParams(); this.handleHeightIframe(); } loadBodyParams(): void { this.showLoader = true; this.allService.contractManagerService.getIframeRequestForPartnerre(this.contractId).toPromise().then((data) => { localStorage.setItem('paramsBody', JSON.stringify(data.body)); this.loadIframeMedical = true; this.showLoader = false; this.handlePositionAfterIframeLoad(); }).catch(e => { this.showLoader = false; this.retryLoadIframe = true; }); } ngOnDestroy(): void { window.document.removeEventListener('partnerReFinish', this.methodToCallAfter); } listenForFinish(): void { window.document.addEventListener('partnerReFinish', this.methodToCallAfter, false); } handlerPartnerRe(data): void { console.log('preview : partner re'); console.log(data); //Appeler l'url de résultat partnerRe pour effectuer les traitements chez nous //@PostMapping("/iframe-result-in-partnerre/{contractId}") ( contract manager ) // Au retour de cette api, setter la valeur sur la variable qui permet d'afficher ou masquer la bonne étape // puis faire un next if (data && data.detail && data.detail.status === 'finish') { console.log('GO'); this.allService.contractManagerService.getIframeResultForPartnerre(this.contractId).toPromise().then((data) => { // mettre a jour le model value sur variableId this.model[data.variableId] = data.value; (async () => { const advice = await this.loadDutyOfAdvice(); // on est redirigé vers la prochaine étape setTimeout(() => this.allService.stepsSubject.next('next'), 1000); })(); }); } } loadDutyOfAdvice(): void { if (!this.model['contract_duty_of_advice_suggestion_message'] || !this.model['contract_duty_of_advice_suggested_product_id']) { const contractId = this.route.snapshot.paramMap.get('contractid'); this.allService.contractManagerService.getDutyOfAdvice(contractId).toPromise().then((result) => { this.showLoader = false; if (result) { this.model['contract_duty_of_advice_suggestion_message'] = result['contract_duty_of_advice_suggestion_message']; this.model['contract_duty_of_advice_suggested_product_id'] = result['contract_duty_of_advice_suggested_product_id']; } }); } } setCssTolocalStorage(): void { const buttonColor = this.allService.configurationPreview.buttonColor; const style = `:root{--first-color:${buttonColor}} .underwriting__question__answers__help-text{width:100%!important}.underwriting__question__answers__answer-detail{width:100%!important}.underwriting__question__answers__answer-detail input{display:block;width:100%;height:34px;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:6px;transition:border-color .15s ease-in-out}@media(min-width:992px){.layout-container{right:0;float:left;width:99%;position:relative}}@media(min-width:992px){.layout-container__main-content{float:left;width:100%;left:0;position:relative;margin:0}}.form-content.underwriting{border:.0625rem solid rgba(231,234,243,.7);box-shadow:0 6px 12px rgba(140,152,164,.075);border-radius:10px}.btn{display:inline-block;font-weight:400;color:#fff;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem!important;font-size:1rem!important;line-height:1.5!important;border-radius:.15rem;transition:color .15s ease-in-out;background-color:var(--first-color);border-radius:50px!important;border-color:var(--first-color)!important;padding-left:20px!important;padding-right:20px!important;min-width:auto!important}.btn:hover{background-color:var(--first-color);border-color:var(--first-color)!important}.form-buttons:not(.borderless){border-top:0}header{display:none}.header{display:none!important}.layout-container__main-content{padding:0!important;margin:0}.viewport{width:100%!important}.page-actions.layout-container__left-content{display:none!important}.form-group__input-container--radio{text-align:left!important;display:inline-flex;flex-basis:100%;flex:1 2 25%;justify-content:flex-end}.btn.btn-secondary{background-color:#fff;color:#757575;border:1px solid #757575!important}.help-text{margin-top:5px}.wrapper__footer{display:none}.wrapper__content{padding-bottom:0}.underwriting__question__answers--single{margin-right:0!important}.underwriting__question__answers--boolean{display:block}.underwriting__question__answers__help-text{width:100%!important;color:#29323a!important;font-weight:600!important;padding-bottom:5px;font-family:Open Sans,sans-serif;font-size:15px;line-height:24px;display:flex;flex-basis:100%}.input-container__label--radio{margin-top:0!important;margin-bottom:0!important}.view-underwriting .help-text,.view-underwriting-summary .help-text{padding:0!important}.viewport{width:99%!important;overflow-x:hidden;min-height:auto}.underwriting__question__answers__answer-detail input[type=button]{width:100px!important;margin-top:20px!important;margin-left:0!important}.forms-button input[type=submit]{padding-left:35px!important;padding-right:35px!important}.view-underwriting-summary .btn-edit-uw{display:none!important}@media(max-width:500px){.input-container__label--radio{min-width:50%}.layout-container__main-content .underwriting__question__answers--boolean .underwriting__question__answers__answer-detail{width:100%!important}}.input- container__input--checkbox:checked+.input-container__label--radio,.input-container__input-- radio:checked+.input-container__label--radio{background-color:#1e90ff;color:#fff}.view- underwriting .layout-container__main-content .underwriting__question__answers--boolean .underwriting__question__answers__answer-detail{width:auto}.input-container__label-- radio:before{display:none}.input-container__label--radio{background-color:#fff;border:solid 1px #838271;margin:0 -4px 0 0;padding:.75em 2em;border-radius:12px 0 0 12px;text-align:center}.input- container__label--radio:last-child{border-radius:0 12px 12px 0}header{border-bottom:4px solid red}header a{color:inherit}.navigation__menu--secondary{background-color:#fff}.sub-menu__menu-item--valid{color:red}.sub-menu__menu-item--selected{color:#4f90c8;background-color:#fff}.underwriting__question.alt{background:0}.page- actions__summary{color:#685c54;border-top:2px solid #d3d3d3;border-bottom:4px solid red}.page-actions{border-right:solid 2px red}.ball-1{background-color:#66c5ec}.ball-2{background-color:#1d678c}.ball-3{background-color:#1d678c}.input-container__label--radio{max-height:35px;padding-top:10px;padding-bottom:10px;line-height:1;padding-left:20px;padding-right:20px;font-size:12px;border-radius:5px 0 0 5px;margin:0;border:1px solid #ccc text-align:center}.input-container__input--radio:checked+.input-container__label--radio{background-color:var(--first-color)!important;color:#fff;border:1px solid transparent!important}.form-group__input-container--radio label.input-container__label--radio:last-child{border-radius:0 5px 5px 0;margin:0;margin-left:-5px;box-sizing:border-box}.input-container__label--radio:before{background-clip:none;border:0;height:0;margin:0;padding:0;width:0}.underwriting__question__answers--ternary .input-container__label--radio:nth-of-type(2){border-top-left-radius:0;border-bottom-left-radius:0;border-left:none}.typeahead-input.alias-list{padding:11px 17px;box-shadow:0 4px 8px rgb(172 186 200 / 10%);height:34px;border-radius:5px;width:100%!important;margin-top:5px;margin-bottom:10px}.view-underwriting .layout-container__main-content .underwriting__question__answers--boolean,.view-underwriting-summary .layout-container__main-content .underwriting__question__answers--boolean,.view-underwriting .layout-container--banner__main-content .underwriting__question__answers--boolean,.view-underwriting-summary .layout-container--banner__main-content .underwriting__question__answers--boolean,.view-underwriting .layout-container__main-content .underwriting__question__answers--open-text,.view-underwriting-summary .layout-container__main-content .underwriting__question__answers--open-text,.view-underwriting .layout-container--banner__main-content .underwriting__question__answers--open-text,.view-underwriting-summary .layout-container--banner__main-content .underwriting__question__answers--open-text,.view-underwriting .layout-container__main-content .underwriting__question__answers--range,.view-underwriting-summary .layout-container__main-content .underwriting__question__answers--range,.view-underwriting .layout-container--banner__main-content .underwriting__question__answers--range,.view-underwriting-summary .layout-container--banner__main-content .underwriting__question__answers--range,.view-underwriting .layout-container__main-content .underwriting__question__answers--single,.view-underwriting-summary .layout-container__main-content .underwriting__question__answers--single,.view-underwriting .layout-container--banner__main-content .underwriting__question__answers--single,.view-underwriting-summary .layout-container--banner__main-content .underwriting__question__answers--single,.view-underwriting .layout-container__main-content .underwriting__question__answers--short-list,.view-underwriting-summary .layout-container__main-content .underwriting__question__answers--short-list,.view-underwriting .layout-container--banner__main-content .underwriting__question__answers--short-list,.view-underwriting-summary .layout-container--banner__main-content .underwriting__question__answers--short-list{margin:initial}.select-style{width:100%;display:block;width:100%;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.15rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;padding:5px 14px;box-shadow:none;height:34px;border-radius:5px}.select-style:after{background-color:var(--first-color);top:5px;line-height:22px}@media(max-width:576px){.underwriting__question__answers--boolean{display:block}.underwriting__question__answers__help-text{display:block}.btn.btn-secondary{float:left}.form-group__input-container--radio{display:inline-flex!important;width:100%;flex-basis:unset;flex:1 1 50%}.input-container__label--radio{flex-basis:unset;width:100%;border-radius:12px 0 0 12px!important;max-height:45px;padding-top:15px;padding-bottom:15px;font-size:15px;font-weight:600}.input-container__label--radio:last-child{border-radius:0 12px 12px 0!important}.typeahead>input[type="text"],.address-container>input[type="text"]{width:100%;display:block;width:100%;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.15rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;padding:11px 17px;box-shadow:none;height:auto;border-radius:12px;margin:10px 0}.typeahead-search-results{margin-top:-30px}.underwriting__question__answers__answer-detail input[type=text],.underwriting__question__answers__answer-detail input[type=number]{border-radius:12px;height:45px}.select-style{width:100%;display:block;width:100%;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.15rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;padding:11px 17px;box-shadow:none;height:auto;border-radius:12px}.select-style:after{background-color:var(--first-color);top:12px;line-height:22px}.typeahead-input.alias-list{padding:11px 17px;box-shadow:0 4px 8px rgb(172 186 200 / 10%);height:45px;border-radius:12px;width:100%!important;margin-top:5px;margin-bottom:10px}.underwriting__question__answers--ternary .form-group__input-container--radio{display:block!important}.underwriting__question__answers--ternary .input-container__label--radio{width:100%;display:block!important;border-radius:12px!important;margin:auto!important;border:solid 1px #838271!important;margin-bottom:10px!important;text-align:center}.underwriting__question__answers--ternary .input-container__label--radio:first-of-type{margin-top:10px!important}} .underwriting__question__answers--ternary .form-group__input-container--radio {margin-top: 5px;}#view .form-content .form-header{color: var(--first-color);}.view-underwriting-summary table td, .view-sale-confirmation table td, .view-flex-summary table td{font-family: "Open Sans",sans-serif;color:#000;}.underwriting-statements{display:none !important;} .form-content.underwriting{background-color:#fff;}.viewport{background-color:transparent;} .pop-up-target {width: 420px;height: 200px;z-index: 1001;background: #fff;border: gray solid 1px;position: fixed;bottom: 5%;left: 50%;top:auto;transform: translate(-50%,-50%);padding: 0 1rem;}`; localStorage.setItem('cssText', style); } handleHeightIframe(): void { const ajustHeight = (event) => { if (event && event.data && event.data.iframeHeight) { document.getElementById('iframe-partnerre').style.height = event.data.iframeHeight + 'px'; } }; window.addEventListener('message', ajustHeight, false); } handlePositionAfterIframeLoad(): void { const goTop = (event) => { window.scrollTo(0, 0); }; const checkError = (event) => { console.log('error partnerre :', event); }; window.setTimeout(() => { window.document.getElementById('iframe-partnerre').addEventListener('load', goTop, true); window.document.getElementById('iframe-partnerre').addEventListener('load', checkError, true); }, 500); } reloadQuestionnaire(): void { window.location.reload(); } }