@lancom/shared 0.0.327 → 0.0.329

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.
@@ -5,20 +5,20 @@
5
5
  <validation-provider
6
6
  v-slot="{ errors }"
7
7
  tag="div"
8
- name="Full Name"
8
+ :name="namePrefix + 'Full Name'"
9
9
  rules="required"
10
10
  class="form-col col-half">
11
11
  <label
12
- for="fullName"
12
+ :for="'fullName'+uniqueKey"
13
13
  class="form-label">
14
14
  Full Name
15
15
  </label>
16
16
  <input
17
- id="fullName"
17
+ :id="'fullName'+uniqueKey"
18
18
  ref="fullName"
19
19
  v-model="address.fullName"
20
20
  placeholder="Full Name"
21
- name="fullName"
21
+ :name="'fullName'+uniqueKey"
22
22
  type="text"
23
23
  class="form-field labelless"
24
24
  :class="{
@@ -35,19 +35,19 @@
35
35
  <validation-provider
36
36
  v-slot="{ errors }"
37
37
  tag="div"
38
- name="company"
38
+ :name="namePrefix + 'Company'"
39
39
  class="form-col col-half">
40
40
  <label
41
- for="company"
41
+ :for="'company'+uniqueKey"
42
42
  class="form-label">
43
43
  Company Name
44
44
  </label>
45
45
  <input
46
- id="company"
46
+ :id="'company'+uniqueKey"
47
47
  ref="company"
48
48
  v-model="address.company"
49
49
  placeholder="Company Name"
50
- name="company"
50
+ :name="'company'+uniqueKey"
51
51
  type="text"
52
52
  class="form-field labelless"
53
53
  :class="{
@@ -66,20 +66,20 @@
66
66
  <validation-provider
67
67
  v-slot="{ errors }"
68
68
  tag="div"
69
- name="email"
69
+ :name="namePrefix + 'Email'"
70
70
  rules="required|email"
71
71
  class="form-col col-half">
72
72
  <label
73
- for="email"
73
+ :for="'email'+uniqueKey"
74
74
  class="form-label">
75
75
  Email
76
76
  </label>
77
77
  <input
78
- id="email"
78
+ :id="'email'+uniqueKey"
79
79
  ref="email"
80
80
  v-model="address.email"
81
81
  placeholder="Email"
82
- name="email"
82
+ :name="'email'+uniqueKey"
83
83
  type="email"
84
84
  class="form-field labelless"
85
85
  :class="{
@@ -96,20 +96,20 @@
96
96
  <validation-provider
97
97
  v-slot="{ errors }"
98
98
  tag="div"
99
- name="Phone"
99
+ :name="namePrefix + 'Phone'"
100
100
  rules="required|phone"
101
101
  class="form-col col-half">
102
102
  <label
103
- for="phone"
103
+ :for="'phone'+uniqueKey"
104
104
  class="form-label">
105
105
  Phone number
106
106
  </label>
107
107
  <input
108
- id="phone"
108
+ :id="'phone'+uniqueKey"
109
109
  ref="phone"
110
110
  v-model="address.phone"
111
111
  placeholder="Phone"
112
- name="phone"
112
+ :name="'phone'+uniqueKey"
113
113
  type="text"
114
114
  class="form-field labelless"
115
115
  :class="{
@@ -127,19 +127,19 @@
127
127
  <validation-provider
128
128
  v-slot="{ errors }"
129
129
  tag="div"
130
- name="Address line 1"
130
+ :name="namePrefix + 'Address line 1'"
131
131
  rules="required"
132
132
  class="form-row">
133
133
  <label
134
- for="addressLine1"
134
+ :for="'addressLine1'+uniqueKey"
135
135
  class="form-label">
136
136
  Address line 1
137
137
  </label>
138
138
  <input
139
- id="addressLine1"
139
+ :id="'addressLine1'+uniqueKey"
140
140
  ref="addressLine1"
141
141
  v-model="address.addressLine1"
142
- name="addressLine1"
142
+ :name="'addressLine1'+uniqueKey"
143
143
  type="text"
144
144
  class="form-field labelless"
145
145
  placeholder="Address line 1"
@@ -158,18 +158,18 @@
158
158
  <validation-provider
159
159
  v-slot="{ errors }"
160
160
  tag="div"
161
- name="Address line 2"
161
+ :name="namePrefix + 'Address line 2'"
162
162
  class="form-row">
163
163
  <label
164
- for="addressLine2"
164
+ :for="'addressLine2'+uniqueKey"
165
165
  class="form-label">
166
166
  Address line 2
167
167
  </label>
168
168
  <input
169
- id="addressLine2"
169
+ :id="'addressLine2'+uniqueKey"
170
170
  ref="addressLine2"
171
171
  v-model="address.addressLine2"
172
- name="addressLine2"
172
+ :name="'addressLine2'+uniqueKey"
173
173
  type="text"
174
174
  class="form-field labelless"
175
175
  placeholder="Address line 2"
@@ -191,20 +191,21 @@
191
191
  :suburb="address.suburb"
192
192
  :labelless="true"
193
193
  :required="true"
194
+ :name-prefix="namePrefix"
194
195
  placeholder="Suburb"
195
196
  @select="handleSuburbChange">
196
197
  </postcode-select>
197
198
  <div class="form-col col-half">
198
199
  <label
199
- for="country"
200
+ :for="'country'+uniqueKey"
200
201
  class="form-label">
201
202
  Country
202
203
  </label>
203
204
  <input
204
- id="country"
205
+ :id="'country'+uniqueKey"
205
206
  ref="country"
206
207
  :value="address.country === 'Australia' ? 'Only Australia' : address.country"
207
- name="country"
208
+ :name="'country'+uniqueKey"
208
209
  type="country"
209
210
  class="form-field filled labelless"
210
211
  disabled />
@@ -214,18 +215,18 @@
214
215
  v-if="!withoutAdditionalInfo"
215
216
  v-slot="{ errors }"
216
217
  tag="div"
217
- name="additionalInfo"
218
+ :name="namePrefix + 'Additional Info'"
218
219
  class="form-row">
219
220
  <label
220
- for="additionalInfo"
221
+ :for="'additionalInfo'+uniqueKey"
221
222
  class="form-label">
222
223
  Additional Info
223
224
  </label>
224
225
  <input
225
- id="additionalInfo"
226
+ :id="'additionalInfo'+uniqueKey"
226
227
  ref="additionalInfo"
227
228
  v-model="address.additionalInfo"
228
- name="additionalInfo"
229
+ :name="'additionalInfo'+uniqueKey"
229
230
  placeholder="Additional Info"
230
231
  type="text"
231
232
  class="form-field labelless"
@@ -253,6 +254,11 @@ export default {
253
254
  components: {
254
255
  PostcodeSelect
255
256
  },
257
+ data() {
258
+ return {
259
+ uniqueKey: Math.random()
260
+ };
261
+ },
256
262
  props: {
257
263
  address: {
258
264
  type: Object,
@@ -264,6 +270,10 @@ export default {
264
270
  withoutAdditionalInfo: {
265
271
  type: Boolean,
266
272
  default: false
273
+ },
274
+ namePrefix: {
275
+ type: String,
276
+ default: ''
267
277
  }
268
278
  },
269
279
  computed: {
@@ -25,6 +25,7 @@
25
25
  <address-form
26
26
  :address="order.billingAddress"
27
27
  :copy-from="order.shippingAddress"
28
+ name-prefix="Delivery "
28
29
  :without-additional-info="true" />
29
30
  </div>
30
31
  </div>
@@ -7,7 +7,7 @@
7
7
  right: 0;
8
8
  }
9
9
  &__card {
10
- min-height: 250px;
10
+ min-height: 400px;
11
11
  display: flex;
12
12
  align-items: center;
13
13
  justify-content: center;
@@ -4,7 +4,7 @@
4
4
  v-slot="{ errors }"
5
5
  tag="div"
6
6
  :rules="required ? 'required' : ''"
7
- name="Postcode"
7
+ :name="namePrefix + 'Postcode'"
8
8
  class="form-group">
9
9
  <label
10
10
  v-if="labelless"
@@ -55,6 +55,9 @@
55
55
  <input
56
56
  type="text"
57
57
  :value="value"
58
+ :id="'postcode'+uniqueKey"
59
+ :name="'postcode'+uniqueKey"
60
+ :required="required"
58
61
  :class="{ 'filled': value || selected }"
59
62
  class="form-hidden-validator form-field"
60
63
  style="display: none" />
@@ -120,10 +123,15 @@ export default {
120
123
  },
121
124
  suburb: {
122
125
  type: Object
126
+ },
127
+ namePrefix: {
128
+ type: String,
129
+ default: ''
123
130
  }
124
131
  },
125
132
  data() {
126
133
  return {
134
+ uniqueKey: Math.random(),
127
135
  selected: null,
128
136
  suburbs: [],
129
137
  options: [],
@@ -58,14 +58,14 @@
58
58
  {{ group.amount }}
59
59
  </div>
60
60
  </div>
61
- <div class="QuoteProductColorSimpleProducts__total mt-6">
61
+ <!-- <div class="QuoteProductColorSimpleProducts__total mt-6">
62
62
  <div class="lc_title-small">
63
63
  Subtotal:
64
64
  </div>
65
65
  <div class="lc_body-small">
66
66
  {{ group.productsTotal | price(currency) }}
67
67
  </div>
68
- </div>
68
+ </div> -->
69
69
  </div>
70
70
  </div>
71
71
  </div>
@@ -36,12 +36,18 @@ async function googleShoppingFeed(axios, config, availableStores, country, endSl
36
36
  return !availableStores || availableStores.includes(sp.storeCode);
37
37
  })
38
38
  .map(sp => {
39
- const feedImages = (product.images || []).filter(i => (i.types || []).includes('feed_primary') && sp.color._id === i.color).map(i => i.image);
40
- const frontImages = (product.images || []).filter(i => (i.types || []).includes('front') && sp.color._id === i.color).map(i => i.image);
41
- const backImages = (product.images || []).filter(i => (i.types || []).includes('back') && sp.color._id === i.color).map(i => i.image);
39
+ const filterImagesByType = imgType => (product.images || []).filter(i => (i.types || []).includes(imgType) && sp.color._id === i.color).map(i => i.image);
40
+ const feedImages = filterImagesByType('feed_primary');
41
+ const frontImages = filterImagesByType('front');
42
+ const backImages = filterImagesByType('back');
43
+ const additionalImages = filterImagesByType('additional_image_link');
42
44
  const catalogFrontImages = (product.images || []).filter(i => (i.types || []).includes('catalog_front')).map(i => i.image);
43
45
  const image = spliceFirstImage(feedImages) || spliceFirstImage(frontImages) || spliceFirstImage(catalogFrontImages) || spliceFirstImage(backImages) || null;
44
- const images = (!backImages?.includes(image) && getImages(backImages)) || (!frontImages?.includes(image) && getImages(frontImages)) || [];
46
+ const images = [
47
+ ...additionalImages,
48
+ ...((!backImages?.includes(image) && getImages(backImages)) || (!frontImages?.includes(image) && getImages(frontImages)) || [])
49
+ .filter(image => !additionalImages.includes(image))
50
+ ];
45
51
  const feedTitle = (product.feedTitle || '')
46
52
  .replace(/{colour}/g, sp.color.name)
47
53
  .replace(/{size}/g, sp.size.name)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lancom/shared",
3
- "version": "0.0.327",
3
+ "version": "0.0.329",
4
4
  "description": "lancom common scripts",
5
5
  "author": "e.tokovenko <e.tokovenko@gmail.com>",
6
6
  "repository": {