@ecomplus/storefront-components 1.0.0-beta.19 → 1.0.0-beta.190

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 (124) hide show
  1. package/CHANGELOG.md +1329 -135
  2. package/all.js +3 -1
  3. package/dist/1.storefront-components.min.js +2 -0
  4. package/dist/1.storefront-components.min.js.map +1 -0
  5. package/dist/2.storefront-components.min.js +5 -0
  6. package/dist/2.storefront-components.min.js.map +1 -0
  7. package/dist/3.storefront-components.min.js +5 -0
  8. package/dist/3.storefront-components.min.js.map +1 -0
  9. package/dist/storefront-components.min.js +33 -12
  10. package/dist/storefront-components.min.js.map +1 -1
  11. package/package.json +17 -12
  12. package/src/APagination.vue +2 -0
  13. package/src/AShare.vue +2 -0
  14. package/src/AccountAddresses.vue +3 -0
  15. package/src/AccountForm.vue +3 -0
  16. package/src/AccountPoints.vue +3 -0
  17. package/src/BuyTogether.vue +3 -0
  18. package/src/EarnPointsProgress.vue +3 -0
  19. package/src/ItemCustomizations.vue +2 -0
  20. package/src/KitProductVariations.vue +3 -0
  21. package/src/PointsApplier.vue +2 -0
  22. package/src/ProductQuickview.vue +3 -0
  23. package/src/QuantitySelector.vue +3 -0
  24. package/src/RecommendedItems.vue +3 -0
  25. package/src/ShippingLine.vue +1 -0
  26. package/src/TheCart.vue +3 -0
  27. package/src/html/APagination.html +90 -0
  28. package/src/html/APrices.html +24 -4
  29. package/src/html/AShare.html +31 -0
  30. package/src/html/AccountAddresses.html +90 -0
  31. package/src/html/AccountForm.html +269 -0
  32. package/src/html/AccountPoints.html +39 -0
  33. package/src/html/AddressForm.html +9 -7
  34. package/src/html/BuyTogether.html +60 -0
  35. package/src/html/CartItem.html +86 -38
  36. package/src/html/CartQuickview.html +28 -5
  37. package/src/html/DiscountApplier.html +3 -3
  38. package/src/html/EarnPointsProgress.html +28 -0
  39. package/src/html/InputDate.html +1 -1
  40. package/src/html/InputDocNumber.html +1 -0
  41. package/src/html/InputPhone.html +1 -1
  42. package/src/html/InstantSearch.html +3 -3
  43. package/src/html/ItemCustomizations.html +14 -0
  44. package/src/html/KitProductVariations.html +92 -0
  45. package/src/html/LoginBlock.html +34 -32
  46. package/src/html/LoginModal.html +9 -4
  47. package/src/html/PaymentOption.html +7 -5
  48. package/src/html/PointsApplier.html +26 -0
  49. package/src/html/ProductCard.html +68 -8
  50. package/src/html/ProductGallery.html +21 -3
  51. package/src/html/ProductQuickview.html +64 -0
  52. package/src/html/ProductVariations.html +30 -3
  53. package/src/html/QuantitySelector.html +85 -0
  54. package/src/html/RecommendedItems.html +48 -0
  55. package/src/html/SearchEngine.html +101 -24
  56. package/src/html/ShippingCalculator.html +84 -3
  57. package/src/html/ShippingLine.html +5 -2
  58. package/src/html/TheAccount.html +43 -9
  59. package/src/html/TheCart.html +156 -0
  60. package/src/html/TheProduct.html +416 -138
  61. package/src/js/APagination.js +74 -0
  62. package/src/js/APicture.js +27 -7
  63. package/src/js/APrices.js +80 -41
  64. package/src/js/AShare.js +83 -0
  65. package/src/js/AccountAddresses.js +201 -0
  66. package/src/js/AccountForm.js +312 -0
  67. package/src/js/AccountPoints.js +63 -0
  68. package/src/js/AddressForm.js +80 -35
  69. package/src/js/BuyTogether.js +246 -0
  70. package/src/js/CartItem.js +67 -14
  71. package/src/js/CartQuickview.js +20 -1
  72. package/src/js/DiscountApplier.js +181 -50
  73. package/src/js/EarnPointsProgress.js +77 -0
  74. package/src/js/InputDate.js +8 -8
  75. package/src/js/InputDocNumber.js +20 -0
  76. package/src/js/ItemCustomizations.js +10 -0
  77. package/src/js/KitProductVariations.js +218 -0
  78. package/src/js/LoginBlock.js +47 -6
  79. package/src/js/LoginModal.js +18 -10
  80. package/src/js/PaymentOption.js +28 -1
  81. package/src/js/PointsApplier.js +110 -0
  82. package/src/js/ProductCard.js +115 -11
  83. package/src/js/ProductGallery.js +32 -12
  84. package/src/js/ProductQuickview.js +72 -0
  85. package/src/js/ProductVariations.js +76 -19
  86. package/src/js/QuantitySelector.js +175 -0
  87. package/src/js/RecommendedItems.js +178 -0
  88. package/src/js/SearchEngine.js +185 -55
  89. package/src/js/ShippingCalculator.js +176 -35
  90. package/src/js/ShippingLine.js +44 -5
  91. package/src/js/TheAccount.js +97 -6
  92. package/src/js/TheCart.js +146 -0
  93. package/src/js/TheProduct.js +387 -43
  94. package/src/js/helpers/add-idle-callback.js +7 -0
  95. package/src/js/helpers/check-form-validity.js +3 -0
  96. package/src/js/helpers/favorite-products.js +24 -0
  97. package/src/js/helpers/scroll-to-element.js +10 -0
  98. package/src/js/helpers/sort-apps.js +14 -0
  99. package/src/js/helpers/wait-storefront-info.js +21 -0
  100. package/src/scss/APicture.scss +2 -0
  101. package/src/scss/APrices.scss +13 -1
  102. package/src/scss/AccountAddresses.scss +27 -0
  103. package/src/scss/AccountForm.scss +5 -0
  104. package/src/scss/AccountPoints.scss +17 -0
  105. package/src/scss/BuyTogether.scss +38 -0
  106. package/src/scss/CartItem.scss +17 -1
  107. package/src/scss/EarnPointsProgress.scss +6 -0
  108. package/src/scss/InstantSearch.scss +1 -0
  109. package/src/scss/KitProductVariations.scss +72 -0
  110. package/src/scss/LoginBlock.scss +5 -0
  111. package/src/scss/PaymentOption.scss +10 -1
  112. package/src/scss/ProductCard.scss +63 -25
  113. package/src/scss/ProductGallery.scss +4 -2
  114. package/src/scss/ProductQuickview.scss +36 -0
  115. package/src/scss/ProductVariations.scss +20 -4
  116. package/src/scss/QuantitySelector.scss +39 -0
  117. package/src/scss/RecommendedItems.scss +28 -0
  118. package/src/scss/SearchEngine.scss +9 -5
  119. package/src/scss/ShippingCalculator.scss +42 -1
  120. package/src/scss/ShippingLine.scss +24 -0
  121. package/src/scss/TheAccount.scss +4 -0
  122. package/src/scss/TheCart.scss +54 -0
  123. package/src/scss/TheProduct.scss +146 -1
  124. package/webpack.config.js +20 -6
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@ecomplus/storefront-components",
3
- "version": "1.0.0-beta.19",
3
+ "version": "1.0.0-beta.190",
4
4
  "description": "Vue components for E-Com Plus Storefront",
5
5
  "main": "dist/storefront-components.min.js",
6
6
  "scripts": {
7
- "build": "NODE_ENV=production webpack",
7
+ "build": "cross-env NODE_ENV=production webpack",
8
8
  "serve": "webpack-dev-server"
9
9
  },
10
10
  "repository": {
@@ -32,17 +32,22 @@
32
32
  "@ecomplus/utils": "^1.4.1"
33
33
  },
34
34
  "dependencies": {
35
- "@ecomplus/client": "^2.0.4",
36
- "@ecomplus/i18n": "^1.11.0",
37
- "@ecomplus/passport-client": "^1.0.10",
38
- "@ecomplus/search-engine": "^2.3.0",
39
- "@ecomplus/shopping-cart": "^2.1.1",
40
- "@ecomplus/storefront-twbs": "^5.5.0",
41
- "@glidejs/glide": "^3.4.1",
35
+ "@brazilian-utils/brazilian-utils": "^1.0.0-rc.12",
36
+ "@ecomplus/client": "^2.4.0",
37
+ "@ecomplus/i18n": "^1.32.2",
38
+ "@ecomplus/passport-client": "^1.2.1",
39
+ "@ecomplus/search-engine": "^2.6.1",
40
+ "@ecomplus/shopping-cart": "^2.6.0",
41
+ "@ecomplus/storefront-twbs": "^7.3.6",
42
+ "@glidejs/glide": "^3.7.1",
43
+ "@linusborg/vue-simple-portal": "^0.1.5",
44
+ "axios": "^0.27.2 || ^1.1.2",
42
45
  "cleave.js": "^1.6.0",
43
- "lozad": "^1.15.0",
46
+ "lodash.clonedeep": "^4.5.0",
47
+ "lozad": "^1.16.0",
44
48
  "photoswipe": "^4.1.3",
45
- "vue": "^2.6.11",
46
- "vue-cleave-component": "^2.1.3"
49
+ "vue": "2.6.14",
50
+ "vue-cleave-component": "^2.1.3",
51
+ "vue-social-sharing": "^3.0.9"
47
52
  }
48
53
  }
@@ -0,0 +1,2 @@
1
+ <script src="./js/APagination.js"></script>
2
+ <template lang="html" src="./html/APagination.html"></template>
package/src/AShare.vue ADDED
@@ -0,0 +1,2 @@
1
+ <script src="./js/AShare.js"></script>
2
+ <template lang="html" src="./html/AShare.html"></template>
@@ -0,0 +1,3 @@
1
+ <script src="./js/AccountAddresses.js"></script>
2
+ <template lang="html" src="./html/AccountAddresses.html"></template>
3
+ <style lang="scss" src="./scss/AccountAddresses.scss"></style>
@@ -0,0 +1,3 @@
1
+ <script src="./js/AccountForm.js"></script>
2
+ <template lang="html" src="./html/AccountForm.html"></template>
3
+ <style lang="scss" src="./scss/AccountForm.scss"></style>
@@ -0,0 +1,3 @@
1
+ <script src="./js/AccountPoints.js"></script>
2
+ <template lang="html" src="./html/AccountPoints.html"></template>
3
+ <style lang="scss" src="./scss/AccountPoints.scss"></style>
@@ -0,0 +1,3 @@
1
+ <script src="./js/BuyTogether.js"></script>
2
+ <template lang="html" src="./html/BuyTogether.html"></template>
3
+ <style lang="scss" src="./scss/BuyTogether.scss"></style>
@@ -0,0 +1,3 @@
1
+ <script src="./js/EarnPointsProgress.js"></script>
2
+ <template lang="html" src="./html/EarnPointsProgress.html"></template>
3
+ <style lang="scss" src="./scss/EarnPointsProgress.scss"></style>
@@ -0,0 +1,2 @@
1
+ <script src="./js/ItemCustomizations.js"></script>
2
+ <template lang="html" src="./html/ItemCustomizations.html"></template>
@@ -0,0 +1,3 @@
1
+ <script src="./js/KitProductVariations.js"></script>
2
+ <template lang="html" src="./html/KitProductVariations.html"></template>
3
+ <style lang="scss" src="./scss/KitProductVariations.scss"></style>
@@ -0,0 +1,2 @@
1
+ <script src="./js/PointsApplier.js"></script>
2
+ <template lang="html" src="./html/PointsApplier.html"></template>
@@ -0,0 +1,3 @@
1
+ <script src="./js/ProductQuickview.js"></script>
2
+ <template lang="html" src="./html/ProductQuickview.html"></template>
3
+ <style lang="scss" src="./scss/ProductQuickview.scss"></style>
@@ -0,0 +1,3 @@
1
+ <script src="./js/QuantitySelector.js"></script>
2
+ <template lang="html" src="./html/QuantitySelector.html"></template>
3
+ <style lang="scss" src="./scss/QuantitySelector.scss"></style>
@@ -0,0 +1,3 @@
1
+ <script src="./js/RecommendedItems.js"></script>
2
+ <template lang="html" src="./html/RecommendedItems.html"></template>
3
+ <style lang="scss" src="./scss/RecommendedItems.scss"></style>
@@ -1,2 +1,3 @@
1
1
  <script src="./js/ShippingLine.js"></script>
2
2
  <template lang="html" src="./html/ShippingLine.html"></template>
3
+ <style lang="scss" src="./scss/ShippingLine.scss"></style>
@@ -0,0 +1,3 @@
1
+ <script src="./js/TheCart.js"></script>
2
+ <template lang="html" src="./html/TheCart.html"></template>
3
+ <style lang="scss" src="./scss/TheCart.scss"></style>
@@ -0,0 +1,90 @@
1
+ <nav class="d-flex">
2
+ <ul class="pagination mr-2">
3
+ <li
4
+ class="page-item"
5
+ :class="page <= 1 ? 'disabled' : null"
6
+ >
7
+ <a
8
+ href="#"
9
+ class="page-link"
10
+ :aria-disabled="page <= 1 ? true : null"
11
+ @click.prevent="go(page - 1)"
12
+ >
13
+ &laquo; {{ i19previous }}
14
+ </a>
15
+ </li>
16
+
17
+ <li
18
+ class="page-item"
19
+ :class="page >= totalPages ? 'disabled' : null"
20
+ >
21
+ <a
22
+ href="#"
23
+ class="page-link"
24
+ :aria-disabled="page >= totalPages ? true : null"
25
+ @click.prevent="go(page + 1)"
26
+ >
27
+ {{ i19next }} &raquo;
28
+ </a>
29
+ </li>
30
+ </ul>
31
+
32
+ <ul class="pagination d-none d-lg-flex">
33
+ <template v-if="pageNums[0] > 1">
34
+ <li class="page-item">
35
+ <a
36
+ class="page-link"
37
+ href="#"
38
+ @click.prevent="go(1)"
39
+ >
40
+ 1
41
+ </a>
42
+ </li>
43
+ <li class="page-item disabled">
44
+ <span class="page-link">
45
+ ...
46
+ </span>
47
+ </li>
48
+ </template>
49
+
50
+ <li
51
+ v-for="n in pageNums"
52
+ :key="`p${n}`"
53
+ class="page-item"
54
+ :class="page === n ? 'active' : null"
55
+ >
56
+ <a
57
+ v-if="page !== n"
58
+ class="page-link"
59
+ href="#"
60
+ @click.prevent="go(n)"
61
+ >
62
+ {{ n }}
63
+ </a>
64
+ <span
65
+ v-else
66
+ class="page-link"
67
+ aria-current="page"
68
+ >
69
+ {{ n }}
70
+ </span>
71
+ </li>
72
+
73
+ <template v-if="lastPageNum < totalPages">
74
+ <li class="page-item disabled">
75
+ <span class="page-link">
76
+ ...
77
+ </span>
78
+ </li>
79
+ <li class="page-item">
80
+ <a
81
+ class="page-link"
82
+ href="#"
83
+ @click.prevent="go(totalPages)"
84
+ >
85
+ {{ totalPages }}
86
+ </a>
87
+ </li>
88
+ </template>
89
+ </ul>
90
+ </nav>
@@ -7,21 +7,41 @@
7
7
  class="prices__compare"
8
8
  >
9
9
  <template v-if="isLiteral">
10
- <small>{{ i19from }}</small>
10
+ <small>
11
+ {{ i19from }}
12
+ </small>
11
13
  <s>{{ formatMoney(comparePrice) }}</s>
12
- <small>{{ i19to }}</small>
14
+ <small>
15
+ {{ i19to }}
16
+ </small>
13
17
  </template>
14
18
  <s v-else>{{ formatMoney(comparePrice) }}</s>
15
19
  </span>
16
20
 
17
21
  <strong class="prices__value">
22
+ <small v-if="hasVariedPrices">
23
+ {{ i19asOf }}
24
+ </small>
18
25
  {{ formatMoney(price) }}
19
26
  </strong>
20
27
 
21
28
  <transition-group enter-active-class="animated slideInDown">
29
+ <div
30
+ key="points"
31
+ v-if="earnPointsFactor > 0 && !(pointsMinPrice > price)"
32
+ class="prices__points"
33
+ >
34
+ <i class="i-check-circle"></i>
35
+ {{ i19youEarn }}
36
+ <span>
37
+ +{{ (earnPointsFactor * price).toFixed(1) }}
38
+ </span>
39
+ <em>{{ pointsProgramName }}</em>
40
+ </div>
41
+
22
42
  <div
23
43
  key="installments"
24
- v-if="installmentsNumber > 1"
44
+ v-if="installmentsNumber > 1 && installmentValue"
25
45
  class="prices__installments"
26
46
  >
27
47
  <small v-if="isLiteral">
@@ -48,7 +68,7 @@
48
68
  <span>
49
69
  {{ formatMoney(priceWithDiscount) }}
50
70
  </span>
51
- <small>
71
+ <small class="prices__discount-label">
52
72
  {{ discountLabel }}
53
73
  </small>
54
74
  </template>
@@ -0,0 +1,31 @@
1
+ <div>
2
+ <share-network
3
+ v-for="({ network, icon, name, color }, i) in shareNetworks"
4
+ :key="network"
5
+ tag="button"
6
+ :class="`btn share share--${network} px-2`"
7
+ :network="network"
8
+ :url="localUrl"
9
+ :title="title"
10
+ :description="description"
11
+ :aria-label="`${i19share} ${i19on} ${name}`"
12
+ >
13
+ <i
14
+ v-if="icon"
15
+ :class="icon"
16
+ :style="`color: ${color}`"
17
+ ></i>
18
+ <strong
19
+ v-else
20
+ :style="`color: ${color}`"
21
+ >
22
+ {{ name }}
23
+ </strong>
24
+
25
+ <template v-if="i === 0">
26
+ <span class="ml-1 d-none d-xl-inline-block">
27
+ {{ `${i19share} ${i19on} ${name}` }}
28
+ </span>
29
+ </template>
30
+ </share-network>
31
+ </div>
@@ -0,0 +1,90 @@
1
+ <div class="account-addresses">
2
+ <transition-group enter-active-class="animated fadeIn">
3
+ <address-form
4
+ key="form"
5
+ v-if="isForm && canShowForm"
6
+ :address.sync="localAddress"
7
+ :btn-text="formBtnText"
8
+ />
9
+
10
+ <div
11
+ key="list"
12
+ v-else-if="addresses.length"
13
+ >
14
+ <div
15
+ class="account-addresses__card card"
16
+ v-for="(address, index) in addresses"
17
+ :key="address._id"
18
+ >
19
+ <div class="card-body">
20
+ <div class="custom-control custom-radio">
21
+ <input
22
+ type="radio"
23
+ :id="`account-address-${index}`"
24
+ name="account-address-selected"
25
+ class="custom-control-input"
26
+ :checked="address.default"
27
+ @change="selectAddress(address)"
28
+ />
29
+
30
+ <label
31
+ class="custom-control-label"
32
+ :for="`account-address-${index}`"
33
+ >
34
+ <address class="account-addresses__address">
35
+ <span class="account-addresses__line">
36
+ {{ getLineAddress(address) }}
37
+ </span>
38
+ <span
39
+ v-if="address.city"
40
+ class="account-addresses__city"
41
+ >
42
+ {{ `${address.city} / ${address.province_code ||
43
+ address.province}` }}
44
+ </span>
45
+ <span class="account-addresses__zip">
46
+ {{ address.zip }}
47
+ </span>
48
+ </address>
49
+ </label>
50
+ </div>
51
+
52
+ <div class="account-addresses__actions">
53
+ <button
54
+ class="btn btn-sm btn-light"
55
+ type="button"
56
+ :aria-label="i19edit"
57
+ @click="editAddressIndex = index"
58
+ >
59
+ <i class="i-pencil"></i>
60
+ </button>
61
+
62
+ <button
63
+ class="btn btn-sm btn-danger"
64
+ type="button"
65
+ :aria-label="i19remove"
66
+ @click="removeAddress(index)"
67
+ >
68
+ <i class="i-trash"></i>
69
+ </button>
70
+ </div>
71
+ </div>
72
+ <div
73
+ v-if="address.name && !address.name.endsWith('*')"
74
+ class="account-addresses__recipient card-footer"
75
+ >
76
+ {{ address.name }}
77
+ </div>
78
+ </div>
79
+
80
+ <button
81
+ class="btn btn-sm btn-outline-secondary"
82
+ @click="isNewAddress = true"
83
+ type="button"
84
+ >
85
+ <i class="i-plus mr-1"></i>
86
+ {{ i19newAddress }}
87
+ </button>
88
+ </div>
89
+ </transition-group>
90
+ </div>
@@ -0,0 +1,269 @@
1
+ <form
2
+ class="account-form needs-validation"
3
+ @submit.prevent="submit"
4
+ novalidate
5
+ >
6
+ <div class="form-group">
7
+ <label for="account-form-email">
8
+ {{ i19emailAddress }}
9
+ </label>
10
+ <input
11
+ type="email"
12
+ pattern="\S+@\S+\.\S{2,}"
13
+ class="form-control"
14
+ id="account-form-email"
15
+ v-model.trim="localCustomer.main_email"
16
+ placeholder="email@mail.com"
17
+ required
18
+ >
19
+ </div>
20
+
21
+ <div class="form-row">
22
+ <div class="form-group col-lg-8">
23
+ <label for="account-form-name">
24
+ {{ i19fullName }}
25
+ </label>
26
+ <input
27
+ type="text"
28
+ pattern="[^\d\s]{2,}[\s][^\d\s]{2,}.*"
29
+ class="form-control"
30
+ id="account-form-name"
31
+ v-model.trim="fullName"
32
+ required
33
+ >
34
+ </div>
35
+
36
+ <div
37
+ class="form-group col-lg-4"
38
+ v-if="!isShort"
39
+ >
40
+ <label for="account-form-nickname">
41
+ {{ i19nickname }}
42
+ </label>
43
+ <input
44
+ type="text"
45
+ pattern="[^\d\s]{2,}.*"
46
+ class="form-control"
47
+ id="account-form-nickname"
48
+ v-model.trim="localCustomer.display_name"
49
+ >
50
+ </div>
51
+ </div>
52
+
53
+ <div
54
+ class="form-group"
55
+ v-if="!isShort"
56
+ >
57
+ <div
58
+ class="custom-control custom-radio custom-control-inline"
59
+ v-for="(label, value) in i19Gender"
60
+ >
61
+ <input
62
+ type="radio"
63
+ name="account-form-gender"
64
+ class="custom-control-input"
65
+ :id="`account-form-gender-${value}`"
66
+ :value="value"
67
+ v-model="localCustomer.gender"
68
+ >
69
+ <label
70
+ class="custom-control-label"
71
+ :for="`account-form-gender-${value}`"
72
+ >
73
+ {{ label }}
74
+ </label>
75
+ </div>
76
+ </div>
77
+
78
+ <div class="form-row">
79
+ <div class="form-group col-lg-4">
80
+ <label for="account-form-phone">
81
+ {{ i19contactPhone }}
82
+ </label>
83
+ <input-phone
84
+ id="account-form-phone"
85
+ v-model="phoneNumber"
86
+ required
87
+ />
88
+ </div>
89
+
90
+ <div
91
+ class="form-group col-lg-4"
92
+ v-if="!isShort"
93
+ >
94
+ <label for="account-form-cell">
95
+ {{ i19cellphone }}
96
+ </label>
97
+ <input-phone
98
+ id="account-form-cell"
99
+ v-model="secondPhoneNumber"
100
+ />
101
+ </div>
102
+
103
+ <div
104
+ v-show="!isGuestAccess"
105
+ class="form-group col-lg-4"
106
+ >
107
+ <label for="account-form-birth">
108
+ {{ i19birthdate }}
109
+ </label>
110
+ <input-date
111
+ id="account-form-birth"
112
+ v-model="birthdate"
113
+ />
114
+ </div>
115
+ </div>
116
+
117
+ <div class="form-group">
118
+ <div
119
+ class="custom-control custom-radio custom-control-inline"
120
+ v-for="(label, value) in {
121
+ p: i19personalRegistration,
122
+ j: i19companyRegistration
123
+ }"
124
+ >
125
+ <input
126
+ type="radio"
127
+ name="account-form-type"
128
+ class="custom-control-input"
129
+ :id="`account-form-type-${value}`"
130
+ :value="value"
131
+ v-model="localCustomer.registry_type"
132
+ required
133
+ >
134
+ <label
135
+ class="custom-control-label"
136
+ :for="`account-form-type-${value}`"
137
+ >
138
+ {{ label }}
139
+ </label>
140
+ </div>
141
+ </div>
142
+
143
+ <div class="form-row">
144
+ <div class="form-group col-lg-6">
145
+ <label for="account-form-doc">
146
+ {{ i19docNumber }}
147
+ </label>
148
+ <input-doc-number
149
+ id="account-form-doc"
150
+ v-model="localCustomer.doc_number"
151
+ :isCompany="localCustomer.registry_type !== 'p'"
152
+ required
153
+ />
154
+ </div>
155
+ </div>
156
+
157
+ <div
158
+ v-if="localCustomer.registry_type !== 'p'"
159
+ class="account-form__legal-person"
160
+ >
161
+ <div class="form-row">
162
+ <div class="form-group col-lg-8">
163
+ <label for="account-form-name">
164
+ {{ i19corporateName }}
165
+ </label>
166
+ <input
167
+ type="text"
168
+ pattern="[\w-]{1,}[\s][\w-]{1,}.*"
169
+ minlength="4"
170
+ class="form-control"
171
+ id="account-form-name"
172
+ v-model.trim="localCustomer.corporate_name"
173
+ required
174
+ >
175
+ </div>
176
+ </div>
177
+
178
+ <div class="form-row account-form__inscription">
179
+ <div class="form-group col-lg-6">
180
+ <label for="account-form-inscription">
181
+ {{ i19inscriptionNumber }}
182
+ </label>
183
+ <input
184
+ type="text"
185
+ maxlength="50"
186
+ class="form-control"
187
+ id="account-form-inscription"
188
+ v-model.trim="localCustomer.inscription_number"
189
+ >
190
+ </div>
191
+ <div class="form-group col-lg-5 pb-lg-2 ml-lg-2">
192
+ <div
193
+ class="custom-control custom-radio custom-control-inline"
194
+ v-for="(label, value) in i19InscriptionType"
195
+ >
196
+ <input
197
+ type="radio"
198
+ name="account-form-gender"
199
+ class="custom-control-input"
200
+ :id="`account-form-gender-${value}`"
201
+ :value="value"
202
+ v-model="localCustomer.inscription_type"
203
+ >
204
+ <label
205
+ class="custom-control-label"
206
+ :for="`account-form-gender-${value}`"
207
+ >
208
+ {{ label }}
209
+ </label>
210
+ </div>
211
+ </div>
212
+ </div>
213
+ </div>
214
+
215
+ <div class="form-group">
216
+ <div class="custom-control custom-checkbox">
217
+ <input
218
+ type="checkbox"
219
+ class="custom-control-input"
220
+ id="account-form-marketing"
221
+ v-model="localCustomer.accepts_marketing"
222
+ >
223
+ <label
224
+ class="custom-control-label"
225
+ for="account-form-marketing"
226
+ >
227
+ {{ i19emailMarketingOptInMsg }}
228
+ </label>
229
+ </div>
230
+ </div>
231
+
232
+ <template v-if="!isGuestAccess">
233
+ <div
234
+ v-if="privacyPolicyUrl"
235
+ class="form-group"
236
+ >
237
+ <div class="custom-control custom-checkbox">
238
+ <input
239
+ type="checkbox"
240
+ class="custom-control-input"
241
+ id="account-form-privacy-policy"
242
+ v-model="isPrivacyOptIn"
243
+ required
244
+ >
245
+ <label
246
+ class="custom-control-label"
247
+ for="account-form-privacy-policy"
248
+ >
249
+ {{ i19iReadAndAccept }}
250
+ {{ i19a }}
251
+ <a
252
+ :href="privacyPolicyUrl"
253
+ target="_blank"
254
+ v-text="i19privacyPolicy"
255
+ ></a>.
256
+ </label>
257
+ </div>
258
+ </div>
259
+ </template>
260
+
261
+ <button
262
+ v-if="hasSubmitBtn"
263
+ class="btn btn-lg btn-primary"
264
+ type="submit"
265
+ >
266
+ <i class="i-check mr-1"></i>
267
+ {{ btnLabel }}
268
+ </button>
269
+ </form>