diff --git a/src/constants/error-messages.js b/src/constants/error-messages.js
index 6899c2aec..b5cbde3fa 100644
--- a/src/constants/error-messages.js
+++ b/src/constants/error-messages.js
@@ -44,6 +44,10 @@ const errorMessages = {
DAMAGE_TYPES_REQUIRED: "How damage occurred is required",
ZIP_CODE_REQUIRED: "Please enter your ZIP code",
ZIP_CODE_FORMAT: "Zip must be 5 digits",
+ DATE_OF_BIRTH_REQUIRED: "Please enter your date of birth",
+ LOSS_TIME_REQUIRED: "Please enter your loss time",
+ LOSS_LOCATION_REQUIRED: "Please select your loss location",
+ SUBROGATION_REQUIRED: "Please make a selection",
};
export { errorMessages };
diff --git a/src/digital-components/date-picker-popup/date-picker-popup.vue b/src/digital-components/date-picker-popup/date-picker-popup.vue
index 7f3e109ac..ea24197bc 100644
--- a/src/digital-components/date-picker-popup/date-picker-popup.vue
+++ b/src/digital-components/date-picker-popup/date-picker-popup.vue
@@ -26,7 +26,8 @@
:min-date="minDate"
:max-date="maxDate"
:auto-apply="autoApply"
- :text-input="textInput"
+ :text-input="resolvedTextInput"
+ :hide-input-icon="textInputOnly"
:prevent-min-max-navigation="preventMinMaxNavigation"
:teleport="true"
:aria-labels="{ input: questionText }"
@@ -107,6 +108,12 @@ export default {
type: Boolean,
default: false,
},
+ // Force manual entry: text input enabled, calendar popup never opens
+ // and the calendar icon is hidden.
+ textInputOnly: {
+ type: Boolean,
+ default: false,
+ },
preventMinMaxNavigation: {
type: Boolean,
default: false,
@@ -155,7 +162,7 @@ export default {
questionText() {
if (!this.cmsWidgetName) return "";
const text = this.getCmsContent
- ? this.getCmsContent(this.cmsWidgetName, "BodyText")
+ ? this.getCmsContent(this.cmsWidgetName, "QuestionText")
: "";
return this.addOptionalText ? `${text} (optional)` : text;
},
@@ -193,6 +200,15 @@ export default {
clearable: this.clearable,
};
},
+ // Forwarded to VueDatePicker's `text-input` prop. When `textInputOnly`
+ // is set, force text input on AND tell the picker never to open its
+ // menu (so focus/click on the input is a no-op visually).
+ resolvedTextInput() {
+ if (this.textInputOnly) {
+ return { enabled: true, openMenu: false };
+ }
+ return this.textInput;
+ },
},
methods: {
onDateChange(newValue) {
diff --git a/src/layouts/policy-info/policy-info.vue b/src/layouts/policy-info/policy-info.vue
index bb860ee5e..f89e5db09 100644
--- a/src/layouts/policy-info/policy-info.vue
+++ b/src/layouts/policy-info/policy-info.vue
@@ -28,6 +28,40 @@
inputId="policyNumber"
validationRules="policy-number-required" />
+
+
+
+
+
+
+
+
+
+
+
+
{
vm.setCmsContent(resultMap.cmsContent);
vm.clientConfig = resultMap.clientConfig;
+ debugLog(`clientConfig::${clientConfigPageName}`, JSON.stringify(vm.clientConfig));
});
},
@@ -256,6 +409,27 @@ export default {
getCityFromStore() {
return store.getters.order.policy.city;
},
+ getDateOfBirthFromStore() {
+ return store.getters.order.policy.dateOfBirth;
+ },
+ getLastNameFromStore() {
+ return store.getters.order.policy.lastName;
+ },
+ getStreetAddressFromStore() {
+ return store.getters.order.policy.streetAddress;
+ },
+ getLossTimeFromStore() {
+ return store.getters.order.policy.lossTime;
+ },
+ getSubrogationSelectedValueFromStore() {
+ return store.getters.order.policy.subrogation;
+ },
+ getMorePolicyQuestionsFromStore() {
+ return store.getters.order.policy.morePolicyQuestions ?? [];
+ },
+ getLossLocationFromStore() {
+ return store.getters.order.policy.lossLocation;
+ },
backButtonAction() {
this.$router.navigateWithoutSaving(
this.navigationScenarios.CLICKED_BACK,
@@ -273,6 +447,12 @@ export default {
state: this.policyState,
city: this.city,
morePolicyQuestions: this.morePolicyQuestions,
+ lossLocation: this.lossLocation,
+ lossTime: this.lossTime,
+ lastName: this.lastName,
+ dateOfBirth: this.dateOfBirth,
+ subrogation: this.subrogationSelectedValue,
+ streetAddress: this.streetAddress,
},
false
);
diff --git a/src/store/index.js b/src/store/index.js
index a794d702d..9f06b76cc 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -182,6 +182,11 @@ const getDefaultState = () => {
city: null,
state: null,
zipCode: null,
+ dateOfBirth: null,
+ lossTime: null,
+ lossLocation: null,
+ lastName: null,
+ subrogation: null,
},
schedule: {
date: null,
@@ -559,6 +564,12 @@ export const mutations = {
state.order.policy.phoneNumber = insuranceDetails.phoneNumber;
state.order.policy.phoneExtension = insuranceDetails.phoneExtension;
state.order.policy.morePolicyQuestions = insuranceDetails.morePolicyQuestions;
+ state.order.policy.dateOfBirth = insuranceDetails.dateOfBirth;
+ state.order.policy.lossTime = insuranceDetails.lossTime;
+ state.order.policy.lastName = insuranceDetails.lastName;
+ state.order.policy.lossLocation = insuranceDetails.lossLocation;
+ state.order.policy.subrogation = insuranceDetails.subrogation;
+ state.order.policy.streetAddress = insuranceDetails.streetAddress;
}
},
updateDamageDetails(state, damageDetails) {