@lancom/shared 0.0.373 → 0.0.375
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/js/utils/custom-validation-rules.js +9 -2
- package/components/asides/contact_us/contact-us.vue +8 -34
- package/components/asides/offer_screen_printing/offer-screen-printing.vue +7 -29
- package/components/checkout/order/address-form/address-form.vue +4 -31
- package/components/common/phone_input/phone-input.scss +12 -0
- package/components/common/phone_input/phone-input.vue +139 -0
- package/components/customer/customer_form/customer-form.vue +6 -28
- package/components/modals/failed_conversion_modal/failed-conversion-modal.vue +7 -29
- package/components/modals/order_modal/order-modal.vue +6 -30
- package/components/quotes/quote_request/quote-request.vue +6 -30
- package/package.json +1 -1
|
@@ -1,6 +1,13 @@
|
|
|
1
|
+
|
|
2
|
+
const phoneValidators = {
|
|
3
|
+
'+61': /^[0-9]{9,10}$/
|
|
4
|
+
}
|
|
5
|
+
|
|
1
6
|
export const phone = {
|
|
2
|
-
validate: value => {
|
|
3
|
-
|
|
7
|
+
validate: (value, params) => {
|
|
8
|
+
const [code] = params || [];
|
|
9
|
+
const exp = phoneValidators[code] || /^[0-9-()\s+]+$/;
|
|
10
|
+
return exp.test(`${value || ''}`);
|
|
4
11
|
},
|
|
5
12
|
message: 'Phone number is not valid'
|
|
6
13
|
};
|
|
@@ -66,35 +66,10 @@
|
|
|
66
66
|
{{ errors[0] }}
|
|
67
67
|
</span>
|
|
68
68
|
</validation-provider>
|
|
69
|
-
<
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
:rules="phoneRules"
|
|
74
|
-
class="form-row">
|
|
75
|
-
<input
|
|
76
|
-
id="phone"
|
|
77
|
-
ref="phone"
|
|
78
|
-
v-model="form.phone"
|
|
79
|
-
name="phone"
|
|
80
|
-
type="phone"
|
|
81
|
-
class="form-field"
|
|
82
|
-
:class="{
|
|
83
|
-
'is-danger': errors.length,
|
|
84
|
-
filled: form.phone
|
|
85
|
-
}"
|
|
86
|
-
@keyup.enter="$refs.phone.focus()" />
|
|
87
|
-
<label
|
|
88
|
-
for="phone"
|
|
89
|
-
class="form-label label-inner">
|
|
90
|
-
Phone number
|
|
91
|
-
</label>
|
|
92
|
-
<span
|
|
93
|
-
v-if="errors.length"
|
|
94
|
-
class="form-help is-danger">
|
|
95
|
-
{{ errors[0] }}
|
|
96
|
-
</span>
|
|
97
|
-
</validation-provider>
|
|
69
|
+
<phone-input
|
|
70
|
+
:labelless="false"
|
|
71
|
+
:required="requiredPhone"
|
|
72
|
+
v-model="form.phone" />
|
|
98
73
|
<validation-provider
|
|
99
74
|
v-slot="{ errors }"
|
|
100
75
|
tag="div"
|
|
@@ -170,11 +145,13 @@ import { mapGetters } from 'vuex';
|
|
|
170
145
|
import api from '@lancom/shared/assets/js/api';
|
|
171
146
|
import gtm from '@lancom/shared/assets/js/utils/gtm';
|
|
172
147
|
import EmailLink from '@lancom/shared/components/email_link/email-link';
|
|
148
|
+
import PhoneInput from '@lancom/shared/components/common/phone_input/phone-input';
|
|
173
149
|
|
|
174
150
|
export default {
|
|
175
151
|
name: 'LancomContactUs',
|
|
176
152
|
components: {
|
|
177
|
-
EmailLink
|
|
153
|
+
EmailLink,
|
|
154
|
+
PhoneInput
|
|
178
155
|
},
|
|
179
156
|
props: {
|
|
180
157
|
btnClass: {
|
|
@@ -193,10 +170,7 @@ export default {
|
|
|
193
170
|
};
|
|
194
171
|
},
|
|
195
172
|
computed: {
|
|
196
|
-
...mapGetters(['contacts', 'shop', 'googleClickId'])
|
|
197
|
-
phoneRules() {
|
|
198
|
-
return this.requiredPhone ? 'required|phone' : 'phone';
|
|
199
|
-
}
|
|
173
|
+
...mapGetters(['contacts', 'shop', 'googleClickId'])
|
|
200
174
|
},
|
|
201
175
|
// mounted() {
|
|
202
176
|
// this.preloadReCaptcha();
|
|
@@ -66,35 +66,9 @@
|
|
|
66
66
|
{{ errors[0] }}
|
|
67
67
|
</span>
|
|
68
68
|
</validation-provider>
|
|
69
|
-
<
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
name="Phone"
|
|
73
|
-
rules="required|phone"
|
|
74
|
-
class="form-row">
|
|
75
|
-
<input
|
|
76
|
-
id="phone"
|
|
77
|
-
ref="phone"
|
|
78
|
-
v-model="form.phone"
|
|
79
|
-
name="phone"
|
|
80
|
-
type="phone"
|
|
81
|
-
class="form-field"
|
|
82
|
-
:class="{
|
|
83
|
-
'is-danger': errors.length,
|
|
84
|
-
filled: form.phone
|
|
85
|
-
}"
|
|
86
|
-
@keyup.enter="$refs.phone.focus()" />
|
|
87
|
-
<label
|
|
88
|
-
for="phone"
|
|
89
|
-
class="form-label label-inner">
|
|
90
|
-
Phone number
|
|
91
|
-
</label>
|
|
92
|
-
<span
|
|
93
|
-
v-if="errors.length"
|
|
94
|
-
class="form-help is-danger">
|
|
95
|
-
{{ errors[0] }}
|
|
96
|
-
</span>
|
|
97
|
-
</validation-provider>
|
|
69
|
+
<phone-input
|
|
70
|
+
:labelless="false"
|
|
71
|
+
v-model="form.phone" />
|
|
98
72
|
<validation-provider
|
|
99
73
|
v-slot="{ errors }"
|
|
100
74
|
tag="div"
|
|
@@ -142,12 +116,16 @@ import api from '@lancom/shared/assets/js/api';
|
|
|
142
116
|
import { side } from '@lancom/shared/assets/js/utils/filters';
|
|
143
117
|
import { generateCartProducts } from '@lancom/shared/assets/js/utils/product';
|
|
144
118
|
import { populateProductsFields } from '@lancom/shared/assets/js/utils/order';
|
|
119
|
+
import PhoneInput from '@lancom/shared/components/common/phone_input/phone-input';
|
|
145
120
|
|
|
146
121
|
export default {
|
|
147
122
|
name: 'OfferScreenPrinting',
|
|
148
123
|
filters: {
|
|
149
124
|
side
|
|
150
125
|
},
|
|
126
|
+
components: {
|
|
127
|
+
PhoneInput
|
|
128
|
+
},
|
|
151
129
|
data() {
|
|
152
130
|
return {
|
|
153
131
|
form: {},
|
|
@@ -93,36 +93,7 @@
|
|
|
93
93
|
{{ errors[0] }}
|
|
94
94
|
</span>
|
|
95
95
|
</validation-provider>
|
|
96
|
-
<
|
|
97
|
-
v-slot="{ errors }"
|
|
98
|
-
tag="div"
|
|
99
|
-
:name="namePrefix + 'Phone'"
|
|
100
|
-
rules="required|phone"
|
|
101
|
-
class="form-col col-half">
|
|
102
|
-
<label
|
|
103
|
-
:for="'phone'+uniqueKey"
|
|
104
|
-
class="form-label">
|
|
105
|
-
Phone number
|
|
106
|
-
</label>
|
|
107
|
-
<input
|
|
108
|
-
:id="'phone'+uniqueKey"
|
|
109
|
-
ref="phone"
|
|
110
|
-
v-model="address.phone"
|
|
111
|
-
placeholder="Phone"
|
|
112
|
-
:name="'phone'+uniqueKey"
|
|
113
|
-
type="text"
|
|
114
|
-
class="form-field labelless"
|
|
115
|
-
:class="{
|
|
116
|
-
'is-danger': errors.length,
|
|
117
|
-
filled: address.phone
|
|
118
|
-
}"
|
|
119
|
-
@keyup.enter="$refs.phone.focus()" />
|
|
120
|
-
<span
|
|
121
|
-
v-if="errors.length"
|
|
122
|
-
class="form-help is-danger">
|
|
123
|
-
{{ errors[0] }}
|
|
124
|
-
</span>
|
|
125
|
-
</validation-provider>
|
|
96
|
+
<phone-input v-model="address.phone" class="form-col col-half" />
|
|
126
97
|
</div>
|
|
127
98
|
<validation-provider
|
|
128
99
|
v-slot="{ errors }"
|
|
@@ -248,11 +219,13 @@
|
|
|
248
219
|
<script>
|
|
249
220
|
import { mapGetters, mapMutations, mapActions } from 'vuex';
|
|
250
221
|
import PostcodeSelect from '@lancom/shared/components/common/postcode_select/postcode-select';
|
|
222
|
+
import PhoneInput from '@lancom/shared/components/common/phone_input/phone-input';
|
|
251
223
|
|
|
252
224
|
export default {
|
|
253
225
|
name: 'AddressForm',
|
|
254
226
|
components: {
|
|
255
|
-
PostcodeSelect
|
|
227
|
+
PostcodeSelect,
|
|
228
|
+
PhoneInput
|
|
256
229
|
},
|
|
257
230
|
data() {
|
|
258
231
|
return {
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div>
|
|
3
|
+
<div class="form-row">
|
|
4
|
+
<label
|
|
5
|
+
v-if="labelless"
|
|
6
|
+
class="form-label"
|
|
7
|
+
@click="$refs.phone.$el.focus()">
|
|
8
|
+
{{ displayLabelText }}
|
|
9
|
+
</label>
|
|
10
|
+
<div style="display: flex">
|
|
11
|
+
<div >
|
|
12
|
+
<multiselect
|
|
13
|
+
class="labelless"
|
|
14
|
+
v-model="code"
|
|
15
|
+
:options="codes"
|
|
16
|
+
style="margin-right: 5px; width: 130px;" />
|
|
17
|
+
</div>
|
|
18
|
+
<div style="flex-grow: 1;">
|
|
19
|
+
<validation-provider
|
|
20
|
+
v-slot="{ errors }"
|
|
21
|
+
tag="div"
|
|
22
|
+
class="form-row"
|
|
23
|
+
style="margin-bottom: 0;"
|
|
24
|
+
:name="namePrefix + 'Phone'"
|
|
25
|
+
:rules="required ? `required|phone:${code}` : `phone:${code}`">
|
|
26
|
+
<input
|
|
27
|
+
:id="'phone' + uniqueKey"
|
|
28
|
+
ref="phone"
|
|
29
|
+
v-model="model"
|
|
30
|
+
:placeholder="labelless ? placeholder : ''"
|
|
31
|
+
:disabled="disabled"
|
|
32
|
+
:name="'phone' + uniqueKey"
|
|
33
|
+
type="text"
|
|
34
|
+
class="form-field"
|
|
35
|
+
:class="{
|
|
36
|
+
'is-danger': errors.length,
|
|
37
|
+
filled: model,
|
|
38
|
+
labelless
|
|
39
|
+
}" />
|
|
40
|
+
<label
|
|
41
|
+
v-if="!labelless"
|
|
42
|
+
class="form-label label-inner"
|
|
43
|
+
:for="'phone' + uniqueKey">
|
|
44
|
+
{{ displayLabelText }}
|
|
45
|
+
</label>
|
|
46
|
+
<span
|
|
47
|
+
v-if="errors.length"
|
|
48
|
+
class="form-help is-danger">
|
|
49
|
+
{{ errors[0] }}
|
|
50
|
+
</span>
|
|
51
|
+
</validation-provider>
|
|
52
|
+
</div>
|
|
53
|
+
|
|
54
|
+
</div>
|
|
55
|
+
</div>
|
|
56
|
+
<span
|
|
57
|
+
v-if="copyFrom"
|
|
58
|
+
class="CustomerAddressForm__copy-btn"
|
|
59
|
+
@click="$emit('copy')">
|
|
60
|
+
copy
|
|
61
|
+
</span>
|
|
62
|
+
</div>
|
|
63
|
+
</template>
|
|
64
|
+
|
|
65
|
+
<script>
|
|
66
|
+
import Multiselect from 'vue-multiselect';
|
|
67
|
+
|
|
68
|
+
export default {
|
|
69
|
+
name: 'PhoneInput',
|
|
70
|
+
components: {
|
|
71
|
+
Multiselect
|
|
72
|
+
},
|
|
73
|
+
props: {
|
|
74
|
+
codeCountry: {
|
|
75
|
+
type: Object
|
|
76
|
+
},
|
|
77
|
+
value: {
|
|
78
|
+
type: String
|
|
79
|
+
},
|
|
80
|
+
labelText: {
|
|
81
|
+
type: String
|
|
82
|
+
},
|
|
83
|
+
containerClass: {
|
|
84
|
+
type: String
|
|
85
|
+
},
|
|
86
|
+
placeholder: {
|
|
87
|
+
type: String,
|
|
88
|
+
default: 'Phone'
|
|
89
|
+
},
|
|
90
|
+
copyFrom: {
|
|
91
|
+
type: Boolean,
|
|
92
|
+
default: false
|
|
93
|
+
},
|
|
94
|
+
labelless: {
|
|
95
|
+
type: Boolean,
|
|
96
|
+
default: true
|
|
97
|
+
},
|
|
98
|
+
required: {
|
|
99
|
+
type: Boolean,
|
|
100
|
+
default: true
|
|
101
|
+
},
|
|
102
|
+
disabled: {
|
|
103
|
+
type: Boolean,
|
|
104
|
+
default: false
|
|
105
|
+
},
|
|
106
|
+
namePrefix: {
|
|
107
|
+
type: String,
|
|
108
|
+
default: ''
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
data() {
|
|
112
|
+
return {
|
|
113
|
+
code: '+61',
|
|
114
|
+
uniqueKey: Math.random(),
|
|
115
|
+
codes: ['+44','+61'],
|
|
116
|
+
};
|
|
117
|
+
},
|
|
118
|
+
computed: {
|
|
119
|
+
displayLabelText() {
|
|
120
|
+
return this.labelText || 'Phone number';
|
|
121
|
+
},
|
|
122
|
+
model: {
|
|
123
|
+
get() {
|
|
124
|
+
return (this.value || '').replace(/^\+[0-9]{2}/, '');
|
|
125
|
+
},
|
|
126
|
+
set(phone) {
|
|
127
|
+
if (this.code === '+61' && phone?.length === 10 && phone[0] === '0') {
|
|
128
|
+
phone = phone.slice(1);
|
|
129
|
+
}
|
|
130
|
+
this.$emit('input', `${this.code}${phone}`);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
</script>
|
|
136
|
+
|
|
137
|
+
<style lang="scss">
|
|
138
|
+
@import 'phone-input';
|
|
139
|
+
</style>
|
|
@@ -62,33 +62,9 @@
|
|
|
62
62
|
{{ errors[0] }}
|
|
63
63
|
</span>
|
|
64
64
|
</validation-provider>
|
|
65
|
-
<
|
|
66
|
-
v-
|
|
67
|
-
|
|
68
|
-
name="Phone"
|
|
69
|
-
class="form-row">
|
|
70
|
-
<label
|
|
71
|
-
for="phone"
|
|
72
|
-
class="form-label">
|
|
73
|
-
Phone (optional)
|
|
74
|
-
</label>
|
|
75
|
-
<input
|
|
76
|
-
id="phone"
|
|
77
|
-
v-model="customer.phone"
|
|
78
|
-
name="phone"
|
|
79
|
-
type="number"
|
|
80
|
-
class="form-field labelless"
|
|
81
|
-
placeholder="Phone"
|
|
82
|
-
:class="{
|
|
83
|
-
'is-invalid': errors.length,
|
|
84
|
-
filled: customer.phone
|
|
85
|
-
}" />
|
|
86
|
-
<span
|
|
87
|
-
v-if="errors.length"
|
|
88
|
-
class="form-help is-danger">
|
|
89
|
-
{{ errors[0] }}
|
|
90
|
-
</span>
|
|
91
|
-
</validation-provider>
|
|
65
|
+
<phone-input
|
|
66
|
+
v-model="customer.phone"
|
|
67
|
+
label-text="Phone (optional)" />
|
|
92
68
|
</div>
|
|
93
69
|
<div class="col-6">
|
|
94
70
|
<validation-provider
|
|
@@ -222,12 +198,14 @@
|
|
|
222
198
|
<script>
|
|
223
199
|
import { mapGetters } from 'vuex';
|
|
224
200
|
import PostcodeSelect from '@lancom/shared/components/common/postcode_select/postcode-select';
|
|
201
|
+
import PhoneInput from '@lancom/shared/components/common/phone_input/phone-input';
|
|
225
202
|
import api from '@lancom/shared/assets/js/api';
|
|
226
203
|
|
|
227
204
|
export default {
|
|
228
205
|
name: 'CustomerForm',
|
|
229
206
|
components: {
|
|
230
|
-
PostcodeSelect
|
|
207
|
+
PostcodeSelect,
|
|
208
|
+
PhoneInput
|
|
231
209
|
},
|
|
232
210
|
props: {
|
|
233
211
|
customer: {
|
|
@@ -51,35 +51,9 @@
|
|
|
51
51
|
{{ errors[0] }}
|
|
52
52
|
</span>
|
|
53
53
|
</validation-provider>
|
|
54
|
-
<
|
|
55
|
-
v-
|
|
56
|
-
|
|
57
|
-
name="Phone"
|
|
58
|
-
rules="required"
|
|
59
|
-
class="form-col col-half">
|
|
60
|
-
<input
|
|
61
|
-
id="phone"
|
|
62
|
-
ref="phone"
|
|
63
|
-
v-model="form.phone"
|
|
64
|
-
name="phone"
|
|
65
|
-
type="text"
|
|
66
|
-
class="form-field"
|
|
67
|
-
:class="{
|
|
68
|
-
'is-danger': errors.length,
|
|
69
|
-
filled: form.phone
|
|
70
|
-
}"
|
|
71
|
-
@keyup.enter="$refs.phone.focus()" />
|
|
72
|
-
<label
|
|
73
|
-
for="phone"
|
|
74
|
-
class="form-label label-inner">
|
|
75
|
-
Phone number
|
|
76
|
-
</label>
|
|
77
|
-
<span
|
|
78
|
-
v-if="errors.length"
|
|
79
|
-
class="form-help is-danger">
|
|
80
|
-
{{ errors[0] }}
|
|
81
|
-
</span>
|
|
82
|
-
</validation-provider>
|
|
54
|
+
<phone-input
|
|
55
|
+
v-model="form.phone"
|
|
56
|
+
class="form-col col-half" />
|
|
83
57
|
</div>
|
|
84
58
|
<validation-provider
|
|
85
59
|
v-if="!isSent"
|
|
@@ -136,9 +110,13 @@
|
|
|
136
110
|
<script>
|
|
137
111
|
import api from '@lancom/shared/assets/js/api';
|
|
138
112
|
import { mapGetters } from 'vuex';
|
|
113
|
+
import PhoneInput from '@lancom/shared/components/common/phone_input/phone-input';
|
|
139
114
|
|
|
140
115
|
export default {
|
|
141
116
|
name: 'FailedConversionModal',
|
|
117
|
+
components: {
|
|
118
|
+
PhoneInput
|
|
119
|
+
},
|
|
142
120
|
props: {
|
|
143
121
|
file: {
|
|
144
122
|
type: Object,
|
|
@@ -40,35 +40,9 @@
|
|
|
40
40
|
{{ errors[0] }}
|
|
41
41
|
</span>
|
|
42
42
|
</validation-provider>
|
|
43
|
-
<
|
|
44
|
-
v-
|
|
45
|
-
|
|
46
|
-
name="Phone"
|
|
47
|
-
rules="required"
|
|
48
|
-
class="form-col col-half">
|
|
49
|
-
<input
|
|
50
|
-
id="phone"
|
|
51
|
-
ref="phone"
|
|
52
|
-
v-model="form.phone"
|
|
53
|
-
name="phone"
|
|
54
|
-
type="text"
|
|
55
|
-
class="form-field"
|
|
56
|
-
:class="{
|
|
57
|
-
'is-danger': errors.length,
|
|
58
|
-
filled: form.phone
|
|
59
|
-
}"
|
|
60
|
-
@keyup.enter="$refs.phone.focus()" />
|
|
61
|
-
<label
|
|
62
|
-
for="phone"
|
|
63
|
-
class="form-label label-inner">
|
|
64
|
-
Phone number
|
|
65
|
-
</label>
|
|
66
|
-
<span
|
|
67
|
-
v-if="errors.length"
|
|
68
|
-
class="form-help is-danger">
|
|
69
|
-
{{ errors[0] }}
|
|
70
|
-
</span>
|
|
71
|
-
</validation-provider>
|
|
43
|
+
<phone-input
|
|
44
|
+
v-model="form.phone"
|
|
45
|
+
class="form-col col-half" />
|
|
72
46
|
</div>
|
|
73
47
|
<validation-provider
|
|
74
48
|
v-slot="{ errors }"
|
|
@@ -269,6 +243,7 @@
|
|
|
269
243
|
<script>
|
|
270
244
|
import { mapGetters, mapActions, mapMutations } from 'vuex';
|
|
271
245
|
import PostcodeSelect from '@lancom/shared/components/common/postcode_select/postcode-select';
|
|
246
|
+
import PhoneInput from '@lancom/shared/components/common/phone_input/phone-input';
|
|
272
247
|
import ProductTotalPricing from '@lancom/shared/components/common/products_total_pricing/products-total-pricing';
|
|
273
248
|
import { price } from '@lancom/shared/assets/js/utils/filters';
|
|
274
249
|
|
|
@@ -277,7 +252,8 @@ export default {
|
|
|
277
252
|
filters: { price },
|
|
278
253
|
components: {
|
|
279
254
|
PostcodeSelect,
|
|
280
|
-
ProductTotalPricing
|
|
255
|
+
ProductTotalPricing,
|
|
256
|
+
PhoneInput
|
|
281
257
|
},
|
|
282
258
|
props: {
|
|
283
259
|
switchModal: {
|
|
@@ -35,35 +35,9 @@
|
|
|
35
35
|
{{ errors[0] }}
|
|
36
36
|
</span>
|
|
37
37
|
</validation-provider>
|
|
38
|
-
<
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
name="Phone"
|
|
42
|
-
rules="required|phone"
|
|
43
|
-
class="form-row">
|
|
44
|
-
<label
|
|
45
|
-
for="quote-request-name"
|
|
46
|
-
class="form-label">
|
|
47
|
-
Your Phone
|
|
48
|
-
</label>
|
|
49
|
-
<input
|
|
50
|
-
id="quote-request-phone"
|
|
51
|
-
ref="name"
|
|
52
|
-
v-model="quote.address.phone"
|
|
53
|
-
name="phone"
|
|
54
|
-
placeholder="Phone"
|
|
55
|
-
type="text"
|
|
56
|
-
class="form-field labelless"
|
|
57
|
-
:class="{
|
|
58
|
-
'is-danger': errors.length,
|
|
59
|
-
filled: quote.address.phone
|
|
60
|
-
}" />
|
|
61
|
-
<span
|
|
62
|
-
v-if="errors.length"
|
|
63
|
-
class="form-help is-danger">
|
|
64
|
-
{{ errors[0] }}
|
|
65
|
-
</span>
|
|
66
|
-
</validation-provider>
|
|
38
|
+
<phone-input
|
|
39
|
+
class="form-row"
|
|
40
|
+
v-model="quote.address.phone" />
|
|
67
41
|
<validation-provider
|
|
68
42
|
v-slot="{ errors }"
|
|
69
43
|
tag="div"
|
|
@@ -322,6 +296,7 @@ import { mapGetters } from 'vuex';
|
|
|
322
296
|
import CheckedIcon from '@lancom/shared/components/common/checked-icon';
|
|
323
297
|
import FileUploader from '@lancom/shared/components/common/file_uploader';
|
|
324
298
|
import PostcodeSelect from '@lancom/shared/components/common/postcode_select/postcode-select';
|
|
299
|
+
import PhoneInput from '@lancom/shared/components/common/phone_input/phone-input';
|
|
325
300
|
|
|
326
301
|
export default {
|
|
327
302
|
name: 'QuoteRequest',
|
|
@@ -329,7 +304,8 @@ export default {
|
|
|
329
304
|
CheckedIcon,
|
|
330
305
|
FileUploader,
|
|
331
306
|
PostcodeSelect,
|
|
332
|
-
Multiselect
|
|
307
|
+
Multiselect,
|
|
308
|
+
PhoneInput
|
|
333
309
|
},
|
|
334
310
|
data() {
|
|
335
311
|
return {
|