@lancom/shared 0.0.442 → 0.0.444

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.
Files changed (23) hide show
  1. package/components/checkout/cart/cart.mixin.js +3 -0
  2. package/components/checkout/cart/cart.scss +10 -1
  3. package/components/checkout/cart/cart.vue +26 -5
  4. package/components/checkout/cart/cart_entity/cart-entity.mixin.js +4 -0
  5. package/components/checkout/cart/cart_entity/cart-entity.scss +5 -1
  6. package/components/checkout/cart/cart_entity/cart-entity.vue +8 -1
  7. package/components/checkout/cart/cart_shipping/cart-shipping.vue +3 -0
  8. package/components/common/number_input/number-input.vue +5 -5
  9. package/components/order/order_view/order-view.mixin.js +2 -2
  10. package/components/product/editor_pricing/editor-pricing.scss +7 -0
  11. package/components/product/editor_pricing/editor-pricing.vue +25 -2
  12. package/components/product/layouts/product_colors_selector/product_colors_selector_options/product-colors-selector-options.vue +2 -3
  13. package/components/product/product_check_delivery/product-check-delivery.vue +31 -8
  14. package/components/product/products_size_selector_color/product_size_selector_color/product-size-selector-color.vue +2 -2
  15. package/components/products/children_categories/children-categories.scss +7 -1
  16. package/components/products/children_categories/children-categories.vue +12 -9
  17. package/components/products/products_autocomplete/products-autocomplete.scss +2 -5
  18. package/components/products/products_autocomplete/products_autocomplete-item/products-autocomplete-item.scss +57 -2
  19. package/components/products/products_autocomplete/products_autocomplete-item/products-autocomplete-item.vue +13 -3
  20. package/feeds/google-shopping.js +8 -3
  21. package/mixins/layouts/products.js +0 -1
  22. package/package.json +1 -1
  23. package/plugins/save-state.js +1 -1
@@ -49,6 +49,9 @@ export default {
49
49
  },
50
50
  isNotValidPrintsBigSizeQuantity() {
51
51
  return this.simpleProductsQuantity ? ((this.bigSizeSimpleProductsQuantity / this.simpleProductsQuantity * 100) > 50) : false;
52
+ },
53
+ hasClearanceProduct() {
54
+ return this.entities.some(entity => entity.product?.isClearance || entity.simpleProducts?.some(sp => sp.pricing?.some(p => p?.clearance)));
52
55
  }
53
56
  },
54
57
  watch: {
@@ -18,8 +18,17 @@
18
18
  color: $error;
19
19
  font-size: 13px;
20
20
  }
21
+ &__clearance-checkbox {
22
+ padding-bottom: 10px;
23
+ }
24
+ &__clearance-text {
25
+ font-size: 14px;
26
+ font-weight: 500;
27
+ line-height: 20px;
28
+ margin-left: 10px;
29
+ }
21
30
  // &__total-info {
22
31
  // position: sticky;
23
32
  // top: 130px;
24
33
  // }
25
- }
34
+ }
@@ -41,9 +41,20 @@
41
41
  <div class="Cart__quantity-errors">
42
42
  <cart-quantity-errors />
43
43
  </div>
44
- <div class="mt-10">
44
+
45
+ <div
46
+ v-if="hasClearanceProduct"
47
+ class="Cart__clearance-checkbox mt-10">
48
+ <checkbox v-model="clearanceAccepted">
49
+ <span class="Cart__clearance-text">Confirm clearance products are non-returnable.</span>
50
+ </checkbox>
51
+ </div>
52
+
53
+ <div
54
+ v-tooltip="isNotValidShipping ? 'To proceed, enter your postcode to calculate shipping' : ''"
55
+ class="mt-10">
45
56
  <btn
46
- :btn-disabled="isNotValidShipping || isNotValidQuantity || cartPricingError || cartPricingCalculating"
57
+ :btn-disabled="isCheckoutDisabled"
47
58
  :btn-block="true"
48
59
  :to="'/checkout/order'"
49
60
  btn-class="green"
@@ -82,6 +93,7 @@ import { price } from '@lancom/shared/assets/js/utils/filters';
82
93
  import CartMixin from '@lancom/shared/components/checkout/cart/cart.mixin';
83
94
  import CartPriceInfo from '@lancom/shared/components/checkout/cart/cart_price_info/cart-price-info';
84
95
  import CartShipping from '@lancom/shared/components/checkout/cart/cart_shipping/cart-shipping';
96
+ import Checkbox from '@lancom/shared/components/common/checkbox';
85
97
 
86
98
  export default {
87
99
  name: 'CheckoutCart',
@@ -91,15 +103,21 @@ export default {
91
103
  CartPriceInfo,
92
104
  CartQuantityErrors,
93
105
  CouponSelect,
94
- CartShipping
106
+ CartShipping,
107
+ Checkbox
95
108
  },
96
109
  filters: { price },
97
110
  mixins: [CartMixin],
111
+ data() {
112
+ return {
113
+ clearanceAccepted: false
114
+ };
115
+ },
98
116
  computed: {
99
117
  ...mapGetters(['MESSAGES', 'SETTINGS', 'currency', 'country']),
100
- ...mapGetters('cart', ['isEmpty','cartPricingError', 'cartPricing', 'cartPricingCalculating', 'entities', 'entitiesWithoutFreeProducts']),
118
+ ...mapGetters('cart', ['isEmpty', 'cartPricingError', 'cartPricing', 'cartPricingCalculating', 'entities', 'entitiesWithoutFreeProducts']),
101
119
  productsEntities() {
102
- return this.entitiesWithoutFreeProducts.filter(e => !e.productsKit)
120
+ return this.entitiesWithoutFreeProducts.filter(e => !e.productsKit);
103
121
  },
104
122
  productsKitsEntities() {
105
123
  const entities = this.entitiesWithoutFreeProducts.filter(e => !!e.productsKit);
@@ -126,6 +144,9 @@ export default {
126
144
  this.setCoupon(coupon);
127
145
  this.calculateCartPrice({ shop: this.shop, country: this.country, currency: this.currency });
128
146
  }
147
+ },
148
+ isCheckoutDisabled() {
149
+ return this.isNotValidShipping || this.isNotValidQuantity || this.cartPricingError || this.cartPricingCalculating || (this.hasClearanceProduct && !this.clearanceAccepted);
129
150
  }
130
151
  },
131
152
  methods: {
@@ -54,6 +54,10 @@ export default {
54
54
  const { totalPriceWithoutTax = 0 } = this.cartEntityPricing;
55
55
  return totalPriceWithoutTax;
56
56
  },
57
+ totalPriceWithTax() {
58
+ const { totalPrice = 0 } = this.cartEntityPricing;
59
+ return totalPrice;
60
+ },
57
61
  printsTotalPrice() {
58
62
  const { prints = {} } = this.cartEntityPricing;
59
63
  return prints.totalPriceWithoutTax || 0;
@@ -57,6 +57,10 @@
57
57
  text-align: right;
58
58
  margin-top: 24px;
59
59
  }
60
+ &__subtotal2 {
61
+ text-align: right;
62
+ margin-top: 5px;
63
+ }
60
64
  &__item {
61
65
  border-bottom: 1px solid #F4F4F4;
62
66
  &:first-child {
@@ -71,4 +75,4 @@
71
75
  padding: 16px;
72
76
  margin-top: 16px;
73
77
  }
74
- }
78
+ }
@@ -83,6 +83,9 @@
83
83
  <div class="CartEntity__subtotal lc_title">
84
84
  Subtotal: {{ totalPrice | price(currency) }}
85
85
  </div>
86
+ <div class="CartEntity__subtotal2 lc_title">
87
+ Subtotal inc. {{ taxName }}: {{ totalPriceWithTax | price(currency) }}
88
+ </div>
86
89
  <i
87
90
  v-if="editable"
88
91
  class="icon-delete CartEntity__remove"
@@ -92,6 +95,7 @@
92
95
  </template>
93
96
 
94
97
  <script>
98
+ import { mapGetters } from 'vuex';
95
99
  import { price } from '@lancom/shared/assets/js/utils/filters';
96
100
  import CartEntityPrints from './cart_entity_prints/cart-entity-prints';
97
101
  import CartCouponFreeProducts from './cart_coupon_free_products/cart-coupon-free-products';
@@ -110,7 +114,10 @@ export default {
110
114
  },
111
115
  mixins: [
112
116
  CartEntity
113
- ]
117
+ ],
118
+ computed: {
119
+ ...mapGetters(['taxName'])
120
+ }
114
121
  };
115
122
  </script>
116
123
 
@@ -129,6 +129,9 @@ export default {
129
129
  if (this.wantsToPickup && this.hasNotValidProductsPickup) {
130
130
  this.visiblePickupError = true;
131
131
  }
132
+ if (!this.suburb && this.SETTINGS.DEFAULT_POSTCODE) {
133
+ this.setSuburb({ postcode: this.SETTINGS.DEFAULT_POSTCODE });
134
+ }
132
135
  },
133
136
  methods: {
134
137
  ...mapActions([
@@ -39,11 +39,6 @@ import { generateGUID } from '@lancom/shared/assets/js/utils/guid';
39
39
 
40
40
  export default {
41
41
  name: 'NumberInput',
42
- data() {
43
- return {
44
- uniqueCode: generateGUID()
45
- };
46
- },
47
42
  props: {
48
43
  id: {
49
44
  type: String
@@ -77,6 +72,11 @@ export default {
77
72
  default: false
78
73
  }
79
74
  },
75
+ data() {
76
+ return {
77
+ uniqueCode: generateGUID()
78
+ };
79
+ },
80
80
  computed: {
81
81
  model: {
82
82
  get() {
@@ -67,7 +67,7 @@ export default {
67
67
  },
68
68
  additionalInfo() {
69
69
  return this.displayAddress.additionalInfo;
70
- },
70
+ },
71
71
  purchaseOrderNumber() {
72
72
  return this.invoice?.purchaseOrderNumber || this.order.purchaseOrderNumber;
73
73
  },
@@ -98,7 +98,7 @@ export default {
98
98
  return tax(this.model.total, this.gstTax) - this.model.total;
99
99
  },
100
100
  taxName() {
101
- return this.settings?.pricing?.taxName || 'GST'
101
+ return this.settings?.pricing?.taxName || 'GST';
102
102
  },
103
103
  paymentCard() {
104
104
  if (this.model.charge?.card) {
@@ -27,6 +27,13 @@
27
27
  }
28
28
  }
29
29
  }
30
+ &__clearance-message {
31
+ padding: 10px;
32
+ text-align: center;
33
+ border-top: 1px solid #E5E5E5;
34
+ font-size: 13px;
35
+ color: #0b7d2f;
36
+ }
30
37
  &__footer {
31
38
  background: $green;
32
39
  height: 76px;
@@ -69,7 +69,16 @@
69
69
  {{ hasPrintIssues ? 'Proceed with order, Will be in touch regarding print issue' : 'All good to go!' }}
70
70
  </div>
71
71
  </div>
72
-
72
+ <div
73
+ v-if="product.isClearance"
74
+ class="EditorPricing__clearance-message">
75
+ Product is non-returnable clearance product
76
+ </div>
77
+ <div
78
+ v-if="clearanceColorsWithQty.length"
79
+ class="EditorPricing__clearance-message">
80
+ {{ clearanceColorsWithQty.length > 1 ? 'Colours' : 'Colour' }}: {{ clearanceColorsText }} {{ clearanceColorsWithQty.length > 1 ? 'are' : 'is' }} non-returnable clearance {{ clearanceColorsWithQty.length > 1 ? 'colours' : 'colour' }}
81
+ </div>
73
82
  <div
74
83
  v-if="hasPricing"
75
84
  class="EditorPricing__footer">
@@ -162,7 +171,8 @@ export default {
162
171
  'multipack',
163
172
  'offsetWarningVisible',
164
173
  'showRecommendationToUseLargerImage',
165
- 'showErrorAboutSmallImage'
174
+ 'showErrorAboutSmallImage',
175
+ 'availableColors'
166
176
  ]),
167
177
  hasPrintIssues() {
168
178
  return this.offsetWarningVisible || this.showRecommendationToUseLargerImage || this.showErrorAboutSmallImage;
@@ -173,6 +183,19 @@ export default {
173
183
  totalPrice() {
174
184
  const { totalPriceWithoutTax, totalPrice } = this.productPricing;
175
185
  return this.priceIncludeGST ? totalPrice : totalPriceWithoutTax;
186
+ },
187
+ clearanceColors() {
188
+ return this.availableColors?.filter(color => this.product.colorsPricing?.some(c => c.colors?.includes(color._id) && c.clearance)) || [];
189
+ },
190
+ clearanceColorsWithQty() {
191
+ console.log('clearanceColors: ', this.clearanceColors);
192
+ return this.clearanceColors.map(color => {
193
+ const qty = this.usedSimpleProducts.reduce((sum, sp) => sp.color._id === color._id ? sum + (sp.amount || 0) : sum, 0);
194
+ return qty > 0 ? { ...color, qty } : null;
195
+ }).filter(c => c);
196
+ },
197
+ clearanceColorsText() {
198
+ return this.clearanceColorsWithQty.map(c => `${c.name}`).join(', ');
176
199
  }
177
200
  },
178
201
  watch: {
@@ -3,13 +3,12 @@
3
3
  <div
4
4
  v-for="color in availableColors"
5
5
  :key="color._id"
6
- v-tooltip="color.name"
6
+ v-tooltip="(product.isClearance || isClearanceColor(color)) ? `${color.name}. Clearance - non returnable` : color.name"
7
7
  class="ProductColorsSelectorOptions__color"
8
8
  :class="{ selected: editableColor === color }"
9
9
  @click="toggleSelection(color)">
10
10
  <i
11
- v-if="isClearanceColor(color)"
12
- v-tooltip="'Clearance'"
11
+ v-if="product.isClearance || isClearanceColor(color)"
13
12
  class="icon-percent"></i>
14
13
  <product-color-image
15
14
  :color="color"
@@ -16,7 +16,7 @@
16
16
  <postcode-select
17
17
  v-model="suburb.postcode"
18
18
  :suburb="suburb"
19
- :only-postcode="true"
19
+ :only-postcode="false"
20
20
  label-text="Postcode"
21
21
  @select="onSelectSuburb" />
22
22
  </div>
@@ -94,10 +94,14 @@ export default {
94
94
  return totalPriceWithoutTax;
95
95
  }
96
96
  },
97
+ props: {
98
+ value: {
99
+ type: Object
100
+ }
101
+ },
97
102
  data() {
98
- const postcode = 'SW1A 1AA';
99
103
  return {
100
- suburb: { postcode },
104
+ suburb: null,
101
105
  pricing: null,
102
106
  calculating: false,
103
107
  recalcNeeded: false,
@@ -105,10 +109,10 @@ export default {
105
109
  };
106
110
  },
107
111
  computed: {
108
- ...mapGetters(['shop', 'country', 'currency']),
112
+ ...mapGetters(['shop', 'country', 'currency', 'SETTINGS']),
109
113
  ...mapGetters('product', ['product', 'usedSimpleProducts', 'template']),
110
114
  hasSelection() {
111
- return (this.usedSimpleProducts || []).length > 0;
115
+ return (this.usedSimpleProducts || []).length > 0 || this.value;
112
116
  },
113
117
  hasSuppliersWithRates() {
114
118
  return this.suppliersWithRates.length > 0;
@@ -128,13 +132,21 @@ export default {
128
132
  this.calculateShipping();
129
133
  }
130
134
  }
135
+ this.$emit('input', null);
131
136
  },
132
137
  deep: true
138
+ },
139
+ value() {
140
+ if (this.pricing) {
141
+ this.recalcNeeded = true;
142
+ } else {
143
+ this.calculateShipping();
144
+ }
133
145
  }
134
146
  },
135
- mounted() {
136
- if (this.hasSelection) {
137
- this.calculateShipping();
147
+ created() {
148
+ if (this.SETTINGS.DEFAULT_POSTCODE) {
149
+ this.suburb = { postcode: this.SETTINGS.DEFAULT_POSTCODE };
138
150
  }
139
151
  },
140
152
  methods: {
@@ -154,6 +166,17 @@ export default {
154
166
  this.calculating = true;
155
167
  this.recalcNeeded = false;
156
168
  try {
169
+ let usedSimpleProducts = this.usedSimpleProducts;
170
+ if (this.value) {
171
+ if (this.value?.color) {
172
+ usedSimpleProducts = usedSimpleProducts.filter(c => c.color._id === this.value?.color?._id);
173
+ }
174
+ if (this.value?.size) {
175
+ usedSimpleProducts = usedSimpleProducts.filter(c => c.size._id === this.value?.size?._id);
176
+ }
177
+ const simpleProduct = usedSimpleProducts[0] || this.usedSimpleProducts[0];
178
+ usedSimpleProducts = simpleProduct ? [simpleProduct] : [];
179
+ }
157
180
  const entities = getProductsForCalculatePricing(this.product, this.usedSimpleProducts);
158
181
  const payload = {
159
182
  entities: entities.map(e => ({ ...e, brand: this.product.brand })),
@@ -169,10 +169,10 @@ export default {
169
169
  const amount = this.usedSimpleProductsQuantity;
170
170
  const pricing = this.pricing;
171
171
  const price = (pricing.find(({ min, max }) => (!min || min <= amount) && (!max || max >= amount)) || pricing[0] || {}).price || 0;
172
- return this.withGst ? tax(price, this.gstTax) : price;
172
+ return +(this.withGst ? tax(price, this.gstTax) : price);
173
173
  },
174
174
  productPrintsPrice() {
175
- return this.withGst ? tax(this.printsPrice, this.gstTax) : this.printsPrice;
175
+ return +(this.withGst ? tax(this.printsPrice, this.gstTax) : this.printsPrice);
176
176
  },
177
177
  disabled() {
178
178
  return !this.product.quantityStock || !this.productPrice;
@@ -56,7 +56,13 @@
56
56
  font-weight: 600;
57
57
  color: $grey_1;
58
58
  text-align: center;
59
- background-color: white;
59
+ }
60
+ &--selected {
61
+ color: white !important;
62
+ background-color: $green !important;
63
+ .CategoryCard__name {
64
+ color: white !important;
65
+ }
60
66
  }
61
67
 
62
68
  @media (max-width: $bp-extra-small-max) {
@@ -1,23 +1,26 @@
1
1
  <template>
2
2
  <div class="ChildrenCategories__wrapper">
3
3
  <div
4
- v-for="category in childrenCategories"
5
- :key="category._id"
6
- class="CategoryCard">
4
+ v-for="cat in childrenCategories"
5
+ :key="cat._id"
6
+ class="CategoryCard"
7
+ :class="{
8
+ 'CategoryCard--selected': category && category._id === cat._id
9
+ }">
7
10
  <a
8
- :href="generateProductsLink($route, { category }, true)"
11
+ :href="generateProductsLink($route, { category: cat }, true)"
9
12
  class="CategoryCard__link">
10
13
  <span
11
14
  v-if="visibleImages"
12
15
  class="CategoryCard__image-wrapper">
13
16
  <img
14
- v-if="category.image"
15
- :src="category.image.medium"
16
- :alt="category.name"
17
+ v-if="cat.image"
18
+ :src="cat.image.medium"
19
+ :alt="cat.name"
17
20
  class="CategoryCard__image" />
18
21
  </span>
19
22
  <span class="CategoryCard__name">
20
- {{ category.name }}
23
+ {{ cat.name }}
21
24
  </span>
22
25
  </a>
23
26
  </div>
@@ -37,7 +40,7 @@ export default {
37
40
  }
38
41
  },
39
42
  computed: {
40
- ...mapGetters('products', ['childrenCategories'])
43
+ ...mapGetters('products', ['childrenCategories', 'category'])
41
44
  },
42
45
  methods: {
43
46
  generateProductsLink
@@ -21,16 +21,13 @@
21
21
  &:last-child {
22
22
  border-bottom: none;
23
23
  margin-bottom: 0px;
24
+ padding-bottom: 0px;
24
25
  }
25
26
  ::v-deep {
26
27
  a {
27
28
  color: $gray_main;
28
- font-size: 13px;
29
29
  text-decoration: none;
30
30
  }
31
- a:hover {
32
- font-weight: bold;
33
- }
34
31
  }
35
32
  &-all {
36
33
  border-top: 1px solid $gray_main;
@@ -70,4 +67,4 @@
70
67
  }
71
68
  }
72
69
  }
73
- }
70
+ }
@@ -1,3 +1,58 @@
1
- .ProductListProduct__link {
1
+ @import "@/assets/scss/variables";
2
+
3
+ .ProductsAutocompleteItem {
4
+ &__wrapper {
2
5
  display: block;
3
- }
6
+ }
7
+ &__link {
8
+ display: flex;
9
+ align-items: center;
10
+ gap: 12px;
11
+ text-decoration: none;
12
+ color: $gray_main;
13
+ &:hover {
14
+ .ProductsAutocompleteItem__name {
15
+ font-weight: 600;
16
+ }
17
+ }
18
+ }
19
+ &__image {
20
+ flex-shrink: 0;
21
+ width: 50px;
22
+ height: 50px;
23
+ display: flex;
24
+ align-items: center;
25
+ justify-content: center;
26
+ background-color: $white;
27
+ border: 1px solid $medium_gray;
28
+ border-radius: 4px;
29
+ overflow: hidden;
30
+ img {
31
+ max-width: 100%;
32
+ max-height: 100%;
33
+ object-fit: contain;
34
+ display: block;
35
+ }
36
+ }
37
+ &__info {
38
+ flex: 1;
39
+ min-width: 0;
40
+ display: flex;
41
+ flex-direction: column;
42
+ gap: 4px;
43
+ }
44
+ &__sku {
45
+ font-size: 11px;
46
+ color: $grey_1;
47
+ font-weight: 500;
48
+ text-transform: uppercase;
49
+ margin-top: 3px;
50
+ }
51
+ &__name {
52
+ font-size: 17px;
53
+ color: $gray_main;
54
+ overflow: hidden;
55
+ text-overflow: ellipsis;
56
+ white-space: nowrap;
57
+ }
58
+ }
@@ -1,9 +1,19 @@
1
1
  <template>
2
- <div @click="$emit('select', product)">
2
+ <div class="ProductsAutocompleteItem__wrapper" @click="$emit('select', product)">
3
3
  <a
4
4
  :href="productLink"
5
- class="ProductListProduct__link">
6
- {{ product.SKU }} - {{ product.name }}
5
+ class="ProductsAutocompleteItem__link">
6
+ <div
7
+ v-if="productСover"
8
+ class="ProductsAutocompleteItem__image">
9
+ <img
10
+ :src="productСover"
11
+ :alt="product.name" />
12
+ </div>
13
+ <div class="ProductsAutocompleteItem__info">
14
+ <div class="ProductsAutocompleteItem__name">{{ product.name }}</div>
15
+ <div class="ProductsAutocompleteItem__sku">{{ product.SKU }}</div>
16
+ </div>
7
17
  </a>
8
18
  </div>
9
19
  </template>
@@ -102,10 +102,14 @@ async function googleShoppingFeed(axios, config, availableStores, country, isEdi
102
102
  info['g:gtin'] = { _text: sp.gtin || '' };
103
103
  }
104
104
 
105
- if (sp.clearancePrice > 0) {
105
+ const isClearance = sp.clearancePrice > 0 || product.isClearance;
106
+
107
+ if (isClearance && sp.clearancePrice !== sp.price) {
106
108
  info['g:sale_price'] = { _text: `${(sp.clearancePrice)} ${sp.currencyCode || 'AUD'}` };
107
109
  }
108
110
 
111
+ info['g:return_policy_label'] = { _text: isClearance ? 'clearance' : '' };
112
+
109
113
  if (!config.IGNORE_STORE_CODE) {
110
114
  if (sp.storeCode) {
111
115
  info['g:store_code'] = { _text: sp.storeCode };
@@ -179,8 +183,9 @@ async function googleShoppingFeed(axios, config, availableStores, country, isEdi
179
183
  }
180
184
  }
181
185
 
182
- if (product.feedLifestyleImage) {
183
- info['g:lifestyle_image_link'] = { _text: staticLink(product.feedLifestyleImage, config) };
186
+ const feedLifestyleImage = product.feedLifestyleImage || filterImagesByType('model')[0];
187
+ if (feedLifestyleImage) {
188
+ info['g:lifestyle_image_link'] = { _text: staticLink(feedLifestyleImage, config) };
184
189
  }
185
190
 
186
191
  if (product.feedAgeGroup) {
@@ -11,7 +11,6 @@ export default {
11
11
  async fetch() {
12
12
  await this.loadProducts();
13
13
 
14
- console.log('fetchChildrenCategories: ', this.page, this.currentCategory);
15
14
  if (this.page === 1) {
16
15
  await this.fetchChildrenCategories(this.currentCategory);
17
16
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lancom/shared",
3
- "version": "0.0.442",
3
+ "version": "0.0.444",
4
4
  "description": "lancom common scripts",
5
5
  "author": "e.tokovenko <e.tokovenko@gmail.com>",
6
6
  "repository": {
@@ -1,6 +1,6 @@
1
1
  import debounce from 'lodash.debounce';
2
2
 
3
- const STATE_STORAGE_KEY = 'lancom-state-2.2';
3
+ const STATE_STORAGE_KEY = 'lancom-state-2.3';
4
4
  const SAVE_STATE_MODULES = new Map([
5
5
  ['setGoogleClickId', 'googleClickId'],
6
6
  ['cart/setId', 'cart.id'],