@crm-market/template-shared 1.0.0

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 (160) hide show
  1. package/assets/css/custom.css +70 -0
  2. package/assets/css/remixicon.css +2782 -0
  3. package/assets/css/satoshi-font.css +31 -0
  4. package/assets/fonts/flaticon.css +463 -0
  5. package/assets/fonts/flaticon.eot +0 -0
  6. package/assets/fonts/flaticon.html +2153 -0
  7. package/assets/fonts/flaticon.svg +441 -0
  8. package/assets/fonts/flaticon.ttf +0 -0
  9. package/assets/fonts/flaticon.woff +0 -0
  10. package/assets/fonts/flaticon.woff2 +0 -0
  11. package/assets/fonts/remixicon.eot +0 -0
  12. package/assets/fonts/remixicon.svg +8230 -0
  13. package/assets/fonts/remixicon.ttf +0 -0
  14. package/assets/fonts/remixicon.woff +0 -0
  15. package/assets/fonts/remixicon.woff2 +0 -0
  16. package/assets/scss/_variables.scss +31 -0
  17. package/assets/scss/components/_about.scss +58 -0
  18. package/assets/scss/components/_authentication.scss +124 -0
  19. package/assets/scss/components/_backtoptop.scss +27 -0
  20. package/assets/scss/components/_banner.scss +396 -0
  21. package/assets/scss/components/_best-deals.scss +74 -0
  22. package/assets/scss/components/_blank.scss +40 -0
  23. package/assets/scss/components/_blog.scss +193 -0
  24. package/assets/scss/components/_cart.scss +108 -0
  25. package/assets/scss/components/_categories.scss +82 -0
  26. package/assets/scss/components/_checkout.scss +110 -0
  27. package/assets/scss/components/_dashboard.scss +388 -0
  28. package/assets/scss/components/_faq.scss +22 -0
  29. package/assets/scss/components/_filter-rang.scss +109 -0
  30. package/assets/scss/components/_footer.scss +270 -0
  31. package/assets/scss/components/_global.scss +550 -0
  32. package/assets/scss/components/_header.scss +587 -0
  33. package/assets/scss/components/_hurry.scss +52 -0
  34. package/assets/scss/components/_navbar.scss +1008 -0
  35. package/assets/scss/components/_offers.scss +689 -0
  36. package/assets/scss/components/_pagination.scss +71 -0
  37. package/assets/scss/components/_popup.scss +172 -0
  38. package/assets/scss/components/_preloader.scss +108 -0
  39. package/assets/scss/components/_products.scss +1147 -0
  40. package/assets/scss/components/_rtl.scss +806 -0
  41. package/assets/scss/components/_services.scss +16 -0
  42. package/assets/scss/components/_sidebar.scss +259 -0
  43. package/assets/scss/style.css +6676 -0
  44. package/assets/scss/style.css.map +1 -0
  45. package/assets/scss/style.scss +40 -0
  46. package/assets/webfonts/Satoshi-Bold.eot +0 -0
  47. package/assets/webfonts/Satoshi-Bold.woff +0 -0
  48. package/assets/webfonts/Satoshi-Bold.woff2 +0 -0
  49. package/assets/webfonts/Satoshi-Medium.eot +0 -0
  50. package/assets/webfonts/Satoshi-Medium.woff +0 -0
  51. package/assets/webfonts/Satoshi-Medium.woff2 +0 -0
  52. package/assets/webfonts/Satoshi-Regular.eot +0 -0
  53. package/assets/webfonts/Satoshi-Regular.woff +0 -0
  54. package/assets/webfonts/Satoshi-Regular.woff2 +0 -0
  55. package/components/AboutUs/AboutUsTuan.vue +25 -0
  56. package/components/AboutUs/Statistics.vue +42 -0
  57. package/components/AboutUs/SubscribeToTheNewsletter.vue +57 -0
  58. package/components/AddAddress/index.vue +70 -0
  59. package/components/BestSellers/Products.vue +1562 -0
  60. package/components/BestSellers/RecentlyViewed.vue +304 -0
  61. package/components/Cart/ProductQuantity.vue +29 -0
  62. package/components/Cart/index.vue +167 -0
  63. package/components/Categories/index.vue +305 -0
  64. package/components/ChangePassword/index.vue +71 -0
  65. package/components/Checkout/index.vue +192 -0
  66. package/components/Common/DashboardNavigation.vue +37 -0
  67. package/components/Common/PageBanner.vue +28 -0
  68. package/components/Common/ProductCard.vue +152 -0
  69. package/components/Common/Services.vue +58 -0
  70. package/components/Contact/ContactForm.vue +91 -0
  71. package/components/Contact/ContactInfo.vue +74 -0
  72. package/components/Dashboard/RecentOrder.vue +173 -0
  73. package/components/Dashboard/index.vue +79 -0
  74. package/components/EditAddress/index.vue +119 -0
  75. package/components/EditProfile/index.vue +97 -0
  76. package/components/FAQ/index.vue +121 -0
  77. package/components/FeaturedProduct/FeaturedProducts.vue +304 -0
  78. package/components/FeaturedProduct/Products.vue +1562 -0
  79. package/components/ForgotPassword/index.vue +51 -0
  80. package/components/Layout/BackToUp.vue +38 -0
  81. package/components/Layout/Copyright.vue +25 -0
  82. package/components/Layout/Footer.vue +183 -0
  83. package/components/Layout/FooterTwo.vue +165 -0
  84. package/components/Layout/LocationOption.vue +178 -0
  85. package/components/Layout/MiddleHeader.vue +229 -0
  86. package/components/Layout/MiddleHeaderThree.vue +204 -0
  87. package/components/Layout/MiddleHeaderTwo.vue +240 -0
  88. package/components/Layout/Navbar.vue +185 -0
  89. package/components/Layout/NavbarStyleFour.vue +334 -0
  90. package/components/Layout/NavbarStyleThree.vue +188 -0
  91. package/components/Layout/NavbarStyleTwo.vue +108 -0
  92. package/components/Layout/Preloader.vue +18 -0
  93. package/components/Layout/RTLSwitchBtn.vue +40 -0
  94. package/components/Layout/ResponsiveNavbar.vue +431 -0
  95. package/components/Layout/TopHeader.vue +130 -0
  96. package/components/Login/index.vue +94 -0
  97. package/components/MyAccount/index.vue +154 -0
  98. package/components/NewArrivals/Products.vue +1969 -0
  99. package/components/NewArrivals/RecentlyViewed.vue +304 -0
  100. package/components/OrderDetails/index.vue +77 -0
  101. package/components/OrderHistory/index.vue +197 -0
  102. package/components/PrivacyPolicy/index.vue +112 -0
  103. package/components/ProductDetails/ProductDetailsTab.vue +343 -0
  104. package/components/ProductDetails/ProductQuantity.vue +29 -0
  105. package/components/ProductDetails/RecentlyViewed.vue +304 -0
  106. package/components/ProductDetails/index.vue +268 -0
  107. package/components/Products/RecentlyViewed.vue +304 -0
  108. package/components/Products/index.vue +292 -0
  109. package/components/Register/index.vue +88 -0
  110. package/components/TermsConditions/index.vue +112 -0
  111. package/components/TrendingProducts/FeaturedProducts.vue +304 -0
  112. package/components/TrendingProducts/Products.vue +1564 -0
  113. package/components/Wishlist/ProductQuantity.vue +29 -0
  114. package/components/Wishlist/index.vue +128 -0
  115. package/composables/useCart.ts +149 -0
  116. package/composables/useCategories.ts +87 -0
  117. package/composables/useCheckout.ts +131 -0
  118. package/composables/useProducts.ts +162 -0
  119. package/composables/useSiteConfig.ts +236 -0
  120. package/composables/useTemplateSections.ts +74 -0
  121. package/e2e/cart.spec.ts +71 -0
  122. package/e2e/fixtures/mock-api.ts +166 -0
  123. package/e2e/homepage.spec.ts +65 -0
  124. package/e2e/layout.spec.ts +73 -0
  125. package/e2e/navigation.spec.ts +61 -0
  126. package/e2e/pages/cart.page.ts +44 -0
  127. package/e2e/pages/homepage.page.ts +46 -0
  128. package/e2e/playwright.config.ts +32 -0
  129. package/e2e/products.spec.ts +33 -0
  130. package/layouts/default.vue +94 -0
  131. package/layouts/inner.vue +70 -0
  132. package/nuxt.config.ts +86 -0
  133. package/package.json +38 -0
  134. package/pages/about-us.vue +12 -0
  135. package/pages/address.vue +10 -0
  136. package/pages/cart.vue +10 -0
  137. package/pages/categories.vue +10 -0
  138. package/pages/change-password.vue +10 -0
  139. package/pages/checkout.vue +10 -0
  140. package/pages/contact.vue +11 -0
  141. package/pages/dashboard.vue +10 -0
  142. package/pages/edit-address.vue +10 -0
  143. package/pages/edit-profile.vue +10 -0
  144. package/pages/faq.vue +10 -0
  145. package/pages/forgot-password.vue +10 -0
  146. package/pages/login.vue +10 -0
  147. package/pages/my-account.vue +10 -0
  148. package/pages/order-details.vue +10 -0
  149. package/pages/order-history.vue +10 -0
  150. package/pages/privacy-policy.vue +10 -0
  151. package/pages/product-details.vue +10 -0
  152. package/pages/products.vue +10 -0
  153. package/pages/register.vue +10 -0
  154. package/pages/terms-conditions.vue +10 -0
  155. package/pages/wishlist.vue +10 -0
  156. package/plugins/site-init.client.ts +24 -0
  157. package/plugins/vuetify.ts +18 -0
  158. package/types/index.ts +121 -0
  159. package/utils/image.ts +13 -0
  160. package/utils/store.ts +21 -0
@@ -0,0 +1,51 @@
1
+ <template>
2
+ <div class="authentication-area ptb-60">
3
+ <div class="container">
4
+ <div class="authentication-content">
5
+ <div class="row align-items-center">
6
+ <div class="col-lg-5">
7
+ <div class="login text-center">
8
+ <img src="~/assets/images/login.png" alt="login" />
9
+ </div>
10
+ </div>
11
+ <div class="col-lg-7">
12
+ <div class="authentication-form">
13
+ <ul class="nav nav-tabs login-tabs" id="myTab" role="tablist">
14
+ <li class="nav-item" role="presentation">
15
+ <NuxtLink to="/forgot-password" class="nav-link active">
16
+ Forgot Password
17
+ </NuxtLink>
18
+ </li>
19
+ </ul>
20
+ <p>Lorem ipsum, dolor sit amet consectetur adipisicing elit.</p>
21
+ <form>
22
+ <div class="form-group mb-4">
23
+ <label class="label">Email Address</label>
24
+ <input
25
+ type="email"
26
+ class="form-control"
27
+ placeholder="Enter Your Email"
28
+ />
29
+ </div>
30
+ <div class="form-group mb-0">
31
+ <button
32
+ type="submit"
33
+ class="btn btn-warning btn-pill text-white w-100 d-block"
34
+ >
35
+ Forgot Password
36
+ </button>
37
+ </div>
38
+ </form>
39
+ </div>
40
+ </div>
41
+ </div>
42
+ </div>
43
+ </div>
44
+ </div>
45
+ </template>
46
+
47
+ <script>
48
+ export default {
49
+ name: "ForgotPassword",
50
+ };
51
+ </script>
@@ -0,0 +1,38 @@
1
+ <template>
2
+ <button
3
+ type="button"
4
+ class="backtotop"
5
+ :class="[{ active: isTop }]"
6
+ @click="scrollToTop()"
7
+ >
8
+ <i class="ri-upload-line"></i>
9
+ </button>
10
+ </template>
11
+
12
+ <script lang="ts">
13
+ import { defineComponent } from "vue";
14
+
15
+ export default defineComponent({
16
+ name: "BackToUp",
17
+ data() {
18
+ return {
19
+ isTop: false,
20
+ };
21
+ },
22
+ methods: {
23
+ scrollToTop() {
24
+ window.scrollTo(0, 0);
25
+ },
26
+ },
27
+ mounted() {
28
+ window.addEventListener("scroll", () => {
29
+ let scrollPos = window.scrollY;
30
+ if (scrollPos >= 100) {
31
+ this.isTop = true;
32
+ } else {
33
+ this.isTop = false;
34
+ }
35
+ });
36
+ },
37
+ });
38
+ </script>
@@ -0,0 +1,25 @@
1
+ <template>
2
+ <div class="copyright-area bg-white">
3
+ <div class="container">
4
+ <v-row class="align-items-center">
5
+ <v-col cols="12" lg="6" md="6">
6
+ <p class="mb-2 mb-md-0 text-center text-md-start">
7
+ © <span>Tuan.</span> All Rights Reserved by
8
+ <a href="https://envytheme.com/" target="_blank">EnvyTheme</a>
9
+ </p>
10
+ </v-col>
11
+ <v-col cols="12" lg="6" md="6">
12
+ <div class="text-center text-md-end">
13
+ <img src="~/assets/images/payment.svg" alt="payment" />
14
+ </div>
15
+ </v-col>
16
+ </v-row>
17
+ </div>
18
+ </div>
19
+ </template>
20
+
21
+ <script>
22
+ export default {
23
+ name: "Copyright",
24
+ };
25
+ </script>
@@ -0,0 +1,183 @@
1
+ <template>
2
+ <div class="footer-area pb-60 bg-gray1">
3
+ <div class="container">
4
+ <div class="border-top pt-60 pb-35">
5
+ <v-row class="justify-content-center">
6
+ <v-col cols="12" lg="3" sm="6">
7
+ <div class="single-footer-widget">
8
+ <h3>{{ storeName }}</h3>
9
+ <p v-if="siteConfig?.siteDescription">
10
+ {{ siteConfig.siteDescription }}
11
+ </p>
12
+ <p v-else>
13
+ Your online store for the best products and deals.
14
+ </p>
15
+
16
+ <div class="call-info" v-if="phone">
17
+ <span class="title">Got Question? Call us 24/7</span>
18
+ <div class="d-flex align-items-center">
19
+ <i class="flaticon-headphones-1"></i>
20
+ <a :href="`tel:${phone}`">{{ phone }}</a>
21
+ </div>
22
+ </div>
23
+ <div class="call-info" v-if="email">
24
+ <a :href="`mailto:${email}`">{{ email }}</a>
25
+ </div>
26
+ <div class="mt-2" v-if="address">
27
+ <small class="text-muted">{{ address }}</small>
28
+ </div>
29
+ </div>
30
+ </v-col>
31
+ <v-col cols="12" lg="3" sm="6">
32
+ <div class="single-footer-widget">
33
+ <h3>Popular Categories</h3>
34
+
35
+ <ul class="ps-0 mb-0 list-unstyled import-link">
36
+ <li v-for="category in footerCategories" :key="category.id">
37
+ <NuxtLink :to="`/products?categoryId=${category.id}`">
38
+ {{ category.name }}
39
+ </NuxtLink>
40
+ </li>
41
+ <li v-if="footerCategories.length === 0">
42
+ <NuxtLink to="/products">All Products</NuxtLink>
43
+ </li>
44
+ </ul>
45
+ </div>
46
+ </v-col>
47
+ <v-col cols="12" lg="3" sm="6">
48
+ <div class="single-footer-widget">
49
+ <h3>Let Us Help You</h3>
50
+
51
+ <ul class="ps-0 mb-0 list-unstyled import-link">
52
+ <li>
53
+ <NuxtLink to="/dashboard">Your Account</NuxtLink>
54
+ </li>
55
+ <li>
56
+ <NuxtLink to="/order-history">Your Orders</NuxtLink>
57
+ </li>
58
+ <li>
59
+ <NuxtLink to="/privacy-policy">Privacy Policy</NuxtLink>
60
+ </li>
61
+ <li>
62
+ <NuxtLink to="/faq">Help Center</NuxtLink>
63
+ </li>
64
+ <li>
65
+ <NuxtLink to="/terms-conditions">Terms & Conditions</NuxtLink>
66
+ </li>
67
+ </ul>
68
+ </div>
69
+ </v-col>
70
+ <v-col cols="12" lg="3" sm="6">
71
+ <div class="single-footer-widget">
72
+ <h3>Get to Know Us</h3>
73
+
74
+ <ul class="ps-0 mb-0 list-unstyled import-link">
75
+ <li>
76
+ <NuxtLink to="/about-us">About Us</NuxtLink>
77
+ </li>
78
+ <li>
79
+ <NuxtLink to="/contact">Contact Us</NuxtLink>
80
+ </li>
81
+ <li>
82
+ <NuxtLink to="/categories">Categories</NuxtLink>
83
+ </li>
84
+ <li>
85
+ <NuxtLink to="/products">All Products</NuxtLink>
86
+ </li>
87
+ </ul>
88
+ </div>
89
+ </v-col>
90
+ </v-row>
91
+ </div>
92
+ <v-row class="align-items-end justify-content-center">
93
+ <v-col cols="12" lg="3" md="6">
94
+ <div class="single-footer-bottom-item">
95
+ <span class="title">Subscribe to the newsletter</span>
96
+ <form class="subscribe-form position-relative" @submit.prevent>
97
+ <input
98
+ type="text"
99
+ class="form-control"
100
+ placeholder="Enter your email"
101
+ />
102
+ <button
103
+ class="btn btn-warning text-white position-absolute top-50 end-0 translate-middle-y"
104
+ >
105
+ Submit Now
106
+ </button>
107
+ </form>
108
+ </div>
109
+ </v-col>
110
+ <v-col cols="12" lg="4" md="6">
111
+ <div class="single-footer-bottom-item" v-if="hasSocialMedia">
112
+ <ul
113
+ class="ps-0 mb-0 list-unstyled d-flex align-items-center social-link justify-content-center"
114
+ >
115
+ <li>
116
+ <span class="titles">Follow Us:</span>
117
+ </li>
118
+ <li v-if="socialMedia?.facebook">
119
+ <a :href="socialMedia.facebook" target="_blank">
120
+ <i class="ri-facebook-fill"></i>
121
+ </a>
122
+ </li>
123
+ <li v-if="socialMedia?.twitter">
124
+ <a :href="socialMedia.twitter" target="_blank">
125
+ <i class="ri-twitter-x-line"></i>
126
+ </a>
127
+ </li>
128
+ <li v-if="socialMedia?.instagram">
129
+ <a :href="socialMedia.instagram" target="_blank">
130
+ <i class="ri-instagram-line"></i>
131
+ </a>
132
+ </li>
133
+ </ul>
134
+ </div>
135
+ </v-col>
136
+ <v-col cols="12" lg="5" md="6">
137
+ <div class="single-footer-bottom-item">
138
+ <p class="text-center text-lg-end mb-0 text-muted">
139
+ &copy; {{ new Date().getFullYear() }} {{ storeName }}. All rights reserved.
140
+ </p>
141
+ </div>
142
+ </v-col>
143
+ </v-row>
144
+ </div>
145
+ </div>
146
+ </template>
147
+
148
+ <script lang="ts">
149
+ import { computed } from "vue";
150
+
151
+ export default {
152
+ name: "Footer",
153
+ setup() {
154
+ const { siteConfig, siteName, contactInfo } = useSiteConfig();
155
+ const { topLevelCategories } = useCategories();
156
+
157
+ const storeName = computed(() => siteName.value || 'Our Store');
158
+ const phone = computed(() => contactInfo.value?.phone);
159
+ const email = computed(() => contactInfo.value?.email);
160
+ const address = computed(() => contactInfo.value?.address);
161
+ const socialMedia = computed(() => contactInfo.value?.socialMedia);
162
+ const hasSocialMedia = computed(() => {
163
+ const sm = socialMedia.value;
164
+ return sm && (sm.facebook || sm.twitter || sm.instagram);
165
+ });
166
+
167
+ const footerCategories = computed(() =>
168
+ topLevelCategories.value.slice(0, 6)
169
+ );
170
+
171
+ return {
172
+ siteConfig,
173
+ storeName,
174
+ phone,
175
+ email,
176
+ address,
177
+ socialMedia,
178
+ hasSocialMedia,
179
+ footerCategories,
180
+ };
181
+ },
182
+ };
183
+ </script>
@@ -0,0 +1,165 @@
1
+ <template>
2
+ <div class="footer-area pb-60 bg-gray1">
3
+ <div class="container">
4
+ <div class="border-top pt-60 pb-35">
5
+ <v-row class="justify-content-center">
6
+ <v-col cols="12" lg="3" sm="6">
7
+ <div class="single-footer-widget">
8
+ <h3>About The Shop</h3>
9
+ <p>
10
+ We're not just an online store; we're your gateway to a world of
11
+ cutting-edge electronics and telemobile devices
12
+ </p>
13
+
14
+ <div class="call-info">
15
+ <span class="title">Got Question? Call us 24/7</span>
16
+ <div class="d-flex align-items-center">
17
+ <i class="flaticon-headphones-1"></i>
18
+ <a href="tel:(808)-555-0111">(808) 555-0111</a>
19
+ </div>
20
+ </div>
21
+ </div>
22
+ </v-col>
23
+ <v-col cols="12" lg="3" sm="6">
24
+ <div class="single-footer-widget">
25
+ <h3>Popular Categories</h3>
26
+
27
+ <ul class="ps-0 mb-0 list-unstyled import-link">
28
+ <li>
29
+ <NuxtLink to="/products">Smartphone & Tablets</NuxtLink>
30
+ </li>
31
+ <li>
32
+ <NuxtLink to="/products">Laptop & Desktop</NuxtLink>
33
+ </li>
34
+ <li>
35
+ <NuxtLink to="/products">Headphones</NuxtLink>
36
+ </li>
37
+ <li>
38
+ <NuxtLink to="/products">Smart Watches</NuxtLink>
39
+ </li>
40
+ <li>
41
+ <NuxtLink to="/products">Drone & Camera</NuxtLink>
42
+ </li>
43
+ <li>
44
+ <NuxtLink to="/products">Home Electronics</NuxtLink>
45
+ </li>
46
+ </ul>
47
+ </div>
48
+ </v-col>
49
+ <v-col cols="12" lg="3" sm="6">
50
+ <div class="single-footer-widget">
51
+ <h3>Let Us Help You</h3>
52
+
53
+ <ul class="ps-0 mb-0 list-unstyled import-link">
54
+ <li>
55
+ <NuxtLink to="/dashboard">Your Account</NuxtLink>
56
+ </li>
57
+ <li>
58
+ <NuxtLink to="/order-history">Your Order</NuxtLink>
59
+ </li>
60
+ <li>
61
+ <NuxtLink to="/privacy-policy">Return Policy</NuxtLink>
62
+ </li>
63
+ <li>
64
+ <NuxtLink to="/faq">Help Center</NuxtLink>
65
+ </li>
66
+ <li>
67
+ <NuxtLink to="/products">Product Replacement</NuxtLink>
68
+ </li>
69
+ <li>
70
+ <NuxtLink to="/dashboard">Shop With Points</NuxtLink>
71
+ </li>
72
+ </ul>
73
+ </div>
74
+ </v-col>
75
+ <v-col cols="12" lg="3" sm="6">
76
+ <div class="single-footer-widget">
77
+ <h3>Get to Know Us</h3>
78
+
79
+ <ul class="ps-0 mb-0 list-unstyled import-link">
80
+ <li>
81
+ <NuxtLink to="/about-us">About Us</NuxtLink>
82
+ </li>
83
+ <li>
84
+ <NuxtLink to="/about-us">Careers</NuxtLink>
85
+ </li>
86
+ <li>
87
+ <NuxtLink to="/contact">Store Location</NuxtLink>
88
+ </li>
89
+ <li>
90
+ <NuxtLink to="/our-blog">News Center</NuxtLink>
91
+ </li>
92
+ <li>
93
+ <NuxtLink to="/about-us">Investor Relations</NuxtLink>
94
+ </li>
95
+ <li>
96
+ <NuxtLink to="/contact">Contact Us</NuxtLink>
97
+ </li>
98
+ </ul>
99
+ </div>
100
+ </v-col>
101
+ </v-row>
102
+ </div>
103
+ <v-row class="align-items-end justify-content-center">
104
+ <v-col cols="12" lg="6" md="6">
105
+ <div class="single-footer-bottom-item">
106
+ <ul
107
+ class="ps-0 mb-0 list-unstyled d-flex align-items-center social-link ms-0 justify-content-md-start justify-content-center"
108
+ >
109
+ <li>
110
+ <span class="titles">Follow Us:</span>
111
+ </li>
112
+ <li>
113
+ <a href="https://www.facebook.com/" target="_blank">
114
+ <i class="ri-facebook-fill"></i>
115
+ </a>
116
+ </li>
117
+ <li>
118
+ <a href="https://www.twitter.com/" target="_blank">
119
+ <i class="ri-twitter-x-line"></i>
120
+ </a>
121
+ </li>
122
+ <li>
123
+ <a href="https://www.linkedin.com/" target="_blank">
124
+ <i class="ri-linkedin-fill"></i>
125
+ </a>
126
+ </li>
127
+ <li>
128
+ <a href="https://www.whatsapp.com/" target="_blank">
129
+ <i class="ri-whatsapp-line"></i>
130
+ </a>
131
+ </li>
132
+ </ul>
133
+ </div>
134
+ </v-col>
135
+ <v-col cols="12" lg="6" md="6">
136
+ <div class="single-footer-bottom-item">
137
+ <ul
138
+ class="ps-0 mb-0 list-unstyled d-flex align-items-center justify-content-center justify-content-lg-end app-link"
139
+ >
140
+ <li>
141
+ <span class="titles">Download App:</span>
142
+ </li>
143
+ <li>
144
+ <a href="https://www.apple.com/store" target="_blank">
145
+ <img src="~/assets/images/ios.svg" alt="ios" />
146
+ </a>
147
+ </li>
148
+ <li>
149
+ <a href="https://play.google.com/store/games" target="_blank">
150
+ <img src="~/assets/images/gplay.svg" alt="gplay" />
151
+ </a>
152
+ </li>
153
+ </ul>
154
+ </div>
155
+ </v-col>
156
+ </v-row>
157
+ </div>
158
+ </div>
159
+ </template>
160
+
161
+ <script>
162
+ export default {
163
+ name: "FooterTwo",
164
+ };
165
+ </script>
@@ -0,0 +1,178 @@
1
+ <template>
2
+ <div :class="['location-option', { show: stateStoreInstance.open }]">
3
+ <div class="modal-dialog modal-dialog-centered">
4
+ <div class="modal-content">
5
+ <div class="modal-header border-0 pb-0">
6
+ <h3 class="modal-title" id="exampleModal2Label">
7
+ Where to deliver your products?
8
+ </h3>
9
+ <button
10
+ type="button"
11
+ class="btn-close"
12
+ @click="stateStoreInstance.onChange"
13
+ ></button>
14
+ </div>
15
+ <div class="modal-body">
16
+ <form>
17
+ <div class="form-group mb-4">
18
+ <label class="label">Search your location</label>
19
+ <div class="position-relative">
20
+ <input
21
+ type="text"
22
+ class="form-control ps-5"
23
+ placeholder="Search your location"
24
+ />
25
+ <i
26
+ class="ri-map-pin-line position-absolute top-50 start-0 translate-middle-y ps-3"
27
+ ></i>
28
+ </div>
29
+ </div>
30
+ <h6>Select a Location</h6>
31
+
32
+ <ul class="ps-0 mb-0 list-unstyled location-list">
33
+ <li>
34
+ <div class="form-check ps-0 position-relative mb-0">
35
+ <label
36
+ class="form-check-label d-block"
37
+ for="flexRadioDefault4"
38
+ >
39
+ <span class="title1">Alberta</span>
40
+ <span class="dec">Athabasca T9S</span>
41
+ </label>
42
+ <input
43
+ class="form-check-input"
44
+ type="radio"
45
+ name="flexRadioDefault4"
46
+ id="flexRadioDefault4"
47
+ />
48
+ </div>
49
+ </li>
50
+ <li>
51
+ <div class="form-check ps-0 position-relative mb-0">
52
+ <label
53
+ class="form-check-label d-block"
54
+ for="flexRadioDefault5"
55
+ >
56
+ <span class="title1">British Columbia</span>
57
+ <span class="dec">Athabasca T9S</span>
58
+ </label>
59
+ <input
60
+ class="form-check-input"
61
+ type="radio"
62
+ name="flexRadioDefault5"
63
+ id="flexRadioDefault5"
64
+ />
65
+ </div>
66
+ </li>
67
+ <li>
68
+ <div class="form-check ps-0 position-relative mb-0">
69
+ <label
70
+ class="form-check-label d-block"
71
+ for="flexRadioDefault6"
72
+ >
73
+ <span class="title1">New Brunswick</span>
74
+ <span class="dec">Athabasca T9S</span>
75
+ </label>
76
+ <input
77
+ class="form-check-input"
78
+ type="radio"
79
+ name="flexRadioDefault6"
80
+ id="flexRadioDefault6"
81
+ />
82
+ </div>
83
+ </li>
84
+ <li>
85
+ <div class="form-check ps-0 position-relative mb-0">
86
+ <label
87
+ class="form-check-label d-block"
88
+ for="flexRadioDefault7"
89
+ >
90
+ <span class="title1">Nova Scotia</span>
91
+ <span class="dec">Athabasca T9S</span>
92
+ </label>
93
+ <input
94
+ class="form-check-input"
95
+ type="radio"
96
+ name="flexRadioDefault7"
97
+ id="flexRadioDefault7"
98
+ />
99
+ </div>
100
+ </li>
101
+ <li>
102
+ <div class="form-check ps-0 position-relative mb-0">
103
+ <label
104
+ class="form-check-label d-block"
105
+ for="flexRadioDefault8"
106
+ >
107
+ <span class="title1">Ontario</span>
108
+ <span class="dec">Athabasca T9S</span>
109
+ </label>
110
+ <input
111
+ class="form-check-input"
112
+ type="radio"
113
+ name="flexRadioDefault8"
114
+ id="flexRadioDefault8"
115
+ />
116
+ </div>
117
+ </li>
118
+ <li>
119
+ <div class="form-check ps-0 position-relative mb-0">
120
+ <label
121
+ class="form-check-label d-block"
122
+ for="flexRadioDefault9"
123
+ >
124
+ <span class="title1">Quebec</span>
125
+ <span class="dec">Athabasca T9S</span>
126
+ </label>
127
+ <input
128
+ class="form-check-input"
129
+ type="radio"
130
+ name="flexRadioDefault9"
131
+ id="flexRadioDefault9"
132
+ />
133
+ </div>
134
+ </li>
135
+ <li>
136
+ <div class="form-check ps-0 position-relative mb-0">
137
+ <label
138
+ class="form-check-label d-block"
139
+ for="flexRadioDefault10"
140
+ >
141
+ <span class="title1">Yukon</span>
142
+ <span class="dec">Athabasca T9S</span>
143
+ </label>
144
+ <input
145
+ class="form-check-input"
146
+ type="radio"
147
+ name="flexRadioDefault10"
148
+ id="flexRadioDefault10"
149
+ />
150
+ </div>
151
+ </li>
152
+ </ul>
153
+ </form>
154
+ </div>
155
+ </div>
156
+ </div>
157
+ </div>
158
+ </template>
159
+
160
+ <script lang="ts">
161
+ import { defineComponent } from "vue";
162
+ import stateStore from "~/utils/store";
163
+
164
+ export default defineComponent({
165
+ name: "MobileDeviceNavbar",
166
+ setup() {
167
+ const stateStoreInstance = stateStore;
168
+ const handleClick = () => {
169
+ stateStoreInstance.open = false;
170
+ };
171
+
172
+ return {
173
+ stateStoreInstance,
174
+ handleClick,
175
+ };
176
+ },
177
+ });
178
+ </script>