project-booster-vue 10.15.2 → 10.15.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/package.json +1 -1
  2. package/src/components/projects/project-hub/__snapshots__/storyshots-puppeteer-test-puppeteer-ts-image-storyshots-project-booster-components-projects-pb-project-hub-/360/237/246/240-features-appointment-showcase-with-visio-appointment-1-snap.png +0 -0
  3. package/src/components/rework/cards/MPbCards.vue +5 -5
  4. package/src/components/rework/cards/__snapshots__/storyshots-puppeteer-test-puppeteer-ts-image-storyshots-project-booster-rework-cards-m-pb-card-/360/237/247/254-features-align-text-1-snap.png +0 -0
  5. package/src/components/rework/cards/__snapshots__/storyshots-puppeteer-test-puppeteer-ts-image-storyshots-project-booster-rework-cards-m-pb-card-/360/237/247/254-features-align-vertical-1-snap.png +0 -0
  6. package/src/components/rework/cards/__snapshots__/storyshots-puppeteer-test-puppeteer-ts-image-storyshots-project-booster-rework-cards-m-pb-card-/360/237/247/254-features-button-href-1-snap.png +0 -0
  7. package/src/components/rework/cards/__snapshots__/storyshots-puppeteer-test-puppeteer-ts-image-storyshots-project-booster-rework-cards-m-pb-card-/360/237/247/254-features-button-label-1-snap.png +0 -0
  8. package/src/components/rework/cards/__snapshots__/storyshots-puppeteer-test-puppeteer-ts-image-storyshots-project-booster-rework-cards-m-pb-card-/360/237/247/254-features-degradations-1-snap.png +0 -0
  9. package/src/components/rework/cards/__snapshots__/storyshots-puppeteer-test-puppeteer-ts-image-storyshots-project-booster-rework-cards-m-pb-card-/360/237/247/254-features-disabled-1-snap.png +0 -0
  10. package/src/components/rework/cards/__snapshots__/storyshots-puppeteer-test-puppeteer-ts-image-storyshots-project-booster-rework-cards-m-pb-card-/360/237/247/254-features-flag-label-1-snap.png +0 -0
  11. package/src/components/rework/cards/__snapshots__/storyshots-puppeteer-test-puppeteer-ts-image-storyshots-project-booster-rework-cards-m-pb-card-/360/237/247/254-features-flag-theme-1-snap.png +0 -0
  12. package/src/components/rework/cards/__snapshots__/storyshots-puppeteer-test-puppeteer-ts-image-storyshots-project-booster-rework-cards-m-pb-card-/360/237/247/254-features-flattened-1-snap.png +0 -0
  13. package/src/components/rework/cards/__snapshots__/storyshots-puppeteer-test-puppeteer-ts-image-storyshots-project-booster-rework-cards-m-pb-card-/360/237/247/254-features-hero-1-snap.png +0 -0
  14. package/src/components/rework/cards/__snapshots__/storyshots-puppeteer-test-puppeteer-ts-image-storyshots-project-booster-rework-cards-m-pb-card-/360/237/247/254-features-image-1-snap.png +0 -0
  15. package/src/components/rework/cards/__snapshots__/storyshots-puppeteer-test-puppeteer-ts-image-storyshots-project-booster-rework-cards-m-pb-card-/360/237/247/254-features-image-is-contained-1-snap.png +0 -0
  16. package/src/components/rework/cards/__snapshots__/storyshots-puppeteer-test-puppeteer-ts-image-storyshots-project-booster-rework-cards-m-pb-card-/360/237/247/254-features-image-ratio-1-snap.png +0 -0
  17. package/src/components/rework/cards/__snapshots__/storyshots-puppeteer-test-puppeteer-ts-image-storyshots-project-booster-rework-cards-m-pb-card-/360/237/247/254-features-image-title-1-snap.png +0 -0
  18. package/src/components/rework/cards/__snapshots__/storyshots-puppeteer-test-puppeteer-ts-image-storyshots-project-booster-rework-cards-m-pb-card-/360/237/247/254-features-link-1-snap.png +0 -0
  19. package/src/components/rework/cards/__snapshots__/storyshots-puppeteer-test-puppeteer-ts-image-storyshots-project-booster-rework-cards-m-pb-card-/360/237/247/254-features-selectable-1-snap.png +0 -0
  20. package/src/components/rework/cards/__snapshots__/storyshots-puppeteer-test-puppeteer-ts-image-storyshots-project-booster-rework-cards-m-pb-card-/360/237/247/254-features-selected-1-snap.png +0 -0
  21. package/src/components/rework/cards/__snapshots__/storyshots-puppeteer-test-puppeteer-ts-image-storyshots-project-booster-rework-cards-m-pb-card-/360/237/247/254-features-text-1-snap.png +0 -0
  22. package/src/components/rework/cards/__snapshots__/storyshots-puppeteer-test-puppeteer-ts-image-storyshots-project-booster-rework-cards-m-pb-card-/360/237/247/254-features-title-1-snap.png +0 -0
  23. package/src/components/rework/cards/__snapshots__/storyshots-puppeteer-test-puppeteer-ts-image-storyshots-project-booster-rework-cards-m-pb-card-/360/237/247/254-features-type-icon-1-snap.png +0 -0
  24. package/src/components/rework/cards/__snapshots__/storyshots-puppeteer-test-puppeteer-ts-image-storyshots-project-booster-rework-cards-m-pb-cards-list-/360/237/247/254-101-sandbox-1-snap.png +0 -0
  25. package/src/components/rework/cards/__snapshots__/storyshots-puppeteer-test-puppeteer-ts-image-storyshots-project-booster-rework-cards-m-pb-cards-list-/360/237/247/254-features-3-cards-1-snap.png +0 -0
  26. package/src/components/rework/cards/__snapshots__/storyshots-puppeteer-test-puppeteer-ts-image-storyshots-project-booster-rework-cards-m-pb-cards-list-/360/237/247/254-features-4-cards-1-snap.png +0 -0
  27. package/src/components/rework/exit-options/__snapshots__/storyshots-puppeteer-test-puppeteer-ts-image-storyshots-project-booster-rework-exit-options-m-pb-exit-options-/360/237/246/240-with-typeform-1-snap.png +0 -0
  28. package/src/components/rework/navigation/MPbNavigation.vue +1 -1
  29. package/src/components/rework/navigation/__snapshots__/storyshots-puppeteer-test-puppeteer-ts-image-storyshots-project-booster-rework-navigation-m-pb-navigation-/360/237/246/240-101-sandbox-1-snap.png +0 -0
  30. package/src/components/rework/question/MPbQuestion.vue +3 -14
  31. package/src/components/rework/question/city-search/MPbCitySearch.vue +9 -1
  32. package/src/components/rework/question/city-search/__snapshots__/storyshots-puppeteer-test-puppeteer-ts-image-storyshots-project-booster-rework-questions-m-pb-city-search-/360/237/246/240-showcase-feature-customize-1-snap.png +0 -0
  33. package/src/components/rework/question/space-input/MPbSpaceInput.vue +9 -1
  34. package/src/components/rework/restitution/MPbRestitutionList.vue +2 -9
  35. package/src/components/rework/timify/__snapshots__/storyshots-puppeteer-test-puppeteer-ts-image-storyshots-project-booster-rework-timify-m-pb-timify-/360/237/246/240-101-sandbox-1-snap.png +0 -0
  36. package/src/components/scenario/scenarii/attic-insulation.json +2 -1
  37. package/src/components/scenario/scenarii/estimator-external-wall-insulation.json +43 -69
  38. package/src/components/scenario/scenarii/solar-panel.json +112 -103
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "project-booster-vue",
3
- "version": "10.15.2",
3
+ "version": "10.15.4",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "serve": "vue-cli-service serve",
@@ -70,11 +70,11 @@
70
70
  <m-link
71
71
  v-if="linkLabel"
72
72
  class="pb-card__link"
73
- :label="linkLabel"
74
73
  :disabled="disabled"
74
+ :href="cardLink"
75
+ target="_blank"
75
76
  size="s"
76
- @click="handleLinkClicked"
77
- />
77
+ >{{ linkLabel }}</m-link>
78
78
  </div></div></div>
79
79
  <!-- eslint-enable -->
80
80
  <div v-if="image" class="pb-card__image-container">
@@ -102,7 +102,7 @@ import MImage from '../../mozaic/image/MImage.vue';
102
102
  import MPbCardSelectionIndicator from './decorators/MPbCardSelectionIndicator.vue';
103
103
  import MPbCardTypeIndicator from './decorators/MPbCardTypeIndicator.vue';
104
104
  import { sanitizeCerberusAttribut } from '@/services/sanitize';
105
- import { MFlag, MButton, MLink } from '@mozaic-ds/vue-3';
105
+ import { MFlag, MLink } from '@mozaic-ds/vue-3';
106
106
  import { computed } from '@vue/reactivity';
107
107
  import { defineProps, defineEmits } from 'vue';
108
108
  import { PB_CARD_VALIDATOR } from '../services/validator';
@@ -316,7 +316,7 @@ const handleLinkClicked = () => {
316
316
  * Card clicked
317
317
  */
318
318
  const handleCardClick = () => {
319
- props.cardLink ? window.open(props.cardLink, '_self') : '';
319
+ props.cardLink && !props.linkLabel ? window.open(props.cardLink, '_self') : '';
320
320
  !props.buttonLabel && !props.linkLabel ? $emit('card-click') : '';
321
321
  };
322
322
 
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="m-pb-navigation row-flex justify-between">
2
+ <div class="m-pb-navigation row-flex justify-between column-full">
3
3
  <div class="m-pb-navigation__left">
4
4
  <m-button
5
5
  :label="backButtonLabel"
@@ -1,18 +1,6 @@
1
1
  <template>
2
2
  <div class="pb-question__container" :style="{ paddingBottom: `calc(${stickyBottomOffset}px)` }">
3
3
  <div class="pb-question">
4
- <div class="row-flex align-center">
5
- <m-link
6
- :label="payload.viewModel.backLabel || 'Question précédente'"
7
- :left-icon="BACK_ICON"
8
- :class="{
9
- 'pb-question__back-button': true,
10
- 'pb-question__back-button--hidden':
11
- !showBackButton && !decorate(answers, runtimeOptions, payload?.viewModel?.forceBackButton),
12
- }"
13
- @click="navigateTo(payload.viewModel)"
14
- />
15
- </div>
16
4
  <div class="pb-question__answers-container row-flex column">
17
5
  <div class="pb-question__answers-container-progress">
18
6
  <div
@@ -31,7 +19,7 @@
31
19
  v-for="answer in displayedAnswers"
32
20
  :key="`pb-question__answers-${answer.code}`"
33
21
  :class="`
34
- ${payload.viewModel.forceOneCardPerLineOnMobile ? 'column-full' : 'column-1of3'}
22
+ column-full
35
23
  ${payload.viewModel.widthFromM ? 'column-' + payload.viewModel.widthFromM : 'column-1of3'}
36
24
  ${payload.viewModel.widthFromL ? 'column-' + payload.viewModel.widthFromL : 'column-1of4'}
37
25
  `"
@@ -154,7 +142,7 @@
154
142
  width="full"
155
143
  size="l"
156
144
  theme="primary"
157
- @click="handleHelpClick(helpItem.action)"
145
+ @click.prevent="handleHelpClick(helpItem.action)"
158
146
  >
159
147
  {{ helpItem.label }}
160
148
  </m-link>
@@ -834,6 +822,7 @@ const eventData: any = ref();
834
822
  const handleCardClick = (answer: ScenarioStepAnswer, payload: any) => {
835
823
  updateCdlValues();
836
824
  disabledNextStep.value = answer.viewModel?.disabledNextStepButton ? true : false;
825
+ notification.value = undefined; // re-init notification after each card click
837
826
 
838
827
  if (answer.notification) {
839
828
  notification.value = answer.notification;
@@ -409,7 +409,15 @@ export default defineComponent({
409
409
  return this.selectedCity?.postalCode + ' ' + this.selectedCity?.name + ', ' + this.selectedCity?.region;
410
410
  },
411
411
  nextStep({ answers, nextStep }: { answers: any; nextStep: any }) {
412
- callAction(nextStep, answers, this.$emit);
412
+ callAction(
413
+ nextStep,
414
+ [
415
+ {
416
+ city: this.selectedCity,
417
+ },
418
+ ],
419
+ this.$emit,
420
+ );
413
421
  },
414
422
  sanitizeCerberusAttribut,
415
423
  formatEvent,
@@ -232,7 +232,15 @@ const isShowingFooter = computed(() => {
232
232
  });
233
233
 
234
234
  const nextStep = ({ answers, nextStep }: { answers: any; nextStep: any }) => {
235
- callAction(nextStep, answers, $emit);
235
+ callAction(
236
+ nextStep,
237
+ [
238
+ {
239
+ space: space.value,
240
+ },
241
+ ],
242
+ $emit,
243
+ );
236
244
  };
237
245
 
238
246
  onMounted(() => {
@@ -380,20 +380,13 @@ $responsive-breakpoint: 'm';
380
380
  margin: 0 auto;
381
381
  }
382
382
 
383
- &__call {
384
- margin-left: $mu050;
385
- }
386
-
387
- &__save,
388
383
  &__call {
389
384
  width: 100%;
390
-
391
- &:first-child {
392
- margin: 0 $mu100 $mu050 0;
393
- }
385
+ margin: 0 0 $mu050 0;
394
386
 
395
387
  @include set-from-screen($responsive-breakpoint) {
396
388
  width: auto;
389
+ margin: 0 $mu050 0 0;
397
390
  }
398
391
 
399
392
  button {
@@ -287,7 +287,8 @@
287
287
  "viewModel": {
288
288
  "backLabel": "Question précédente",
289
289
  "label": "Dans ce logement, vous êtes ?",
290
- "answersComponent": "MPbCard"
290
+ "answersComponent": "MPbCard",
291
+ "forceOneCardPerLineOnMobile": true
291
292
  },
292
293
  "answers": {
293
294
  "OWNER": {
@@ -75,14 +75,17 @@
75
75
  "LESSEE": {
76
76
  "code": "LESSEE",
77
77
  "viewModel": {
78
- "title": "Locataire"
78
+ "title": "Locataire",
79
+ "disabledNextStepButton": true
79
80
  },
80
81
  "notification": {
81
82
  "type": "info",
82
83
  "title": "Le calcul des aides se base sur les revenus de votre propriétaire. La plupart des aides sont destinées aux propriétaires.",
83
84
  "content": "Nous vous conseillons donc de vous rapprocher de votre propriétaire, c’est lui qui pourra monter le dossier d’obtention des aides pour votre projet.",
84
85
  "buttonText": "Voir d'autres solutions pour isoler vos murs extérieurs",
85
- "buttonHref": "https://www.leroymerlin.fr/produits/materiaux/isolation/isolation-par-exterieur/"
86
+ "buttonStep": {
87
+ "code": "LMFR_WALL_EXTERNAL_INSULATION_ADVICE_FOR_LESSEE"
88
+ }
86
89
  }
87
90
  }
88
91
  }
@@ -124,14 +127,17 @@
124
127
  "code": "APARTMENT",
125
128
  "viewModel": {
126
129
  "title": "Un appartement",
127
- "image": "https://storage.googleapis.com/project-booster-media/energyrenovation/apartement.jpg"
130
+ "image": "https://storage.googleapis.com/project-booster-media/energyrenovation/apartement.jpg",
131
+ "disabledNextStepButton": true
128
132
  },
129
133
  "notification": {
130
134
  "type": "info",
131
135
  "title": "Nous attirons votre attention !",
132
136
  "content": "Nous ne réalisons pas de projets d’isolation de murs par l’extérieur dans les appartements. Nous vous invitons à vous rapporcher de votre copropriété pour poursuivre les démarches de rénovation énergétique.",
133
137
  "buttonText": "Voir d'autres solutions pour isoler vos murs extérieurs",
134
- "buttonHref": "https://www.leroymerlin.fr/produits/materiaux/isolation/isolation-par-exterieur/"
138
+ "buttonStep": {
139
+ "code": "LMFR_WALL_EXTERNAL_INSULATION_ADVICE"
140
+ }
135
141
  }
136
142
  }
137
143
  }
@@ -220,14 +226,17 @@
220
226
  "NO": {
221
227
  "code": "NO",
222
228
  "viewModel": {
223
- "title": "Non"
229
+ "title": "Non",
230
+ "disabledNextStepButton": true
224
231
  },
225
232
  "notification": {
226
233
  "type": "info",
227
234
  "title": "Nous attirons votre attention !",
228
235
  "content": "Nous ne réalisons pas de projets d'isolation des murs par l'extérieur sur les façades arrières, sauf si les facades arrières sont accessibles depuis l'extérieur ou depuis un garage traversant par exemple.<br/><br/>Nous vous invitons à envisager d'autres solutions pour isoler vos murs.",
229
236
  "buttonText": "Voir d'autres solutions pour isoler vos murs extérieurs",
230
- "buttonHref": "https://www.leroymerlin.fr/produits/materiaux/isolation/isolation-par-exterieur/"
237
+ "buttonStep": {
238
+ "code": "LMFR_WALL_EXTERNAL_INSULATION_ADVICE"
239
+ }
231
240
  }
232
241
  }
233
242
  }
@@ -2255,61 +2264,34 @@
2255
2264
  "code": "HEAT_PUMP",
2256
2265
  "viewModel": {
2257
2266
  "title": "Pompe à chaleur",
2258
- "image": "https://storage.googleapis.com/project-booster-media/energyrenovation/heat_pump.jpg"
2267
+ "image": "https://storage.googleapis.com/project-booster-media/energyrenovation/heat_pump.jpg",
2268
+ "disabledNextStepButton": true
2269
+ },
2270
+ "notification": {
2271
+ "type": "info",
2272
+ "title": "Nous attirons votre attention !",
2273
+ "content": "Si votre habitation est déjà équipée d'une pompe à chaleur air eau, des travaux d'isolation par l'extérieur ne sont pas possibles. La raison ? Une fois la maison isolée, votre pompe à chaleur sera alors sur-dimensionnée, et risque la panne.",
2274
+ "buttonText": "Voir d'autres solutions pour isoler vos murs extérieurs",
2275
+ "buttonStep": {
2276
+ "code": "LMFR_WALL_EXTERNAL_INSULATION_ADVICE"
2277
+ }
2259
2278
  }
2260
2279
  }
2261
2280
  }
2262
2281
  },
2263
2282
  "nextStep": {
2264
- "conditionals": [
2265
- {
2266
- "conditions": ["isAnswerMatching('LMFR_WALL_EXTERNAL_INSULATION_QUESTION_HEATER_TYPE', 'HEAT_PUMP')"],
2267
- "nextStep": {
2268
- "code": "LMFR_WALL_EXTERNAL_INSULATION_DISPLAY_WARNING_FOR_HEAT_PUMP"
2269
- }
2270
- },
2271
- {
2272
- "conditions": ["true"],
2273
- "nextStep": {
2274
- "code": "SUMMARY"
2275
- }
2276
- }
2277
- ]
2278
- }
2279
- },
2280
- "LMFR_WALL_EXTERNAL_INSULATION_DISPLAY_WARNING_FOR_HEAT_PUMP": {
2281
- "code": "LMFR_WALL_EXTERNAL_INSULATION_DISPLAY_WARNING_FOR_HEAT_PUMP",
2282
- "type": "STEP",
2283
- "component": "PbWarningMessage",
2284
- "payload": {
2285
- "viewModel": {
2286
- "actionLabel": "Terminer",
2287
- "backLabel": "Question précédente",
2288
- "subtitle": "Nous attirons votre attention !",
2289
- "content": "Si votre habitation est déjà équipée d'une pompe à chaleur air eau, des travaux d'isolation par l'extérieur ne sont pas possibles. La raison ? Une fois la maison isolée, votre pompe à chaleur sera alors sur-dimensionnée, et risque la panne."
2290
- },
2291
- "callToActions": [
2292
- {
2293
- "type": "button",
2294
- "label": "Voir d’autres solutions pour isoler vos murs",
2295
- "action": {
2296
- "type": "STEP",
2297
- "code": "LMFR_WALL_EXTERNAL_INSULATION_ADVICE_FOR_LESSEE"
2298
- },
2299
- "bordered": true
2300
- }
2301
- ]
2283
+ "code": "SUMMARY"
2302
2284
  }
2303
2285
  },
2304
2286
 
2305
2287
  "LMFR_WALL_EXTERNAL_INSULATION_ADVICE": {
2306
2288
  "code": "LMFR_WALL_EXTERNAL_INSULATION_ADVICE",
2307
2289
  "type": "STEP",
2308
- "component": "PbQuestion",
2290
+ "component": "MPbQuestion",
2309
2291
  "payload": {
2310
2292
  "viewModel": {
2311
2293
  "label": "Pour aller plus loin dans votre projet",
2312
- "answersComponent": "PbCard"
2294
+ "answersComponent": "MPbCard"
2313
2295
  },
2314
2296
  "answers": {
2315
2297
  "DISCOVER_OUR_INSULATION": {
@@ -2317,7 +2299,8 @@
2317
2299
  "viewModel": {
2318
2300
  "title": "Découvrez nos solutions d'isolation",
2319
2301
  "image": "https://storage.googleapis.com/project-booster-media/energyrenovation/discover_our_insulation.jpg",
2320
- "cardLink": "https://www.leroymerlin.fr/produits/materiaux/isolation/"
2302
+ "linkLabel": "Découvrir la gamme",
2303
+ "cardLink": "https://www.leroymerlin.fr/produits/materiaux/isolation/isolation-par-exterieur/"
2321
2304
  }
2322
2305
  },
2323
2306
  "LEARN_MORE_ABOUT_AID": {
@@ -2325,6 +2308,7 @@
2325
2308
  "viewModel": {
2326
2309
  "title": "Mieux comprendre les aides pour votre projet",
2327
2310
  "image": "https://storage.googleapis.com/project-booster-media/energyrenovation/learn_more_about_aids.jpg",
2311
+ "linkLabel": "Consulter l’article",
2328
2312
  "cardLink": "https://www.leroymerlin.fr/magazine/conseils-pratiques/les-aides-financieres-pour-renovation-energetique.html?isautocompleted=true"
2329
2313
  }
2330
2314
  }
@@ -2334,11 +2318,16 @@
2334
2318
  "LMFR_WALL_EXTERNAL_INSULATION_ADVICE_FOR_LESSEE": {
2335
2319
  "code": "LMFR_WALL_EXTERNAL_INSULATION_ADVICE_FOR_LESSEE",
2336
2320
  "type": "STEP",
2337
- "component": "PbQuestion",
2321
+ "component": "MPbQuestion",
2322
+ "slots": {
2323
+ "beforeContent": {
2324
+ "display": false
2325
+ }
2326
+ },
2338
2327
  "payload": {
2339
2328
  "viewModel": {
2340
2329
  "label": "Pour aller plus loin dans votre projet",
2341
- "answersComponent": "PbCard"
2330
+ "answersComponent": "MPbCard"
2342
2331
  },
2343
2332
  "answers": {
2344
2333
  "DISCOVER_OUR_INSULATION": {
@@ -2346,7 +2335,8 @@
2346
2335
  "viewModel": {
2347
2336
  "title": "Découvrez nos gammes de produits isolants",
2348
2337
  "image": "https://storage.googleapis.com/project-booster-media/energyrenovation/discover_our_insulation.jpg",
2349
- "cardLink": "https://www.leroymerlin.fr/produits/materiaux/isolation/"
2338
+ "linkLabel": "Découvrir la gamme",
2339
+ "cardLink": "https://www.leroymerlin.fr/produits/materiaux/isolation/isolation-par-exterieur/"
2350
2340
  }
2351
2341
  },
2352
2342
  "LEARN_MORE_ABOUT_AID": {
@@ -2354,6 +2344,7 @@
2354
2344
  "viewModel": {
2355
2345
  "title": "Mieux comprendre les aides pour votre projet",
2356
2346
  "image": "https://storage.googleapis.com/project-booster-media/energyrenovation/learn_more_about_aids.jpg",
2347
+ "linkLabel": "Consulter l’article",
2357
2348
  "cardLink": "https://www.leroymerlin.fr/magazine/conseils-pratiques/les-aides-financieres-pour-renovation-energetique.html?isautocompleted=true"
2358
2349
  }
2359
2350
  },
@@ -2362,6 +2353,7 @@
2362
2353
  "viewModel": {
2363
2354
  "title": "Tout savoir sur l’isolation des murs par l’extérieur",
2364
2355
  "image": "https://storage.googleapis.com/project-booster-media/energyrenovation/learn_more_about_insulation.png",
2356
+ "linkLabel": "Consulter l’article",
2365
2357
  "cardLink": "https://www.leroymerlin.fr/magazine/maison-econome/faire-des-economies-de-chauffage-sans-gros-travaux-possible.html"
2366
2358
  }
2367
2359
  }
@@ -2442,14 +2434,6 @@
2442
2434
  }
2443
2435
  }
2444
2436
  }
2445
- },
2446
- {
2447
- "type": "button",
2448
- "label": "Être rappelé par un expert",
2449
- "action": {
2450
- "type": "STEP",
2451
- "code": "APPOINTMENT_FORM"
2452
- }
2453
2437
  }
2454
2438
  ]
2455
2439
  }
@@ -2483,16 +2467,6 @@
2483
2467
  }
2484
2468
  }
2485
2469
  },
2486
- "APPOINTMENT_FORM": {
2487
- "code": "APPOINTMENT_FORM",
2488
- "type": "STEP",
2489
- "component": "PbAppointmentForm",
2490
- "payload": {
2491
- "viewModel": {
2492
- "calendarUrlPath": "leroy-merlin-renovation-energetique"
2493
- }
2494
- }
2495
- },
2496
2470
  "__END__": {
2497
2471
  "code": "__END__",
2498
2472
  "type": "END",
@@ -25,7 +25,7 @@
25
25
  "component": "MPbProducts",
26
26
  "payload": {
27
27
  "viewModel": {
28
- "label": "Estimer vos aides pour votre projet",
28
+ "label": "Estimez le coût de votre projet d'installation de panneaux solaires",
29
29
  "defaultProduct": {
30
30
  "designation": "Installation de panneaux photovoltaïques"
31
31
  }
@@ -67,14 +67,17 @@
67
67
  "code": "APARTMENT",
68
68
  "viewModel": {
69
69
  "title": "Un appartement",
70
- "image": "https://storage.googleapis.com/project-booster-media/energyrenovation/apartement.jpg"
70
+ "image": "https://storage.googleapis.com/project-booster-media/energyrenovation/apartement.jpg",
71
+ "disabledNextStepButton": true
71
72
  },
72
73
  "notification": {
73
- "type": "warning",
74
+ "type": "info",
74
75
  "title": "Nous attirons votre attention !",
75
76
  "content": "Nous ne realisons pas de projets de panneau photovoltaïque dans les appartements dans la mesure où votre toit est partagé",
76
- "buttonText": "Voir d'autres solutions pour faire des économies de chauffage",
77
- "buttonHref": "https://www.leroymerlin.fr/economie-energie/"
77
+ "buttonText": "Voir d'autres solutions pour faire des économies d'énergie",
78
+ "buttonStep": {
79
+ "code": "LMFR_SOLAR_PANEL_EXIT"
80
+ }
78
81
  }
79
82
  }
80
83
  }
@@ -91,10 +94,11 @@
91
94
  },
92
95
  "slots": {
93
96
  "beforeContent": {
97
+ "label": "Estimez le coût de votre projet",
94
98
  "display": true,
95
99
  "sizeXlWidth": true,
96
100
  "component": "MPbProgress",
97
- "totalStep": 5,
101
+ "totalStep": 8,
98
102
  "currentStep": 1
99
103
  }
100
104
  }
@@ -116,85 +120,20 @@
116
120
  "backLabel": "Question précédente",
117
121
  "label": "Dans quelle ville aura lieu les travaux ?",
118
122
  "placeholder": "Code postal, Ville",
119
- "actionLabel": "Continuer"
120
- }
121
- },
122
- "nextStep": {
123
- "code": "LMFR_SOLAR_PANEL_QUESTION_LINKY"
124
- },
125
- "slots": {
126
- "beforeContent": {
127
- "display": true,
128
- "component": "MPbProgress",
129
- "totalStep": 5,
130
- "currentStep": 2
131
- }
132
- }
133
- },
134
- "LMFR_SOLAR_PANEL_QUESTION_LINKY": {
135
- "code": "LMFR_SOLAR_PANEL_QUESTION_LINKY",
136
- "type": "STEP",
137
- "component": "MPbQuestion",
138
- "payload": {
139
- "viewModel": {
140
- "label": "Votre logement est-il équipé d’un compteur Linky ?",
141
- "answersComponent": "MPbCard",
142
- "progressBar": true,
143
- "widthFromL": "1of3",
144
- "forceOneCardPerLineOnMobile": true
145
- },
146
- "answers": {
147
- "YES": {
148
- "code": "YES",
149
- "viewModel": {
150
- "title": "Oui"
151
- }
152
- },
153
- "NO": {
154
- "code": "NO",
155
- "viewModel": {
156
- "title": "Non"
157
- },
158
- "notification": {
159
- "type": "warning",
160
- "content": "Le compteur électrique Linky vous permet d'être facturé selon votre consommation électrique réelle. Sans ce compteur nous ne pouvons pas installer de panneaux solaires. Pour l’installer, nous vous invitons à vous rapprocher d'Enedis",
161
- "buttonText": "Voir d'autres solutions pour faire des économies de chauffage",
162
- "buttonHref": "https://www.leroymerlin.fr/economie-energie/"
163
- }
164
- }
165
- },
166
- "helpArea": [
167
- {
168
- "type": "link",
169
- "label": "À quoi ressemble un compteur Linky ?",
170
- "action": {
171
- "type": "MODAL",
172
- "viewModelDialog": {
173
- "headerTitle": "À quoi ressemble un compteur Linky ?",
174
- "htmlContent": "<b style='font-size:18px;'>Le compteur Linky ressemble à un boîtier rectangulaire en plastique. Il a un écran qui affiche la consommation d'électricité en kilowattheures (kWh)</b><br/><br/><p>C’est un compteur d'électricité intelligent installé par Enedis en France. Il permet de mesurer la consommation d'électricité en temps réel et de transmettre les données sans intervention humaine grâce à une communication sans fil.</p><br/>",
175
- "imgUrl": "https://storage.googleapis.com/project-booster-media/energyrenovation/linky.png"
176
- }
177
- }
178
- }
179
- ]
180
- },
181
- "nextStep": {
182
- "conditionals": [
183
- {
184
- "conditions": ["isAnswerMatching('LMFR_SOLAR_PANEL_QUESTION_LINKY', 'YES')"],
185
- "nextStep": {
186
- "code": "LMFR_SOLAR_PANEL_QUESTION_EXPOSED_ROOF_AREA"
187
- }
123
+ "actionLabel": "Continuer",
124
+ "nextStep": {
125
+ "code": "LMFR_SOLAR_PANEL_QUESTION_EXPOSED_ROOF_AREA"
188
126
  }
189
- ]
127
+ }
190
128
  },
191
129
  "slots": {
192
130
  "beforeContent": {
131
+ "label": "Estimez le coût de votre projet",
193
132
  "display": true,
194
- "sizeXlWidth": true,
195
133
  "component": "MPbProgress",
196
- "totalStep": 5,
197
- "currentStep": 3
134
+ "totalStep": 8,
135
+ "currentStep": 2,
136
+ "sizeXlWidth": true
198
137
  }
199
138
  }
200
139
  },
@@ -249,7 +188,7 @@
249
188
  "type": "MODAL",
250
189
  "viewModelDialog": {
251
190
  "headerTitle": "Comment calculer cette surface de toiture ?",
252
- "htmlContent": "<b style='font-size:18px;'>Il est obligatoire de positionner ses panneaux solaires sur une toiture exposée au sud, est ou ouest.</b><br/><br/><p> Pour calculer la surface de votre toiture exposée au sud, nous vous conseillons dutiliser <u>Geoportail</u>. Dans les outils cartographiques : trouvez longlet Mesures et loutil Mesurer une surface pour tracer la surface de votre toiture éligible.</p><br/>",
191
+ "htmlContent": "<b style='font-size:18px;'>Il est obligatoire de positionner ses panneaux solaires sur une toiture exposée au sud, est ou ouest.</b><br/><br/><p> Pour calculer la surface de votre toiture exposée au sud, nous vous conseillons d'utiliser <u>Geoportail</u>. Dans les outils cartographiques : trouvez l'onglet \"Mesures\" et l'outil \"Mesurer une surface\" pour tracer la surface de votre toiture éligible.</p><br/>",
253
192
  "imgUrl": "https://storage.googleapis.com/project-booster-media/energyrenovation/roof_area_exposure.png",
254
193
  "linkText": "Utiliser Geoportail",
255
194
  "hrefLink": "https://www.geoportail.gouv.fr/"
@@ -263,10 +202,11 @@
263
202
  },
264
203
  "slots": {
265
204
  "beforeContent": {
205
+ "label": "Estimez le coût de votre projet",
266
206
  "display": true,
267
207
  "component": "MPbProgress",
268
208
  "sizeXlWidth": true,
269
- "totalStep": 5,
209
+ "totalStep": 8,
270
210
  "currentStep": 4
271
211
  }
272
212
  }
@@ -285,7 +225,7 @@
285
225
  "notification": {
286
226
  "type": "info",
287
227
  "title": "Trouvez facilement cette information :",
288
- "content": "<ul style='list-style:none; padding:0; margin:0;'><li>- En ligne via un compte client en ligne ou une application mobile.</li><li>- Sur votre facture d’électricité.</li></ul>"
228
+ "content": "<ul style='list-style:none; padding:0; margin:0;'><li>- En ligne via un compte client en ligne ou une application mobile.</li><li>- Sur votre facture d'électricité.</li></ul>"
289
229
  }
290
230
  },
291
231
  "answers": {
@@ -307,16 +247,63 @@
307
247
  "title": "4 000 à 8 000 kWh"
308
248
  }
309
249
  },
310
- "MORE_THAN_8000": {
311
- "code": "MORE_THAN_8000",
250
+ "BETWEEN_8000_AND_12000": {
251
+ "code": "BETWEEN_8000_AND_12000",
312
252
  "viewModel": {
313
- "title": "Plus de 8 000 kWh"
253
+ "title": "8 000 à 12 000 kWh"
314
254
  }
315
255
  },
316
- "DONT_KNOW": {
317
- "code": "DONT_KNOW",
256
+ "MORE_THAN_12000": {
257
+ "code": "MORE_THAN_12000",
318
258
  "viewModel": {
319
- "title": "Je ne sais pas"
259
+ "title": "Plus de 12 000 kWh"
260
+ }
261
+ }
262
+ }
263
+ },
264
+ "nextStep": {
265
+ "code": "LMFR_SOLAR_PANEL_QUESTION_ELECTRICITY_ECONOMY_PERCENTAGE_GOAL"
266
+ },
267
+ "slots": {
268
+ "beforeContent": {
269
+ "label": "Estimez le coût de votre projet",
270
+ "display": true,
271
+ "component": "MPbProgress",
272
+ "sizeXlWidth": true,
273
+ "totalStep": 8,
274
+ "currentStep": 5
275
+ }
276
+ }
277
+ },
278
+ "LMFR_SOLAR_PANEL_QUESTION_ELECTRICITY_ECONOMY_PERCENTAGE_GOAL": {
279
+ "code": "LMFR_SOLAR_PANEL_QUESTION_ELECTRICITY_ECONOMY_PERCENTAGE_GOAL",
280
+ "type": "STEP",
281
+ "component": "MPbQuestion",
282
+ "payload": {
283
+ "viewModel": {
284
+ "label": "Quelle baisse de facture souhaitez-vous atteindre ?",
285
+ "answersComponent": "MPbCard",
286
+ "progressBar": true,
287
+ "widthFromL": "always-full",
288
+ "forceOneCardPerLineOnMobile": true
289
+ },
290
+ "answers": {
291
+ "15_PERCENT": {
292
+ "code": "15_PERCENT",
293
+ "viewModel": {
294
+ "title": "-15% et alimenter mes petits équipements quotidiennement"
295
+ }
296
+ },
297
+ "50_PERCENT": {
298
+ "code": "50_PERCENT",
299
+ "viewModel": {
300
+ "title": "-50% et produire ma consommation sur toute la journée"
301
+ }
302
+ },
303
+ "80_PERCENT": {
304
+ "code": "80_PERCENT",
305
+ "viewModel": {
306
+ "title": "-80% et utiliser mon énergie de jour comme de nuit"
320
307
  }
321
308
  }
322
309
  }
@@ -326,15 +313,46 @@
326
313
  },
327
314
  "slots": {
328
315
  "beforeContent": {
316
+ "label": "Estimez le coût de votre projet",
329
317
  "display": true,
330
318
  "component": "MPbProgress",
331
319
  "sizeXlWidth": true,
332
- "totalStep": 5,
320
+ "totalStep": 8,
333
321
  "currentStep": 5
334
322
  }
335
323
  }
336
324
  },
337
-
325
+ "LMFR_SOLAR_PANEL_EXIT": {
326
+ "code": "LMFR_SOLAR_PANEL_EXIT",
327
+ "type": "STEP",
328
+ "component": "MPbQuestion",
329
+ "payload": {
330
+ "viewModel": {
331
+ "label": "Pour aller plus loin dans votre projet",
332
+ "answersComponent": "MPbCard"
333
+ },
334
+ "answers": {
335
+ "DISCOVER_OUR_HEATERS": {
336
+ "code": "DISCOVER_OUR_HEATERS",
337
+ "viewModel": {
338
+ "title": "Comment faire des économies d'énergie",
339
+ "image": "https://storage.googleapis.com/project-booster-media/energyrenovation/make_savings.jpg",
340
+ "linkLabel": "Consulter l’article",
341
+ "cardLink": "https://www.leroymerlin.fr/economie-energie/"
342
+ }
343
+ },
344
+ "LEARN_MORE_ABOUT_AID": {
345
+ "code": "LEARN_MORE_ABOUT_AID",
346
+ "viewModel": {
347
+ "title": "Mieux comprendre les aides pour votre projet",
348
+ "image": "https://storage.googleapis.com/project-booster-media/energyrenovation/learn_more_about_aids.jpg",
349
+ "linkLabel": "Consulter l’article",
350
+ "cardLink": "https://www.leroymerlin.fr/magazine/conseils-pratiques/les-aides-financieres-pour-renovation-energetique.html?isautocompleted=true"
351
+ }
352
+ }
353
+ }
354
+ }
355
+ },
338
356
  "SUMMARY": {
339
357
  "code": "SUMMARY",
340
358
  "type": "STEP",
@@ -469,10 +487,7 @@
469
487
  },
470
488
  "slots": {
471
489
  "beforeContent": {
472
- "display": true,
473
- "component": "MPbProgress",
474
- "totalStep": 5,
475
- "currentStep": 2
490
+ "display": false
476
491
  }
477
492
  }
478
493
  },
@@ -487,9 +502,10 @@
487
502
  "display": false
488
503
  },
489
504
  "beforeContent": {
505
+ "label": "Estimez le coût de votre projet",
490
506
  "display": true,
491
507
  "component": "MPbProgress",
492
- "totalStep": 5,
508
+ "totalStep": 8,
493
509
  "currentStep": 1
494
510
  }
495
511
  },
@@ -536,14 +552,7 @@
536
552
  "path": "city.postalCode"
537
553
  }
538
554
  },
539
- "metadata": [
540
- {
541
- "attribut": "productRef",
542
- "type": "string",
543
- "answerCode": "LMFR_SOLAR_PANEL_DISPLAY_PRODUCT",
544
- "path": "product.code"
545
- }
546
- ]
555
+ "metadata": []
547
556
  },
548
557
  "callToActions": [
549
558
  {