From ce6916658abbf861d0fd6b7b9df1c5804f2cf888 Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Mon, 18 Sep 2023 16:20:45 -0400 Subject: [PATCH 1/7] First pass at desktop max width and breakpoints per page. Rename funnel-footer to nav-bar. --- .../questions-page-layout.vue | 8 +- .../nav-bar.spec.js} | 12 +- .../funnel-footer.vue => nav-bar/nav-bar.vue} | 10 +- .../address-lookup/address-lookup.spec.js | 4 +- src/layouts/address-lookup/address-lookup.vue | 22 +- .../address-vehicles/address-vehicles.spec.js | 14 +- .../address-vehicles/address-vehicles.vue | 14 +- .../customer-details/customer-details.vue | 113 +-- src/layouts/estimate/estimate.spec.js | 4 +- src/layouts/estimate/estimate.vue | 128 +-- .../license-plate-lookup.spec.js | 10 +- .../license-plate-lookup.vue | 24 +- src/layouts/payment-method/payment-method.vue | 6 +- src/layouts/quote/quote.vue | 235 +++--- src/layouts/review/review.vue | 173 ++-- src/layouts/schedule/schedule.spec.js | 2 +- src/layouts/schedule/schedule.vue | 787 +++++++++--------- .../service-location/service-location.vue | 196 +++-- src/layouts/vehicle-damage/vehicle-damage.vue | 162 ++-- .../vehicle-parts/vehicle-parts.spec.js | 2 +- src/layouts/vehicle-parts/vehicle-parts.vue | 10 +- src/layouts/vehicle/vehicle.vue | 135 ++- src/layouts/vin-lookup/vin-lookup.spec.js | 8 +- src/layouts/vin-lookup/vin-lookup.vue | 20 +- src/mixins/base-mixin.js | 4 +- src/styles/common-styles.scss | 12 +- src/styles/ux-variables.scss | 9 - 27 files changed, 1100 insertions(+), 1024 deletions(-) rename src/fmg-components/{funnel-footer/funnel-footer.spec.js => nav-bar/nav-bar.spec.js} (84%) rename src/fmg-components/{funnel-footer/funnel-footer.vue => nav-bar/nav-bar.vue} (94%) diff --git a/src/fmg-components/layouts/questions-page-layout/questions-page-layout.vue b/src/fmg-components/layouts/questions-page-layout/questions-page-layout.vue index f6bb2a656..801987e31 100644 --- a/src/fmg-components/layouts/questions-page-layout/questions-page-layout.vue +++ b/src/fmg-components/layouts/questions-page-layout/questions-page-layout.vue @@ -23,8 +23,8 @@ :answerKey="questionsDatum.answerKey" :validationRules="validationRules" /> - { +describe("nav-bar.vue", () => { test("Should emit ForwardClicked on button click", async () => { // Act - const wrapper = mount(funnelFooter, { + const wrapper = mount(navbar, { mixins: [mockMixin], }); wrapper.vm.buttonClick(); @@ -14,7 +14,7 @@ describe("funnel-footer.vue", () => { test("Should emit BackClicked on link click", async () => { // Act - const wrapper = mount(funnelFooter, { + const wrapper = mount(navbar, { mixins: [mockMixin], }); wrapper.vm.linkClick(); @@ -24,7 +24,7 @@ describe("funnel-footer.vue", () => { test("Should change button text when update button text is called", async () => { // Act - const wrapper = mount(funnelFooter, { + const wrapper = mount(navbar, { mixins: [mockMixin], }); wrapper.vm.updateButtonText("newText"); @@ -35,7 +35,7 @@ describe("funnel-footer.vue", () => { test("should run removeLoader fn on buttonMain and return false for onkeydown fn", async () => { // Arrange - const wrapper = mount(funnelFooter, { + const wrapper = mount(navbar, { mixins: [mockMixin], }); diff --git a/src/fmg-components/funnel-footer/funnel-footer.vue b/src/fmg-components/nav-bar/nav-bar.vue similarity index 94% rename from src/fmg-components/funnel-footer/funnel-footer.vue rename to src/fmg-components/nav-bar/nav-bar.vue index 448f15319..bb0cbc399 100644 --- a/src/fmg-components/funnel-footer/funnel-footer.vue +++ b/src/fmg-components/nav-bar/nav-bar.vue @@ -1,6 +1,6 @@ + const payment = this.$store.getters.payment; + if (payment.isInsurance) { + navigateToHeritageFunnel({ + shouldSaveSession: true, + loadingModal: this.$refs.loadingModal, + }); + } else { + this.$router.navigateWithSaving( + this.navigationScenarios.CLICKED_FORWARD_WITH_CASH, + this.$route + ); + } + }, + }, + components: { + funnelHeader, + navbar, + vehicleBanner, + funnelSubHeader, + Form, + textBlock, + cashOrInsuranceQuestion, + servicePackageQuestion, + contentGroupModal, + loadingModal, + }, + }; + + diff --git a/src/layouts/review/review.vue b/src/layouts/review/review.vue index 2fb033ea3..592654db1 100644 --- a/src/layouts/review/review.vue +++ b/src/layouts/review/review.vue @@ -1,105 +1,116 @@ diff --git a/src/layouts/service-location/service-location.vue b/src/layouts/service-location/service-location.vue index e49cd295c..b5ceb81dd 100644 --- a/src/layouts/service-location/service-location.vue +++ b/src/layouts/service-location/service-location.vue @@ -1,87 +1,109 @@ @@ -95,7 +117,7 @@ import appointmentTypeQuestion from "@/layouts/service-location/appointment-type import shopQuestion from "@/layouts/service-location/shop-question/shop-question"; import funnelHeader from "@/fmg-components/funnel-header/funnel-header"; -import funnelFooter from "@/fmg-components/funnel-footer/funnel-footer"; +import navbar from "@/fmg-components/nav-bar/nav-bar"; import funnelSubHeader from "@/fmg-components/funnel-sub-header/funnel-sub-header"; import loadingModal from "@/fmg-components/loading-modal/loading-modal.vue"; import { Form } from "vee-validate"; @@ -240,7 +262,7 @@ export default { set: function (newValue) { this.streetAddress = newValue.addressQuestions.streetAddress; this.apartmentNumberOrBusinessName = - newValue.addressQuestions.apartmentNumberOrBusinessName; + newValue.addressQuestions.apartmentNumberOrBusinessName; this.city = newValue.addressQuestions.city; this.state = newValue.addressQuestions.state; this.zipCode = newValue.addressQuestions.zipCode; @@ -369,10 +391,10 @@ export default { setServiceabilityDetails(serviceabilityDetails) { this.isGlassServiceableInshop = serviceabilityDetails.isGlassServiceableInshop; this.isRecalibrationServiceableInshop = - serviceabilityDetails.isRecalibrationServiceableInshop; + serviceabilityDetails.isRecalibrationServiceableInshop; this.isGlassServiceableMobile = serviceabilityDetails.isGlassServiceableMobile; this.isRecalibrationServiceableMobile = - serviceabilityDetails.isRecalibrationServiceableMobile; + serviceabilityDetails.isRecalibrationServiceableMobile; }, backButtonAction() { this.$router.navigateWithoutSaving(this.navigationScenarios.CLICKED_BACK, this.$route); @@ -456,7 +478,7 @@ export default { appointmentTypeQuestion, mobileLocationModalQuestions, funnelHeader, - funnelFooter, + navbar, funnelSubHeader, Form, loadingModal, diff --git a/src/layouts/vehicle-damage/vehicle-damage.vue b/src/layouts/vehicle-damage/vehicle-damage.vue index c03fabda1..e27d398a4 100644 --- a/src/layouts/vehicle-damage/vehicle-damage.vue +++ b/src/layouts/vehicle-damage/vehicle-damage.vue @@ -1,65 +1,81 @@ - + const payment = this.$store.getters.payment; + if (payment.isInsurance) { + navigateToHeritageFunnel({ + shouldSaveSession: true, + loadingModal: this.$refs.loadingModal, + }); + } else { + this.$router.navigateWithSaving( + this.navigationScenarios.CLICKED_FORWARD_WITH_CASH, + this.$route + ); + } + }, + }, + components: { + funnelHeader, + navbar, + vehicleBanner, + funnelSubHeader, + Form, + textBlock, + cashOrInsuranceQuestion, + servicePackageQuestion, + contentGroupModal, + loadingModal, + }, +}; + + diff --git a/src/layouts/review/review.vue b/src/layouts/review/review.vue index 592654db1..c7112fb00 100644 --- a/src/layouts/review/review.vue +++ b/src/layouts/review/review.vue @@ -8,7 +8,7 @@
-
 
+
 
- -
-
 
+
 
+ diff --git a/src/layouts/schedule/schedule.vue b/src/layouts/schedule/schedule.vue index 23564a4c7..59d8e932a 100644 --- a/src/layouts/schedule/schedule.vue +++ b/src/layouts/schedule/schedule.vue @@ -1,63 +1,66 @@ diff --git a/src/layouts/service-location/service-location.vue b/src/layouts/service-location/service-location.vue index b5ceb81dd..aed00e644 100644 --- a/src/layouts/service-location/service-location.vue +++ b/src/layouts/service-location/service-location.vue @@ -8,101 +8,100 @@
-
 
+
 
+ v-model="serviceZipCodeQuestion" + ref="serviceZipCodeQuestion" + :mobileFeePart="mobileFeePart" + @updated-mobile-fee-part="setMobileFeePart" + @updated-serviceability="setServiceabilityDetails" + @updated-contains-military-base="setContainsMilitaryBase" + linkWidgetName="ServiceZipLinkWidget" + modalWidgetName="ServiceZipModalWidget" + :onZipUpdateCallback="reloadShopData" /> + ref="alertMilitaryBaseZip" + class="my-5" + cmsWidgetName="AlertMilitaryBaseZipWidget" + v-if="displayMilitaryZipAlert" + alertClass="alert-warning" /> + ref="alertMobileOnly" + class="my-5" + cmsWidgetName="AlertMobileOnlyWidget" + v-if="displayServiceableMobileOnly" + alertClass="alert-warning" /> + ref="alertRecalNoMobile" + class="my-5" + cmsWidgetName="AlertRecalNoMobileWidget" + v-if="displayRecalibrationWarning" + @text-link-clicked="openModalAction" + alertClass="alert-warning" /> + ref="alertInshopOnly" + class="my-5" + cmsWidgetName="AlertInshopOnlyWidget" + v-if="displayServiceableInshopOnly" + alertClass="alert-warning" /> + ref="alertNoShops" + class="my-5" + cmsWidgetName="AlertNoShopsWidget" + v-if="displayNoShopsAlert" + alertClass="alert-warning" /> + v-model="selectedAppointmentType" + v-show="isAppointmentTypeDisplayed" + :isServiceableMobile="isServiceableMobile" + :isServiceableInshop="isServiceableInshop" + :isDisplayed="isAppointmentTypeDisplayed" + ref="appointmentTypeQuestion" + groupName="appointmentTypeQuestion" + cmsWidgetName="AppointmentTypeQuestionWidget" + validationRules="option-required" /> + customComponentId="mobileLocationQuestions" + v-if="selectedAppointmentType === 'Mobile'" + v-model="mobileLocationQuestions" + :mobileFeePart="mobileFeePart" + @updated-mobile-fee-part="setMobileFeePart" + @updated-serviceability="setServiceabilityDetails" + @updated-contains-military-base="setContainsMilitaryBase" + validationRules="mobile-location-required" + ref="mobileLocationQuestions" + linkWidgetName="MobileLocationLinkWidget" + modalWidgetName="MobileLocationModalWidget" + :onZipUpdateCallback="reloadShopData" /> + ref="shopQuestion" + v-show="isShopQuestionDisplayed" + v-model="selectedProvider" + :selectedAppointmentType="selectedAppointmentType" + :isDisplayed="isShopQuestionDisplayed" + cmsWidgetName="ShopQuestionWidget" /> - + cmsWidgetName="FunnelFooterWidget" + ref="navbar" + :isForwardActionDisabled="!meta.valid || displayNoShopsAlert" + @back-clicked="backButtonAction" + @ForwardClicked="forwardButtonAction" />
-
 
+
 
@@ -262,7 +261,7 @@ export default { set: function (newValue) { this.streetAddress = newValue.addressQuestions.streetAddress; this.apartmentNumberOrBusinessName = - newValue.addressQuestions.apartmentNumberOrBusinessName; + newValue.addressQuestions.apartmentNumberOrBusinessName; this.city = newValue.addressQuestions.city; this.state = newValue.addressQuestions.state; this.zipCode = newValue.addressQuestions.zipCode; @@ -391,10 +390,10 @@ export default { setServiceabilityDetails(serviceabilityDetails) { this.isGlassServiceableInshop = serviceabilityDetails.isGlassServiceableInshop; this.isRecalibrationServiceableInshop = - serviceabilityDetails.isRecalibrationServiceableInshop; + serviceabilityDetails.isRecalibrationServiceableInshop; this.isGlassServiceableMobile = serviceabilityDetails.isGlassServiceableMobile; this.isRecalibrationServiceableMobile = - serviceabilityDetails.isRecalibrationServiceableMobile; + serviceabilityDetails.isRecalibrationServiceableMobile; }, backButtonAction() { this.$router.navigateWithoutSaving(this.navigationScenarios.CLICKED_BACK, this.$route); diff --git a/src/layouts/vehicle-damage/vehicle-damage.vue b/src/layouts/vehicle-damage/vehicle-damage.vue index e27d398a4..9670ec48c 100644 --- a/src/layouts/vehicle-damage/vehicle-damage.vue +++ b/src/layouts/vehicle-damage/vehicle-damage.vue @@ -6,16 +6,16 @@ -
-
 
-
- +
 
+
+ - + - - - - - - - -
-
 
+
 
+ @@ -235,7 +235,7 @@ export default { }) ) { windShieldOptions.selectedWindshieldDamageType = - damageLocationsSelected.REPLACE; + damageLocationsSelected.REPLACE; windShieldOptions.selectedWindshieldReplaceOptions.push( damageLocationsSelected.SINGLE ); @@ -250,7 +250,7 @@ export default { }) ) { windShieldOptions.selectedWindshieldDamageType = - damageLocationsSelected.REPLACE; + damageLocationsSelected.REPLACE; windShieldOptions.selectedWindshieldReplaceOptions.push( damageLocationsSelected.DRIVER ); @@ -265,7 +265,7 @@ export default { }) ) { windShieldOptions.selectedWindshieldDamageType = - damageLocationsSelected.REPLACE; + damageLocationsSelected.REPLACE; windShieldOptions.selectedWindshieldReplaceOptions.push( damageLocationsSelected.PASSENGER ); @@ -335,7 +335,7 @@ export default { isWindshieldRepair: this.isWindshieldRepair, selectedGlassToReplace: this.selectedGlassToReplace(), selectedWindshieldChipCount: - this.selectedWindshieldOptions.selectedWindshieldChipCount, + this.selectedWindshieldOptions.selectedWindshieldChipCount, }, false ); @@ -358,9 +358,9 @@ export default { const payment = this.$store.getters.payment; const vehicleChangedDuringPolicyLookupInHeritage = - payment.isInsurance && - payment.insuranceCoverage.coverageStatus && - payment.insuranceCoverage.coverageStatus !== ""; + payment.isInsurance && + payment.insuranceCoverage.coverageStatus && + payment.insuranceCoverage.coverageStatus !== ""; if (vehicleChangedDuringPolicyLookupInHeritage) { if (store.getters.damage.isRepair) { this.$router.navigateWithSaving( @@ -370,7 +370,7 @@ export default { } else { this.$router.navigateWithSaving( this.navigationScenarios - .CLICKED_FORWARD_WITH_REPLACE_AND_VERIFIED_INSURANCE, + .CLICKED_FORWARD_WITH_REPLACE_AND_VERIFIED_INSURANCE, this.$route ); } @@ -452,7 +452,7 @@ export default { return ( this.isWindshieldDamageLocation && this.selectedWindshieldOptions.selectedWindshieldDamageType === - damageLocationsSelected.REPAIR + damageLocationsSelected.REPAIR ); }, isDriverSideReplace() { @@ -480,10 +480,10 @@ export default { if ( !this.selectedDamageLocations?.includes("Windshield") || this.selectedWindshieldOptions.selectedWindshieldDamageType === - damageLocationsSelected.REPAIR || + damageLocationsSelected.REPAIR || !this.selectedWindshieldOptions.selectedWindshieldReplaceOptions ) - return false; + return false; return ( this.selectedWindshieldOptions.selectedWindshieldReplaceOptions?.some( @@ -502,14 +502,14 @@ export default { ); } ) || - this.selectedWindshieldOptions.selectedWindshieldReplaceOptions?.some( - (selectedPassengerWindshield) => { - return ( - selectedPassengerWindshield.toUpperCase() === - damageLocationsSelected.PASSENGER.toUpperCase() - ); - } - )) + this.selectedWindshieldOptions.selectedWindshieldReplaceOptions?.some( + (selectedPassengerWindshield) => { + return ( + selectedPassengerWindshield.toUpperCase() === + damageLocationsSelected.PASSENGER.toUpperCase() + ); + } + )) ); }, shouldDisplayVehicleChangeAlert() { diff --git a/src/layouts/vehicle-parts/vehicle-parts.vue b/src/layouts/vehicle-parts/vehicle-parts.vue index c34223b88..5ad44d3e0 100644 --- a/src/layouts/vehicle-parts/vehicle-parts.vue +++ b/src/layouts/vehicle-parts/vehicle-parts.vue @@ -9,44 +9,48 @@
-
 
+
 
- -
-
-
- -
+ +
+
+
+
-
- -
- -
- +
+
+ +
+ +
+
-
 
+
 
diff --git a/src/layouts/vehicle/vehicle.vue b/src/layouts/vehicle/vehicle.vue index 92f1e7ea6..8743ef284 100644 --- a/src/layouts/vehicle/vehicle.vue +++ b/src/layouts/vehicle/vehicle.vue @@ -7,7 +7,7 @@
-
 
+
 
-
 
+
 
diff --git a/src/layouts/vin-lookup/vin-lookup.vue b/src/layouts/vin-lookup/vin-lookup.vue index dfb254dc9..fe25fa403 100644 --- a/src/layouts/vin-lookup/vin-lookup.vue +++ b/src/layouts/vin-lookup/vin-lookup.vue @@ -8,126 +8,122 @@
-
 
+
 
+ cmsWidgetName="VehicleBannerWidget" + :displayGenericVehicleImage="false" /> + cmsWidgetName="VinNumberQuestionWidget" + v-model="vin" + customInputId="vin" + isRequired + :validationRules="!vinPopulatedOnPageLoad ? 'vin-required|vin-format' : ''" + :isDisabled="vinPopulatedOnPageLoad" + maxLength="17" + :mask="vinMask" + includeImageQuestion + :imageQuestionSubmitHandler="getVinFromImage" + :maxFileSize="imageUploadMaxFileSize" + @image-lookup-error="displayVinScanAlert" + @image-validity-error="displayVinScanAlert" + data-test="vin-lookup-field" + ref="vinLookupQuestion" /> + cmsWidgetName="AlertVinScanFailed" + v-if="displayVinScanFailedAlert" + alertClass="alert-danger" /> + cmsWidgetName="ServiceZipQuestionWidget" + v-model="serviceZipCode" + customInputId="serviceZipCode" + mask="#####" + isRequired + validationRules="zip-required|zip-format" /> + cmsWidgetName="EmailAddressQuestionWidget" + v-model="emailAddress" + customInputId="emailAddress" + isRequired + validationRules="email-address-required|email-address-format" /> + ref="alertInvalidZip" + v-if="displayInvalidZipAlert" + class="my-4" + cmsWidgetName="AlertInvalidZipWidget" + alertClass="alert-danger" + v-bind:isDismissible="false" /> + class="my-4" + :manualHeadline="AlertPerfectMatchInsuranceVerifiedHeader" + :manualCopy="AlertPerfectMatchInsuranceVerifiedBody" + v-model="customAlertData" + v-if=" + vinPopulatedOnPageLoad && + isInsuranceVerified && + !displayInvalidZipAlert && + !displayNonServiceableZipAlert + " + alertClass="alert-success" /> + class="my-4" + :manualHeadline="AlertMatchedDifferentVehicleHeader" + :manualCopy="AlertMatchedDifferentVehicleBody" + v-model="customAlertData" + v-if="displayMatchedDifferentVehicleAlert" + alertClass="alert-warning" /> + class="my-4" + :manualHeadline="AlertNonServiceableZipHeader" + :manualCopy="AlertNonServiceableZipBody" + v-model="customAlertData" + v-if="displayNonServiceableZipAlert" + alertClass="alert-danger" /> + class="my-4" + v-model="customAlertData" + v-if="displayVinNotFoundAlert" + alertClass="alert-danger" + cmsWidgetName="AlertVinNotFoundWidget" /> + class="my-4" + :manualHeadline="AlertPerfectMatchInsuranceNotVerifiedHeader" + :manualCopy="AlertPerfectMatchInsuranceNotVerifiedBody" + v-model="customAlertData" + v-if=" + vinPopulatedOnPageLoad && + !isInsuranceVerified && + !displayInvalidZipAlert && + !displayNonServiceableZipAlert + " + alertClass="alert-success" /> - + cmsWidgetName="FunnelFooterWidget" + ref="navbar" + :isForwardActionDisabled="!meta.valid" + @back-clicked="backButtonAction" + @ForwardClicked="forwardButtonAction" />
-
 
+
 
- @@ -300,7 +296,7 @@ export default { // Check if the CarId is different from the lookup vs what is in state currently. this.isCarIdDifferent = - resultMap.vehicleLookupResponse.carId !== this.$store.getters.vehicle.carId; + resultMap.vehicleLookupResponse.carId !== this.$store.getters.vehicle.carId; if ( this.isCarIdDifferent && @@ -400,16 +396,16 @@ export default { getVinFromImage(image) { return new Promise((resolve, reject) => { this.dispatchStoreAction(storeActions.LOOKUP_VIN_BY_IMAGE, image) - .then((response) => { - if (response.data.length > 0) { - resolve(response.data[0]); - } else { - reject("No VINs detected."); - } - }) - .catch(() => { - reject("An error occurred during the lookup."); - }); + .then((response) => { + if (response.data.length > 0) { + resolve(response.data[0]); + } else { + reject("No VINs detected."); + } + }) + .catch(() => { + reject("An error occurred during the lookup."); + }); }); }, resetAlerts() { @@ -432,10 +428,10 @@ export default { }, AlertMatchedDifferentVehicleBody() { return this.getCmsContent("AlertMatchedDifferentVehicleWidget", "BodyText") - .replaceAll("{custom:damage}", getDamageString()) - .replaceAll("{custom:vinlookupYear}", this.customAlertData?.vehicleInfo?.year) - .replaceAll("{custom:vinlookupMake}", this.customAlertData?.vehicleInfo?.make) - .replaceAll("{custom:vinlookupModel}", this.customAlertData?.vehicleInfo?.model); + .replaceAll("{custom:damage}", getDamageString()) + .replaceAll("{custom:vinlookupYear}", this.customAlertData?.vehicleInfo?.year) + .replaceAll("{custom:vinlookupMake}", this.customAlertData?.vehicleInfo?.make) + .replaceAll("{custom:vinlookupModel}", this.customAlertData?.vehicleInfo?.model); }, AlertNonServiceableZipHeader() { return this.getCmsContent("AlertNonServiceableZipWidget", "HeadlineText").replaceAll( From efd0edc1e9f451ee821536fbc4ecde99834c5358 Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Tue, 19 Sep 2023 11:16:32 -0400 Subject: [PATCH 5/7] WIP grid tweaks for list-card. --- .../button-question/button-question.vue | 4 +- src/layouts/vehicle-damage/vehicle-damage.vue | 116 +++++++++--------- 2 files changed, 60 insertions(+), 60 deletions(-) diff --git a/src/digital-components/button-question/button-question.vue b/src/digital-components/button-question/button-question.vue index 13c81f815..9636d1d25 100644 --- a/src/digital-components/button-question/button-question.vue +++ b/src/digital-components/button-question/button-question.vue @@ -192,9 +192,9 @@ export default { classes = "d-flex flex-row p-0"; break; case "listCard": - classes = "row g-2 justify-content-center mb-1"; + classes = "row g-2 g-md-5 justify-content-center mb-1"; if (this.isWide) { - classes += " flex-column"; + classes += "flex-column"; } break; case "radio": diff --git a/src/layouts/vehicle-damage/vehicle-damage.vue b/src/layouts/vehicle-damage/vehicle-damage.vue index 9670ec48c..e5583d986 100644 --- a/src/layouts/vehicle-damage/vehicle-damage.vue +++ b/src/layouts/vehicle-damage/vehicle-damage.vue @@ -10,61 +10,61 @@
 
+ cmsWidgetName="VehicleBannerWidget" + :displayGenericVehicleImage="false" /> + ref="vehicleChangeAlert" + v-if="shouldDisplayVehicleChangeAlert" + class="mt-5 mb-0" + cmsWidgetName="VehicleChangeAlert" + alertClass="alert-warning" + :isDismissible="false" /> + ref="damageLocation" + cmsWidgetName="DamageLocationQuestion" + v-model="selectedDamageLocations" + groupName="DamageLocationQuestion" /> + ref="windshieldOptions" + v-model="selectedWindshieldOptions" + :hasRepairReplaceConflict="hasRepairReplaceConflict" + :hasSplitSingleConflict="hasSplitSingleConflict" + :selectedDamageLocations="selectedDamageLocations" /> + v-if="hasRepairReplaceConflict" + class="my-5" + cmsWidgetName="HasReplacementConflict" + alertClass="alert-danger" + :isDismissible="false" /> + ref="sideDoorOptions" + cmsWidgetName="SideDoorSideQuestion" + groupName="SideDoorSideQuestion" + v-model="sideDoorOptionsData" + v-show="!hasRepairReplaceConflict" + :selectedDamageLocations="selectedDamageLocations" /> + ref="backGlassOptions" + cmsWidgetName="RearReplaceOptionsQuestion" + :isAvailable="isRearWindowDamageLocation && !hasRepairReplaceConflict" + v-model="selectedRearReplaceOptions" + groupName="BackGlassReplaceOptionsQuestion" + validationRules="replace-options-required" /> + cmsWidgetName="FunnelFooterWidget" + :isForwardActionDisabled="!meta.valid" + :isBackButtonHidden="shouldHideBackButton" + @back-clicked="backButtonAction" + @ForwardClicked="forwardButtonAction" />
 
@@ -235,7 +235,7 @@ export default { }) ) { windShieldOptions.selectedWindshieldDamageType = - damageLocationsSelected.REPLACE; + damageLocationsSelected.REPLACE; windShieldOptions.selectedWindshieldReplaceOptions.push( damageLocationsSelected.SINGLE ); @@ -250,7 +250,7 @@ export default { }) ) { windShieldOptions.selectedWindshieldDamageType = - damageLocationsSelected.REPLACE; + damageLocationsSelected.REPLACE; windShieldOptions.selectedWindshieldReplaceOptions.push( damageLocationsSelected.DRIVER ); @@ -265,7 +265,7 @@ export default { }) ) { windShieldOptions.selectedWindshieldDamageType = - damageLocationsSelected.REPLACE; + damageLocationsSelected.REPLACE; windShieldOptions.selectedWindshieldReplaceOptions.push( damageLocationsSelected.PASSENGER ); @@ -335,7 +335,7 @@ export default { isWindshieldRepair: this.isWindshieldRepair, selectedGlassToReplace: this.selectedGlassToReplace(), selectedWindshieldChipCount: - this.selectedWindshieldOptions.selectedWindshieldChipCount, + this.selectedWindshieldOptions.selectedWindshieldChipCount, }, false ); @@ -358,9 +358,9 @@ export default { const payment = this.$store.getters.payment; const vehicleChangedDuringPolicyLookupInHeritage = - payment.isInsurance && - payment.insuranceCoverage.coverageStatus && - payment.insuranceCoverage.coverageStatus !== ""; + payment.isInsurance && + payment.insuranceCoverage.coverageStatus && + payment.insuranceCoverage.coverageStatus !== ""; if (vehicleChangedDuringPolicyLookupInHeritage) { if (store.getters.damage.isRepair) { this.$router.navigateWithSaving( @@ -370,7 +370,7 @@ export default { } else { this.$router.navigateWithSaving( this.navigationScenarios - .CLICKED_FORWARD_WITH_REPLACE_AND_VERIFIED_INSURANCE, + .CLICKED_FORWARD_WITH_REPLACE_AND_VERIFIED_INSURANCE, this.$route ); } @@ -452,7 +452,7 @@ export default { return ( this.isWindshieldDamageLocation && this.selectedWindshieldOptions.selectedWindshieldDamageType === - damageLocationsSelected.REPAIR + damageLocationsSelected.REPAIR ); }, isDriverSideReplace() { @@ -480,10 +480,10 @@ export default { if ( !this.selectedDamageLocations?.includes("Windshield") || this.selectedWindshieldOptions.selectedWindshieldDamageType === - damageLocationsSelected.REPAIR || + damageLocationsSelected.REPAIR || !this.selectedWindshieldOptions.selectedWindshieldReplaceOptions ) - return false; + return false; return ( this.selectedWindshieldOptions.selectedWindshieldReplaceOptions?.some( @@ -502,14 +502,14 @@ export default { ); } ) || - this.selectedWindshieldOptions.selectedWindshieldReplaceOptions?.some( - (selectedPassengerWindshield) => { - return ( - selectedPassengerWindshield.toUpperCase() === - damageLocationsSelected.PASSENGER.toUpperCase() - ); - } - )) + this.selectedWindshieldOptions.selectedWindshieldReplaceOptions?.some( + (selectedPassengerWindshield) => { + return ( + selectedPassengerWindshield.toUpperCase() === + damageLocationsSelected.PASSENGER.toUpperCase() + ); + } + )) ); }, shouldDisplayVehicleChangeAlert() { From c5162483f423213aed030c0f62ddd401f1f4f10a Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Tue, 19 Sep 2023 14:33:44 -0400 Subject: [PATCH 6/7] WIP grid and style updates. --- src/layouts/address-lookup/address-lookup.vue | 6 ++---- .../customer-details/customer-details.vue | 6 ++---- src/layouts/estimate/estimate.vue | 6 ++---- .../license-plate-lookup.vue | 6 ++---- src/layouts/quote/quote.vue | 6 ++---- src/layouts/review/review.vue | 6 ++---- src/layouts/schedule/schedule.vue | 6 ++---- .../service-location/service-location.vue | 6 ++---- src/layouts/vehicle-damage/vehicle-damage.vue | 16 ++++++++++++---- src/layouts/vehicle-parts/vehicle-parts.vue | 16 ++++++++++++---- src/layouts/vehicle/vehicle.vue | 6 ++---- src/layouts/vin-lookup/vin-lookup.vue | 6 ++---- 12 files changed, 44 insertions(+), 48 deletions(-) diff --git a/src/layouts/address-lookup/address-lookup.vue b/src/layouts/address-lookup/address-lookup.vue index faae41388..34b111d15 100644 --- a/src/layouts/address-lookup/address-lookup.vue +++ b/src/layouts/address-lookup/address-lookup.vue @@ -7,9 +7,8 @@ -
-
 
-
+
+
-
 
diff --git a/src/layouts/customer-details/customer-details.vue b/src/layouts/customer-details/customer-details.vue index ebdd4c7a6..03de9ff97 100644 --- a/src/layouts/customer-details/customer-details.vue +++ b/src/layouts/customer-details/customer-details.vue @@ -6,9 +6,8 @@
-
-
 
-
+
+
-
 
diff --git a/src/layouts/estimate/estimate.vue b/src/layouts/estimate/estimate.vue index d6308f444..f27f833a0 100644 --- a/src/layouts/estimate/estimate.vue +++ b/src/layouts/estimate/estimate.vue @@ -7,9 +7,8 @@
-
-
 
-
+
+
@@ -80,7 +79,6 @@ @ForwardClicked="forwardButtonAction" />
-
 
diff --git a/src/layouts/license-plate-lookup/license-plate-lookup.vue b/src/layouts/license-plate-lookup/license-plate-lookup.vue index c9e3d248e..31ca3fec7 100644 --- a/src/layouts/license-plate-lookup/license-plate-lookup.vue +++ b/src/layouts/license-plate-lookup/license-plate-lookup.vue @@ -6,9 +6,8 @@
-
-
 
-
+
+
@@ -85,7 +84,6 @@ @back-clicked="backButtonAction" @ForwardClicked="forwardButtonAction" />
-
 
diff --git a/src/layouts/quote/quote.vue b/src/layouts/quote/quote.vue index 357bd7c14..46f573144 100644 --- a/src/layouts/quote/quote.vue +++ b/src/layouts/quote/quote.vue @@ -7,9 +7,8 @@
-
-
 
-
+
+
@@ -52,7 +51,6 @@ @back-clicked="backButtonAction" @ForwardClicked="forwardButtonAction" />
-
 
diff --git a/src/layouts/review/review.vue b/src/layouts/review/review.vue index c7112fb00..639fd0fd5 100644 --- a/src/layouts/review/review.vue +++ b/src/layouts/review/review.vue @@ -7,9 +7,8 @@
-
-
 
-
+
+
@@ -101,7 +100,6 @@ @back-clicked="backButtonAction" @ForwardClicked="forwardButtonAction" />
-
 
diff --git a/src/layouts/schedule/schedule.vue b/src/layouts/schedule/schedule.vue index 59d8e932a..f276ea1cd 100644 --- a/src/layouts/schedule/schedule.vue +++ b/src/layouts/schedule/schedule.vue @@ -7,9 +7,8 @@
-
-
 
-
+
+