From 2d8ba2ad9bd0e38eddb85f14b947ddfaf8dececf Mon Sep 17 00:00:00 2001 From: Jeremy-Z Date: Tue, 3 Feb 2026 10:32:42 -0500 Subject: [PATCH 01/17] Changed load session to use referral date instead of response date. --- src/store/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/store/index.js b/src/store/index.js index a29104a6..acd92b97 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -1589,7 +1589,7 @@ export const useMainStore = defineStore({ endpoint: endpoints.LoadSession.url, payload: { referralNumber: duplicate.referralNumber, - referralDate: duplicate.responseDate, + referralDate: duplicate.referralDate, parentAccountNumber: order.parentAccountNumber, referralCorrelationId: duplicate.correlationId } From c063ca67f589d031ac51073fd83672c6743cadbd Mon Sep 17 00:00:00 2001 From: Jeremy-Z Date: Tue, 3 Feb 2026 14:17:28 -0500 Subject: [PATCH 02/17] Preliminary changes on the frontend to support launching duplicates. --- src/store/index.js | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/src/store/index.js b/src/store/index.js index acd92b97..04c475e2 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -1599,22 +1599,27 @@ export const useMainStore = defineStore({ return; } + order.customer.address.streetAddress = data.customer?.address?.streetAddress; + order.customer.address.streetAddress2 = data.customer?.address?.streetAddress2; + order.customer.address.city = data.customer?.address?.city; + order.customer.address.state = data.customer?.address?.state; + order.customer.address.zipCode = data.customer?.address?.zipCode; + + order.contactInfo.firstName = data?.customer?.firstName; + order.contactInfo.lastName = data?.customer?.lastName; + order.contactInfo.emailAddress = data?.customer?.emailAddress; + order.contactInfo.extension = data?.customer?.homePhone?.slice(10); + order.contactInfo.homePhone = data?.customer?.homePhone?.slice(0, 10); + order.contactInfo.servicePhone = data?.customer?.servicePhone; + order.contactInfo.alternativePhone = data?.customer?.alternativePhone; + order.contactInfo.requestTextUpdates = data?.customer?.isSmsOptIn; + + order.vehicle.year = data.vehicle.year; + order.vehicle.make = data.vehicle.make; + order.vehicle.model = data.vehicle.model; + order.vehicle.style = data.vehicle.style; + if (this.isPolicyLookupSuccessful) { - order.customer.address.streetAddress = data.customer?.address?.streetAddress; - order.customer.address.streetAddress2 = data.customer?.address?.streetAddress2; - order.customer.address.city = data.customer?.address?.city; - order.customer.address.state = data.customer?.address?.state; - order.customer.address.zipCode = data.customer?.address?.zipCode; - - order.contactInfo.firstName = data?.customer?.firstName; - order.contactInfo.lastName = data?.customer?.lastName; - order.contactInfo.emailAddress = data?.customer?.emailAddress; - order.contactInfo.extension = data?.customer?.homePhone?.slice(10); - order.contactInfo.homePhone = data?.customer?.homePhone?.slice(0, 10); - order.contactInfo.servicePhone = data?.customer?.servicePhone; - order.contactInfo.alternativePhone = data?.customer?.alternativePhone; - order.contactInfo.requestTextUpdates = data?.customer?.isSmsOptIn; - if (data.insuranceCoverage) { order.insuranceCoverage.coverageType = data?.insuranceCoverage?.coverageType; order.insuranceCoverage.coverageStatus = data?.insuranceCoverage?.coverageStatus; @@ -1647,11 +1652,6 @@ export const useMainStore = defineStore({ } } } - - order.vehicle.year = data.vehicle.year; - order.vehicle.make = data.vehicle.make; - order.vehicle.model = data.vehicle.model; - order.vehicle.style = data.vehicle.style; } } From 2d95e9341a9d94d3e752e89b443b1ef3f6ddc26f Mon Sep 17 00:00:00 2001 From: Jeremy-Z Date: Wed, 4 Feb 2026 12:16:23 -0500 Subject: [PATCH 03/17] Fixing the unit tests. --- src/store/index.js | 8 +- src/store/store.spec.js | 386 +++++++++++++++++++++++++++++++++++++--- 2 files changed, 368 insertions(+), 26 deletions(-) diff --git a/src/store/index.js b/src/store/index.js index 04c475e2..9727b6be 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -1614,10 +1614,10 @@ export const useMainStore = defineStore({ order.contactInfo.alternativePhone = data?.customer?.alternativePhone; order.contactInfo.requestTextUpdates = data?.customer?.isSmsOptIn; - order.vehicle.year = data.vehicle.year; - order.vehicle.make = data.vehicle.make; - order.vehicle.model = data.vehicle.model; - order.vehicle.style = data.vehicle.style; + order.vehicle.year = data?.vehicle?.year; + order.vehicle.make = data?.vehicle?.make; + order.vehicle.model = data?.vehicle?.model; + order.vehicle.style = data?.vehicle?.style; if (this.isPolicyLookupSuccessful) { if (data.insuranceCoverage) { diff --git a/src/store/store.spec.js b/src/store/store.spec.js index 4a035c63..a2539b94 100644 --- a/src/store/store.spec.js +++ b/src/store/store.spec.js @@ -14,6 +14,7 @@ import endpoints from '@/constants/endpoints'; import { AppointmentTypeStrings } from '@/constants/schedule-constants'; import coverageType from '@/constants/coverage-type'; import { getEnumName } from '@/helpers/unit-test-helper'; +import { strictEqual } from 'assert'; describe('Store', () => { let store; @@ -1071,28 +1072,29 @@ describe('Store', () => { experiments: getRandomString(6, 6) }; const vehicle = { - year: getRandomString(6, 6), - make: getRandomString(6, 6), - model: getRandomString(6, 6), - style: getRandomString(6, 6), - vin: getRandomString(6, 6), - carId: getRandomString(6, 6), - licensePlateNumber: getRandomString(6, 6) + year: getRandomInt(2000, 2024).toString(), + make: getRandomString(5, 15), + model: getRandomString(5, 15), + style: getRandomString(5, 15), + carId: getRandomInt(1000, 9999), + vin: getRandomString(17, 17), + licensePlateNumber: getRandomString(7, 7) }; - const customer = { - firstName: getRandomString(6, 6), - lastName: getRandomString(6, 6), - emailAddress: getRandomString(6, 6), - phoneNumber: getRandomString(6, 6), - isSmsOptIn: getRandomString(6, 6), + const customer= { address: { - streetAddress: getRandomString(6, 6), - streetAddress2: getRandomString(6, 6), - city: getRandomString(6, 6), - state: getRandomString(6, 6), - zipCode: getRandomString(6, 6), - zipCodeCtu: getRandomString(6, 6) - } + streetAddress: getRandomString(10, 50), + streetAddress2: getRandomString(5, 20), + city: getRandomString(5, 20), + state: getRandomString(2, 2), + zipCode: getRandomString(5, 5) + }, + firstName: getRandomString(5, 15), + lastName: getRandomString(5, 15), + emailAddress: `${getRandomString(5, 10)}@test.com`, + homePhone: getRandomString(10, 10), + servicePhone: getRandomString(10, 10), + alternativePhone: getRandomString(10, 10), + isSmsOptIn: getRandomBoolean() }; const fullApiResponse = { data: { @@ -1140,7 +1142,7 @@ describe('Store', () => { }; store.order.insuranceCoverage.coverageType = coverageType.Deductible; - store.policy.vehicles = [{ vin: vehicle.vin }]; + store.policy.vehicles = [{ vehicle }]; // Act await store.loadSession(duplicate); @@ -1150,7 +1152,7 @@ describe('Store', () => { expect(store.vehicle.make).toBe(vehicle.make); expect(store.vehicle.model).toBe(vehicle.model); expect(store.vehicle.style).toBe(vehicle.style); - expect(store.vehicle.vin).toBe(vehicle.vin); + // vin is not set directly by loadSession, it's set by updateVehicle after lookupVehicleByVin expect(store.vehicle.registration.licensePlate).toBe(vehicle.licensePlateNumber); }); it('sets expected customer data', async () => { @@ -2135,4 +2137,344 @@ describe('Store', () => { expect(result).toBe(expected); }); }); + + describe('loadSession method', () => { + let mockDuplicate; + let mockResponse; + + beforeEach(() => { + mockDuplicate = { + referralNumber: getRandomString(10, 10), + referralDate: new Date().toISOString(), + correlationId: getRandomGuid() + }; + + mockResponse = { + data: { + customer: { + address: { + streetAddress: getRandomString(10, 50), + streetAddress2: getRandomString(5, 20), + city: getRandomString(5, 20), + state: getRandomString(2, 2), + zipCode: getRandomString(5, 5) + }, + firstName: getRandomString(5, 15), + lastName: getRandomString(5, 15), + emailAddress: `${getRandomString(5, 10)}@test.com`, + homePhone: getRandomString(10, 10), + servicePhone: getRandomString(10, 10), + alternativePhone: getRandomString(10, 10), + isSmsOptIn: getRandomBoolean() + }, + vehicle: { + year: getRandomInt(2000, 2024).toString(), + make: getRandomString(5, 15), + model: getRandomString(5, 15), + style: getRandomString(5, 15), + carId: getRandomInt(1000, 9999), + vin: getRandomString(17, 17), + licensePlateNumber: getRandomString(7, 7) + }, + insuranceCoverage: { + coverageType: getRandomEnum(coverageType), + coverageStatus: getRandomEnum(coverageStatuses), + claimNumber: getRandomString(10, 10) + }, + referralNumber: getRandomString(10, 10), + referralDate: new Date().toISOString(), + referralCorrelationId: getRandomGuid(), + referralSequenceNumber: getRandomInt(1, 100), + eon: getRandomString(10, 10) + } + }; + + store.order.parentAccountNumber = getRandomString(6, 6); + store.order.insuranceCoverage.coverageType = coverageType.Deductible; + }); + + it('should call callHttpClient with correct parameters', async () => { + // Arrange + globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(mockResponse)); + + // Act + await store.loadSession(mockDuplicate); + + // Assert + expect(globalMethods.callHttpClient).toHaveBeenCalledWith({ + method: endpoints.LoadSession.method, + endpoint: endpoints.LoadSession.url, + payload: { + referralNumber: mockDuplicate.referralNumber, + referralDate: mockDuplicate.referralDate, + parentAccountNumber: store.order.parentAccountNumber, + referralCorrelationId: mockDuplicate.correlationId + } + }); + }); + + it('should return early when response data is null/undefined', async () => { + // Arrange + globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({ data: null })); + const originalStreetAddress = store.order.customer.address.streetAddress; + + // Act + await store.loadSession(mockDuplicate); + + // Assert + expect(store.order.customer.address.streetAddress).toBe(originalStreetAddress); + expect(store.order.loadedFromDupeCheck).toBe(null); + }); + + it('should update customer address fields from response data', async () => { + // Arrange + globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(mockResponse)); + + // Act + await store.loadSession(mockDuplicate); + + // Assert + expect(store.order.customer.address.streetAddress).toBe(mockResponse.data.customer.address.streetAddress); + expect(store.order.customer.address.streetAddress2).toBe(mockResponse.data.customer.address.streetAddress2); + expect(store.order.customer.address.city).toBe(mockResponse.data.customer.address.city); + expect(store.order.customer.address.state).toBe(mockResponse.data.customer.address.state); + expect(store.order.customer.address.zipCode).toBe(mockResponse.data.customer.address.zipCode); + }); + + it('should update contact information from response data', async () => { + // Arrange + globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(mockResponse)); + + // Act + await store.loadSession(mockDuplicate); + + // Assert + expect(store.order.contactInfo.firstName).toBe(mockResponse.data.customer.firstName); + expect(store.order.contactInfo.lastName).toBe(mockResponse.data.customer.lastName); + expect(store.order.contactInfo.emailAddress).toBe(mockResponse.data.customer.emailAddress); + expect(store.order.contactInfo.servicePhone).toBe(mockResponse.data.customer.servicePhone); + expect(store.order.contactInfo.alternativePhone).toBe(mockResponse.data.customer.alternativePhone); + expect(store.order.contactInfo.requestTextUpdates).toBe(mockResponse.data.customer.isSmsOptIn); + }); + + it('should extract extension from homePhone correctly', async () => { + // Arrange + mockResponse.data.customer.homePhone = '12345678901234'; + globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(mockResponse)); + + // Act + await store.loadSession(mockDuplicate); + + // Assert + expect(store.order.contactInfo.homePhone).toBe('1234567890'); + expect(store.order.contactInfo.extension).toBe('1234'); + }); + + it('should update vehicle information from response data', async () => { + // Arrange + globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(mockResponse)); + + // Act + await store.loadSession(mockDuplicate); + + // Assert + expect(store.order.vehicle.year).toBe(mockResponse.data.vehicle.year); + expect(store.order.vehicle.make).toBe(mockResponse.data.vehicle.make); + expect(store.order.vehicle.model).toBe(mockResponse.data.vehicle.model); + expect(store.order.vehicle.style).toBe(mockResponse.data.vehicle.style); + }); + + it('should update insurance coverage when isPolicyLookupSuccessful is true and insuranceCoverage exists in response', async () => { + // Arrange + store.order.insuranceCoverage.coverageType = coverageType.Deductible; // Make isPolicyLookupSuccessful true + globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(mockResponse)); + + // Act + await store.loadSession(mockDuplicate); + + // Assert + expect(store.order.insuranceCoverage.coverageType).toBe(mockResponse.data.insuranceCoverage.coverageType); + expect(store.order.insuranceCoverage.coverageStatus).toBe(mockResponse.data.insuranceCoverage.coverageStatus); + expect(store.order.insuranceCoverage.claimNumber).toBe(mockResponse.data.insuranceCoverage.claimNumber); + }); + + it('should update insurance coverage from payment.insuranceCoverage when main insuranceCoverage does not exist', async () => { + // Arrange + store.order.insuranceCoverage.coverageType = coverageType.Deductible; + mockResponse.data.insuranceCoverage = null; + mockResponse.data.payment = { + insuranceCoverage: { + isVerified: true, + claimNumber: getRandomString(10, 10) + } + }; + globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(mockResponse)); + + // Act + await store.loadSession(mockDuplicate); + + // Assert + expect(store.order.insuranceCoverage.coverageStatus).toBe(coverageStatuses.VERIFIED); + expect(store.order.insuranceCoverage.claimNumber).toBe(mockResponse.data.payment.insuranceCoverage.claimNumber); + }); + + it('should update vehicle registration license plate when policy vehicles exist and carId is present', async () => { + // Arrange + store.order.insuranceCoverage.coverageType = coverageType.Deductible; + store.order.policy.vehicles = [ + { id: 1, vin: mockResponse.data.vehicle.vin } + ]; + globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(mockResponse)); + + // Act + await store.loadSession(mockDuplicate); + + // Assert + expect(store.order.vehicle.registration.licensePlate).toBe(mockResponse.data.vehicle.licensePlateNumber); + }); + + it('should call lookupVehicleByVin and update vehicle when vin matches policy vehicle', async () => { + // Arrange + const mockVehicleLookupResponse = { + data: { + carId: getRandomInt(1000, 9999), + year: getRandomInt(2000, 2024).toString() + } + }; + const policyVehicle = { + id: getRandomInt(1, 100), + vin: mockResponse.data.vehicle.vin, + deductible: 100, + repairWaived: false, + endorsements: ['OEM Approved'] + }; + + store.order.insuranceCoverage.coverageType = coverageType.Deductible; + store.order.policy.vehicles = [policyVehicle]; + + globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(mockResponse)); + store.lookupVehicleByVin = jest.fn().mockReturnValue(Promise.resolve(mockVehicleLookupResponse)); + store.updateVehicle = jest.fn(); + store.updateVehicleCoverage = jest.fn(); + + // Act + await store.loadSession(mockDuplicate); + + // Assert + expect(store.lookupVehicleByVin).toHaveBeenCalledWith(mockResponse.data.vehicle.vin); + expect(store.updateVehicle).toHaveBeenCalledWith({ + ...mockVehicleLookupResponse.data, + policyVehicleId: policyVehicle.id, + vin: policyVehicle.vin + }); + expect(store.updateVehicleCoverage).toHaveBeenCalled(); + }); + + it('should not call lookupVehicleByVin when policy vehicles array is empty', async () => { + // Arrange + store.order.insuranceCoverage.coverageType = coverageType.Deductible; + store.order.policy.vehicles = []; + globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(mockResponse)); + store.lookupVehicleByVin = jest.fn(); + + // Act + await store.loadSession(mockDuplicate); + + // Assert + expect(store.lookupVehicleByVin).not.toHaveBeenCalled(); + }); + + it('should not call lookupVehicleByVin when carId is not present', async () => { + // Arrange + store.order.insuranceCoverage.coverageType = coverageType.Deductible; + store.order.policy.vehicles = [{ id: 1, vin: 'TEST123456789' }]; + mockResponse.data.vehicle.carId = null; + globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(mockResponse)); + store.lookupVehicleByVin = jest.fn(); + + // Act + await store.loadSession(mockDuplicate); + + // Assert + expect(store.lookupVehicleByVin).not.toHaveBeenCalled(); + }); + + it('should not call lookupVehicleByVin when vin is not present', async () => { + // Arrange + store.order.insuranceCoverage.coverageType = coverageType.Deductible; + store.order.policy.vehicles = [{ id: 1, vin: 'TEST123456789' }]; + mockResponse.data.vehicle.vin = null; + globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(mockResponse)); + store.lookupVehicleByVin = jest.fn(); + + // Act + await store.loadSession(mockDuplicate); + + // Assert + expect(store.lookupVehicleByVin).not.toHaveBeenCalled(); + }); + + it('should not update insurance coverage when isPolicyLookupSuccessful is false', async () => { + // Arrange + store.order.insuranceCoverage.coverageType = coverageType.NONE; // Make isPolicyLookupSuccessful false + const originalCoverageStatus = store.order.insuranceCoverage.coverageStatus; + globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(mockResponse)); + + // Act + await store.loadSession(mockDuplicate); + + // Assert + expect(store.order.insuranceCoverage.coverageStatus).toBe(originalCoverageStatus); + }); + + it('should update referral information from response data', async () => { + // Arrange + globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(mockResponse)); + + // Act + await store.loadSession(mockDuplicate); + + // Assert + expect(store.order.referralNumber).toBe(mockResponse.data.referralNumber); + expect(store.order.referralDate).toBe(mockResponse.data.referralDate); + expect(store.order.referralCorrelationId).toBe(mockResponse.data.referralCorrelationId); + expect(store.order.referralSequenceNumber).toBe(mockResponse.data.referralSequenceNumber); + expect(store.order.eon).toBe(mockResponse.data.eon); + }); + + it('should set loadedFromDupeCheck and loadedSessionClearedPreviousData flags', async () => { + // Arrange + globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(mockResponse)); + + // Act + await store.loadSession(mockDuplicate); + + // Assert + expect(store.order.loadedFromDupeCheck).toBe(true); + expect(store.order.loadedSessionClearedPreviousData).toBe(false); + }); + + it('should handle API error gracefully', async () => { + // Arrange + const error = new Error('API Error'); + globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.reject(error)); + + // Act & Assert + await expect(store.loadSession(mockDuplicate)).rejects.toThrow('API Error'); + }); + + it('should handle missing optional fields in response data', async () => { + // Arrange + mockResponse.data.customer.address.streetAddress2 = undefined; + mockResponse.data.customer.alternativePhone = undefined; + globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(mockResponse)); + + // Act + await store.loadSession(mockDuplicate); + + // Assert + expect(store.order.customer.address.streetAddress2).toBeUndefined(); + expect(store.order.contactInfo.alternativePhone).toBeUndefined(); + }); + }); }); From 202a335cb656354d9752d2683544c52e25ce742e Mon Sep 17 00:00:00 2001 From: Jeremy-Z Date: Wed, 4 Feb 2026 15:15:43 -0500 Subject: [PATCH 04/17] Auto stash before merge of "feature/INSR-8130" and "origin/feature/INSR-8130" Adding some additional logic to duplicate check data repopulation. --- src/store/index.js | 40 +++++++++++++++++++++++----------------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/src/store/index.js b/src/store/index.js index 9727b6be..86ac47d8 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -1599,25 +1599,31 @@ export const useMainStore = defineStore({ return; } - order.customer.address.streetAddress = data.customer?.address?.streetAddress; - order.customer.address.streetAddress2 = data.customer?.address?.streetAddress2; - order.customer.address.city = data.customer?.address?.city; - order.customer.address.state = data.customer?.address?.state; - order.customer.address.zipCode = data.customer?.address?.zipCode; + if (data?.customer) { + order.contactInfo.firstName = data?.customer?.firstName; + order.contactInfo.lastName = data?.customer?.lastName; + order.contactInfo.emailAddress = data?.customer?.emailAddress; + order.contactInfo.extension = data?.customer?.homePhone?.slice(10); + order.contactInfo.homePhone = data?.customer?.homePhone?.slice(0, 10); + order.contactInfo.servicePhone = data?.customer?.servicePhone; + order.contactInfo.alternativePhone = data?.customer?.alternativePhone; + order.contactInfo.requestTextUpdates = data?.customer?.isSmsOptIn; - order.contactInfo.firstName = data?.customer?.firstName; - order.contactInfo.lastName = data?.customer?.lastName; - order.contactInfo.emailAddress = data?.customer?.emailAddress; - order.contactInfo.extension = data?.customer?.homePhone?.slice(10); - order.contactInfo.homePhone = data?.customer?.homePhone?.slice(0, 10); - order.contactInfo.servicePhone = data?.customer?.servicePhone; - order.contactInfo.alternativePhone = data?.customer?.alternativePhone; - order.contactInfo.requestTextUpdates = data?.customer?.isSmsOptIn; + if (data?.customer?.address) { + order.customer.address.streetAddress = data.customer?.address?.streetAddress; + order.customer.address.streetAddress2 = data.customer?.address?.streetAddress2; + order.customer.address.city = data.customer?.address?.city; + order.customer.address.state = data.customer?.address?.state; + order.customer.address.zipCode = data.customer?.address?.zipCode; + } + } - order.vehicle.year = data?.vehicle?.year; - order.vehicle.make = data?.vehicle?.make; - order.vehicle.model = data?.vehicle?.model; - order.vehicle.style = data?.vehicle?.style; + if (data?.vehicle) { + order.vehicle.year = data?.vehicle?.year; + order.vehicle.make = data?.vehicle?.make; + order.vehicle.model = data?.vehicle?.model; + order.vehicle.style = data?.vehicle?.style; + } if (this.isPolicyLookupSuccessful) { if (data.insuranceCoverage) { From c40a9df463487392e64b9db16c71f67822911c41 Mon Sep 17 00:00:00 2001 From: Jeremy-Z Date: Wed, 4 Feb 2026 15:15:43 -0500 Subject: [PATCH 05/17] Adding some additional logic to duplicate check data repopulation. --- src/store/index.js | 40 +++++++++++++++++++++++----------------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/src/store/index.js b/src/store/index.js index 9727b6be..86ac47d8 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -1599,25 +1599,31 @@ export const useMainStore = defineStore({ return; } - order.customer.address.streetAddress = data.customer?.address?.streetAddress; - order.customer.address.streetAddress2 = data.customer?.address?.streetAddress2; - order.customer.address.city = data.customer?.address?.city; - order.customer.address.state = data.customer?.address?.state; - order.customer.address.zipCode = data.customer?.address?.zipCode; + if (data?.customer) { + order.contactInfo.firstName = data?.customer?.firstName; + order.contactInfo.lastName = data?.customer?.lastName; + order.contactInfo.emailAddress = data?.customer?.emailAddress; + order.contactInfo.extension = data?.customer?.homePhone?.slice(10); + order.contactInfo.homePhone = data?.customer?.homePhone?.slice(0, 10); + order.contactInfo.servicePhone = data?.customer?.servicePhone; + order.contactInfo.alternativePhone = data?.customer?.alternativePhone; + order.contactInfo.requestTextUpdates = data?.customer?.isSmsOptIn; - order.contactInfo.firstName = data?.customer?.firstName; - order.contactInfo.lastName = data?.customer?.lastName; - order.contactInfo.emailAddress = data?.customer?.emailAddress; - order.contactInfo.extension = data?.customer?.homePhone?.slice(10); - order.contactInfo.homePhone = data?.customer?.homePhone?.slice(0, 10); - order.contactInfo.servicePhone = data?.customer?.servicePhone; - order.contactInfo.alternativePhone = data?.customer?.alternativePhone; - order.contactInfo.requestTextUpdates = data?.customer?.isSmsOptIn; + if (data?.customer?.address) { + order.customer.address.streetAddress = data.customer?.address?.streetAddress; + order.customer.address.streetAddress2 = data.customer?.address?.streetAddress2; + order.customer.address.city = data.customer?.address?.city; + order.customer.address.state = data.customer?.address?.state; + order.customer.address.zipCode = data.customer?.address?.zipCode; + } + } - order.vehicle.year = data?.vehicle?.year; - order.vehicle.make = data?.vehicle?.make; - order.vehicle.model = data?.vehicle?.model; - order.vehicle.style = data?.vehicle?.style; + if (data?.vehicle) { + order.vehicle.year = data?.vehicle?.year; + order.vehicle.make = data?.vehicle?.make; + order.vehicle.model = data?.vehicle?.model; + order.vehicle.style = data?.vehicle?.style; + } if (this.isPolicyLookupSuccessful) { if (data.insuranceCoverage) { From 0fcb558985300edd60aebe7c5aa148018027e967 Mon Sep 17 00:00:00 2001 From: Katie Kroell Date: Thu, 5 Feb 2026 16:15:32 -0500 Subject: [PATCH 06/17] fix coverage status issue / use footer for navigation --- .../coverage-statement/coverage-statement.vue | 31 +++++++++++++------ .../policy-vehicles/policy-vehicles.vue | 2 ++ 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/src/layouts/coverage-statement/coverage-statement.vue b/src/layouts/coverage-statement/coverage-statement.vue index e982088b..d88e927c 100644 --- a/src/layouts/coverage-statement/coverage-statement.vue +++ b/src/layouts/coverage-statement/coverage-statement.vue @@ -89,13 +89,12 @@ class="mt-5 mb-5" :customText="disclaimerText" typeStyle="caption" /> -
- -
+ @@ -114,6 +113,7 @@ import contentGroupModal from '@/iss-components/content-group-modal/content-grou import textBlock from '@/digital-components/text-block/text-block.vue'; import textLink from '@/ux-components/text-link/text-link.vue'; import buttonMain from '@/ux-components/button-main/button-main.vue'; +import siteFooter from '@/iss-components/site-footer/site-footer.vue'; // Import Supporting Files import { fetchCmsContentForPage, @@ -146,7 +146,8 @@ export default { contentGroupModal, buttonMain, textBlock, - textLink + textLink, + siteFooter }, mixins: [baseFormMixin, vehicleQuestionsMixin], async beforeRouteEnter(to, from, next) { @@ -328,9 +329,9 @@ export default { }, getVariant() { if (this.isITACQuoteVisible || this.isNoCompQuoteVisible) { - return 'text-center'; + return 'centered-back-button'; } - return 'text-left'; + return ''; } }, watch: { @@ -595,6 +596,16 @@ export default { margin-top: 20px; display: block; } + :deep(.centered-back-button) { + footer { + > div { + justify-content: center; + #stacked { + display: none; + } + } + } + } } .modal { diff --git a/src/layouts/policy-vehicles/policy-vehicles.vue b/src/layouts/policy-vehicles/policy-vehicles.vue index 62a102a1..56f84909 100644 --- a/src/layouts/policy-vehicles/policy-vehicles.vue +++ b/src/layouts/policy-vehicles/policy-vehicles.vue @@ -67,6 +67,7 @@ import { repairWaivedForSelectedVehicle } from '@/helpers/policy-vehicle-helper'; import coverageType from '@/constants/coverage-type'; +import coverageStatus from '@/constants/coverage-statuses'; import alert from '@/ux-components/alert/alert.vue'; import siteSubHeader from '@/iss-components/site-sub-header/site-sub-header.vue'; import buttonMain from '@/ux-components/button-main/button-main.vue'; @@ -237,6 +238,7 @@ export default { }); } else { useMainStore().updateCoverageType(coverageType.NONE); + useMainStore().updateCoverageStatus(coverageStatus.UNVERIFIED); } return this.navigateForward(); }, From f9fee0b49abd532a2452e7d88f07629a85168233 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 6 Feb 2026 00:10:08 +0000 Subject: [PATCH 07/17] Bump webpack from 5.94.0 to 5.105.0 Bumps [webpack](https://github.com/webpack/webpack) from 5.94.0 to 5.105.0. - [Release notes](https://github.com/webpack/webpack/releases) - [Changelog](https://github.com/webpack/webpack/blob/main/CHANGELOG.md) - [Commits](https://github.com/webpack/webpack/compare/v5.94.0...v5.105.0) --- updated-dependencies: - dependency-name: webpack dependency-version: 5.105.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 534 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 375 insertions(+), 159 deletions(-) diff --git a/package-lock.json b/package-lock.json index de0a70e2..a062bda3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -63,7 +63,7 @@ "typescript-eslint": "^8.11.0", "vite": "^6.4.1", "vitest": "^3.2.4", - "volar-service-vetur": "latest", + "volar-service-vetur": "*", "wait-on": "^8.0.2" } }, @@ -4419,6 +4419,28 @@ "node": ">=10" } }, + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, "node_modules/@types/estree": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", @@ -5999,148 +6021,163 @@ "dev": true }, "node_modules/@webassemblyjs/ast": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", - "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" } }, "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", - "dev": true + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", - "dev": true + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", - "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", - "dev": true + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", - "dev": true + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", - "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" } }, "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", "dev": true, + "license": "MIT", "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", - "dev": true + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", - "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-opt": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1", - "@webassemblyjs/wast-printer": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", - "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", - "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", - "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wast-printer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", - "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/ast": "1.14.1", "@xtuc/long": "4.2.2" } }, @@ -6148,13 +6185,15 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/abab": { "version": "2.0.6", @@ -6225,13 +6264,17 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-import-attributes": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", - "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", + "node_modules/acorn-import-phases": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", + "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + }, "peerDependencies": { - "acorn": "^8" + "acorn": "^8.14.0" } }, "node_modules/acorn-jsx": { @@ -6999,6 +7042,16 @@ } ] }, + "node_modules/baseline-browser-mapping": { + "version": "2.9.19", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.19.tgz", + "integrity": "sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, "node_modules/batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", @@ -7156,9 +7209,9 @@ "dev": true }, "node_modules/browserslist": { - "version": "4.23.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", - "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", "dev": true, "funding": [ { @@ -7174,11 +7227,13 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001646", - "electron-to-chromium": "^1.5.4", - "node-releases": "^2.0.18", - "update-browserslist-db": "^1.1.0" + "baseline-browser-mapping": "^2.9.0", + "caniuse-lite": "^1.0.30001759", + "electron-to-chromium": "^1.5.263", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.2.0" }, "bin": { "browserslist": "cli.js" @@ -7393,9 +7448,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001653", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001653.tgz", - "integrity": "sha512-XGWQVB8wFQ2+9NZwZ10GxTYC5hk0Fa+q8cSkr0tgvMhYhMHP/QC+WTgrePMDBWiWc/pV+1ik82Al20XOK25Gcw==", + "version": "1.0.30001768", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001768.tgz", + "integrity": "sha512-qY3aDRZC5nWPgHUgIB84WL+nySuo19wk0VJpp/XI9T34lrvkyhRvNVOFJOp2kxClQhiFBu+TaUSudf6oa3vkSA==", "dev": true, "funding": [ { @@ -7410,7 +7465,8 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/case-sensitive-paths-webpack-plugin": { "version": "2.4.0", @@ -9295,10 +9351,11 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.5.13", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.13.tgz", - "integrity": "sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q==", - "dev": true + "version": "1.5.286", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.286.tgz", + "integrity": "sha512-9tfDXhJ4RKFNerfjdCcZfufu49vg620741MNs26a9+bhLThdB+plgMeou98CAaHu/WATj2iHOOHTp1hWtABj2A==", + "dev": true, + "license": "ISC" }, "node_modules/emittery": { "version": "0.8.1", @@ -9373,13 +9430,14 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.17.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", - "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.19.0.tgz", + "integrity": "sha512-phv3E1Xl4tQOShqSte26C7Fl84EwUdZsyOuSSk9qtAGyyQs2s3jJzComh+Abf4g187lUUAvH+H26omrqia2aGg==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" + "tapable": "^2.3.0" }, "engines": { "node": ">=10.13.0" @@ -9556,10 +9614,11 @@ } }, "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -10355,6 +10414,23 @@ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, + "node_modules/fast-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, "node_modules/fastq": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", @@ -10904,7 +10980,8 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, "node_modules/globals": { "version": "11.12.0", @@ -15186,12 +15263,17 @@ } }, "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.1.tgz", + "integrity": "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, "node_modules/loader-utils": { @@ -16372,10 +16454,11 @@ "dev": true }, "node_modules/node-releases": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", - "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", - "dev": true + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", + "dev": true, + "license": "MIT" }, "node_modules/nopt": { "version": "6.0.0", @@ -19604,12 +19687,17 @@ "dev": true }, "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", + "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, "node_modules/tar": { @@ -19743,16 +19831,17 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.10", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", - "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "version": "5.3.16", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.16.tgz", + "integrity": "sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.20", + "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.26.0" + "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", + "terser": "^5.31.1" }, "engines": { "node": ">= 10.13.0" @@ -19776,6 +19865,63 @@ } } }, + "node_modules/terser-webpack-plugin/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, "node_modules/terser/node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", @@ -20411,9 +20557,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", - "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", "dev": true, "funding": [ { @@ -20429,9 +20575,10 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "escalade": "^3.1.2", - "picocolors": "^1.0.1" + "escalade": "^3.2.0", + "picocolors": "^1.1.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -21516,10 +21663,11 @@ } }, "node_modules/watchpack": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", - "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.1.tgz", + "integrity": "sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==", "dev": true, + "license": "MIT", "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -21556,34 +21704,37 @@ } }, "node_modules/webpack": { - "version": "5.94.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz", - "integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==", + "version": "5.105.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.105.0.tgz", + "integrity": "sha512-gX/dMkRQc7QOMzgTe6KsYFM7DxeIONQSui1s0n/0xht36HvrgbxtM1xBlgx596NbpHuQU8P7QpKwrZYwUX48nw==", "dev": true, + "license": "MIT", "dependencies": { - "@types/estree": "^1.0.5", - "@webassemblyjs/ast": "^1.12.1", - "@webassemblyjs/wasm-edit": "^1.12.1", - "@webassemblyjs/wasm-parser": "^1.12.1", - "acorn": "^8.7.1", - "acorn-import-attributes": "^1.9.5", - "browserslist": "^4.21.10", + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.8", + "@types/json-schema": "^7.0.15", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.15.0", + "acorn-import-phases": "^1.0.3", + "browserslist": "^4.28.1", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.17.1", - "es-module-lexer": "^1.2.1", + "enhanced-resolve": "^5.19.0", + "es-module-lexer": "^2.0.0", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.11", "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", + "loader-runner": "^4.3.1", "mime-types": "^2.1.27", "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.10", - "watchpack": "^2.4.1", - "webpack-sources": "^3.2.3" + "schema-utils": "^4.3.3", + "tapable": "^2.3.0", + "terser-webpack-plugin": "^5.3.16", + "watchpack": "^2.5.1", + "webpack-sources": "^3.3.3" }, "bin": { "webpack": "bin/webpack.js" @@ -21945,10 +22096,11 @@ } }, "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.3.tgz", + "integrity": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.13.0" } @@ -21959,6 +22111,70 @@ "integrity": "sha512-h9atBP/bsZohWpHnr+2sic8Iecb60GxftXsWNLLLSqewgIsGzByd2gcIID4nXcG+3tNe4GQG3dLcff3kXupdRA==", "dev": true }, + "node_modules/webpack/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack/node_modules/es-module-lexer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz", + "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==", + "dev": true, + "license": "MIT" + }, + "node_modules/webpack/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, "node_modules/websocket-driver": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", From 8533c10e90e3facae44bac9d4046418a7f85c7b0 Mon Sep 17 00:00:00 2001 From: Katie Kroell Date: Fri, 6 Feb 2026 09:33:58 -0500 Subject: [PATCH 08/17] fix coverage status --- src/layouts/policy-vehicles/policy-vehicles.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/layouts/policy-vehicles/policy-vehicles.vue b/src/layouts/policy-vehicles/policy-vehicles.vue index 56f84909..c5cf74b4 100644 --- a/src/layouts/policy-vehicles/policy-vehicles.vue +++ b/src/layouts/policy-vehicles/policy-vehicles.vue @@ -67,7 +67,7 @@ import { repairWaivedForSelectedVehicle } from '@/helpers/policy-vehicle-helper'; import coverageType from '@/constants/coverage-type'; -import coverageStatus from '@/constants/coverage-statuses'; +import coverageStatuses from '@/constants/coverage-statuses'; import alert from '@/ux-components/alert/alert.vue'; import siteSubHeader from '@/iss-components/site-sub-header/site-sub-header.vue'; import buttonMain from '@/ux-components/button-main/button-main.vue'; @@ -238,7 +238,7 @@ export default { }); } else { useMainStore().updateCoverageType(coverageType.NONE); - useMainStore().updateCoverageStatus(coverageStatus.UNVERIFIED); + useMainStore().updateCoverageStatus(coverageStatuses.NO_COVERAGE); } return this.navigateForward(); }, From 54f66b43cf9271889a11e62b474325e424b0a30b Mon Sep 17 00:00:00 2001 From: Bill Richardson Date: Thu, 5 Feb 2026 17:11:20 -0500 Subject: [PATCH 09/17] Updates for Mobile --- .../date-picker/date-picker.vue | 1 + src/layouts/schedule-page/schedule-page.vue | 20 +++++++++++++++---- .../service-location/service-location.vue | 15 ++++++++++---- src/layouts/welcome-page/welcome-page.vue | 1 - 4 files changed, 28 insertions(+), 9 deletions(-) diff --git a/src/digital-components/date-picker/date-picker.vue b/src/digital-components/date-picker/date-picker.vue index b785a171..9d1a1443 100644 --- a/src/digital-components/date-picker/date-picker.vue +++ b/src/digital-components/date-picker/date-picker.vue @@ -559,6 +559,7 @@ export default { this.selectTimeSlotForDay(timeSlot); }, async setCalendarData(config = {}) { + // set selectable dates data config.initialShopTimeSlotsResponse.days.forEach((selectableDate) => { const dateObjectToPush = { date: selectableDate.date, diff --git a/src/layouts/schedule-page/schedule-page.vue b/src/layouts/schedule-page/schedule-page.vue index 99139a0a..5397397d 100644 --- a/src/layouts/schedule-page/schedule-page.vue +++ b/src/layouts/schedule-page/schedule-page.vue @@ -224,6 +224,8 @@ export default { const cmsContentPromise = fetchCmsContentForPage(to.query.issPage); const storeServiceLocation = useMainStore().order.serviceLocation; const storeSelectedAppointmentType = storeServiceLocation?.appointmentType; + const isMobileAppointment = storeSelectedAppointmentType === AppointmentTypeStrings.MOBILE + || storeSelectedAppointmentType === AppointmentTypeStrings.MOBILE_NOT_ITAC_AND_NOT_NOCOMP; const storeSelectedProvider = storeServiceLocation?.provider; const serviceZipCode = storeServiceLocation?.zipCode || useMainStore().order.customer.address.zipCode; const zipCodeData = getZipCodeData(serviceZipCode); @@ -275,6 +277,9 @@ export default { // use resultMap to populate layout content. const resultMap = await settleAllPromises(promiseResultMap); const serviceLocationData = { + defaultMobileZipCode: isMobileAppointment + ? storeServiceLocation?.zipCode + : '', glassFees: resultMap.glassFees, mobileFeePart: resultMap.mobileFeePart, providers: resultMap.providers, @@ -285,8 +290,6 @@ export default { next(async (vm) => { const providerToUse = resultMap.providers?.shopProviders .find((provider) => provider.providerNumber === storeSelectedProvider?.providerNumber) || resultMap.providers?.shopProviders[0]; - const isMobileAppointment = storeSelectedAppointmentType === AppointmentTypeStrings.MOBILE - || storeSelectedAppointmentType === AppointmentTypeStrings.MOBILE_NOT_ITAC_AND_NOT_NOCOMP; const initialServiceLocationObj = { mobileProviderNumber: isMobileAppointment ? storeSelectedProvider?.providerNumber @@ -314,10 +317,10 @@ export default { mobileFeePart: null, mobilePremiumAppointmentFee: null, mobileProviderNumber: null, - mobileZipCodeOverride: null, selectableDatesData: [], selectedAppointmentType: this.getAppointmentType(), selectedDate: this.getSelectedDate(), + selectedMobileZipCode: null, selectedProvider: this.getSelectedProvider(), selectedServiceLocation: this.getServiceLocation(), selectedServiceLocationCity: this.getServiceLocationCity(), @@ -401,6 +404,7 @@ export default { }); } else { this.mobileProviderNumber = initialServiceLocationObj.mobileProviderNumber; + this.selectedMobileZipCode = initialServiceLocationObj.zipCode; await this.getDatePickerInitialData().then((initialData) => { this.selectableDatesData = initialData.initialShopTimeSlotsResponse; this.$refs.datePicker.setCalendarData(initialData); @@ -430,11 +434,18 @@ export default { return this.mainStore.order?.serviceLocation?.appointmentType; }, async getAvailableDatesMethod(startDate, endDate) { + let mobileProviderNumberToUse = this.mobileProviderNumber; + if (this.selectedAppointmentType === AppointmentTypeStrings.MOBILE + || this.selectedAppointmentType === AppointmentTypeStrings.MOBILE_NOT_ITAC_AND_NOT_NOCOMP) { + mobileProviderNumberToUse = this.selectedServiceLocation.mobileProviderNumber; + } + const newShopTimeSlots = await getAvailableDates( startDate, endDate, this.selectedAppointmentType, - this.selectedProvider.providerNumber + this.selectedProvider.providerNumber || mobileProviderNumberToUse, + this.selectedMobileZipCode ); // ADD API CALL RESULTS TO EXISTING DATE DATA this.selectableDatesData.days = @@ -593,6 +604,7 @@ export default { mobileZipUpdatedFromServiceLocation(mobileZipServiceLocation) { if (mobileZipServiceLocation) { this.mobileProviderNumber = mobileZipServiceLocation.mobileProviderNumber; + this.selectedMobileZipCode = mobileZipServiceLocation.zipCode; this.selectedServiceLocation = mobileZipServiceLocation; if (mobileZipServiceLocation.refreshDatePicker) { diff --git a/src/layouts/schedule-page/service-location/service-location.vue b/src/layouts/schedule-page/service-location/service-location.vue index 069ec472..73a8ff9f 100644 --- a/src/layouts/schedule-page/service-location/service-location.vue +++ b/src/layouts/schedule-page/service-location/service-location.vue @@ -171,6 +171,7 @@ export default { city: this.getServiceCityFromStore(), state: this.getServiceStateFromStore(), zipCode: this.getServiceZipCodeFromStore(), + initializingData: false, isGlassServiceableInshop: null, isRecalibrationServiceableInshop: null, isGlassServiceableMobile: null, @@ -289,7 +290,7 @@ export default { } }, async mobileZipCode(newZip, oldZip) { - if (newZip !== '' && newZip !== oldZip) { + if (newZip !== '' && newZip !== oldZip && !this.initializingData) { showIssLoadingModal(true); await this.updateMobileZip(); const updateMobileZipServiceLocationObj = { @@ -348,8 +349,10 @@ export default { } }, methods: { - initializeComponent(initialData) { - this.setData(initialData); + async initializeComponent(initialData) { + this.initializingData = true; + await this.setData(initialData); + this.initializingData = false; }, async forwardButtonAction() { let provider = this.selectedProvider; @@ -447,7 +450,11 @@ export default { setCtuForMobile(val) { this.zipCodeCtu = val; }, - setData(initialData) { + async setData(initialData) { + if (initialData.defaultMobileZipCode) { + this.mobileZipCode = initialData.defaultMobileZipCode; + } + if (initialData.zipCodeData) { this.zipContainsMilitaryBase = initialData.zipCodeData.containsMilitaryBase; this.zipCodeCtu = initialData.zipCodeData.zipCodeCtu; diff --git a/src/layouts/welcome-page/welcome-page.vue b/src/layouts/welcome-page/welcome-page.vue index 4f0a38ee..677cd1fd 100644 --- a/src/layouts/welcome-page/welcome-page.vue +++ b/src/layouts/welcome-page/welcome-page.vue @@ -509,7 +509,6 @@ form { :deep(.input-wrapper) { input[type="date"]::-webkit-calendar-picker-indicator { background-color: $svg-calendar-error-fill-color; - // eslint-disable-next-line max-len background-image: url($svg-error-calendar-graphic); } } From 421977cbf2db02d116a47a59462f19c507477fb5 Mon Sep 17 00:00:00 2001 From: Bill Richardson Date: Fri, 6 Feb 2026 10:15:21 -0500 Subject: [PATCH 10/17] Updates for some transitions between appt types --- src/layouts/schedule-page/schedule-page.vue | 11 ++++++++++- .../service-location/service-location.vue | 13 ++++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/layouts/schedule-page/schedule-page.vue b/src/layouts/schedule-page/schedule-page.vue index 5397397d..0cd0f480 100644 --- a/src/layouts/schedule-page/schedule-page.vue +++ b/src/layouts/schedule-page/schedule-page.vue @@ -20,6 +20,7 @@ ref="serviceLocation" @appointmentTypeChanged="appointmentTypeChangedFromServiceLocation" @cityUpdated="cityUpdatedFromServiceLocation" + @inShopZipUpdated="inShopZipUpdatedFromServiceLocation" @mobileZipUpdated="mobileZipUpdatedFromServiceLocation" @providerChanged="providerChangedFromServiceLocation" /> @@ -182,7 +183,8 @@ const getAvailableDates = async ( storeAction.payload.endDate, storeAction.payload.zipCodeOverride ).catch((error) => { - console.log('Error fetching mobile time slots:', error); + // eslint-disable-next-line no-console + console.warn('Error fetching mobile time slots:', error); }); } @@ -601,6 +603,13 @@ export default { handleMqlChange(e) { this.isMobileView = !e.matches; }, + inShopZipUpdatedFromServiceLocation(inShopZipServiceLocation) { + if (inShopZipServiceLocation) { + this.mobileProviderNumber = null; + this.selectedMobileZipCode = null; + this.selectedServiceLocation = inShopZipServiceLocation; + } + }, mobileZipUpdatedFromServiceLocation(mobileZipServiceLocation) { if (mobileZipServiceLocation) { this.mobileProviderNumber = mobileZipServiceLocation.mobileProviderNumber; diff --git a/src/layouts/schedule-page/service-location/service-location.vue b/src/layouts/schedule-page/service-location/service-location.vue index 73a8ff9f..e48dddcc 100644 --- a/src/layouts/schedule-page/service-location/service-location.vue +++ b/src/layouts/schedule-page/service-location/service-location.vue @@ -159,7 +159,7 @@ export default { serviceZipQuestion }, mixins: [baseFormMixin], - emits: ['appointment-type-changed', 'city-updated', 'mobile-zip-updated', 'provider-changed'], + emits: ['appointment-type-changed', 'city-updated', 'in-shop-zip-updated', 'mobile-zip-updated', 'provider-changed'], setup() { const mainStore = useMainStore(); return { mainStore }; @@ -427,6 +427,17 @@ export default { if (details) { this.setServiceabilityDetails(details); } + + const inShopZipServiceLocationObj = { + appointmentType: AppointmentTypeStrings.IN_SHOP, + mobileProviderNumber: null, + provider: this.selectedProvider, + refreshDatePicker: false, + resetDatePicker: false, + zipCode: newZip, + zipCodeCtu: zipCodeData.zipCodeCtu + }; + this.$emit('in-shop-zip-updated', inShopZipServiceLocationObj); }); }, refreshAvailabilityRating() { From f207da6390a0867c4c22bd9e06fa5f4ad3abaef2 Mon Sep 17 00:00:00 2001 From: Katie Kroell Date: Fri, 6 Feb 2026 10:50:14 -0500 Subject: [PATCH 11/17] copilot fix --- src/layouts/coverage-statement/coverage-statement.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/layouts/coverage-statement/coverage-statement.vue b/src/layouts/coverage-statement/coverage-statement.vue index d88e927c..91dfc1a1 100644 --- a/src/layouts/coverage-statement/coverage-statement.vue +++ b/src/layouts/coverage-statement/coverage-statement.vue @@ -91,7 +91,7 @@ typeStyle="caption" /> @@ -327,7 +327,7 @@ export default { buttonText() { return (this.isITACQuoteVisible || this.isNoCompQuoteVisible) ? 'Continue scheduling' : 'Continue'; }, - getVariant() { + backButtonClass() { if (this.isITACQuoteVisible || this.isNoCompQuoteVisible) { return 'centered-back-button'; } From 73e1ba04756504c163becdd7a408e68882caa904 Mon Sep 17 00:00:00 2001 From: Bill Richardson Date: Fri, 6 Feb 2026 12:52:34 -0500 Subject: [PATCH 12/17] add spinner to shop address fetch --- .../service-location/shop-address/shop-address.vue | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/layouts/schedule-page/service-location/shop-address/shop-address.vue b/src/layouts/schedule-page/service-location/shop-address/shop-address.vue index f6e7b0a8..54b9dc0d 100644 --- a/src/layouts/schedule-page/service-location/shop-address/shop-address.vue +++ b/src/layouts/schedule-page/service-location/shop-address/shop-address.vue @@ -105,6 +105,7 @@ import googleMap from '@/iss-components/google-map/google-map.vue'; // Supporting files import baseMixin from '@/mixins/base-mixin.js'; +import showIssLoadingModal from '@/helpers/loading-modal-helper.js'; import { toTitleCase } from '@/helpers/text-helper.js'; import { markRaw } from 'vue'; import { getAvailabilityRating } from '@/helpers/service-location-helper'; @@ -243,7 +244,9 @@ export default { if (this.openingModal) { return; } + showIssLoadingModal(true); const shopsUpdated = await this.updateShops(); + showIssLoadingModal(false); if (shopsUpdated) { await this.$nextTick(); this.$refs[SERVICE_ZIP_QUESTION_REF_NAME].internalZipcode = ''; @@ -253,7 +256,9 @@ export default { if (this.openingModal) { return; } + showIssLoadingModal(true); await this.updateShops(); + showIssLoadingModal(false); } }, methods: { From e118c8612edeaccf6466c3734b9953a8f98c4b75 Mon Sep 17 00:00:00 2001 From: Jeremy-Z Date: Fri, 6 Feb 2026 14:18:12 -0500 Subject: [PATCH 13/17] Fixing some issues with the load session method. --- src/store/index.js | 8 +++++--- src/store/store.spec.js | 6 +++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/store/index.js b/src/store/index.js index 65c09a29..08c9e4e9 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -1597,15 +1597,17 @@ export const useMainStore = defineStore({ } if (data?.customer) { - order.contactInfo.firstName = data?.customer?.firstName; - order.contactInfo.lastName = data?.customer?.lastName; - order.contactInfo.emailAddress = data?.customer?.emailAddress; + order.customer.firstName = data?.customer?.firstName; + order.customer.lastName = data?.customer?.lastName; + order.customer.emailAddress = data?.customer?.emailAddress; + order.contactInfo.extension = data?.customer?.homePhone?.slice(10); order.contactInfo.homePhone = data?.customer?.homePhone?.slice(0, 10); order.contactInfo.servicePhone = data?.customer?.servicePhone; order.contactInfo.alternativePhone = data?.customer?.alternativePhone; order.contactInfo.requestTextUpdates = data?.customer?.isSmsOptIn; + if (data?.customer?.address) { order.customer.address.streetAddress = data.customer?.address?.streetAddress; order.customer.address.streetAddress2 = data.customer?.address?.streetAddress2; diff --git a/src/store/store.spec.js b/src/store/store.spec.js index 3af3f359..74084997 100644 --- a/src/store/store.spec.js +++ b/src/store/store.spec.js @@ -2249,9 +2249,9 @@ describe('Store', () => { await store.loadSession(mockDuplicate); // Assert - expect(store.order.contactInfo.firstName).toBe(mockResponse.data.customer.firstName); - expect(store.order.contactInfo.lastName).toBe(mockResponse.data.customer.lastName); - expect(store.order.contactInfo.emailAddress).toBe(mockResponse.data.customer.emailAddress); + expect(store.order.customer.firstName).toBe(mockResponse.data.customer.firstName); + expect(store.order.customer.lastName).toBe(mockResponse.data.customer.lastName); + expect(store.order.customer.emailAddress).toBe(mockResponse.data.customer.emailAddress); expect(store.order.contactInfo.servicePhone).toBe(mockResponse.data.customer.servicePhone); expect(store.order.contactInfo.alternativePhone).toBe(mockResponse.data.customer.alternativePhone); expect(store.order.contactInfo.requestTextUpdates).toBe(mockResponse.data.customer.isSmsOptIn); From a265b019615b5d024eecce2a087ebbb9810af5fb Mon Sep 17 00:00:00 2001 From: Jeremy-Z Date: Fri, 6 Feb 2026 14:30:17 -0500 Subject: [PATCH 14/17] Unit test updates. --- src/store/store.spec.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/store/store.spec.js b/src/store/store.spec.js index 74084997..79df6796 100644 --- a/src/store/store.spec.js +++ b/src/store/store.spec.js @@ -2217,13 +2217,13 @@ describe('Store', () => { // Arrange globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({ data: null })); const originalStreetAddress = store.order.customer.address.streetAddress; - + const originalLoadedFromDupeCheck = store.order.loadedFromDupeCheck; + // Act await store.loadSession(mockDuplicate); - // Assert expect(store.order.customer.address.streetAddress).toBe(originalStreetAddress); - expect(store.order.loadedFromDupeCheck).toBe(null); + expect(store.order.loadedFromDupeCheck).toBe(originalLoadedFromDupeCheck); }); it('should update customer address fields from response data', async () => { From f74fb5438e7a32730bcf3b6b661260fec70915eb Mon Sep 17 00:00:00 2001 From: Bill Richardson Date: Fri, 6 Feb 2026 14:53:30 -0500 Subject: [PATCH 15/17] hide/prevent availability indicators for now --- src/iss-components/shop-list-button/shop-list-button.vue | 9 ++++++--- .../service-location/shop-address/shop-address.vue | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/iss-components/shop-list-button/shop-list-button.vue b/src/iss-components/shop-list-button/shop-list-button.vue index 5a813912..67091bde 100644 --- a/src/iss-components/shop-list-button/shop-list-button.vue +++ b/src/iss-components/shop-list-button/shop-list-button.vue @@ -10,7 +10,9 @@ :aria-label="buttonLabel" class="button-content list-button-content d-flex flex-column justify-content-center py-3 px-4">
-
+
{{ buttonLabelSubCopy }} -
+
diff --git a/src/layouts/schedule-page/service-location/shop-address/shop-address.vue b/src/layouts/schedule-page/service-location/shop-address/shop-address.vue index 54b9dc0d..fb013177 100644 --- a/src/layouts/schedule-page/service-location/shop-address/shop-address.vue +++ b/src/layouts/schedule-page/service-location/shop-address/shop-address.vue @@ -195,7 +195,7 @@ export default { const formattedEndDate = endDate.toISOString().split('T')[0]; return { - displayAvailabilityIndicators: true, + displayAvailabilityIndicators: false, availabilityRatingCallback: getAvailabilityRating, startDate: formattedStartDate, endDate: formattedEndDate, From b0f5608b4151c3f8deb8859c155a1ea32f8fc3da Mon Sep 17 00:00:00 2001 From: Bill Richardson Date: Mon, 9 Feb 2026 13:15:08 -0500 Subject: [PATCH 16/17] vin lookup updates --- .../vin-lookup-alerts/vin-lookup-alerts.vue | 21 ++++++++++++++----- src/layouts/vin-lookup/vin-lookup.vue | 5 ++--- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/layouts/vin-lookup/vin-lookup-alerts/vin-lookup-alerts.vue b/src/layouts/vin-lookup/vin-lookup-alerts/vin-lookup-alerts.vue index f9be7ede..495881b9 100644 --- a/src/layouts/vin-lookup/vin-lookup-alerts/vin-lookup-alerts.vue +++ b/src/layouts/vin-lookup/vin-lookup-alerts/vin-lookup-alerts.vue @@ -3,15 +3,20 @@ id="vin-lookup-alerts-wrapper" :class="wrapperCssClass"> + v-if="isVehicleNotFoundVisible" + class="mt-5" /> + v-if="isTwoIdenticalYMMVehicleFoundVisible" + class="mt-5" /> + v-else-if="isVehicleNotMatchedVisible" + class="mt-5" /> + v-else-if="isPerfectMatchVisible" + class="mt-5" /> + v-else-if="isNoServiceVisible" + class="mt-5" />
+ + diff --git a/src/layouts/vin-lookup/vin-lookup.vue b/src/layouts/vin-lookup/vin-lookup.vue index 6585d865..ee2d47ec 100644 --- a/src/layouts/vin-lookup/vin-lookup.vue +++ b/src/layouts/vin-lookup/vin-lookup.vue @@ -13,13 +13,12 @@
+ class="mt-4" /> From acdade3a5952d35b88eb8e259234fc832ae7c920 Mon Sep 17 00:00:00 2001 From: Bill Richardson Date: Mon, 9 Feb 2026 13:33:39 -0500 Subject: [PATCH 17/17] update for spinner --- src/layouts/vin-lookup/vin-lookup.vue | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/layouts/vin-lookup/vin-lookup.vue b/src/layouts/vin-lookup/vin-lookup.vue index ee2d47ec..e4b5ea85 100644 --- a/src/layouts/vin-lookup/vin-lookup.vue +++ b/src/layouts/vin-lookup/vin-lookup.vue @@ -47,6 +47,7 @@ import { isGlassAvailableForCarId } from '@/helpers/damage-helper'; import settleAllPromises from '@/helpers/layout-helper'; import routerParams from '@/router/router-constants/router-params'; import { useMainStore } from '@/store'; +import showIssLoadingModal from '@/helpers/loading-modal-helper.js'; // Import Component import baseFormMixin from '@/mixins/base-form-mixin'; @@ -139,7 +140,9 @@ export default { // TODO: Side effects in computed. if (this.vinPopulatedOnPageLoad) { // TODO: Modify to remove side effects in computed + // eslint-disable-next-line vue/no-side-effects-in-computed-properties this.activeVehicleLookupAlertType = vehicleLookupAlertTypes.PERFECT_MATCH; + // eslint-disable-next-line vue/no-side-effects-in-computed-properties this.needToLookupVehicle = false; const lastSixChars = this.vin.substring(11, this.vin.length); return `!X!X!X!X!X!X!X!X!X!X!X${lastSixChars}`; @@ -173,6 +176,7 @@ export default { this.resetActiveAlert(); // Temp solution to reset the 'disabled' style on the Continue button this.$refs.siteFooter.enableForwardAction(); + showIssLoadingModal(true); if (this.needToLookupVehicle) { const vehicleLookupResponse = await this.lookupVehicleByVin(this.vin); @@ -185,6 +189,7 @@ export default { // because the form itself actually passes its client-side validation. // SSR-189 Scenario #4. this.$refs.siteFooter.enableForwardAction(); + showIssLoadingModal(false); return; } @@ -192,6 +197,7 @@ export default { this.activeVehicleLookupAlertType = vehicleLookupAlertTypes.NO_SERVICE; this.resetVehicleFromLookup(); this.$refs.siteFooter.disableForwardButton(); + showIssLoadingModal(false); return; } @@ -219,8 +225,8 @@ export default { `${this.vehicleFromLookup.year} ${this.vehicleFromLookup.make} ${this.vehicleFromLookup.model} ${this.forwardButtonCarStyle}`; this.$refs.siteFooter.updateButtonText(`Continue with ${vehicleYearMakeModelStyle}`); this.needToLookupVehicle = false; - - return null; + showIssLoadingModal(false); + return; } let isSelectedGlassAvailableForVehicle = true; @@ -241,7 +247,7 @@ export default { ); // navigate() doesn't stop the processing flow - return null; + return; } // save vehicle to store if it hasn't already been saved @@ -254,7 +260,7 @@ export default { this.navigationScenarios.CORRECTED_VIN_FROM_POLICY_VEHICLE, this.$route ); - return null; + return; } const partsOrQuestionsResponse = await this.getPartsOrQuestions();