diff --git a/src/assets/img/icons/safelite-logo.svg b/src/assets/img/icons/safelite-logo.svg new file mode 100644 index 00000000..e4af742a --- /dev/null +++ b/src/assets/img/icons/safelite-logo.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/constants/dynamic-strings.js b/src/constants/dynamic-strings.js index 1cff1d26..58182bc4 100644 --- a/src/constants/dynamic-strings.js +++ b/src/constants/dynamic-strings.js @@ -3,7 +3,8 @@ const dynamicStrings = { CUSTOM: "custom", ROUTER_LINK: "routerLink:", MODAL_LINK: "modalLink", - TEXT_LINK: 'textLink' + TEXT_LINK: 'textLink', + EXTERNAL_LINK: 'externalLink', }; export { dynamicStrings }; \ No newline at end of file diff --git a/src/digital-components/button-question/button-question.vue b/src/digital-components/button-question/button-question.vue index d36cac83..5679e96c 100644 --- a/src/digital-components/button-question/button-question.vue +++ b/src/digital-components/button-question/button-question.vue @@ -67,10 +67,10 @@ -
- + + >
@@ -81,6 +81,7 @@ import listButtonHorizontal from "@/ux-components/list-button-horizontal/list-bu import listCard from "@/ux-components/list-card/list-card"; import radio from "@/ux-components/radio/radio"; import { ErrorMessage } from "vee-validate"; +import providerPrefRadio from "@/layouts/provider-preference/provider-pref-radio/provider-pref-radio.vue" export default { name: "buttonQuestion", @@ -172,6 +173,9 @@ export default { case "servicePackageRadio": classes = "package-main"; break; + case "providerPrefRadio": + classes = "option-main"; + break; } return classes; }, @@ -180,10 +184,17 @@ export default { classes += this.isWide ? "col-12" : "col"; - if (this.buttonTypeString == "radio") { - classes += " radio-button-container"; - } else if (this.buttonTypeString == "servicePackageRadio") { - classes = "package-wrapper"; + switch(this.buttonTypeString) { + case "radio": + classes += " radio-button-container"; + break; + case "servicePackageRadio": + classes = "package-wrapper"; + break; + case "providerPrefRadio": + classes = "option-wrapper"; + break; + default: } return classes; @@ -228,6 +239,7 @@ export default { listCard, ErrorMessage, radio, + providerPrefRadio }, }; diff --git a/src/global-methods.js b/src/global-methods.js index 92e31d54..b5f784ee 100644 --- a/src/global-methods.js +++ b/src/global-methods.js @@ -37,6 +37,12 @@ export default { }, error => { console.error(error); + + //implement if analytics service is down + if(endpoint.includes("analytics")){ + return resolve({data: ""}); + } + return reject(error.response); } ); diff --git a/src/helpers/cms-content-helper.js b/src/helpers/cms-content-helper.js index 46f4ffab..195274af 100644 --- a/src/helpers/cms-content-helper.js +++ b/src/helpers/cms-content-helper.js @@ -145,18 +145,24 @@ function findAndReplaceGlobalStateValues(widgetModel, widgetName) { function processWidgetItemForReplacement(widgetModel, key) { // If we have a string, and it needs to be replaced. if (typeof widgetModel[key] === 'string') { - widgetModel[key] = processIfStatements( - widgetModel[key], - dynamicStrings.GLOBAL_STATE, - getStoreValueFromString - ); - - if (widgetModel[key].includes(dynamicStrings.GLOBAL_STATE)) { - widgetModel[key] = mapStringToState(widgetModel[key]); + if (widgetModel[key].includes("{if:")) + { + widgetModel[key] = processIfStatements( + widgetModel[key], + dynamicStrings.GLOBAL_STATE, + getStoreValueFromString + ); } + if (widgetModel[key].includes(dynamicStrings.MODAL_LINK)) { widgetModel[key] = mapStringToModal(widgetModel[key]); } + if (widgetModel[key].includes(dynamicStrings.EXTERNAL_LINK)) { + widgetModel[key] = mapStringToLink(widgetModel[key]); + } + if (widgetModel[key].includes(dynamicStrings.GLOBAL_STATE)) { + widgetModel[key] = mapStringToState(widgetModel[key]); + } return widgetModel[key]; } @@ -194,6 +200,24 @@ function mapStringToModal(str) { return returnVal; } +function mapStringToLink(str) { + const startIndex = str.indexOf('{' + dynamicStrings.EXTERNAL_LINK); + let linkToReplace = str.substring(startIndex, str.length); + linkToReplace = linkToReplace.substring(0, linkToReplace.indexOf('}') + 1); + + const params = linkToReplace.substring((dynamicStrings.EXTERNAL_LINK).length + 2, linkToReplace.length - 1); + const splitParams = params.split(','); + + const bodyText = '' + splitParams[1] + ''; + + let returnVal = str.replace(linkToReplace, bodyText); + + if (returnVal.includes(dynamicStrings.EXTERNAL_LINK)) { + returnVal = mapStringToLink(returnVal); + } + return returnVal; +} + // Function to convert a string, into a matching global state item. function mapStringToState(str) { // Pull all matches out of the string. @@ -221,10 +245,10 @@ function mapStringToState(str) { } // Concatenate the string. - stringBuilder = `${stringBuilder} ${stringWithReplacement}`; + str = `${stringBuilder} ${stringWithReplacement}`; } - return stringBuilder.trimStart(); + return str.trimStart(); } function getStoreValueFromString(str) { diff --git a/src/iss-components/site-sub-header/site-sub-header.vue b/src/iss-components/site-sub-header/site-sub-header.vue index 94510321..6f18f00b 100644 --- a/src/iss-components/site-sub-header/site-sub-header.vue +++ b/src/iss-components/site-sub-header/site-sub-header.vue @@ -14,8 +14,7 @@

- - {{ subText }} +

diff --git a/src/layouts/provider-preference/provider-pref-radio/provider-pref-radio.spec.js b/src/layouts/provider-preference/provider-pref-radio/provider-pref-radio.spec.js index 1112ff29..3aa9fc37 100644 --- a/src/layouts/provider-preference/provider-pref-radio/provider-pref-radio.spec.js +++ b/src/layouts/provider-preference/provider-pref-radio/provider-pref-radio.spec.js @@ -2,7 +2,7 @@ import { mount } from "@vue/test-utils" import providerPrefRadio from "./provider-pref-radio" import inputButtonWrapperMixin from "@/mixins/input-button-wrapper-mixin" -describe.skip("provider-pref-radio.vue", () => { +describe("provider-pref-radio.vue", () => { it("Should include buttonLabel in html", async () => { // Arrange let { wrapper } = setupMocks({ diff --git a/src/layouts/provider-preference/provider-pref-radio/provider-pref-radio.vue b/src/layouts/provider-preference/provider-pref-radio/provider-pref-radio.vue index c32dd9d3..2cd261c9 100644 --- a/src/layouts/provider-preference/provider-pref-radio/provider-pref-radio.vue +++ b/src/layouts/provider-preference/provider-pref-radio/provider-pref-radio.vue @@ -1,12 +1,12 @@