@burh/nuxt-core 1.0.131 → 1.0.133

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.
@@ -1,3 +1,3 @@
1
- <svg width="16" height="10" viewBox="0 0 16 10" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <path d="M9.06482 6.22306C8.48159 6.52696 7.89836 6.52696 7.28443 6.22306C7.22304 6.31423 7.22304 6.43579 7.19234 6.52696C6.82399 7.89449 5.68822 8.89735 4.27619 9.07969C2.25023 9.32281 0.654021 7.89449 0.40845 6.22306C0.224272 4.97709 0.561932 3.88306 1.54422 3.03215C2.00466 2.63709 2.46511 2.27241 2.92555 1.90773C3.386 1.54306 3.93853 1.33033 4.55246 1.29994C4.64455 1.29994 4.70594 1.26955 4.76733 1.20877C4.98221 0.996045 5.19708 0.783318 5.41196 0.60098C6.05658 0.0235765 7.00817 0.145135 7.46861 0.874486C7.49931 0.904876 7.49931 0.935266 7.53 0.965655C7.53 1.02643 7.5914 1.02643 7.65279 0.965655C7.89836 0.844097 8.14393 0.813707 8.4202 0.874486C8.51229 0.904876 8.57368 0.935266 8.66577 0.965655C8.75786 1.02643 8.78856 1.02643 8.81925 0.935266C8.94204 0.661759 9.15691 0.479421 9.40248 0.357863C9.86293 0.145135 10.2927 0.145135 10.7224 0.418642C10.9066 0.5402 11.0601 0.692149 11.2443 0.874486C11.275 0.904876 11.3057 0.935266 11.3364 0.965655C11.4284 1.05682 11.5205 1.17838 11.6433 1.26955C11.7661 1.33033 11.9196 1.29994 12.0731 1.33033C12.5335 1.39111 12.9326 1.54306 13.3009 1.81657C13.8535 2.24202 14.3753 2.66748 14.8971 3.12332C15.4804 3.60955 15.7873 4.27813 15.9408 5.00748C16.2171 6.46618 15.5111 7.98566 14.1297 8.71501C12.0731 9.77865 9.52527 8.59346 9.06482 6.34462C9.09552 6.28384 9.09552 6.25345 9.06482 6.22306ZM12.5028 8.10722C13.7614 8.10722 14.805 7.04358 14.805 5.76722C14.805 4.46046 13.7921 3.39683 12.5028 3.39683C11.367 3.39683 10.2006 4.30852 10.2006 5.76722C10.2313 7.19553 11.3977 8.10722 12.5028 8.10722ZM1.54422 5.76722C1.54422 7.07397 2.58789 8.10722 3.84644 8.10722C5.10499 8.10722 6.14867 7.04358 6.14867 5.73683C6.14867 4.43007 5.10499 3.39683 3.81575 3.39683C2.55719 3.39683 1.54422 4.46046 1.54422 5.76722ZM7.16165 4.67319C7.16165 5.15943 7.5914 5.58488 8.08254 5.58488C8.60438 5.58488 9.03413 5.15943 9.03413 4.67319C9.03413 4.18696 8.60438 3.7615 8.11323 3.7615C7.5914 3.73111 7.16165 4.12618 7.16165 4.67319Z" fill="#F8FAFB"/>
3
- </svg>
1
+ <svg width="16" height="10" viewBox="0 0 16 10" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M9.06482 6.22306C8.48159 6.52696 7.89836 6.52696 7.28443 6.22306C7.22304 6.31423 7.22304 6.43579 7.19234 6.52696C6.82399 7.89449 5.68822 8.89735 4.27619 9.07969C2.25023 9.32281 0.654021 7.89449 0.40845 6.22306C0.224272 4.97709 0.561932 3.88306 1.54422 3.03215C2.00466 2.63709 2.46511 2.27241 2.92555 1.90773C3.386 1.54306 3.93853 1.33033 4.55246 1.29994C4.64455 1.29994 4.70594 1.26955 4.76733 1.20877C4.98221 0.996045 5.19708 0.783318 5.41196 0.60098C6.05658 0.0235765 7.00817 0.145135 7.46861 0.874486C7.49931 0.904876 7.49931 0.935266 7.53 0.965655C7.53 1.02643 7.5914 1.02643 7.65279 0.965655C7.89836 0.844097 8.14393 0.813707 8.4202 0.874486C8.51229 0.904876 8.57368 0.935266 8.66577 0.965655C8.75786 1.02643 8.78856 1.02643 8.81925 0.935266C8.94204 0.661759 9.15691 0.479421 9.40248 0.357863C9.86293 0.145135 10.2927 0.145135 10.7224 0.418642C10.9066 0.5402 11.0601 0.692149 11.2443 0.874486C11.275 0.904876 11.3057 0.935266 11.3364 0.965655C11.4284 1.05682 11.5205 1.17838 11.6433 1.26955C11.7661 1.33033 11.9196 1.29994 12.0731 1.33033C12.5335 1.39111 12.9326 1.54306 13.3009 1.81657C13.8535 2.24202 14.3753 2.66748 14.8971 3.12332C15.4804 3.60955 15.7873 4.27813 15.9408 5.00748C16.2171 6.46618 15.5111 7.98566 14.1297 8.71501C12.0731 9.77865 9.52527 8.59346 9.06482 6.34462C9.09552 6.28384 9.09552 6.25345 9.06482 6.22306ZM12.5028 8.10722C13.7614 8.10722 14.805 7.04358 14.805 5.76722C14.805 4.46046 13.7921 3.39683 12.5028 3.39683C11.367 3.39683 10.2006 4.30852 10.2006 5.76722C10.2313 7.19553 11.3977 8.10722 12.5028 8.10722ZM1.54422 5.76722C1.54422 7.07397 2.58789 8.10722 3.84644 8.10722C5.10499 8.10722 6.14867 7.04358 6.14867 5.73683C6.14867 4.43007 5.10499 3.39683 3.81575 3.39683C2.55719 3.39683 1.54422 4.46046 1.54422 5.76722ZM7.16165 4.67319C7.16165 5.15943 7.5914 5.58488 8.08254 5.58488C8.60438 5.58488 9.03413 5.15943 9.03413 4.67319C9.03413 4.18696 8.60438 3.7615 8.11323 3.7615C7.5914 3.73111 7.16165 4.12618 7.16165 4.67319Z" fill="#F8FAFB"/>
3
+ </svg>
@@ -1,3 +1,3 @@
1
- <svg width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <path d="M20.1222 10.0611C20.1222 4.50451 15.6177 0 10.0611 0C4.50451 0 0 4.50451 0 10.0611C0 15.0829 3.67922 19.2452 8.48906 20V12.9694H5.93448V10.0611H8.48906V7.84452C8.48906 5.32296 9.99112 3.93012 12.2893 3.93012C13.3901 3.93012 14.5415 4.12663 14.5415 4.12663V6.60261H13.2728C12.023 6.60261 11.6332 7.37814 11.6332 8.17379V10.0611H14.4235L13.9775 12.9694H11.6332V20C16.443 19.2452 20.1222 15.0829 20.1222 10.0611Z" fill="#1D364B"/>
3
- </svg>
1
+ <svg width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M20.1222 10.0611C20.1222 4.50451 15.6177 0 10.0611 0C4.50451 0 0 4.50451 0 10.0611C0 15.0829 3.67922 19.2452 8.48906 20V12.9694H5.93448V10.0611H8.48906V7.84452C8.48906 5.32296 9.99112 3.93012 12.2893 3.93012C13.3901 3.93012 14.5415 4.12663 14.5415 4.12663V6.60261H13.2728C12.023 6.60261 11.6332 7.37814 11.6332 8.17379V10.0611H14.4235L13.9775 12.9694H11.6332V20C16.443 19.2452 20.1222 15.0829 20.1222 10.0611Z" fill="#1D364B"/>
3
+ </svg>
@@ -1,3 +1,3 @@
1
- <svg width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <path fill-rule="evenodd" clip-rule="evenodd" d="M10.1222 0C15.6413 0 20.1222 4.48086 20.1222 10C20.1222 15.5191 15.6413 20 10.1222 20C4.60305 20 0.122192 15.5191 0.122192 10C0.122192 4.48086 4.60305 0 10.1222 0ZM6.99575 15.62V7.81055H4.3995V15.62H6.99575ZM16.3559 15.62V11.1416C16.3559 8.74281 15.0752 7.62691 13.3673 7.62691C11.9901 7.62691 11.3732 8.3843 11.0279 8.91625V7.81055H8.43227C8.46669 8.54324 8.43227 15.62 8.43227 15.62H11.0278V11.2586C11.0278 11.0252 11.0446 10.7918 11.1134 10.625C11.3007 10.1588 11.7281 9.67582 12.4452 9.67582C13.3841 9.67582 13.7602 10.3922 13.7602 11.4416V15.62H16.3559ZM5.71516 4.04492C4.82688 4.04492 4.24653 4.62891 4.24653 5.39434C4.24653 6.14363 4.80922 6.74371 5.68079 6.74371H5.69754C6.60282 6.74371 7.16629 6.14363 7.16629 5.39434C7.1495 4.62891 6.60286 4.04492 5.71516 4.04492Z" fill="#1D364B"/>
3
- </svg>
1
+ <svg width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M10.1222 0C15.6413 0 20.1222 4.48086 20.1222 10C20.1222 15.5191 15.6413 20 10.1222 20C4.60305 20 0.122192 15.5191 0.122192 10C0.122192 4.48086 4.60305 0 10.1222 0ZM6.99575 15.62V7.81055H4.3995V15.62H6.99575ZM16.3559 15.62V11.1416C16.3559 8.74281 15.0752 7.62691 13.3673 7.62691C11.9901 7.62691 11.3732 8.3843 11.0279 8.91625V7.81055H8.43227C8.46669 8.54324 8.43227 15.62 8.43227 15.62H11.0278V11.2586C11.0278 11.0252 11.0446 10.7918 11.1134 10.625C11.3007 10.1588 11.7281 9.67582 12.4452 9.67582C13.3841 9.67582 13.7602 10.3922 13.7602 11.4416V15.62H16.3559ZM5.71516 4.04492C4.82688 4.04492 4.24653 4.62891 4.24653 5.39434C4.24653 6.14363 4.80922 6.74371 5.68079 6.74371H5.69754C6.60282 6.74371 7.16629 6.14363 7.16629 5.39434C7.1495 4.62891 6.60286 4.04492 5.71516 4.04492Z" fill="#1D364B"/>
3
+ </svg>
@@ -1,3 +1,3 @@
1
- <svg width="13" height="12" viewBox="0 0 13 12" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <path d="M6.11619 0C2.80419 0 0.122192 2.688 0.122192 6C0.122192 9.312 2.80419 12 6.11619 12C9.43419 12 12.1222 9.312 12.1222 6C12.1222 2.688 9.43419 0 6.11619 0ZM10.2742 3.6H8.50419C8.31219 2.85 8.03619 2.13 7.67619 1.464C8.78019 1.842 9.69819 2.61 10.2742 3.6ZM6.12219 1.224C6.62019 1.944 7.01019 2.742 7.26819 3.6H4.97619C5.23419 2.742 5.62419 1.944 6.12219 1.224ZM1.47819 7.2C1.38219 6.816 1.32219 6.414 1.32219 6C1.32219 5.586 1.38219 5.184 1.47819 4.8H3.50619C3.45819 5.196 3.42219 5.592 3.42219 6C3.42219 6.408 3.45819 6.804 3.50619 7.2H1.47819ZM1.97019 8.4H3.74019C3.93219 9.15 4.20819 9.87 4.56819 10.536C3.46419 10.158 2.54619 9.396 1.97019 8.4ZM3.74019 3.6H1.97019C2.54619 2.604 3.46419 1.842 4.56819 1.464C4.20819 2.13 3.93219 2.85 3.74019 3.6ZM6.12219 10.776C5.62419 10.056 5.23419 9.258 4.97619 8.4H7.26819C7.01019 9.258 6.62019 10.056 6.12219 10.776ZM7.52619 7.2H4.71819C4.66419 6.804 4.62219 6.408 4.62219 6C4.62219 5.592 4.66419 5.19 4.71819 4.8H7.52619C7.58019 5.19 7.62219 5.592 7.62219 6C7.62219 6.408 7.58019 6.804 7.52619 7.2ZM7.67619 10.536C8.03619 9.87 8.31219 9.15 8.50419 8.4H10.2742C9.69819 9.39 8.78019 10.158 7.67619 10.536ZM8.73819 7.2C8.78619 6.804 8.82219 6.408 8.82219 6C8.82219 5.592 8.78619 5.196 8.73819 4.8H10.7662C10.8622 5.184 10.9222 5.586 10.9222 6C10.9222 6.414 10.8622 6.816 10.7662 7.2H8.73819Z" fill="white"/>
3
- </svg>
1
+ <svg width="13" height="12" viewBox="0 0 13 12" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M6.11619 0C2.80419 0 0.122192 2.688 0.122192 6C0.122192 9.312 2.80419 12 6.11619 12C9.43419 12 12.1222 9.312 12.1222 6C12.1222 2.688 9.43419 0 6.11619 0ZM10.2742 3.6H8.50419C8.31219 2.85 8.03619 2.13 7.67619 1.464C8.78019 1.842 9.69819 2.61 10.2742 3.6ZM6.12219 1.224C6.62019 1.944 7.01019 2.742 7.26819 3.6H4.97619C5.23419 2.742 5.62419 1.944 6.12219 1.224ZM1.47819 7.2C1.38219 6.816 1.32219 6.414 1.32219 6C1.32219 5.586 1.38219 5.184 1.47819 4.8H3.50619C3.45819 5.196 3.42219 5.592 3.42219 6C3.42219 6.408 3.45819 6.804 3.50619 7.2H1.47819ZM1.97019 8.4H3.74019C3.93219 9.15 4.20819 9.87 4.56819 10.536C3.46419 10.158 2.54619 9.396 1.97019 8.4ZM3.74019 3.6H1.97019C2.54619 2.604 3.46419 1.842 4.56819 1.464C4.20819 2.13 3.93219 2.85 3.74019 3.6ZM6.12219 10.776C5.62419 10.056 5.23419 9.258 4.97619 8.4H7.26819C7.01019 9.258 6.62019 10.056 6.12219 10.776ZM7.52619 7.2H4.71819C4.66419 6.804 4.62219 6.408 4.62219 6C4.62219 5.592 4.66419 5.19 4.71819 4.8H7.52619C7.58019 5.19 7.62219 5.592 7.62219 6C7.62219 6.408 7.58019 6.804 7.52619 7.2ZM7.67619 10.536C8.03619 9.87 8.31219 9.15 8.50419 8.4H10.2742C9.69819 9.39 8.78019 10.158 7.67619 10.536ZM8.73819 7.2C8.78619 6.804 8.82219 6.408 8.82219 6C8.82219 5.592 8.78619 5.196 8.73819 4.8H10.7662C10.8622 5.184 10.9222 5.586 10.9222 6C10.9222 6.414 10.8622 6.816 10.7662 7.2H8.73819Z" fill="white"/>
3
+ </svg>
@@ -2,50 +2,73 @@
2
2
  <div class="card h-100">
3
3
  <div class="container-fluid container-fluid--bu pt-5">
4
4
  <div class="">
5
- <h4 class="card-title font-weight-bold">{{title}}</h4>
5
+ <h4 class="card-title font-weight-bold">{{ title }}</h4>
6
6
  </div>
7
7
 
8
- <div class="row card-body px-0">
9
- <div class="col-6 col-sm-3 col-md-3 info-box text-center px-0" v-for="items in coursesInfo" :key="items.name">
10
- <img v-if="items.icon" :src="items.icon" style="width: 5rem"/>
11
- <span v-if="items.number" :class="items.color ? items.color : ''" class="display-1 font-weight-bold">{{items.number}}</span>
12
- <p v-if="items.name" :class="items.color ? items.color : ''">{{items.name}}</p>
8
+ <card-skeleton v-show="isLoading" />
9
+ <div v-show="!isLoading" class="row card-body px-0">
10
+ <div
11
+ class="col-6 col-sm-3 col-md-3 info-box text-center px-0"
12
+ v-for="items in coursesInfo"
13
+ :key="items.name"
14
+ >
15
+ <img
16
+ v-if="items.icon"
17
+ :src="items.icon"
18
+ style="width: 5rem"
19
+ />
20
+ <span
21
+ v-if="items.number"
22
+ :class="items.color ? items.color : ''"
23
+ class="display-1 font-weight-bold"
24
+ >{{ items.number }}</span
25
+ >
26
+ <p
27
+ v-if="items.name"
28
+ :class="items.color ? items.color : ''"
29
+ >
30
+ {{ items.name }}
31
+ </p>
13
32
  </div>
14
33
  </div>
15
34
  </div>
16
35
  </div>
17
36
  </template>
18
37
  <script>
38
+ import CardSkeleton from '../Skeleton/Cards.vue';
19
39
  export default {
20
- data(){
21
- return{
22
- }
40
+ components: {
41
+ CardSkeleton
23
42
  },
24
- props:{
43
+ data() {
44
+ return {};
45
+ },
46
+ props: {
25
47
  title: {
26
48
  type: String,
27
49
  default: 'Resumo geral'
28
50
  },
29
- coursesInfo: Array
51
+ coursesInfo: Array,
52
+ isLoading: Boolean
30
53
  }
31
- }
54
+ };
32
55
  </script>
33
56
  <style lang="scss" scoped>
34
- .card-title{
35
- font-size: 1rem;
57
+ .card-title {
58
+ font-size: 1rem;
59
+ }
60
+ .info-box {
61
+ @media (min-width: 576px) {
62
+ flex: 0 0 50%;
63
+ max-width: 50%;
36
64
  }
37
- .info-box{
38
- @media (min-width: 576px) {
39
- flex: 0 0 50%;
40
- max-width: 50%;
41
- }
42
- @media (min-width: 768px) {
43
- flex: 0 0 50%;
44
- max-width: 50%;
45
- }
46
- @media (min-width: 1024px) {
47
- flex: 0 0 33%;
48
- max-width: 33%;
49
- }
65
+ @media (min-width: 768px) {
66
+ flex: 0 0 50%;
67
+ max-width: 50%;
50
68
  }
51
- </style>
69
+ @media (min-width: 1024px) {
70
+ flex: 0 0 33%;
71
+ max-width: 33%;
72
+ }
73
+ }
74
+ </style>
@@ -0,0 +1,60 @@
1
+ <template lang="">
2
+ <div>
3
+ <span class="loader-wrapper">
4
+ <div>
5
+ <div :class="'mb-5 product-item--avatar bg-' + color">
6
+ <img :src="productImage" alt="" />
7
+ </div>
8
+ <div class="d-flex justify-content-center align-items-center">
9
+ <i
10
+ :class="
11
+ 'fas fa-3x fa-circle-notch fa-spin text-' + color
12
+ "
13
+ ></i>
14
+ </div>
15
+ </div>
16
+ </span>
17
+ </div>
18
+ </template>
19
+
20
+ <script>
21
+ export default {
22
+ name: 'new-loading',
23
+ props: {
24
+ isLoading: {
25
+ type: Boolean,
26
+ default: false,
27
+ description: 'If the parent screen is loading'
28
+ },
29
+ productImage: String,
30
+ color: String
31
+ }
32
+ };
33
+ </script>
34
+
35
+ <style lang="scss" scoped>
36
+ // @import "assets/sass/burh-ds/variables/_colors.scss";
37
+
38
+ .product-item--avatar {
39
+ width: 64.78px;
40
+ height: 64.78px;
41
+ border-radius: 14.0834px;
42
+
43
+ display: flex;
44
+ align-items: center;
45
+ justify-content: center;
46
+
47
+ img {
48
+ color: #fff;
49
+ }
50
+ }
51
+
52
+ .loader-wrapper {
53
+ background-color: #fff;
54
+ display: flex;
55
+ align-items: center;
56
+ justify-content: center;
57
+ width: 95vw;
58
+ height: 100vh;
59
+ }
60
+ </style>
@@ -0,0 +1,133 @@
1
+ <template>
2
+ <div id="content">
3
+ <div class="skeleton">
4
+ <div class="skeleton-wrapper">
5
+ <div class="skeleton-wrapper-inner">
6
+ <div class="skeleton-wrapper-body">
7
+ <div class="skeleton-avatar"></div>
8
+ <div class="skeleton-author"></div>
9
+ <div class="skeleton-label"></div>
10
+ <div class="skeleton-content-1"></div>
11
+ <div class="skeleton-content-2"></div>
12
+ <div class="skeleton-content-3"></div>
13
+ </div>
14
+ </div>
15
+ </div>
16
+ </div>
17
+ </div>
18
+ </template>
19
+
20
+ <script>
21
+ export default {
22
+ name: 'card-skeleton'
23
+ };
24
+ </script>
25
+
26
+ <style>
27
+ #content {
28
+ width: 100%;
29
+ /* margin: 0 auto; */
30
+ }
31
+ .skeleton-wrapper {
32
+ background: #fff;
33
+ border-radius: 4px;
34
+ -webkit-border-radius: 4px;
35
+ margin: 10px 15px;
36
+ }
37
+
38
+ .skeleton-wrapper-inner {
39
+ height: 150px;
40
+ padding: 15px;
41
+ position: relative;
42
+ }
43
+
44
+ .skeleton-wrapper-body div {
45
+ -webkit-animation-duration: 1s;
46
+ -webkit-animation-fill-mode: forwards;
47
+ -webkit-animation-iteration-count: infinite;
48
+ -webkit-animation-name: placeholderSkeleton;
49
+ -webkit-animation-timing-function: linear;
50
+ background: #e0e3e6;
51
+ background-image: -webkit-gradient(
52
+ linear,
53
+ left center,
54
+ right center,
55
+ from(#e0e3e6),
56
+ color-stop(0.2, #edeef1),
57
+ color-stop(0.4, #e0e3e6),
58
+ to(#e0e3e6)
59
+ );
60
+ background-image: -webkit-linear-gradient(
61
+ left,
62
+ #e0e3e6 0%,
63
+ #edeef1 20%,
64
+ #e0e3e6 40%,
65
+ #e0e3e6 100%
66
+ );
67
+ background-repeat: no-repeat;
68
+ background-size: 800px 104px;
69
+ height: 104px;
70
+ position: relative;
71
+ }
72
+
73
+ .skeleton-wrapper-body div {
74
+ position: absolute;
75
+ right: 15px;
76
+ left: 15px;
77
+ top: 15px;
78
+ }
79
+
80
+ div.skeleton-avatar {
81
+ height: 60px;
82
+ width: 60px;
83
+ border-radius: 60px;
84
+ right: auto;
85
+ }
86
+ div.skeleton-author {
87
+ top: 20px;
88
+ height: 20px;
89
+ left: 95px;
90
+ width: 150px;
91
+ }
92
+
93
+ div.skeleton-label {
94
+ left: 95px;
95
+ top: 50px;
96
+ height: 10px;
97
+ width: 100px;
98
+ }
99
+ div.skeleton-content-1,
100
+ div.skeleton-content-2,
101
+ div.skeleton-content-3 {
102
+ left: 15px;
103
+ right: 15px;
104
+ height: 10px;
105
+ }
106
+ div.skeleton-content-1 {
107
+ top: 100px;
108
+ }
109
+ div.skeleton-content-2 {
110
+ top: 120px;
111
+ }
112
+ div.skeleton-content-3 {
113
+ top: 140px;
114
+ }
115
+
116
+ @-webkit-keyframes placeholderSkeleton {
117
+ 0% {
118
+ background-position: -468px 0;
119
+ }
120
+ 100% {
121
+ background-position: 468px 0;
122
+ }
123
+ }
124
+
125
+ @-webkit-keyframes skeletonAnimate {
126
+ from {
127
+ background-position: top left;
128
+ }
129
+ to {
130
+ background-position: top right;
131
+ }
132
+ }
133
+ </style>
@@ -1,183 +1,187 @@
1
1
  <template>
2
- <div>
3
- <div
4
- :class="[
5
- { 'col-md-4': vertical && !tabNavWrapperClasses },
6
- { 'col-12': centered && !tabNavWrapperClasses },
7
- tabNavWrapperClasses
8
- ]"
9
- >
10
- <ul
11
- class="nav nav-pills"
12
- role="tablist"
13
- :class="[
14
- `nav-pills-${type}`,
15
- { 'flex-column': vertical },
16
- { 'justify-content-center': centered },
17
- tabNavClasses
18
- ]"
19
- :title="navTitle"
20
- >
21
- <li
22
- v-for="tab in tabs"
23
- class="nav-item active"
24
- data-toggle="tab"
25
- role="tablist"
26
- aria-expanded="true"
27
- :key="tab.id"
2
+ <div>
3
+ <div
4
+ :class="[
5
+ { 'col-md-4': vertical && !tabNavWrapperClasses },
6
+ { 'col-12': centered && !tabNavWrapperClasses },
7
+ tabNavWrapperClasses
8
+ ]"
28
9
  >
29
- <a
30
- data-toggle="tab"
31
- role="tablist"
32
- :href="`#${tab.id}`"
33
- @click.prevent="activateTab(tab)"
34
- :aria-expanded="tab.active"
35
- class="nav-link"
36
- :class="{ active: tab.active }"
37
- >
38
- <tab-item-content :tab="tab"> </tab-item-content>
39
- </a>
40
- </li>
41
- </ul>
42
- </div>
43
- <div
44
- class="tab-content"
45
- :class="[
46
- { 'tab-space': !vertical },
47
- { 'col-md-8': vertical && !tabContentClasses },
48
- tabContentClasses
49
- ]"
50
- >
51
- <slot></slot>
10
+ <ul
11
+ class="nav nav-pills"
12
+ role="tablist"
13
+ :class="[
14
+ `nav-pills-${type}`,
15
+ { 'flex-column': vertical },
16
+ { 'justify-content-center': centered },
17
+ tabNavClasses
18
+ ]"
19
+ :title="navTitle"
20
+ >
21
+ <li
22
+ v-for="tab in tabs"
23
+ class="nav-item"
24
+ data-toggle="tab"
25
+ role="tablist"
26
+ aria-expanded="true"
27
+ :key="tab.id"
28
+ >
29
+ <a
30
+ data-toggle="tab"
31
+ role="tablist"
32
+ :href="`#${tab.id}`"
33
+ @click.prevent="activateTab(tab)"
34
+ :aria-expanded="tab.active"
35
+ class="nav-link"
36
+ :class="{ active: tab.active }"
37
+ >
38
+ <tab-item-content :tab="tab"> </tab-item-content>
39
+ </a>
40
+ </li>
41
+ </ul>
42
+ </div>
43
+ <div
44
+ class="tab-content"
45
+ :class="[
46
+ { 'tab-space': !vertical },
47
+ { 'col-md-8': vertical && !tabContentClasses },
48
+ tabContentClasses
49
+ ]"
50
+ >
51
+ <slot></slot>
52
+ </div>
52
53
  </div>
53
- </div>
54
54
  </template>
55
55
 
56
56
  <script>
57
57
  import { isMobile, isMobileOnly } from 'mobile-device-detect';
58
58
 
59
59
  export default {
60
- name: 'tabs',
61
- components: {
62
- TabItemContent: {
63
- props: ['tab'],
64
- render(h) {
65
- return h('div', [this.tab.$slots.title || this.tab.title]);
66
- }
67
- }
68
- },
69
- provide() {
70
- return {
71
- addTab: this.addTab,
72
- removeTab: this.removeTab
73
- };
74
- },
75
- props: {
76
- type: {
77
- type: String,
78
- default: 'primary',
79
- validator: value => {
80
- let acceptedValues = [
81
- 'primary',
82
- 'info',
83
- 'success',
84
- 'warning',
85
- 'danger'
86
- ];
87
- return acceptedValues.indexOf(value) !== -1;
88
- }
89
- },
90
- activeTab: {
91
- type: String,
92
- default: '',
93
- description: 'Active tab name'
94
- },
95
- noActiveTabOnStart: {
96
- type: Boolean,
97
- default: true,
98
- description: 'Start with no active tab'
99
- },
100
- tabNavWrapperClasses: {
101
- type: [String, Object],
102
- default: '',
103
- description: 'ul wrapper css classes'
60
+ name: 'tabs',
61
+ components: {
62
+ TabItemContent: {
63
+ props: ['tab'],
64
+ render(h) {
65
+ return h('div', [this.tab.$slots.title || this.tab.title]);
66
+ }
67
+ }
104
68
  },
105
- tabNavClasses: {
106
- type: [String, Object],
107
- default: '',
108
- description: 'ul css classes'
69
+ provide() {
70
+ return {
71
+ addTab: this.addTab,
72
+ removeTab: this.removeTab
73
+ };
109
74
  },
110
- tabContentClasses: {
111
- type: [String, Object],
112
- default: '',
113
- description: 'tab content css classes'
75
+ props: {
76
+ type: {
77
+ type: String,
78
+ default: 'primary',
79
+ validator: value => {
80
+ let acceptedValues = [
81
+ 'primary',
82
+ 'info',
83
+ 'success',
84
+ 'warning',
85
+ 'danger'
86
+ ];
87
+ return acceptedValues.indexOf(value) !== -1;
88
+ }
89
+ },
90
+ activeTab: {
91
+ type: String,
92
+ default: '',
93
+ description: 'Active tab name'
94
+ },
95
+ noActiveTabOnStart: {
96
+ type: Boolean,
97
+ default: true,
98
+ description: 'Start with no active tab'
99
+ },
100
+ tabNavWrapperClasses: {
101
+ type: [String, Object],
102
+ default: '',
103
+ description: 'ul wrapper css classes'
104
+ },
105
+ tabNavClasses: {
106
+ type: [String, Object],
107
+ default: '',
108
+ description: 'ul css classes'
109
+ },
110
+ tabContentClasses: {
111
+ type: [String, Object],
112
+ default: '',
113
+ description: 'tab content css classes'
114
+ },
115
+ vertical: Boolean,
116
+ centered: Boolean,
117
+ value: String,
118
+ navTitle: String
114
119
  },
115
- vertical: Boolean,
116
- centered: Boolean,
117
- value: String,
118
- navTitle: String
119
- },
120
- data() {
121
- return {
122
- tabs: [],
123
- isMobileOnlyWatch: isMobileOnly
124
- };
125
- },
126
- methods: {
127
- findAndActivateTab(title) {
128
- let tabToActivate = this.tabs.find(t => t.title === title);
129
- if (tabToActivate) {
130
- this.activateTab(tabToActivate);
131
- }
120
+ data() {
121
+ return {
122
+ tabs: [],
123
+ isMobileOnlyWatch: isMobileOnly
124
+ };
132
125
  },
133
- activateTab(tab) {
134
- if (this.handleClick) {
135
- this.handleClick(tab);
136
- }
137
- this.deactivateTabs();
138
- tab.active = true;
126
+ methods: {
127
+ findAndActivateTab(title) {
128
+ let tabToActivate = this.tabs.find(t => t.title === title);
129
+ if (tabToActivate) {
130
+ this.activateTab(tabToActivate);
131
+ }
132
+ },
133
+ activateTab(tab) {
134
+ if (this.handleClick) {
135
+ this.handleClick(tab);
136
+ }
137
+ this.deactivateTabs();
138
+ tab.active = true;
139
139
 
140
- if(this.isMobileOnlyWatch){
141
- if(!document.querySelector('html').classList.contains('no-scroll')){
142
- document.querySelector('html').classList.add('no-scroll');
140
+ if (this.isMobileOnlyWatch) {
141
+ if (
142
+ !document
143
+ .querySelector('html')
144
+ .classList.contains('no-scroll')
145
+ ) {
146
+ document.querySelector('html').classList.add('no-scroll');
147
+ }
148
+ }
149
+ },
150
+ deactivateTabs() {
151
+ this.tabs.forEach(tab => {
152
+ tab.active = false;
153
+ });
154
+ },
155
+ addTab(tab) {
156
+ const index = this.$slots.default.indexOf(tab.$vnode);
157
+ if (!this.activeTab && index === 0 && !this.noActiveTabOnStart) {
158
+ tab.active = true;
159
+ }
160
+ if (this.activeTab === tab.name && !this.noActiveTabOnStart) {
161
+ tab.active = true;
162
+ }
163
+ this.tabs.splice(index, 0, tab);
164
+ },
165
+ removeTab(tab) {
166
+ const tabs = this.tabs;
167
+ const index = tabs.indexOf(tab);
168
+ if (index > -1) {
169
+ tabs.splice(index, 1);
170
+ }
143
171
  }
144
- }
145
- },
146
- deactivateTabs() {
147
- this.tabs.forEach(tab => {
148
- tab.active = false;
149
- });
150
172
  },
151
- addTab(tab) {
152
- const index = this.$slots.default.indexOf(tab.$vnode);
153
- if (!this.activeTab && index === 0 && !this.noActiveTabOnStart) {
154
- tab.active = true;
155
- }
156
- if (this.activeTab === tab.name && !this.noActiveTabOnStart) {
157
- tab.active = true;
158
- }
159
- this.tabs.splice(index, 0, tab);
173
+ mounted() {
174
+ this.$nextTick(() => {
175
+ if (this.value) {
176
+ this.findAndActivateTab(this.value);
177
+ }
178
+ });
160
179
  },
161
- removeTab(tab) {
162
- const tabs = this.tabs;
163
- const index = tabs.indexOf(tab);
164
- if (index > -1) {
165
- tabs.splice(index, 1);
166
- }
167
- }
168
- },
169
- mounted() {
170
- this.$nextTick(() => {
171
- if (this.value) {
172
- this.findAndActivateTab(this.value);
173
- }
174
- });
175
- },
176
- watch: {
177
- value(newVal) {
178
- this.findAndActivateTab(newVal);
180
+ watch: {
181
+ value(newVal) {
182
+ this.findAndActivateTab(newVal);
183
+ }
179
184
  }
180
- }
181
185
  };
182
186
  </script>
183
187
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burh/nuxt-core",
3
- "version": "1.0.131",
3
+ "version": "1.0.133",
4
4
  "description": "Design System and Components.",
5
5
  "author": "Burh",
6
6
  "scripts": {