Merge branch 'develop' into feature/SSR-1118
This commit is contained in:
commit
2fec3d5891
9 changed files with 58 additions and 50 deletions
8
package-lock.json
generated
8
package-lock.json
generated
|
|
@ -12,7 +12,7 @@
|
||||||
"axios-retry": "^3.5.0",
|
"axios-retry": "^3.5.0",
|
||||||
"bootstrap": "^5.3",
|
"bootstrap": "^5.3",
|
||||||
"iframe-resizer": "^4.3.9",
|
"iframe-resizer": "^4.3.9",
|
||||||
"maska": "^1.5.0",
|
"maska": "^2.1.1",
|
||||||
"pinia": "^2.1.4",
|
"pinia": "^2.1.4",
|
||||||
"pinia-plugin-persistedstate": "^2.2.0",
|
"pinia-plugin-persistedstate": "^2.2.0",
|
||||||
"uuid": "^9.0.1",
|
"uuid": "^9.0.1",
|
||||||
|
|
@ -13947,9 +13947,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/maska": {
|
"node_modules/maska": {
|
||||||
"version": "1.5.0",
|
"version": "2.1.11",
|
||||||
"resolved": "https://registry.npmjs.org/maska/-/maska-1.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/maska/-/maska-2.1.11.tgz",
|
||||||
"integrity": "sha512-BwZXzs5gHeu6wtn3iWFqrKRtcsM3sTpkHvfAngVNVNlN7tl9ZyQUeHTz11s9Sy7Bq1MoQ+xyR/+IzghY8nR84Q=="
|
"integrity": "sha512-IGqWjBnKxMYcVa06pb4mPfag9sJjnR2T15CdGfQ2llR3gajiSd4AxXCvNqHMEq9W3UBhjjTazgWumsP3sWrUSg=="
|
||||||
},
|
},
|
||||||
"node_modules/mdn-data": {
|
"node_modules/mdn-data": {
|
||||||
"version": "2.0.14",
|
"version": "2.0.14",
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@
|
||||||
"axios-retry": "^3.5.0",
|
"axios-retry": "^3.5.0",
|
||||||
"bootstrap": "^5.3",
|
"bootstrap": "^5.3",
|
||||||
"iframe-resizer": "^4.3.9",
|
"iframe-resizer": "^4.3.9",
|
||||||
"maska": "^1.5.0",
|
"maska": "^2.1.1",
|
||||||
"pinia": "^2.1.4",
|
"pinia": "^2.1.4",
|
||||||
"pinia-plugin-persistedstate": "^2.2.0",
|
"pinia-plugin-persistedstate": "^2.2.0",
|
||||||
"uuid": "^9.0.1",
|
"uuid": "^9.0.1",
|
||||||
|
|
|
||||||
15
src/constants/maska-masks.js
Normal file
15
src/constants/maska-masks.js
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
const MaskaFormattedMasks = {
|
||||||
|
PHONE_NUMBER: {
|
||||||
|
mask: 'x##-###-####',
|
||||||
|
tokens: {
|
||||||
|
token: 'x',
|
||||||
|
pattern: '[2-9]'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ZIPCODE: {
|
||||||
|
mask: '#####',
|
||||||
|
tokens: null
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
export default MaskaFormattedMasks;
|
||||||
|
|
@ -19,7 +19,9 @@
|
||||||
:id="inputId"
|
:id="inputId"
|
||||||
:ref="inputId"
|
:ref="inputId"
|
||||||
v-model.trim="value"
|
v-model.trim="value"
|
||||||
v-maska="mask"
|
v-maska
|
||||||
|
:data-maska="getMaskFromProp"
|
||||||
|
:data-maska-tokens="getTokensFromProp"
|
||||||
class="form-control"
|
class="form-control"
|
||||||
:type="type"
|
:type="type"
|
||||||
:name="inputId"
|
:name="inputId"
|
||||||
|
|
@ -97,7 +99,7 @@ export default {
|
||||||
iconRight: Boolean, // Place icon on right side of text input, otherwise default is left if hasIcon prop is used
|
iconRight: Boolean, // Place icon on right side of text input, otherwise default is left if hasIcon prop is used
|
||||||
hasError: Boolean,
|
hasError: Boolean,
|
||||||
mask: {
|
mask: {
|
||||||
type: String,
|
type: [String, Object],
|
||||||
default: ''
|
default: ''
|
||||||
},
|
},
|
||||||
validationRules: String,
|
validationRules: String,
|
||||||
|
|
@ -183,6 +185,21 @@ export default {
|
||||||
|
|
||||||
return questionText;
|
return questionText;
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
getMaskFromProp() {
|
||||||
|
if (this.mask) {
|
||||||
|
if (this.mask.mask) {
|
||||||
|
return this.mask.mask;
|
||||||
|
}
|
||||||
|
return this.mask;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
},
|
||||||
|
getTokensFromProp() {
|
||||||
|
if (this.mask?.tokens) {
|
||||||
|
return `{ '${this.mask.tokens.token}': { 'pattern': '${this.mask.tokens.pattern}' }}`;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@
|
||||||
inputId="phoneNumberField"
|
inputId="phoneNumberField"
|
||||||
cmsWidgetName="PhoneNumberQuestion"
|
cmsWidgetName="PhoneNumberQuestion"
|
||||||
isRequired
|
isRequired
|
||||||
:mask="mask"
|
:mask="phoneMask"
|
||||||
disableAutoFill
|
disableAutoFill
|
||||||
:validationRules="rules.phoneNumber" />
|
:validationRules="rules.phoneNumber" />
|
||||||
<textboxQuestion
|
<textboxQuestion
|
||||||
|
|
@ -80,6 +80,7 @@ import routerParams from '@/router/router-constants/router-params';
|
||||||
import canNavigateBackFromBailout from '@/helpers/bailout-helper';
|
import canNavigateBackFromBailout from '@/helpers/bailout-helper';
|
||||||
import BailoutCode from '@/constants/bailoutCode';
|
import BailoutCode from '@/constants/bailoutCode';
|
||||||
import issPageValues from '@/router/router-constants/issPage-values';
|
import issPageValues from '@/router/router-constants/issPage-values';
|
||||||
|
import MaskaFormattedMasks from '@/constants/maska-masks';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'bailout-page',
|
name: 'bailout-page',
|
||||||
|
|
@ -176,15 +177,8 @@ export default {
|
||||||
canNavigateBack() {
|
canNavigateBack() {
|
||||||
return canNavigateBackFromBailout();
|
return canNavigateBackFromBailout();
|
||||||
},
|
},
|
||||||
mask() {
|
phoneMask() {
|
||||||
return {
|
return MaskaFormattedMasks.PHONE_NUMBER;
|
||||||
mask: 'x##-###-####',
|
|
||||||
tokens: {
|
|
||||||
x: {
|
|
||||||
pattern: /[2-9]/
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@
|
||||||
inputId="phoneNumber"
|
inputId="phoneNumber"
|
||||||
:cmsWidgetName="widget.phoneNumberQuestion"
|
:cmsWidgetName="widget.phoneNumberQuestion"
|
||||||
isRequired
|
isRequired
|
||||||
:mask="mask"
|
:mask="phoneMask"
|
||||||
:validationRules="rules.phoneNumber" />
|
:validationRules="rules.phoneNumber" />
|
||||||
<checkbox
|
<checkbox
|
||||||
ref="requestTextUpdatesCheckbox"
|
ref="requestTextUpdatesCheckbox"
|
||||||
|
|
@ -112,6 +112,7 @@ import { Form } from 'vee-validate';
|
||||||
import BaseFormMixin from '@/mixins/base-form-mixin.js';
|
import BaseFormMixin from '@/mixins/base-form-mixin.js';
|
||||||
import { useMainStore } from '@/store/index.js';
|
import { useMainStore } from '@/store/index.js';
|
||||||
import globalRules from '@/constants/global-rules.js';
|
import globalRules from '@/constants/global-rules.js';
|
||||||
|
import MaskaFormattedMasks from '@/constants/maska-masks';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'contact-details',
|
name: 'contact-details',
|
||||||
|
|
@ -181,15 +182,8 @@ export default {
|
||||||
textUpdateDisclaimerText() {
|
textUpdateDisclaimerText() {
|
||||||
return `*${this.getCmsContent(this.widget.disclaimer, 'Text')}`;
|
return `*${this.getCmsContent(this.widget.disclaimer, 'Text')}`;
|
||||||
},
|
},
|
||||||
mask() {
|
phoneMask() {
|
||||||
return {
|
return MaskaFormattedMasks.PHONE_NUMBER;
|
||||||
mask: 'x##-###-####',
|
|
||||||
tokens: {
|
|
||||||
x: {
|
|
||||||
pattern: /[2-9]/
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods:
|
methods:
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@
|
||||||
inputId="phoneNumber"
|
inputId="phoneNumber"
|
||||||
:cmsWidgetName="widget.phoneNumberQuestion"
|
:cmsWidgetName="widget.phoneNumberQuestion"
|
||||||
isRequired
|
isRequired
|
||||||
:mask="mask"
|
:mask="phoneMask"
|
||||||
disableAutoFill
|
disableAutoFill
|
||||||
:validationRules="rules.phoneNumber" />
|
:validationRules="rules.phoneNumber" />
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -53,6 +53,7 @@ import textboxQuestion from '@/digital-components/textbox-question/textbox-quest
|
||||||
// Supporting Files
|
// Supporting Files
|
||||||
import { useMainStore } from '@/store/index.js';
|
import { useMainStore } from '@/store/index.js';
|
||||||
import globalRules from '@/constants/global-rules.js';
|
import globalRules from '@/constants/global-rules.js';
|
||||||
|
import MaskaFormattedMasks from '@/constants/maska-masks';
|
||||||
import widgetFields from '@/constants/cms-widget-fields.js';
|
import widgetFields from '@/constants/cms-widget-fields.js';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|
@ -102,15 +103,8 @@ export default {
|
||||||
footerButtonText() {
|
footerButtonText() {
|
||||||
return this.getCmsContent(this.widget.drawerFooter, widgetFields.FOOTER_WIDGET.FORWARD_BUTTON_TEXT);
|
return this.getCmsContent(this.widget.drawerFooter, widgetFields.FOOTER_WIDGET.FORWARD_BUTTON_TEXT);
|
||||||
},
|
},
|
||||||
mask() {
|
phoneMask() {
|
||||||
return {
|
return MaskaFormattedMasks.PHONE_NUMBER;
|
||||||
mask: 'x##-###-####',
|
|
||||||
tokens: {
|
|
||||||
x: {
|
|
||||||
pattern: /[2-9]/
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
|
||||||
|
|
@ -86,7 +86,7 @@
|
||||||
cmsWidgetName="PhoneNumberQuestion"
|
cmsWidgetName="PhoneNumberQuestion"
|
||||||
:validationRules="rules.phoneNumber"
|
:validationRules="rules.phoneNumber"
|
||||||
isRequired
|
isRequired
|
||||||
:mask="mask"
|
:mask="phoneMask"
|
||||||
disableAutoFill />
|
disableAutoFill />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -197,6 +197,7 @@ import { useMainStore } from '@/store';
|
||||||
import states from '@/constants/states';
|
import states from '@/constants/states';
|
||||||
import globalRules from '@/constants/global-rules';
|
import globalRules from '@/constants/global-rules';
|
||||||
import routerParams from '@/router/router-constants/router-params';
|
import routerParams from '@/router/router-constants/router-params';
|
||||||
|
import MaskaFormattedMasks from '@/constants/maska-masks';
|
||||||
|
|
||||||
// define validation rules
|
// define validation rules
|
||||||
defineRule('damage-option-required', required(errorMessages.DAMAGE_OPTION_REQUIRED));
|
defineRule('damage-option-required', required(errorMessages.DAMAGE_OPTION_REQUIRED));
|
||||||
|
|
@ -313,15 +314,8 @@ export default {
|
||||||
maxCoverageLookupAttemptsReached() {
|
maxCoverageLookupAttemptsReached() {
|
||||||
return this.mainStore.applicationUser.coverageLookupAttempts >= 11;
|
return this.mainStore.applicationUser.coverageLookupAttempts >= 11;
|
||||||
},
|
},
|
||||||
mask() {
|
phoneMask() {
|
||||||
return {
|
return MaskaFormattedMasks.PHONE_NUMBER;
|
||||||
mask: 'x##-###-####',
|
|
||||||
tokens: {
|
|
||||||
x: {
|
|
||||||
pattern: /[2-9]/
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ import piniaPluginPersistedstate from 'pinia-plugin-persistedstate';
|
||||||
import { useMainStore } from '@/store';
|
import { useMainStore } from '@/store';
|
||||||
import baseMixin from '@/mixins/base-mixin';
|
import baseMixin from '@/mixins/base-mixin';
|
||||||
import { createPinia } from 'pinia';
|
import { createPinia } from 'pinia';
|
||||||
import Maska from 'maska';
|
import { vMaska } from 'maska';
|
||||||
import LoadScript from 'vue-plugin-load-script';
|
import LoadScript from 'vue-plugin-load-script';
|
||||||
|
|
||||||
import analyticsMixin from '@/mixins/analytics-mixin';
|
import analyticsMixin from '@/mixins/analytics-mixin';
|
||||||
|
|
@ -29,8 +29,8 @@ useMainStore().populateInitialState();
|
||||||
|
|
||||||
// Additional Vue items to setup
|
// Additional Vue items to setup
|
||||||
vueApp.use(router);
|
vueApp.use(router);
|
||||||
vueApp.use(Maska);
|
|
||||||
vueApp.use(LoadScript);
|
vueApp.use(LoadScript);
|
||||||
|
vueApp.directive('maska', vMaska);
|
||||||
vueApp.mixin(baseMixin);
|
vueApp.mixin(baseMixin);
|
||||||
vueApp.mixin(analyticsMixin);
|
vueApp.mixin(analyticsMixin);
|
||||||
vueApp.mixin(experimentMixin);
|
vueApp.mixin(experimentMixin);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue