@crm-market/template-shared 1.0.6 → 1.0.8
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/assets/scss/_variables.scss +3 -3
- package/assets/scss/components/_header.scss +1 -1
- package/assets/scss/style.css +4 -4
- package/components/AboutUs/StaticContent.vue +32 -0
- package/components/Cart/CartEmpty.vue +42 -0
- package/components/Cart/CartItem.vue +145 -0
- package/components/Cart/CartSummary.vue +57 -0
- package/components/Cart/ProductQuantity.vue +23 -13
- package/components/Cart/index.vue +68 -150
- package/components/Categories/index.vue +88 -291
- package/components/Checkout/AddressFields.vue +74 -0
- package/components/Checkout/CheckoutForm.vue +75 -0
- package/components/Checkout/CityAutocomplete.vue +68 -0
- package/components/Checkout/DeliveryMethodCard.vue +66 -0
- package/components/Checkout/DeliveryOptions.vue +148 -0
- package/components/Checkout/OrderSummary.vue +116 -0
- package/components/Checkout/PaymentOptions.vue +76 -0
- package/components/Checkout/PickupPoints.vue +46 -0
- package/components/Checkout/PromoCode.vue +166 -0
- package/components/Checkout/index.vue +235 -173
- package/components/Checkout/types.ts +45 -0
- package/components/Common/PageBanner.vue +22 -20
- package/components/Common/ProductCard.vue +139 -115
- package/components/Common/Services.vue +4 -4
- package/components/Contact/ContactForm.vue +44 -74
- package/components/Contact/ContactInfo.vue +35 -61
- package/components/FAQ/index.vue +6 -119
- package/components/Layout/Copyright.vue +11 -9
- package/components/Layout/Footer.vue +49 -136
- package/components/Layout/HeaderBar.vue +174 -0
- package/components/Layout/HeaderLogo.vue +27 -0
- package/components/Layout/MiddleHeader.vue +1 -228
- package/components/Layout/MiddleHeaderThree.vue +1 -203
- package/components/Layout/MiddleHeaderTwo.vue +1 -239
- package/components/Layout/NavLinks.vue +23 -0
- package/components/Layout/Navbar.vue +38 -151
- package/components/Layout/NavbarStyleFour.vue +1 -332
- package/components/Layout/NavbarStyleThree.vue +1 -188
- package/components/Layout/NavbarStyleTwo.vue +1 -108
- package/components/Layout/Preloader.vue +5 -12
- package/components/Layout/ResponsiveNavbar.vue +32 -418
- package/components/Layout/SitewideBanner.vue +285 -0
- package/components/Layout/TopHeader.vue +17 -83
- package/components/Layout/layoutData.ts +83 -0
- package/components/PrivacyPolicy/index.vue +6 -110
- package/components/ProductDetails/ProductDetailsTab.vue +31 -321
- package/components/ProductDetails/ProductGallery.vue +45 -0
- package/components/ProductDetails/ProductQuantity.vue +8 -14
- package/components/ProductDetails/RecentlyViewed.vue +53 -289
- package/components/ProductDetails/RelatedProducts.vue +64 -0
- package/components/ProductDetails/index.vue +90 -230
- package/components/Products/index.vue +78 -16
- package/components/TermsConditions/index.vue +6 -110
- package/components/Wishlist/index.vue +62 -88
- package/composables/useCart.ts +133 -81
- package/composables/useCategories.ts +67 -31
- package/composables/useCategoryImages.ts +45 -0
- package/composables/useCheckout.ts +302 -97
- package/composables/useContactForm.ts +57 -0
- package/composables/useHomeContent.ts +220 -0
- package/composables/useI18n.ts +12 -24
- package/composables/useJsonLd.ts +162 -0
- package/composables/useProducts.ts +244 -83
- package/composables/useRecent.ts +30 -0
- package/composables/useSanitize.ts +76 -0
- package/composables/useSiteConfig.ts +51 -47
- package/composables/useStaticPages.ts +48 -0
- package/composables/useStoreOrigin.ts +32 -0
- package/composables/useTemplateSections.ts +51 -3
- package/composables/useThemeVars.ts +113 -0
- package/composables/useWishlist.ts +72 -0
- package/layouts/default.vue +80 -19
- package/locales/en.json +255 -86
- package/locales/uk.json +251 -82
- package/modules/template-schema.ts +35 -0
- package/nuxt.config.ts +8 -11
- package/package.json +1 -1
- package/pages/about-us.vue +9 -9
- package/pages/cart.vue +0 -1
- package/pages/categories.vue +0 -1
- package/pages/category/[slug].vue +84 -0
- package/pages/checkout.vue +0 -1
- package/pages/contact.vue +6 -6
- package/pages/delivery.vue +12 -0
- package/pages/faq.vue +6 -6
- package/pages/order-success.vue +113 -0
- package/pages/privacy-policy.vue +6 -6
- package/pages/product/[slug].vue +82 -0
- package/pages/product-details.vue +14 -6
- package/pages/products.vue +12 -1
- package/pages/returns.vue +12 -0
- package/pages/terms-conditions.vue +6 -6
- package/pages/wishlist.vue +2 -2
- package/utils/image.ts +0 -1
- package/utils/seo-urls.ts +70 -0
- package/utils/store-origin.ts +36 -0
- package/components/AboutUs/AboutUsTuan.vue +0 -25
- package/components/AboutUs/Statistics.vue +0 -42
- package/components/AboutUs/SubscribeToTheNewsletter.vue +0 -57
- package/components/AddAddress/index.vue +0 -68
- package/components/BestSellers/Products.vue +0 -1562
- package/components/BestSellers/RecentlyViewed.vue +0 -304
- package/components/ChangePassword/index.vue +0 -69
- package/components/Common/DashboardNavigation.vue +0 -35
- package/components/Dashboard/RecentOrder.vue +0 -173
- package/components/Dashboard/index.vue +0 -77
- package/components/EditAddress/index.vue +0 -117
- package/components/EditProfile/index.vue +0 -95
- package/components/FeaturedProduct/FeaturedProducts.vue +0 -304
- package/components/FeaturedProduct/Products.vue +0 -1562
- package/components/ForgotPassword/index.vue +0 -49
- package/components/Layout/FooterTwo.vue +0 -159
- package/components/Layout/LocationOption.vue +0 -178
- package/components/Layout/RTLSwitchBtn.vue +0 -40
- package/components/Login/index.vue +0 -89
- package/components/MyAccount/index.vue +0 -154
- package/components/NewArrivals/Products.vue +0 -1969
- package/components/NewArrivals/RecentlyViewed.vue +0 -304
- package/components/OrderDetails/index.vue +0 -75
- package/components/OrderHistory/index.vue +0 -195
- package/components/Products/RecentlyViewed.vue +0 -302
- package/components/Register/index.vue +0 -83
- package/components/TrendingProducts/FeaturedProducts.vue +0 -304
- package/components/TrendingProducts/Products.vue +0 -1564
- package/components/Wishlist/ProductQuantity.vue +0 -29
- package/layouts/inner.vue +0 -70
- package/locales/ar.json +0 -234
- package/locales/ru.json +0 -234
- package/pages/address.vue +0 -11
- package/pages/change-password.vue +0 -11
- package/pages/dashboard.vue +0 -11
- package/pages/edit-address.vue +0 -11
- package/pages/edit-profile.vue +0 -11
- package/pages/forgot-password.vue +0 -11
- package/pages/login.vue +0 -11
- package/pages/my-account.vue +0 -11
- package/pages/order-details.vue +0 -11
- package/pages/order-history.vue +0 -11
- package/pages/register.vue +0 -11
|
@@ -1,49 +0,0 @@
|
|
|
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
|
-
{{ t('auth.forgotPassword') }}
|
|
17
|
-
</NuxtLink>
|
|
18
|
-
</li>
|
|
19
|
-
</ul>
|
|
20
|
-
<p>{{ t('auth.loginDescription') }}</p>
|
|
21
|
-
<form>
|
|
22
|
-
<div class="form-group mb-4">
|
|
23
|
-
<label class="label">{{ t('auth.email') }}</label>
|
|
24
|
-
<input
|
|
25
|
-
type="email"
|
|
26
|
-
class="form-control"
|
|
27
|
-
:placeholder="t('auth.enterEmail')"
|
|
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
|
-
{{ t('auth.forgotPassword') }}
|
|
36
|
-
</button>
|
|
37
|
-
</div>
|
|
38
|
-
</form>
|
|
39
|
-
</div>
|
|
40
|
-
</div>
|
|
41
|
-
</div>
|
|
42
|
-
</div>
|
|
43
|
-
</div>
|
|
44
|
-
</div>
|
|
45
|
-
</template>
|
|
46
|
-
|
|
47
|
-
<script setup lang="ts">
|
|
48
|
-
const { t } = useI18n();
|
|
49
|
-
</script>
|
|
@@ -1,159 +0,0 @@
|
|
|
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>{{ t('footer.aboutTheShop') }}</h3>
|
|
9
|
-
<p>
|
|
10
|
-
{{ t('footer.storeDescription') }}
|
|
11
|
-
</p>
|
|
12
|
-
|
|
13
|
-
<div class="call-info">
|
|
14
|
-
<span class="title">{{ t('footer.gotQuestion') }}</span>
|
|
15
|
-
<div class="d-flex align-items-center">
|
|
16
|
-
<i class="flaticon-headphones-1"></i>
|
|
17
|
-
<a href="tel:(808)-555-0111">(808) 555-0111</a>
|
|
18
|
-
</div>
|
|
19
|
-
</div>
|
|
20
|
-
</div>
|
|
21
|
-
</v-col>
|
|
22
|
-
<v-col cols="12" lg="3" sm="6">
|
|
23
|
-
<div class="single-footer-widget">
|
|
24
|
-
<h3>{{ t('footer.popularCategories') }}</h3>
|
|
25
|
-
|
|
26
|
-
<ul class="ps-0 mb-0 list-unstyled import-link">
|
|
27
|
-
<li v-for="category in footerCategories" :key="category.id">
|
|
28
|
-
<NuxtLink :to="`/products?categoryId=${category.id}`">
|
|
29
|
-
{{ category.name }}
|
|
30
|
-
</NuxtLink>
|
|
31
|
-
</li>
|
|
32
|
-
<li v-if="footerCategories.length === 0">
|
|
33
|
-
<NuxtLink to="/products">{{ t('nav.allProducts') }}</NuxtLink>
|
|
34
|
-
</li>
|
|
35
|
-
</ul>
|
|
36
|
-
</div>
|
|
37
|
-
</v-col>
|
|
38
|
-
<v-col cols="12" lg="3" sm="6">
|
|
39
|
-
<div class="single-footer-widget">
|
|
40
|
-
<h3>{{ t('footer.letUsHelp') }}</h3>
|
|
41
|
-
|
|
42
|
-
<ul class="ps-0 mb-0 list-unstyled import-link">
|
|
43
|
-
<li>
|
|
44
|
-
<NuxtLink to="/dashboard">{{ t('account.yourAccount') }}</NuxtLink>
|
|
45
|
-
</li>
|
|
46
|
-
<li>
|
|
47
|
-
<NuxtLink to="/order-history">{{ t('account.yourOrders') }}</NuxtLink>
|
|
48
|
-
</li>
|
|
49
|
-
<li>
|
|
50
|
-
<NuxtLink to="/privacy-policy">{{ t('footer.returnPolicy') }}</NuxtLink>
|
|
51
|
-
</li>
|
|
52
|
-
<li>
|
|
53
|
-
<NuxtLink to="/faq">{{ t('common.helpCenter') }}</NuxtLink>
|
|
54
|
-
</li>
|
|
55
|
-
<li>
|
|
56
|
-
<NuxtLink to="/products">{{ t('footer.productReplacement') }}</NuxtLink>
|
|
57
|
-
</li>
|
|
58
|
-
<li>
|
|
59
|
-
<NuxtLink to="/dashboard">{{ t('footer.shopWithPoints') }}</NuxtLink>
|
|
60
|
-
</li>
|
|
61
|
-
</ul>
|
|
62
|
-
</div>
|
|
63
|
-
</v-col>
|
|
64
|
-
<v-col cols="12" lg="3" sm="6">
|
|
65
|
-
<div class="single-footer-widget">
|
|
66
|
-
<h3>{{ t('footer.getToKnowUs') }}</h3>
|
|
67
|
-
|
|
68
|
-
<ul class="ps-0 mb-0 list-unstyled import-link">
|
|
69
|
-
<li>
|
|
70
|
-
<NuxtLink to="/about-us">{{ t('nav.aboutUs') }}</NuxtLink>
|
|
71
|
-
</li>
|
|
72
|
-
<li>
|
|
73
|
-
<NuxtLink to="/about-us">{{ t('footer.careers') }}</NuxtLink>
|
|
74
|
-
</li>
|
|
75
|
-
<li>
|
|
76
|
-
<NuxtLink to="/contact">{{ t('footer.storeLocation') }}</NuxtLink>
|
|
77
|
-
</li>
|
|
78
|
-
<li>
|
|
79
|
-
<NuxtLink to="/our-blog">{{ t('footer.newsCenter') }}</NuxtLink>
|
|
80
|
-
</li>
|
|
81
|
-
<li>
|
|
82
|
-
<NuxtLink to="/about-us">Investor Relations</NuxtLink>
|
|
83
|
-
</li>
|
|
84
|
-
<li>
|
|
85
|
-
<NuxtLink to="/contact">{{ t('nav.contact') }}</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="6" md="6">
|
|
94
|
-
<div class="single-footer-bottom-item">
|
|
95
|
-
<ul
|
|
96
|
-
class="ps-0 mb-0 list-unstyled d-flex align-items-center social-link ms-0 justify-content-md-start justify-content-center"
|
|
97
|
-
>
|
|
98
|
-
<li>
|
|
99
|
-
<span class="titles">{{ t('footer.followUs') }}:</span>
|
|
100
|
-
</li>
|
|
101
|
-
<li>
|
|
102
|
-
<a href="https://www.facebook.com/" target="_blank">
|
|
103
|
-
<i class="ri-facebook-fill"></i>
|
|
104
|
-
</a>
|
|
105
|
-
</li>
|
|
106
|
-
<li>
|
|
107
|
-
<a href="https://www.twitter.com/" target="_blank">
|
|
108
|
-
<i class="ri-twitter-x-line"></i>
|
|
109
|
-
</a>
|
|
110
|
-
</li>
|
|
111
|
-
<li>
|
|
112
|
-
<a href="https://www.linkedin.com/" target="_blank">
|
|
113
|
-
<i class="ri-linkedin-fill"></i>
|
|
114
|
-
</a>
|
|
115
|
-
</li>
|
|
116
|
-
<li>
|
|
117
|
-
<a href="https://www.whatsapp.com/" target="_blank">
|
|
118
|
-
<i class="ri-whatsapp-line"></i>
|
|
119
|
-
</a>
|
|
120
|
-
</li>
|
|
121
|
-
</ul>
|
|
122
|
-
</div>
|
|
123
|
-
</v-col>
|
|
124
|
-
<v-col cols="12" lg="6" md="6">
|
|
125
|
-
<div class="single-footer-bottom-item">
|
|
126
|
-
<ul
|
|
127
|
-
class="ps-0 mb-0 list-unstyled d-flex align-items-center justify-content-center justify-content-lg-end app-link"
|
|
128
|
-
>
|
|
129
|
-
<li>
|
|
130
|
-
<span class="titles">{{ t('footer.downloadApp') }}:</span>
|
|
131
|
-
</li>
|
|
132
|
-
<li>
|
|
133
|
-
<a href="https://www.apple.com/store" target="_blank">
|
|
134
|
-
<img src="~/assets/images/ios.svg" alt="ios" />
|
|
135
|
-
</a>
|
|
136
|
-
</li>
|
|
137
|
-
<li>
|
|
138
|
-
<a href="https://play.google.com/store/games" target="_blank">
|
|
139
|
-
<img src="~/assets/images/gplay.svg" alt="gplay" />
|
|
140
|
-
</a>
|
|
141
|
-
</li>
|
|
142
|
-
</ul>
|
|
143
|
-
</div>
|
|
144
|
-
</v-col>
|
|
145
|
-
</v-row>
|
|
146
|
-
</div>
|
|
147
|
-
</div>
|
|
148
|
-
</template>
|
|
149
|
-
|
|
150
|
-
<script setup lang="ts">
|
|
151
|
-
import { computed } from "vue";
|
|
152
|
-
|
|
153
|
-
const { t } = useI18n();
|
|
154
|
-
const { topLevelCategories } = useCategories();
|
|
155
|
-
|
|
156
|
-
const footerCategories = computed(() =>
|
|
157
|
-
topLevelCategories.value.slice(0, 6)
|
|
158
|
-
);
|
|
159
|
-
</script>
|
|
@@ -1,178 +0,0 @@
|
|
|
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>
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="settings-btn rtl-btn">
|
|
3
|
-
<label id="switch" class="switch">
|
|
4
|
-
<input type="checkbox" @change="toggleRTL" id="slider" />
|
|
5
|
-
<span class="slider round"></span>
|
|
6
|
-
</label>
|
|
7
|
-
</div>
|
|
8
|
-
</template>
|
|
9
|
-
|
|
10
|
-
<script lang="ts">
|
|
11
|
-
import { defineComponent, onMounted, ref } from "vue";
|
|
12
|
-
|
|
13
|
-
export default defineComponent({
|
|
14
|
-
name: "RTLSwitchBtn",
|
|
15
|
-
setup() {
|
|
16
|
-
const isRTLEnabled = ref(false);
|
|
17
|
-
|
|
18
|
-
const toggleRTL = () => {
|
|
19
|
-
isRTLEnabled.value = !isRTLEnabled.value;
|
|
20
|
-
document.body.classList.toggle("rtl", isRTLEnabled.value);
|
|
21
|
-
localStorage.setItem("isRTLEnabled", JSON.stringify(isRTLEnabled.value));
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
onMounted(() => {
|
|
25
|
-
const savedRTLEnabled = localStorage.getItem("isRTLEnabled");
|
|
26
|
-
if (savedRTLEnabled) {
|
|
27
|
-
isRTLEnabled.value = JSON.parse(savedRTLEnabled);
|
|
28
|
-
if (isRTLEnabled.value) {
|
|
29
|
-
document.body.classList.add("rtl");
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
return {
|
|
35
|
-
toggleRTL,
|
|
36
|
-
isRTLEnabled,
|
|
37
|
-
};
|
|
38
|
-
},
|
|
39
|
-
});
|
|
40
|
-
</script>
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="authentication-area ptb-60">
|
|
3
|
-
<div class="container">
|
|
4
|
-
<div class="authentication-content">
|
|
5
|
-
<div class="row">
|
|
6
|
-
<div class="col-lg-5">
|
|
7
|
-
<div class="login h-100 text-center">
|
|
8
|
-
<img
|
|
9
|
-
src="~/assets/images/login.png"
|
|
10
|
-
class="h-100 object-fit-cover"
|
|
11
|
-
alt="login"
|
|
12
|
-
/>
|
|
13
|
-
</div>
|
|
14
|
-
</div>
|
|
15
|
-
<div class="col-lg-7">
|
|
16
|
-
<div class="authentication-form">
|
|
17
|
-
<ul class="nav nav-tabs login-tabs" id="myTab" role="tablist">
|
|
18
|
-
<li class="nav-item" role="presentation">
|
|
19
|
-
<NuxtLink to="/login" class="nav-link active">{{ t('auth.login') }}</NuxtLink>
|
|
20
|
-
</li>
|
|
21
|
-
<li class="nav-item" role="presentation">
|
|
22
|
-
<NuxtLink to="/register" class="nav-link">{{ t('auth.register') }}</NuxtLink>
|
|
23
|
-
</li>
|
|
24
|
-
</ul>
|
|
25
|
-
<p>{{ t('auth.loginDescription') }}</p>
|
|
26
|
-
<form>
|
|
27
|
-
<div class="form-group mb-4">
|
|
28
|
-
<label class="label">{{ t('auth.usernameOrEmail') }} *</label>
|
|
29
|
-
<input
|
|
30
|
-
type="text"
|
|
31
|
-
class="form-control"
|
|
32
|
-
:placeholder="t('auth.usernameOrEmail')"
|
|
33
|
-
/>
|
|
34
|
-
</div>
|
|
35
|
-
<div class="form-group mb-4">
|
|
36
|
-
<label class="label">{{ t('auth.yourPassword') }} *</label>
|
|
37
|
-
<input
|
|
38
|
-
type="password"
|
|
39
|
-
class="form-control"
|
|
40
|
-
:placeholder="t('auth.yourPassword')"
|
|
41
|
-
/>
|
|
42
|
-
</div>
|
|
43
|
-
<div class="d-flex justify-content-between mb-4">
|
|
44
|
-
<div class="form-check">
|
|
45
|
-
<input
|
|
46
|
-
class="form-check-input"
|
|
47
|
-
type="checkbox"
|
|
48
|
-
value=""
|
|
49
|
-
id="flexCheckDefault"
|
|
50
|
-
/>
|
|
51
|
-
<label class="form-check-label" for="flexCheckDefault">
|
|
52
|
-
{{ t('auth.remember') }}
|
|
53
|
-
</label>
|
|
54
|
-
</div>
|
|
55
|
-
<NuxtLink to="/forgot-password" class="text-primary">
|
|
56
|
-
{{ t('auth.lostPassword') }}
|
|
57
|
-
</NuxtLink>
|
|
58
|
-
</div>
|
|
59
|
-
<div class="form-group mb-4">
|
|
60
|
-
<button
|
|
61
|
-
type="submit"
|
|
62
|
-
class="btn btn-warning btn-pill text-white w-100 d-block"
|
|
63
|
-
>
|
|
64
|
-
{{ t('auth.login') }}
|
|
65
|
-
</button>
|
|
66
|
-
</div>
|
|
67
|
-
<div class="form-group mb-0">
|
|
68
|
-
<p class="text-secondary ms-1 text-primary">
|
|
69
|
-
{{ t(‘auth.noAccount’) }}
|
|
70
|
-
<NuxtLink
|
|
71
|
-
to="/register"
|
|
72
|
-
class="text-decoration-none text-primary"
|
|
73
|
-
>
|
|
74
|
-
{{ t(‘auth.register’) }}
|
|
75
|
-
</NuxtLink>
|
|
76
|
-
</p>
|
|
77
|
-
</div>
|
|
78
|
-
</form>
|
|
79
|
-
</div>
|
|
80
|
-
</div>
|
|
81
|
-
</div>
|
|
82
|
-
</div>
|
|
83
|
-
</div>
|
|
84
|
-
</div>
|
|
85
|
-
</template>
|
|
86
|
-
|
|
87
|
-
<script setup lang="ts">
|
|
88
|
-
const { t } = useI18n();
|
|
89
|
-
</script>
|
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="authentication-area ptb-60">
|
|
3
|
-
<div class="container">
|
|
4
|
-
<div class="authentication-content">
|
|
5
|
-
<div class="row">
|
|
6
|
-
<div class="col-lg-5">
|
|
7
|
-
<div class="login h-100 text-center">
|
|
8
|
-
<img
|
|
9
|
-
src="~/assets/images/login.png"
|
|
10
|
-
class="h-100 object-fit-cover"
|
|
11
|
-
alt="login"
|
|
12
|
-
/>
|
|
13
|
-
</div>
|
|
14
|
-
</div>
|
|
15
|
-
<div class="col-lg-7">
|
|
16
|
-
<div class="authentication-form">
|
|
17
|
-
<v-tabs v-model="tab" bg-color="white" class="login-tabs">
|
|
18
|
-
<v-tab value="login">{{ t('auth.login') }}</v-tab>
|
|
19
|
-
<v-tab value="register">{{ t('auth.register') }}</v-tab>
|
|
20
|
-
</v-tabs>
|
|
21
|
-
|
|
22
|
-
<v-card-text>
|
|
23
|
-
<v-tabs-window v-model="tab">
|
|
24
|
-
<v-tabs-window-item value="login">
|
|
25
|
-
<p>{{ t('auth.loginDescription') }}</p>
|
|
26
|
-
<form>
|
|
27
|
-
<div class="form-group mb-4">
|
|
28
|
-
<label class="label">{{ t('auth.usernameOrEmail') }} *</label>
|
|
29
|
-
<input
|
|
30
|
-
type="text"
|
|
31
|
-
class="form-control"
|
|
32
|
-
:placeholder="t('auth.usernameOrEmail')"
|
|
33
|
-
/>
|
|
34
|
-
</div>
|
|
35
|
-
<div class="form-group mb-4">
|
|
36
|
-
<label class="label">{{ t('auth.yourPassword') }} *</label>
|
|
37
|
-
<input
|
|
38
|
-
type="password"
|
|
39
|
-
class="form-control"
|
|
40
|
-
:placeholder="t('auth.yourPassword')"
|
|
41
|
-
/>
|
|
42
|
-
</div>
|
|
43
|
-
<div class="d-flex justify-content-between mb-4">
|
|
44
|
-
<div class="form-check">
|
|
45
|
-
<input
|
|
46
|
-
class="form-check-input"
|
|
47
|
-
type="checkbox"
|
|
48
|
-
value=""
|
|
49
|
-
id="flexCheckDefault"
|
|
50
|
-
/>
|
|
51
|
-
<label
|
|
52
|
-
class="form-check-label"
|
|
53
|
-
for="flexCheckDefault"
|
|
54
|
-
>
|
|
55
|
-
{{ t('auth.remember') }}
|
|
56
|
-
</label>
|
|
57
|
-
</div>
|
|
58
|
-
<NuxtLink to="/forgot-password" class="text-primary">
|
|
59
|
-
{{ t('auth.lostPassword') }}
|
|
60
|
-
</NuxtLink>
|
|
61
|
-
</div>
|
|
62
|
-
<div class="form-group mb-4">
|
|
63
|
-
<button
|
|
64
|
-
type="submit"
|
|
65
|
-
class="btn btn-warning btn-pill text-white w-100 d-block"
|
|
66
|
-
>
|
|
67
|
-
{{ t('auth.login') }}
|
|
68
|
-
</button>
|
|
69
|
-
</div>
|
|
70
|
-
<div class="form-group mb-0">
|
|
71
|
-
<p class="text-secondary ms-1 text-primary">
|
|
72
|
-
{{ t('auth.noAccount') }}
|
|
73
|
-
<NuxtLink
|
|
74
|
-
to="/register"
|
|
75
|
-
class="text-decoration-none text-primary"
|
|
76
|
-
>
|
|
77
|
-
{{ t('auth.register') }}
|
|
78
|
-
</NuxtLink>
|
|
79
|
-
</p>
|
|
80
|
-
</div>
|
|
81
|
-
</form>
|
|
82
|
-
</v-tabs-window-item>
|
|
83
|
-
<v-tabs-window-item value="register">
|
|
84
|
-
<p>{{ t('auth.loginDescription') }}</p>
|
|
85
|
-
<form>
|
|
86
|
-
<div class="form-group mb-4">
|
|
87
|
-
<label class="label">{{ t('auth.username') }} *</label>
|
|
88
|
-
<input
|
|
89
|
-
type="text"
|
|
90
|
-
class="form-control"
|
|
91
|
-
:placeholder="t('auth.username')"
|
|
92
|
-
/>
|
|
93
|
-
</div>
|
|
94
|
-
<div class="form-group mb-4">
|
|
95
|
-
<label class="label">{{ t('auth.email') }} *</label>
|
|
96
|
-
<input
|
|
97
|
-
type="email"
|
|
98
|
-
class="form-control"
|
|
99
|
-
:placeholder="t('auth.email')"
|
|
100
|
-
/>
|
|
101
|
-
</div>
|
|
102
|
-
<div class="form-group mb-4">
|
|
103
|
-
<label class="label">{{ t('auth.password') }} *</label>
|
|
104
|
-
<input
|
|
105
|
-
type="password"
|
|
106
|
-
class="form-control"
|
|
107
|
-
:placeholder="t('auth.password')"
|
|
108
|
-
/>
|
|
109
|
-
</div>
|
|
110
|
-
<div class="form-group mb-4">
|
|
111
|
-
<button
|
|
112
|
-
type="submit"
|
|
113
|
-
class="btn btn-warning btn-pill text-white w-100 d-block"
|
|
114
|
-
>
|
|
115
|
-
{{ t('auth.register') }}
|
|
116
|
-
</button>
|
|
117
|
-
</div>
|
|
118
|
-
<div class="form-group mb-0">
|
|
119
|
-
<p class="text-secondary ms-1 text-primary">
|
|
120
|
-
{{ t('auth.haveAccount') }}
|
|
121
|
-
<NuxtLink
|
|
122
|
-
to="/login"
|
|
123
|
-
class="text-decoration-none text-primary"
|
|
124
|
-
>
|
|
125
|
-
{{ t('auth.login') }}
|
|
126
|
-
</NuxtLink>
|
|
127
|
-
</p>
|
|
128
|
-
</div>
|
|
129
|
-
</form>
|
|
130
|
-
</v-tabs-window-item>
|
|
131
|
-
</v-tabs-window>
|
|
132
|
-
</v-card-text>
|
|
133
|
-
</div>
|
|
134
|
-
</div>
|
|
135
|
-
</div>
|
|
136
|
-
</div>
|
|
137
|
-
</div>
|
|
138
|
-
</div>
|
|
139
|
-
</template>
|
|
140
|
-
|
|
141
|
-
<script lang="ts">
|
|
142
|
-
import { defineComponent } from "vue";
|
|
143
|
-
|
|
144
|
-
export default defineComponent({
|
|
145
|
-
name: "MyAccount",
|
|
146
|
-
data: () => ({
|
|
147
|
-
tab: null,
|
|
148
|
-
}),
|
|
149
|
-
setup() {
|
|
150
|
-
const { t } = useI18n();
|
|
151
|
-
return { t };
|
|
152
|
-
},
|
|
153
|
-
});
|
|
154
|
-
</script>
|