From 8b985690bba29be920bf014ee271748701ff17e9 Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Thu, 11 Apr 2024 14:54:52 -0400 Subject: [PATCH 01/26] WIP update ISS with desktop views. --- .../site-footer/footer-image/footer-image.vue | 28 + .../site-footer/site-footer.vue | 15 +- .../coverage-statement/coverage-statement.vue | 910 ++++++++--------- .../duplicate-check/duplicate-check.vue | 387 ++++---- .../policy-vehicles/policy-vehicles.vue | 532 +++++----- src/layouts/vehicle-damage/vehicle-damage.vue | 929 ++++++++++-------- src/layouts/vehicle-parts/vehicle-parts.vue | 441 +++++---- src/layouts/welcome-page/welcome-page.vue | 775 +++++++-------- src/styles/common-styles.scss | 102 +- src/styles/ux-variables.scss | 9 +- 10 files changed, 2156 insertions(+), 1972 deletions(-) create mode 100644 src/iss-components/site-footer/footer-image/footer-image.vue diff --git a/src/iss-components/site-footer/footer-image/footer-image.vue b/src/iss-components/site-footer/footer-image/footer-image.vue new file mode 100644 index 00000000..8b3ac9e6 --- /dev/null +++ b/src/iss-components/site-footer/footer-image/footer-image.vue @@ -0,0 +1,28 @@ + + + + diff --git a/src/iss-components/site-footer/site-footer.vue b/src/iss-components/site-footer/site-footer.vue index e695f422..52ca9273 100644 --- a/src/iss-components/site-footer/site-footer.vue +++ b/src/iss-components/site-footer/site-footer.vue @@ -41,14 +41,6 @@ -
- -
@@ -61,7 +53,7 @@ export default { name: 'site-footer', components: { textLink, - buttonMain + buttonMain, }, props: { isForwardActionDisabled: Boolean, @@ -88,7 +80,10 @@ export default { : this.getCmsContent(this.cmsWidgetName, 'ForwardButtonText'); }, footerImageURL() { - return this.getCmsContent(this.cmsWidgetName, 'FooterImageURL'); + //return this.getCmsContent(this.cmsWidgetName, 'FooterImageURL'); + const output = this.getCmsContent(this.cmsWidgetName, 'FooterImageURL'); + console.log("original image", output); + return output; }, includeFooterImage() { const currentPageName = this.getPageNameByQueryString(); diff --git a/src/layouts/coverage-statement/coverage-statement.vue b/src/layouts/coverage-statement/coverage-statement.vue index bd1e0162..e66bb65e 100644 --- a/src/layouts/coverage-statement/coverage-statement.vue +++ b/src/layouts/coverage-statement/coverage-statement.vue @@ -3,442 +3,477 @@ ref="theForm" v-slot="{ meta }" @submit="onSubmit" - @invalidSubmit="onInvalidSubmit"> -
-
- - -
-
-
-
-
-
-
-
-
-
-
-
- {{ deductibleForDisplay }} -
-
- {{ servicePriceForDisplay }} -
-
- {{ deductibleText }}  - {{ deductibleForDisplay }} -
- - -
-
-
-
- - - -
- -
-
-
-
-
+ @invalidSubmit="onInvalidSubmit" + > +
+
+
+ + +
- - +
+
+
+
+
+
+ {{ deductibleForDisplay }} +
+
+ {{ servicePriceForDisplay }} +
+
+ {{ deductibleText }}  + {{ deductibleForDisplay }} +
+ + +
+
+ + + +
+ +
+
+ + @@ -451,26 +486,26 @@ export default { } .deductible-text { - line-height: 1.5rem; + line-height: 1.5rem; } :deep p { - line-height: 1.5rem; - font-size: 0.875rem; - margin-bottom: 0.5rem; - strong { - color: $black; - } + line-height: 1.5rem; + font-size: 0.875rem; + margin-bottom: 0.5rem; + strong { + color: $black; + } } :deep .question-text { - margin-top: 1.5rem; - margin-bottom: 0.5rem; - font-size: 1rem; - line-height: 1.5rem; - & > span { - text-align: left; - } + margin-top: 1.5rem; + margin-bottom: 0.5rem; + font-size: 1rem; + line-height: 1.5rem; + & > span { + text-align: left; + } } :deep .deductible-modal { @@ -490,7 +525,6 @@ export default { } } .modal { - overflow: hidden; + overflow: hidden; } - diff --git a/src/layouts/duplicate-check/duplicate-check.vue b/src/layouts/duplicate-check/duplicate-check.vue index 4a842ba1..6df58973 100644 --- a/src/layouts/duplicate-check/duplicate-check.vue +++ b/src/layouts/duplicate-check/duplicate-check.vue @@ -1,210 +1,235 @@ diff --git a/src/layouts/policy-vehicles/policy-vehicles.vue b/src/layouts/policy-vehicles/policy-vehicles.vue index ae63de7e..b2024550 100644 --- a/src/layouts/policy-vehicles/policy-vehicles.vue +++ b/src/layouts/policy-vehicles/policy-vehicles.vue @@ -1,278 +1,298 @@ diff --git a/src/layouts/vehicle-damage/vehicle-damage.vue b/src/layouts/vehicle-damage/vehicle-damage.vue index 2771b30e..e5bdd97a 100644 --- a/src/layouts/vehicle-damage/vehicle-damage.vue +++ b/src/layouts/vehicle-damage/vehicle-damage.vue @@ -1,443 +1,540 @@ diff --git a/src/layouts/vehicle-parts/vehicle-parts.vue b/src/layouts/vehicle-parts/vehicle-parts.vue index f74e1c96..d8b4aac1 100644 --- a/src/layouts/vehicle-parts/vehicle-parts.vue +++ b/src/layouts/vehicle-parts/vehicle-parts.vue @@ -1,244 +1,251 @@ diff --git a/src/layouts/welcome-page/welcome-page.vue b/src/layouts/welcome-page/welcome-page.vue index e8a6bddb..15ba5d02 100644 --- a/src/layouts/welcome-page/welcome-page.vue +++ b/src/layouts/welcome-page/welcome-page.vue @@ -1,412 +1,413 @@ - diff --git a/src/styles/common-styles.scss b/src/styles/common-styles.scss index 357c14d1..4c8b7c67 100644 --- a/src/styles/common-styles.scss +++ b/src/styles/common-styles.scss @@ -1,35 +1,52 @@ // Common/Global Styles // Use this file for global styles that don't or won't have their own stylesheet +html, body { + height: 100%; +} body { font-size: 16px; background-color: #fff; - color: #4D5151; - + color: #4d5151; .container-fluid { - max-width: 576px; //Remove once desktop app is complete - - &.container-shadow { - box-shadow: 0px 0px 6px 0px rgba(0, 0, 0, 0.15); //Use instead of Bootstrap's helper - } - - &.make-tall { - height: 100vh; - display: flex; - flex-direction: column; - } - .prevent-squish { overflow-x: unset; } + &.page-container-grouped-styles { + overflow: hidden; + display: flex; + flex-direction: column; + } + // Set max-width on columns to prevent overly-wide + // components on extra wide screens. + .col-md-6 { + max-width: 472px; + @include media-breakpoint-up(xl) { + max-width: 708px; + } + .col { + max-width: 236px; + &.one-list-card-width { + max-width: 472px; + @include media-breakpoint-up(xl) { + max-width: 66.6666666%; + } + } + } + } + .col-xl-4 { + max-width: 472px; + .col { + max-width: 100%; + } + } + //END set max-width on columns } - .pointer { cursor: pointer; } - .container, .container-fluid { - overflow: hidden; + overflow-x: hidden; } .sub-container { @@ -38,7 +55,6 @@ body { width: 100%; display: flex; flex-direction: column; - overflow-x: hidden; } } @@ -50,50 +66,12 @@ body { height: 1px; overflow: hidden; } - - .pac-container { - z-index: 10000 !important; - } - - .page-container-grouped-styles { - @extend .container-fluid, .shadow, .p-0, .position-relative, .make-tall; - } - - //Footer modal backdrop adjustments for positioning - .modal-backdrop { - left: 50%; - transform: translateX(-50%); - max-width: 576px; - - &.show { - opacity: 0.4; - } - } - - // Scroll page when modal isn't open - .fade-on-route-transition { - height: calc(100% - 10px); - overflow: auto; - } - - // Prevent scroll when modal is open - &.modal-open { - div.page-container-grouped-styles { - overflow: hidden; - } - - .fade-on-route-transition { +} +.modal-open { + .container-fluid { + &.page-container-grouped-styles { overflow: hidden; + height: auto; } } - - .modal-text { - display: inline; - color: $blue; - cursor: pointer; - border: none; - font-size: 14px; - line-height: 24px; - font-weight: 500; - } -} \ No newline at end of file +} diff --git a/src/styles/ux-variables.scss b/src/styles/ux-variables.scss index fc4b50ee..82b6648a 100644 --- a/src/styles/ux-variables.scss +++ b/src/styles/ux-variables.scss @@ -180,13 +180,12 @@ $spacers: ( //Line Height -//Grid breakpoints +//Bootstrap Grid Breakpoints - Use these breakpoints only $grid-breakpoints: ( xs: 0, - sm: 576px, - md: 838px, - lg: 1074px, - xl: 1416px, + md: 768px, + xl: 1200px, + xxl: 1440px, ); //Shadow From 4fb644398aaa983e8582a578c02ca3c56fb9d394 Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Thu, 11 Apr 2024 16:25:15 -0400 Subject: [PATCH 02/26] WIP desktop updates. --- .../coverage-statement/coverage-statement.vue | 16 +- .../provider-preference.vue | 443 ++++---- .../service-location/service-location.vue | 976 ++++++++++-------- src/styles/common-styles.scss | 9 + 4 files changed, 768 insertions(+), 676 deletions(-) diff --git a/src/layouts/coverage-statement/coverage-statement.vue b/src/layouts/coverage-statement/coverage-statement.vue index e66bb65e..debc70a3 100644 --- a/src/layouts/coverage-statement/coverage-statement.vue +++ b/src/layouts/coverage-statement/coverage-statement.vue @@ -81,15 +81,15 @@ cmsWidgetName="DisclaimerWidget" typeStyle="caption" /> +
- diff --git a/src/layouts/provider-preference/provider-preference.vue b/src/layouts/provider-preference/provider-preference.vue index 47fff987..787fd458 100644 --- a/src/layouts/provider-preference/provider-preference.vue +++ b/src/layouts/provider-preference/provider-preference.vue @@ -1,238 +1,263 @@ diff --git a/src/layouts/service-location/service-location.vue b/src/layouts/service-location/service-location.vue index 8d1cfa12..e826becb 100644 --- a/src/layouts/service-location/service-location.vue +++ b/src/layouts/service-location/service-location.vue @@ -1,451 +1,510 @@ @@ -453,48 +512,47 @@ export default { $page-side-padding: 1.5rem; .page-container-grouped-styles { - overflow: auto; + overflow: auto; - .main-content-container { - padding: 0 1.5rem !important; - } + .main-content-container { + padding: 0 1.5rem !important; + } } .question-text { - & > span { - line-height: 1.5rem; - } + & > span { + line-height: 1.5rem; + } } .list-card-content p { + &:first-of-type { + line-height: 1.5rem; + } + &:not(:nth-of-type(1)) { + line-height: 1.25rem; + } +} +.choose-option { + .button-question > div { &:first-of-type { - line-height: 1.5rem; - } - &:not(:nth-of-type(1)){ - line-height: 1.250rem; + margin-bottom: 0.95rem; + line-height: 1.5rem; } + } } -.choose-option{ - .button-question >div { - &:first-of-type { - margin-bottom: 0.95rem; - line-height: 1.500rem; - } - } -} -.button-question{ - .row.form-test-error{ - line-height:1.500rem; - padding-left: 0rem !important; - } +.button-question { + .row.form-test-error { + line-height: 1.5rem; + padding-left: 0rem !important; + } } .service-location-button-question { - .question-text { - margin-top: 1.5rem; - - span { - text-align: center; - } + .question-text { + margin-top: 1.5rem; + span { + text-align: center; } + } } diff --git a/src/styles/common-styles.scss b/src/styles/common-styles.scss index 4c8b7c67..e8cd429d 100644 --- a/src/styles/common-styles.scss +++ b/src/styles/common-styles.scss @@ -32,6 +32,15 @@ body { } } } + .shop-question { + .col { + max-width: 472px; + @include media-breakpoint-up(xl) { + max-width: 66.6666666%; + margin: 0 auto; + } + } + } } .col-xl-4 { max-width: 472px; From 567657b3b4058498567494cf8871a73ed0a3df5c Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Fri, 12 Apr 2024 09:19:31 -0400 Subject: [PATCH 03/26] WIP update css for welcome page. --- .../site-footer/footer-image/footer-image.vue | 1 + src/layouts/service-location/service-location.vue | 4 ++++ src/layouts/welcome-page/welcome-page.vue | 7 ++++++- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/iss-components/site-footer/footer-image/footer-image.vue b/src/iss-components/site-footer/footer-image/footer-image.vue index 8b3ac9e6..ec021d19 100644 --- a/src/iss-components/site-footer/footer-image/footer-image.vue +++ b/src/iss-components/site-footer/footer-image/footer-image.vue @@ -21,6 +21,7 @@ .footerImage { display: flex; justify-content: center; + margin-top: auto; img { max-width: 375px; } diff --git a/src/layouts/service-location/service-location.vue b/src/layouts/service-location/service-location.vue index e826becb..5169ee64 100644 --- a/src/layouts/service-location/service-location.vue +++ b/src/layouts/service-location/service-location.vue @@ -101,6 +101,10 @@ @updatedMobileProviderNumber="setMobileProviderNumber" /> + + +
+
diff --git a/src/layouts/coverage-statement/coverage-statement.vue b/src/layouts/coverage-statement/coverage-statement.vue index debc70a3..54959779 100644 --- a/src/layouts/coverage-statement/coverage-statement.vue +++ b/src/layouts/coverage-statement/coverage-statement.vue @@ -7,12 +7,12 @@ >
-
+
-
+
-
+
diff --git a/src/layouts/policy-vehicles/policy-vehicles.vue b/src/layouts/policy-vehicles/policy-vehicles.vue index b2024550..9cb86b76 100644 --- a/src/layouts/policy-vehicles/policy-vehicles.vue +++ b/src/layouts/policy-vehicles/policy-vehicles.vue @@ -7,7 +7,7 @@ >
-
+
diff --git a/src/layouts/provider-preference/provider-preference.vue b/src/layouts/provider-preference/provider-preference.vue index 787fd458..63ebe119 100644 --- a/src/layouts/provider-preference/provider-preference.vue +++ b/src/layouts/provider-preference/provider-preference.vue @@ -2,7 +2,7 @@
-
+
diff --git a/src/layouts/schedule-page/schedule-page.vue b/src/layouts/schedule-page/schedule-page.vue index 4636b834..479907b5 100644 --- a/src/layouts/schedule-page/schedule-page.vue +++ b/src/layouts/schedule-page/schedule-page.vue @@ -1,434 +1,498 @@ @@ -436,23 +500,24 @@ export default { $page-side-padding: 1.5rem; .page-container-grouped-styles { - overflow: auto; + overflow: auto; - .main-content-container { - padding: 0 1.5rem !important; - } + .main-content-container { + padding: 0 1.5rem !important; + } } :deep(.text-link-small) { - a, .btn-link { - font-size: 0.875rem; - line-height: 1.5; - } + a, + .btn-link { + font-size: 0.875rem; + line-height: 1.5; + } } :deep(.subheader-primary) { - h5.dark-header { - margin-bottom: 0.25rem !important; - } + h5.dark-header { + margin-bottom: 0.25rem !important; + } } diff --git a/src/layouts/service-location/service-location.vue b/src/layouts/service-location/service-location.vue index 5169ee64..113bfad1 100644 --- a/src/layouts/service-location/service-location.vue +++ b/src/layouts/service-location/service-location.vue @@ -7,7 +7,7 @@ >
-
+
diff --git a/src/layouts/vehicle-damage/vehicle-damage.vue b/src/layouts/vehicle-damage/vehicle-damage.vue index e5bdd97a..3045c593 100644 --- a/src/layouts/vehicle-damage/vehicle-damage.vue +++ b/src/layouts/vehicle-damage/vehicle-damage.vue @@ -7,7 +7,7 @@ >
-
+
diff --git a/src/layouts/vehicle-lookup/vehicle-lookup.vue b/src/layouts/vehicle-lookup/vehicle-lookup.vue index 23278486..3112f083 100644 --- a/src/layouts/vehicle-lookup/vehicle-lookup.vue +++ b/src/layouts/vehicle-lookup/vehicle-lookup.vue @@ -1,117 +1,126 @@ diff --git a/src/layouts/vehicle-parts/vehicle-parts.vue b/src/layouts/vehicle-parts/vehicle-parts.vue index d8b4aac1..f7437c1b 100644 --- a/src/layouts/vehicle-parts/vehicle-parts.vue +++ b/src/layouts/vehicle-parts/vehicle-parts.vue @@ -2,7 +2,7 @@
-
+
diff --git a/src/layouts/vehicle-selection/vehicle-selection.vue b/src/layouts/vehicle-selection/vehicle-selection.vue index 05a9e8ef..16c42dde 100644 --- a/src/layouts/vehicle-selection/vehicle-selection.vue +++ b/src/layouts/vehicle-selection/vehicle-selection.vue @@ -1,240 +1,247 @@ diff --git a/src/layouts/vin-lookup/vin-lookup.vue b/src/layouts/vin-lookup/vin-lookup.vue index 50f146ba..2eb1f1de 100644 --- a/src/layouts/vin-lookup/vin-lookup.vue +++ b/src/layouts/vin-lookup/vin-lookup.vue @@ -1,283 +1,308 @@ diff --git a/src/layouts/welcome-page/welcome-page.vue b/src/layouts/welcome-page/welcome-page.vue index 5b67ee47..c8220560 100644 --- a/src/layouts/welcome-page/welcome-page.vue +++ b/src/layouts/welcome-page/welcome-page.vue @@ -7,7 +7,7 @@ >
-
+
@@ -142,6 +142,8 @@
+
From 7e5c8fd1b6398e735717b24aa5ccfec9c3ad36ae Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Mon, 15 Apr 2024 09:22:44 -0400 Subject: [PATCH 05/26] WIP update files with updated ESLint settings. --- package-lock.json | 2 +- package.json | 4 +- .../site-footer/footer-image/footer-image.vue | 20 +- .../site-footer/site-footer.vue | 184 ++-- .../contact-details/contact-details.vue | 237 +++-- .../coverage-statement/coverage-statement.vue | 751 +++++++------- .../duplicate-check/duplicate-check.vue | 296 +++--- .../policy-vehicles/policy-vehicles.vue | 494 +++++----- .../provider-preference.vue | 363 ++++--- src/layouts/schedule-page/schedule-page.vue | 745 +++++++------- .../service-location/service-location.vue | 762 +++++++------- src/layouts/vehicle-damage/vehicle-damage.vue | 927 ++++++++---------- src/layouts/vehicle-lookup/vehicle-lookup.vue | 166 ++-- src/layouts/vehicle-parts/vehicle-parts.vue | 349 ++++--- .../vehicle-selection/vehicle-selection.vue | 288 +++--- src/layouts/vin-lookup/vin-lookup.vue | 473 +++++---- src/layouts/welcome-page/welcome-page.vue | 512 +++++----- 17 files changed, 3204 insertions(+), 3369 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0ab28ced..109308ce 100644 --- a/package-lock.json +++ b/package-lock.json @@ -37,7 +37,7 @@ "@vue/vue3-jest": "^27.0.0-alpha.1", "axios-mock-adapter": "^1.21.5", "babel-jest": "^27.0.6", - "eslint": "8.45.0", + "eslint": "^8.45.0", "eslint-config-airbnb-base": "15.0.0", "eslint-import-resolver-alias": "1.1.2", "eslint-plugin-import": "2.26.0", diff --git a/package.json b/package.json index 82ca9450..f246df9c 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "@vue/vue3-jest": "^27.0.0-alpha.1", "axios-mock-adapter": "^1.21.5", "babel-jest": "^27.0.6", - "eslint": "8.45.0", + "eslint": "^8.45.0", "eslint-config-airbnb-base": "15.0.0", "eslint-import-resolver-alias": "1.1.2", "eslint-plugin-import": "2.26.0", @@ -61,4 +61,4 @@ "vitest": "^0.33.0", "volar-service-vetur": "latest" } -} \ No newline at end of file +} diff --git a/src/iss-components/site-footer/footer-image/footer-image.vue b/src/iss-components/site-footer/footer-image/footer-image.vue index ec021d19..7be1128b 100644 --- a/src/iss-components/site-footer/footer-image/footer-image.vue +++ b/src/iss-components/site-footer/footer-image/footer-image.vue @@ -3,19 +3,19 @@
- + } + } +}; + diff --git a/src/layouts/contact-details/contact-details.vue b/src/layouts/contact-details/contact-details.vue index 8ed25420..52e1db41 100644 --- a/src/layouts/contact-details/contact-details.vue +++ b/src/layouts/contact-details/contact-details.vue @@ -3,12 +3,13 @@ ref="contact-details-form" v-slot="{ meta }" @submit="onSubmit" - @invalidSubmit="onInvalidSubmit" - > + @invalidSubmit="onInvalidSubmit">
- +
@@ -17,8 +18,7 @@ id="sub-header" ref="siteSubHeader" class="mt-5" - :cmsWidgetName="widget.siteSubHeader" - /> + :cmsWidgetName="widget.siteSubHeader" /> + :validationRules="rules.firstName" /> + :validationRules="rules.lastName" /> + :validationRules="rules.emailAddress" /> + :validationRules="rules.phoneNumber" /> + :checkboxLabel="requestTextUpdatesCheckboxText" /> -

+ :inputRows="4" /> +

{{ textUpdateDisclaimerText }} I also agree to Safelite's + href="//www.safelite.com/privacy-center" /> and . + href="//www.safelite.com/terms-of-use" />.

+ @backClicked="navigateBack" />
@@ -109,117 +102,117 @@ diff --git a/src/layouts/coverage-statement/coverage-statement.vue b/src/layouts/coverage-statement/coverage-statement.vue index 54959779..3e8b176a 100644 --- a/src/layouts/coverage-statement/coverage-statement.vue +++ b/src/layouts/coverage-statement/coverage-statement.vue @@ -3,13 +3,16 @@ ref="theForm" v-slot="{ meta }" @submit="onSubmit" - @invalidSubmit="onInvalidSubmit" - > + @invalidSubmit="onInvalidSubmit">
- - + +
@@ -17,34 +20,28 @@
+ v-html="coverageStatementSubHeader">
+ v-html="explanatoryText">
+ v-html="secondaryText">
+ class="d-flex justify-content-center cost"> {{ deductibleForDisplay }}
+ class="d-flex justify-content-center cost mb-0"> {{ servicePriceForDisplay }}
+ class="d-flex justify-content-center mb-4 deductible-text"> {{ deductibleText }}  {{ deductibleForDisplay }}
@@ -56,14 +53,14 @@ :manualHeadline="verifiedItacAlertHeader" :manualCopy="verifiedItacAlertBody" alertClass="alert-success" - :isDismissible="false" - > + :isDismissible="false">
-
+ v-html="nextStepsHeader">
+
+ :validationRules="rules.selectionRequired"> + typeStyle="caption" /> + @forwardClicked="navigateForward" />
- + + class="deductible-modal" /> diff --git a/src/layouts/duplicate-check/duplicate-check.vue b/src/layouts/duplicate-check/duplicate-check.vue index 6d13b877..0a6a8c69 100644 --- a/src/layouts/duplicate-check/duplicate-check.vue +++ b/src/layouts/duplicate-check/duplicate-check.vue @@ -3,12 +3,13 @@ ref="duplicate-check-form" v-slot="{ meta }" @submit="onSubmit" - @invalidSubmit="onInvalidSubmit" - > + @invalidSubmit="onInvalidSubmit">
- +
@@ -17,8 +18,7 @@ id="sub-header" ref="siteSubHeader" class="mt-5 duplicate-check-subheader" - :cmsWidgetName="widget.siteSubHeader" - /> + :cmsWidgetName="widget.siteSubHeader" /> + :validationRules="rules.selectionRequired" /> + @backClicked="navigateBack" />
@@ -47,166 +45,166 @@ diff --git a/src/layouts/policy-vehicles/policy-vehicles.vue b/src/layouts/policy-vehicles/policy-vehicles.vue index 9cb86b76..959511e4 100644 --- a/src/layouts/policy-vehicles/policy-vehicles.vue +++ b/src/layouts/policy-vehicles/policy-vehicles.vue @@ -3,35 +3,33 @@ ref="theForm" v-slot="{ meta }" @submit="onSubmit" - @invalidSubmit="onInvalidSubmit" - > + @invalidSubmit="onInvalidSubmit">
- +
-
- - - +
+ + +
@@ -40,250 +38,236 @@ diff --git a/src/layouts/welcome-page/welcome-page.vue b/src/layouts/welcome-page/welcome-page.vue index b86dd5e7..64173a91 100644 --- a/src/layouts/welcome-page/welcome-page.vue +++ b/src/layouts/welcome-page/welcome-page.vue @@ -23,7 +23,8 @@ class="mt-4" /> isRequired disableAutoFill :isDisabled="isPolicyHolderDisabled" - :validationRules="rules.policyNumber" /> + :validationRules="rules.policyNumber" + class="mb-3" /> isRequired mask="#####" :isDisabled="isPolicyZipDisabled" - :validationRules="rules.policyZip" /> + :validationRules="rules.policyZip" + class="mb-3" /> disableAutoFill :max="new Date().toJSON().slice(0, 10)" :min="'1972-12-01'" - :validationRules="rules.lossDate" /> + :validationRules="rules.lossDate" + class="mb-3" /> + class="mb-3" /> :options="DamageCauseOptions" disableAutoFill :validationRules="rules.damageOption" - placeHolderText="Select an option" /> + placeHolderText="Select an option" + class="mb-3" /> :validationRules="rules.phoneNumber" isRequired :mask="phoneMask" - disableAutoFill /> + disableAutoFill + class="mb-3" /> cmsWidgetName="EmailAddressQuestion" :validationRules="rules.email" isRequired - disableAutoFill /> + disableAutoFill + class="mb-3" /> id="welcomeDropdown" ref="state" v-model="welcomePageModel.damageState" - class="mt-4" + class="mb-3" cmsWidgetName="DamageStateQuestion" inputId="8fdf9dc2e13e430eb57529499dceb3eb" :options="getStates" From 9648964c27e9a010248cb131cc38f5a54f54321c Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Mon, 15 Apr 2024 12:17:29 -0400 Subject: [PATCH 07/26] WIP update footer modal width and header overflow properties. --- src/iss-components/site-header/menu-modal/menu-modal.vue | 3 +-- src/styles/common-styles.scss | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/iss-components/site-header/menu-modal/menu-modal.vue b/src/iss-components/site-header/menu-modal/menu-modal.vue index ddeee120..f6fc89fe 100644 --- a/src/iss-components/site-header/menu-modal/menu-modal.vue +++ b/src/iss-components/site-header/menu-modal/menu-modal.vue @@ -155,7 +155,7 @@ export default { } .modal { &.menu-modal { - max-width: 576px; + max-width: 100%; left: auto; height: calc(100% - 56px); top: 56px; @@ -173,7 +173,6 @@ export default { } .modal-fullscreen { width: 100vw; - max-width: 576px; } .navigation-link { margin-bottom: 1.5rem; diff --git a/src/styles/common-styles.scss b/src/styles/common-styles.scss index e8cd429d..e7691002 100644 --- a/src/styles/common-styles.scss +++ b/src/styles/common-styles.scss @@ -78,7 +78,7 @@ body { } .modal-open { .container-fluid { - &.page-container-grouped-styles { + &.fade-on-route-transition { overflow: hidden; height: auto; } From 565bc57c9c6bcf093169704ee7f62d65a9b70cff Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Mon, 15 Apr 2024 13:33:58 -0400 Subject: [PATCH 08/26] WIP resolve conflict Copied entire forwardButtonAction method from develop. --- src/layouts/welcome-page/welcome-page.vue | 58 ++++++++++++++++------- 1 file changed, 42 insertions(+), 16 deletions(-) diff --git a/src/layouts/welcome-page/welcome-page.vue b/src/layouts/welcome-page/welcome-page.vue index 64173a91..b06949f5 100644 --- a/src/layouts/welcome-page/welcome-page.vue +++ b/src/layouts/welcome-page/welcome-page.vue @@ -304,26 +304,29 @@ export default { }, methods: { async forwardButtonAction() { - await this.mainStore - .validateZip({ zip: this.welcomePageModel.policyZipCode }) + await this.mainStore.validateZip({ zip: this.welcomePageModel.policyZipCode }) .then(async (zipInfo) => { if (zipInfo?.data?.isValid === true) { this.mainStore.updatePolicyData(this.welcomePageModel); - await this.mainStore - .getDuplicateReferrals() - .then( - () => {}, - () => {} - ) + + this.mainStore.order.serviceLocation.zipCodeCtu = zipInfo.data.zipCodeCtu?.toString(); + + const billToInfo = await this.getBillToInfo( + this.mainStore.issConfig.parentAccountNumber, + this.mainStore.order.serviceLocation.zipCodeCtu + ); + + if (billToInfo !== null) { + this.mainStore.issConfig.billToAccountNumber = billToInfo.billToAccountNumber; + this.mainStore.issConfig.itacCashBillToNumber = billToInfo.itacCashBillToNumber; + this.mainStore.issConfig.itacFnrBillToNumber = billToInfo.itacFnrBillToNumber; + } + + await this.mainStore.getDuplicateReferrals() + .then(() => {}, () => {}) .finally(async () => { - if ( - this.isCoverageEnabled - && !this.maxCoverageLookupAttemptsReached - ) { - await this.mainStore.getCoveragePolicyInfo()?.then( - () => {}, - () => {} - ); + if (this.isCoverageEnabled && !this.maxCoverageLookupAttemptsReached) { + await this.mainStore.getCoveragePolicyInfo()?.then(() => {}, () => {}); } else { this.mainStore.order.policy.policyLookupSuccessful = false; } @@ -335,6 +338,29 @@ export default { } }); }, + async getBillToInfo(parentAccountNumber, providerNumber) { + try { + const payload = { + parentAccountNumber: parentAccountNumber.toString(), + providerNumber: providerNumber.toString(), + billToSelectionCriteria: { + typeOfClaim: 'GLASS ONLY', + lineOfBusiness: 'PERSONAL' + } + }; + + const response = await globalMethods.callHttpClient({ + method: endpoints.GetBillToInfo.method, + endpoint: endpoints.GetBillToInfo.url, + payload + }); + + return response.data; + } catch (err) { + console.error(`Error Status Code: ${err.data?.status}: ${err.data?.title}`); + return null; + } + }, navigateForward() { if (this.mainStore.applicationUser.duplicateOrders?.length > 0 ?? false) { this.$router.navigate( From 72b6217cef5561e6faf15b1ea5f0131357028912 Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Mon, 15 Apr 2024 13:37:56 -0400 Subject: [PATCH 09/26] WIP Resolve code conflict. Copied forwardButtonAction method from develop. --- .../contact-details/contact-details.vue | 27 +++++++++++++------ 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/src/layouts/contact-details/contact-details.vue b/src/layouts/contact-details/contact-details.vue index 52e1db41..5931594e 100644 --- a/src/layouts/contact-details/contact-details.vue +++ b/src/layouts/contact-details/contact-details.vue @@ -193,23 +193,34 @@ export default { } }, methods: { - /** - * @summary Steps to perform when forward button clicked. - */ + /** + * @summary Steps to perform when forward button clicked. + */ forwardButtonAction() { const contactInfo = { firstName: this.firstName, lastName: this.lastName, emailAddress: this.emailAddress, - phoneNumber: this.phoneNumber, requestTextUpdates: this.requestTextUpdates, notesForTechnician: this.notesForTechnician }; useMainStore().updateContactInfo(contactInfo); - const scenario = - useMainStore().order.serviceLocation.IsSafeliteProvider === false - ? this.navigationScenarios.CLICKED_FORWARD_WITH_NON_SAFELITE_SHOP - : this.navigationScenarios.CLICKED_FORWARD_WITH_SAFELITE_SHOP; + + if (this.requestTextUpdates) { + useMainStore().updatePhoneNumbers({ + service: this.phoneNumber, + alternative: this.phoneNumber + }); + } else { + useMainStore().updatePhoneNumbers({ + home: this.phoneNumber, + service: this.phoneNumber + }); + } + + const scenario = useMainStore().order.serviceLocation.IsSafeliteProvider === false + ? this.navigationScenarios.CLICKED_FORWARD_WITH_NON_SAFELITE_SHOP + : this.navigationScenarios.CLICKED_FORWARD_WITH_SAFELITE_SHOP; this.$router.navigate(scenario, this.$route); } } From 3951dfcf86921d7a5bed35a3330a1a2e3248d223 Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Mon, 15 Apr 2024 13:54:36 -0400 Subject: [PATCH 10/26] Remove unneeded code. --- src/iss-components/site-footer/site-footer.vue | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/iss-components/site-footer/site-footer.vue b/src/iss-components/site-footer/site-footer.vue index 57298762..d2b7edd1 100644 --- a/src/iss-components/site-footer/site-footer.vue +++ b/src/iss-components/site-footer/site-footer.vue @@ -83,9 +83,7 @@ export default { : this.getCmsContent(this.cmsWidgetName, 'ForwardButtonText'); }, footerImageURL() { - // return this.getCmsContent(this.cmsWidgetName, 'FooterImageURL'); const output = this.getCmsContent(this.cmsWidgetName, 'FooterImageURL'); - console.log('original image', output); return output; }, includeFooterImage() { From 8455534ef0cf01c40f49020f76b9b30abb5a7f35 Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Mon, 15 Apr 2024 17:08:43 -0400 Subject: [PATCH 11/26] Update cms-widget-fields footer image reference. --- src/constants/cms-widget-fields.js | 4 +-- .../site-footer/footer-image/footer-image.vue | 30 +++++++++++-------- src/layouts/welcome-page/welcome-page.vue | 2 +- 3 files changed, 21 insertions(+), 15 deletions(-) diff --git a/src/constants/cms-widget-fields.js b/src/constants/cms-widget-fields.js index f8fd23fe..763b7597 100644 --- a/src/constants/cms-widget-fields.js +++ b/src/constants/cms-widget-fields.js @@ -37,8 +37,8 @@ const widgetFields = Object.freeze({ NAME: 'Name', BACK_BUTTON_TEXT: 'BackButtonText', FORWARD_BUTTON_TEXT: 'ForwardButtonText', - FOOTER_IMAGE: 'FooterImage', - ALT_TEXT: 'AltText' + ALT_TEXT: 'AltText', + FOOTER_IMAGE_URL: 'FooterImageURL' } }); diff --git a/src/iss-components/site-footer/footer-image/footer-image.vue b/src/iss-components/site-footer/footer-image/footer-image.vue index 7be1128b..acb6aabb 100644 --- a/src/iss-components/site-footer/footer-image/footer-image.vue +++ b/src/iss-components/site-footer/footer-image/footer-image.vue @@ -4,26 +4,32 @@
- +} + diff --git a/src/layouts/welcome-page/welcome-page.vue b/src/layouts/welcome-page/welcome-page.vue index 078eec6b..5de5d396 100644 --- a/src/layouts/welcome-page/welcome-page.vue +++ b/src/layouts/welcome-page/welcome-page.vue @@ -141,7 +141,7 @@ class="row">
- + From cebd5e7f81f46cc6bbfdf14f6e925475723673d9 Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Tue, 16 Apr 2024 09:11:33 -0400 Subject: [PATCH 12/26] WIP add unique styles for two and three button options. --- .../button-question/button-question.vue | 11 ++++++++++- src/layouts/vehicle-damage/vehicle-damage.vue | 10 +++++----- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/digital-components/button-question/button-question.vue b/src/digital-components/button-question/button-question.vue index 93da3c9d..f8b8146e 100644 --- a/src/digital-components/button-question/button-question.vue +++ b/src/digital-components/button-question/button-question.vue @@ -191,7 +191,7 @@ export default { classes = 'd-flex flex-row p-0'; break; case 'listCard': - classes = 'row g-2 justify-content-center'; + classes = 'row g-2 g-md-5 justify-content-center mb-1 flex-nowrap'; if (this.isWide) { classes += ' flex-column'; } @@ -226,6 +226,15 @@ export default { break; default: } + // Determine number of buttons and add class accordingly. + // This is to accommodate unique spacing per design specs. + if (this.buttonTypeString === 'listCard' && this.buttonsInfo.length > 2) { + classes += ' two-list-card-width'; + } + + if (this.buttonTypeString === 'listCard' && this.buttonsInfo.length === 1) { + classes += ' one-list-card-width'; + } return classes; }, diff --git a/src/layouts/vehicle-damage/vehicle-damage.vue b/src/layouts/vehicle-damage/vehicle-damage.vue index 07e26a39..776fcc79 100644 --- a/src/layouts/vehicle-damage/vehicle-damage.vue +++ b/src/layouts/vehicle-damage/vehicle-damage.vue @@ -4,7 +4,7 @@ v-slot="{ meta }" @submit="onSubmit" @invalidSubmit="onInvalidSubmit"> -
+
@@ -469,9 +469,9 @@ export default { From bb1909a8c30bab60b58e63af79b36ab233cfe070 Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Tue, 16 Apr 2024 10:00:54 -0400 Subject: [PATCH 13/26] WIP Test push. --- src/layouts/policy-vehicles/policy-vehicles.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/src/layouts/policy-vehicles/policy-vehicles.vue b/src/layouts/policy-vehicles/policy-vehicles.vue index 959511e4..295d9064 100644 --- a/src/layouts/policy-vehicles/policy-vehicles.vue +++ b/src/layouts/policy-vehicles/policy-vehicles.vue @@ -280,3 +280,4 @@ export default { line-height: 1.5rem; } + From c725c0472a3458a0b9c424a2ae5cd56185688d71 Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Tue, 16 Apr 2024 10:32:19 -0400 Subject: [PATCH 14/26] WIP Resubmit pages with new formatting. --- .../button-question/button-question.vue | 167 ++++--- src/digital-components/modal/modal.vue | 38 +- .../site-footer/footer-image/footer-image.vue | 15 +- .../site-footer/site-footer.vue | 181 ++++--- .../site-header/menu-modal/menu-modal.vue | 118 ++--- .../contact-details/contact-details.vue | 244 ++++----- .../coverage-statement/coverage-statement.vue | 387 +++++++------- .../duplicate-check/duplicate-check.vue | 163 +++--- .../policy-vehicles/policy-vehicles.vue | 195 ++++---- .../provider-preference.vue | 198 ++++---- src/layouts/schedule-page/schedule-page.vue | 352 +++++++------ .../service-location/service-location.vue | 405 +++++++-------- src/layouts/tpa-search/tpa-search.vue | 305 ++++++------ src/layouts/tpa-submit/tpa-submit.vue | 241 ++++++--- src/layouts/vehicle-damage/vehicle-damage.vue | 471 +++++++++++------- src/layouts/vehicle-lookup/vehicle-lookup.vue | 82 ++- src/layouts/vehicle-parts/vehicle-parts.vue | 202 ++++---- .../vehicle-selection/vehicle-selection.vue | 170 +++---- src/layouts/vin-lookup/vin-lookup.vue | 162 +++--- src/layouts/welcome-page/welcome-page.vue | 395 ++++++++------- 20 files changed, 2441 insertions(+), 2050 deletions(-) diff --git a/src/digital-components/button-question/button-question.vue b/src/digital-components/button-question/button-question.vue index f8b8146e..066b06a2 100644 --- a/src/digital-components/button-question/button-question.vue +++ b/src/digital-components/button-question/button-question.vue @@ -1,13 +1,18 @@ @@ -92,16 +96,16 @@ export default { listCard, ErrorMessage, radio, - providerPrefRadio + providerPrefRadio, }, props: { buttonTypeString: { type: String, - default: 'listButton' + default: 'listButton', }, buttonTypeObject: { type: Object, - default: null + default: null, }, isMultiSelect: Boolean, groupName: String, @@ -109,16 +113,16 @@ export default { answers: Array, textPosition: { type: String, - default: 'text-center' + default: 'text-center', }, selectingInitiatesLoad: Boolean, loaderColor: { type: String, - default: 'blue' + default: 'blue', }, loaderPosition: { type: String, - default: 'right' + default: 'right', }, isRequired: Boolean, isOverflowScrollable: Boolean, @@ -133,7 +137,7 @@ export default { additionalButtonData: Object, additionalButtonStyling: String, isSmallQuestionText: Boolean, - isSmallQuestionLabelText: Boolean + isSmallQuestionLabelText: Boolean, }, emits: ['update:modelValue'], setup(props) { @@ -142,11 +146,18 @@ export default { const fieldOptions = { value: modelValue, - initialValue: null + initialValue: null, }; - const { errorMessage, handleBlur, handleChange, meta, validate, errors, resetField } = - useField(props.groupName, props.validationRules, fieldOptions); + const { + errorMessage, + handleBlur, + handleChange, + meta, + validate, + errors, + resetField, + } = useField(props.groupName, props.validationRules, fieldOptions); return { errorMessage, @@ -155,12 +166,12 @@ export default { validate, meta, errors, - resetField + resetField, }; }, data() { return { - lastValuePushedToGa: null + lastValuePushedToGa: null, }; }, computed: { @@ -169,8 +180,8 @@ export default { const baseClasses = this.isOverflowScrollable ? 'container-fluid overflow-scroll position-absolute px-5 pt-1 py-0' : this.buttonTypeString === 'listCard' - ? 'w-100' - : ''; + ? 'w-100' + : ''; const SmallQuestionTextClass = this.isSmallQuestionText ? `${baseClasses}small-question-text` @@ -191,7 +202,8 @@ export default { classes = 'd-flex flex-row p-0'; break; case 'listCard': - classes = 'row g-2 g-md-5 justify-content-center mb-1 flex-nowrap'; + classes = + 'row g-2 g-md-5 justify-content-center mb-1 flex-nowrap'; if (this.isWide) { classes += ' flex-column'; } @@ -228,32 +240,48 @@ export default { } // Determine number of buttons and add class accordingly. // This is to accommodate unique spacing per design specs. - if (this.buttonTypeString === 'listCard' && this.buttonsInfo.length > 2) { + if ( + this.buttonTypeString === 'listCard' && + this.buttonsInfo.length > 2 + ) { classes += ' two-list-card-width'; } - if (this.buttonTypeString === 'listCard' && this.buttonsInfo.length === 1) { + if ( + this.buttonTypeString === 'listCard' && + this.buttonsInfo.length === 1 + ) { classes += ' one-list-card-width'; } return classes; }, buttonsInfo() { - return (Array.isArray(this.answers) ? this.answers : [])?.map((answer) => ({ - buttonLabel: answer.buttonLabel ?? answer.Text ?? answer, - altText: answer.altText ?? (answer.Name ? answer.Name : answer), - buttonLabelSubCopy: answer.buttonLabelSubCopy ?? answer.SubText, - buttonBodyCopy: answer.buttonBodyCopy ?? answer.buttonBodyCopy, - buttonAuxiliaryCopy: answer.buttonAuxiliaryCopy ?? answer.buttonAuxiliaryCopy, - buttonFooterCopy: answer.buttonFooterCopy ?? answer.buttonFooterCopy, - buttonImage: answer.buttonImage ?? answer.AnswerImageUrl, - buttonImageId: answer.buttonImageId ?? answer.ImageId, - groupName: this.formatString(this.groupName), - value: - answer.value - ?? (this.useTextForValue && answer.Text ? answer.Text : answer.Name) - ?? (typeof answer !== 'object' ? answer : null) - })); + return (Array.isArray(this.answers) ? this.answers : [])?.map( + (answer) => ({ + buttonLabel: answer.buttonLabel ?? answer.Text ?? answer, + altText: + answer.altText ?? (answer.Name ? answer.Name : answer), + buttonLabelSubCopy: + answer.buttonLabelSubCopy ?? answer.SubText, + buttonBodyCopy: + answer.buttonBodyCopy ?? answer.buttonBodyCopy, + buttonAuxiliaryCopy: + answer.buttonAuxiliaryCopy ?? + answer.buttonAuxiliaryCopy, + buttonFooterCopy: + answer.buttonFooterCopy ?? answer.buttonFooterCopy, + buttonImage: answer.buttonImage ?? answer.AnswerImageUrl, + buttonImageId: answer.buttonImageId ?? answer.ImageId, + groupName: this.formatString(this.groupName), + value: + answer.value ?? + (this.useTextForValue && answer.Text + ? answer.Text + : answer.Name) ?? + (typeof answer !== 'object' ? answer : null), + }) + ); }, selectedValues: { get() { @@ -261,24 +289,25 @@ export default { }, set(selectedAnswers) { this.$emit('update:modelValue', selectedAnswers); - } - } + }, + }, }, watch: { modelValue(newValue) { this.resetField({ - value: newValue + value: newValue, }); - } + }, }, beforeMount() { if (this.buttonTypeObject) { - this.$options.components[this.buttonTypeString] = this.buttonTypeObject; + this.$options.components[this.buttonTypeString] = + this.buttonTypeObject; } }, beforeUnmount() { this.resetField({ - value: '' + value: '', }); }, methods: { @@ -287,8 +316,8 @@ export default { }, setLastValuePushedToGa(lastValuePushedToGa) { this.lastValuePushedToGa = lastValuePushedToGa; - } - } + }, + }, }; @@ -334,17 +363,17 @@ export default { .small-question-label-text { &.question-text { span { - text-align: left; - margin: 0 0 0.25rem 0; - } - } - &.question-text { - margin: 0; - } - &fieldset { - .ui-radio { - margin: 0; - } - } + text-align: left; + margin: 0 0 0.25rem 0; + } + } + &.question-text { + margin: 0; + } + &fieldset { + .ui-radio { + margin: 0; + } + } } diff --git a/src/digital-components/modal/modal.vue b/src/digital-components/modal/modal.vue index f2a7b8a9..fc42c9fc 100644 --- a/src/digital-components/modal/modal.vue +++ b/src/digital-components/modal/modal.vue @@ -6,7 +6,10 @@ tabindex="-1" aria-labelledby="ModalComponentLabel" aria-hidden="true" - v-on="{ 'hidden.bs.modal': onModalClosed, 'shown.bs.modal': onModalOpened }"> + v-on="{ + 'hidden.bs.modal': onModalClosed, + 'shown.bs.modal': onModalOpened, + }"> -