@bcrs-shared-components/base-address 3.0.1 → 3.0.2
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/BaseAddress.stories.ts +18 -14
- package/BaseAddress.vue +25 -16
- package/factories/address-factory.ts +12 -11
- package/package.json +2 -2
package/BaseAddress.stories.ts
CHANGED
|
@@ -18,26 +18,30 @@ const Template = (args: AddressIF) => ({
|
|
|
18
18
|
|
|
19
19
|
export const Default = Template.bind({})
|
|
20
20
|
Default['args'] = {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
21
|
+
value: {
|
|
22
|
+
streetAddress: '',
|
|
23
|
+
streetAddressAdditional: '',
|
|
24
|
+
addressCity: '',
|
|
25
|
+
addressRegion: '',
|
|
26
|
+
addressCountry: '',
|
|
27
|
+
postalCode: '',
|
|
28
|
+
deliveryInstructions: ''
|
|
29
|
+
},
|
|
28
30
|
schema: DefaultSchema,
|
|
29
31
|
editing: true
|
|
30
32
|
}
|
|
31
33
|
|
|
32
34
|
export const WithData = Template.bind({})
|
|
33
35
|
WithData['args'] = {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
36
|
+
value: {
|
|
37
|
+
streetAddress: '1234 Sesame Street',
|
|
38
|
+
streetAddressAdditional: '4th Floor',
|
|
39
|
+
addressCity: 'Victoria',
|
|
40
|
+
addressRegion: 'British Columbia',
|
|
41
|
+
addressCountry: 'Canada',
|
|
42
|
+
postalCode: 'V8N 1A1',
|
|
43
|
+
deliveryInstructions: 'Leave at front door'
|
|
44
|
+
},
|
|
41
45
|
schema: DefaultSchema,
|
|
42
46
|
editing: true
|
|
43
47
|
}
|
package/BaseAddress.vue
CHANGED
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
{{ addressLocal.streetAddressAdditional }}
|
|
18
18
|
</p>
|
|
19
19
|
<p class="address-block__info-row">
|
|
20
|
-
<span>{{ addressLocal.
|
|
21
|
-
<span v-if="addressLocal.
|
|
20
|
+
<span>{{ addressLocal.addressCity }}</span>
|
|
21
|
+
<span v-if="addressLocal.addressRegion"> {{ addressLocal.addressRegion }} </span>
|
|
22
22
|
<span v-if="addressLocal.postalCode"> {{ addressLocal.postalCode }}</span>
|
|
23
23
|
</p>
|
|
24
24
|
<p class="address-block__info-row">
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
>
|
|
45
45
|
<div class="form__row">
|
|
46
46
|
<v-autocomplete
|
|
47
|
-
v-model="addressLocal.
|
|
47
|
+
v-model="addressLocal.addressCountry"
|
|
48
48
|
autocomplete="new-password"
|
|
49
49
|
:name="Math.random().toString()"
|
|
50
50
|
variant="filled"
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
component then they are using the mouse (and thus, clicking). -->
|
|
70
70
|
<v-text-field
|
|
71
71
|
:id="streetId"
|
|
72
|
-
v-model="addressLocal.
|
|
72
|
+
v-model="addressLocal.streetAddress"
|
|
73
73
|
autocomplete="new-password"
|
|
74
74
|
class="street-address"
|
|
75
75
|
variant="filled"
|
|
@@ -84,7 +84,7 @@
|
|
|
84
84
|
</div>
|
|
85
85
|
<div class="form__row">
|
|
86
86
|
<v-textarea
|
|
87
|
-
v-model="addressLocal.
|
|
87
|
+
v-model="addressLocal.streetAddressAdditional"
|
|
88
88
|
autocomplete="new-password"
|
|
89
89
|
auto-grow
|
|
90
90
|
variant="filled"
|
|
@@ -92,12 +92,12 @@
|
|
|
92
92
|
:label="streetAdditionalLabel"
|
|
93
93
|
:name="Math.random().toString()"
|
|
94
94
|
rows="1"
|
|
95
|
-
:rules="!!addressLocal.
|
|
95
|
+
:rules="!!addressLocal.streetAddressAdditional ? [...schemaLocal.streetAdditional] : []"
|
|
96
96
|
/>
|
|
97
97
|
</div>
|
|
98
98
|
<div class="form__row three-column">
|
|
99
99
|
<v-text-field
|
|
100
|
-
v-model="addressLocal.
|
|
100
|
+
v-model="addressLocal.addressCity"
|
|
101
101
|
autocomplete="new-password"
|
|
102
102
|
variant="filled"
|
|
103
103
|
class="item address-city"
|
|
@@ -107,7 +107,7 @@
|
|
|
107
107
|
/>
|
|
108
108
|
<v-autocomplete
|
|
109
109
|
v-if="useCountryRegions(country)"
|
|
110
|
-
v-model="addressLocal.
|
|
110
|
+
v-model="addressLocal.addressRegion"
|
|
111
111
|
autocomplete="new-password"
|
|
112
112
|
variant="filled"
|
|
113
113
|
class="item address-region"
|
|
@@ -119,10 +119,18 @@
|
|
|
119
119
|
:menu-props="{ maxHeight: '14rem' }"
|
|
120
120
|
:name="Math.random().toString()"
|
|
121
121
|
:rules="[...schemaLocal.region]"
|
|
122
|
-
|
|
122
|
+
>
|
|
123
|
+
<template #item="{item, props}">
|
|
124
|
+
<v-divider v-if="item.raw.divider" />
|
|
125
|
+
<v-list-item
|
|
126
|
+
v-else
|
|
127
|
+
v-bind="props"
|
|
128
|
+
/>
|
|
129
|
+
</template>
|
|
130
|
+
</v-autocomplete>
|
|
123
131
|
<v-text-field
|
|
124
132
|
v-else
|
|
125
|
-
v-model="addressLocal.
|
|
133
|
+
v-model="addressLocal.addressRegion"
|
|
126
134
|
variant="filled"
|
|
127
135
|
class="item address-region"
|
|
128
136
|
:label="regionLabel"
|
|
@@ -168,7 +176,7 @@ import {
|
|
|
168
176
|
useCountriesProvinces,
|
|
169
177
|
useBaseValidations,
|
|
170
178
|
spaceRules
|
|
171
|
-
} from '
|
|
179
|
+
} from './factories'
|
|
172
180
|
import { AddressIF, SchemaIF } from '@bcrs-shared-components/interfaces'
|
|
173
181
|
import { AddressValidationRules } from '@bcrs-shared-components/enums'
|
|
174
182
|
|
|
@@ -215,6 +223,7 @@ export default defineComponent({
|
|
|
215
223
|
},
|
|
216
224
|
emits: ['valid'],
|
|
217
225
|
setup (props, { emit }) {
|
|
226
|
+
// eslint-disable-next-line vue/no-setup-props-destructure
|
|
218
227
|
const localSchema = { ...props.schema }
|
|
219
228
|
const {
|
|
220
229
|
addressLocal,
|
|
@@ -249,10 +258,10 @@ export default defineComponent({
|
|
|
249
258
|
}
|
|
250
259
|
// reset other address fields (check is for loading an existing address)
|
|
251
260
|
if (oldVal) {
|
|
252
|
-
addressLocal.value.
|
|
253
|
-
addressLocal.value.
|
|
254
|
-
addressLocal.value.
|
|
255
|
-
addressLocal.value.
|
|
261
|
+
addressLocal.value.streetAddress = ''
|
|
262
|
+
addressLocal.value.streetAddressAdditional = ''
|
|
263
|
+
addressLocal.value.addressCity = ''
|
|
264
|
+
addressLocal.value.addressRegion = ''
|
|
256
265
|
addressLocal.value.postalCode = ''
|
|
257
266
|
}
|
|
258
267
|
// wait for schema update and validate the form
|
|
@@ -262,7 +271,7 @@ export default defineComponent({
|
|
|
262
271
|
}
|
|
263
272
|
|
|
264
273
|
onMounted(() => {
|
|
265
|
-
countryChangeHandler(addressLocal.value.
|
|
274
|
+
countryChangeHandler(addressLocal.value.addressCountry, null)
|
|
266
275
|
})
|
|
267
276
|
|
|
268
277
|
watch(() => addressLocal.value, (val) => {
|
|
@@ -187,21 +187,22 @@ export function useCountryRegions (code: string): boolean {
|
|
|
187
187
|
}
|
|
188
188
|
|
|
189
189
|
export function formatAddress (address: AddressIF): AddressIF {
|
|
190
|
-
|
|
191
|
-
if (address.
|
|
192
|
-
|
|
190
|
+
let formattedPostalCode = address.postalCode?.toUpperCase() || ''
|
|
191
|
+
if (address.addressCountry === 'CA') {
|
|
192
|
+
formattedPostalCode = address.postalCode.replace('-', ' ')
|
|
193
193
|
if (address.postalCode.length > 4 && address.postalCode[3] !== ' ') {
|
|
194
|
-
|
|
194
|
+
formattedPostalCode = address.postalCode.slice(0, 3) + ' ' + address.postalCode.slice(3,)
|
|
195
195
|
}
|
|
196
196
|
}
|
|
197
197
|
return {
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
postalCode:
|
|
204
|
-
|
|
198
|
+
addressCity: address.addressCity?.trim(),
|
|
199
|
+
addressCountry: address.addressCountry?.trim(),
|
|
200
|
+
addressRegion: address.addressRegion?.trim(),
|
|
201
|
+
addressType: address.addressType?.trim(),
|
|
202
|
+
deliveryInstructions: address.deliveryInstruction?.trim(),
|
|
203
|
+
postalCode: formattedPostalCode.trim(),
|
|
204
|
+
streetAddress: address.streetAddress?.trim(),
|
|
205
|
+
streetAddressAdditional: address.streetAddressAdditional?.trim()
|
|
205
206
|
}
|
|
206
207
|
}
|
|
207
208
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bcrs-shared-components/base-address",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.2",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -17,5 +17,5 @@
|
|
|
17
17
|
"vue-property-decorator": "^9.1.2",
|
|
18
18
|
"vuelidate-property-decorators": "1.0.28"
|
|
19
19
|
},
|
|
20
|
-
"gitHead": "
|
|
20
|
+
"gitHead": "5f3b43cd73175662b749d8831ed3b207b3fe44fa"
|
|
21
21
|
}
|