@burh/nuxt-core 1.0.213 → 1.0.214

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,188 +1,188 @@
1
- <template>
2
- <article class="recruitment__card" @click="$emit('card-click')">
3
- <header class="recruitment__card__header">
4
- <div class="recruitment__card__header__status">
5
- <p>SELECT</p>
6
- </div>
7
- <div class="recruitment__card__header__actions">
8
- <el-tooltip placement="top" content="Anotações">
9
- <button
10
- class="action__item"
11
- @click.stop.prevent="$emit('notes-click')"
12
- >
13
- <i class="far fa-comment-alt"></i>
14
- </button>
15
- </el-tooltip>
16
-
17
- <el-tooltip placement="top" content="Compartilhar">
18
- <button
19
- class="action__item"
20
- @click.stop.prevent="$emit('share-click')"
21
- >
22
- <i class="fas fa-share-alt"></i>
23
- </button>
24
- </el-tooltip>
25
- </div>
26
- </header>
27
-
28
- <section class="recruitment__card__content">
29
- <span class="recruitment__card__content__date">Publicada {{fromNow(job.published_at)}}</span>
30
- <h2 class="recruitment__card__content__title">{{ job.title }}</h2>
31
- <span class="recruitment__card__content__id">{{ job.id }}</span>
32
-
33
- <div class="recruitment__card__info">
34
- <p class="recruitment__card__info__text"><span>{{ job.info.applieds }}</span>Inscritos</p>
35
- <p class="recruitment__card__info__text"><span>{{ job.info.positions }}</span>Posição</p>
36
- <p class="recruitment__card__info__text"><span>{{ job.info.hireds }}</span>Contratados</p>
37
- </div>
38
- </section>
39
-
40
- <footer class="recruitment__card__footer">
41
- <p class="recruitment__card__footer__title">EQUIPE RESPONSÁVEL</p>
42
- <div class="recruitment__card__footer__images">
43
- <el-tooltip
44
- v-for="(user, index) in job.team"
45
- :key="index"
46
- placement="top"
47
- :content="user.name"
48
- >
49
- <img
50
- :src="user.image"
51
- :alt="user.name"
52
- >
53
- </el-tooltip>
54
- </div>
55
- </footer>
56
-
57
- </article>
58
- </template>
59
-
60
- <script>
61
- import moment from 'moment';
62
- import 'moment/locale/pt-br';
63
-
64
- export default {
65
- name: 'recruitment-card',
66
- props: {
67
- job: {
68
- type: Object,
69
- default: () => []
70
- }
71
- },
72
- methods: {
73
- fromNow(date, format = 'YYYYMMDD') {
74
- return moment(date, format).fromNow();
75
- }
76
- }
77
- };
78
- </script>
79
-
80
- <style lang="scss" scoped>
81
- .recruitment__card {
82
- cursor: pointer;
83
- background: #fff;
84
- box-shadow: 0 3px 20px rgba(0, 0, 0, 0.08);
85
- padding: 20px;
86
- border-radius: 4px;
87
- transition: transform 0.25s;
88
- &:hover {
89
- transform: translateY(-5px);
90
- }
91
-
92
- &__header {
93
- display: flex;
94
- align-items: center;
95
- justify-content: space-between;
96
- padding: 5px 0;
97
- &__actions {
98
- display: flex;
99
- align-items: center;
100
- .action__item {
101
- cursor: pointer;
102
- width: 42px;
103
- height: 42px;
104
- border-radius: 100px;
105
- transition: background 0.5s;
106
- display: flex;
107
- align-items: center;
108
- justify-content: center;
109
- background: transparent;
110
- border: 0;
111
- position: relative;
112
- &:hover {
113
- background: rgba(0, 0, 0, 0.08);
114
- }
115
- &:focus {
116
- outline: none;
117
- box-shadow: none;
118
- }
119
- &:not(:first-child) {
120
- margin-left: 5px;
121
- }
122
- i {
123
- color: #AEB6BE;
124
- }
125
- }
126
- }
127
- }
128
-
129
- &__content {
130
- &__date {
131
- font-size: 0.875rem;
132
- font-weight: 400;
133
- color: #AEB6BE;
134
- }
135
- &__title {
136
- font-size: 1.275rem;
137
- color: #1D364B;
138
- margin-bottom: 0;
139
- }
140
- &__id {
141
- font-size: 0.875rem;
142
- font-weight: 600;
143
- color: #525F7F;
144
- }
145
- }
146
-
147
- &__info {
148
- padding: 20px 0;
149
- &__text {
150
- margin-bottom: 0;
151
- font-size: 1rem;
152
- font-weight: 500;
153
- span {
154
- margin-right: 5px;
155
- color: #1F8CEB;
156
- }
157
- }
158
- }
159
-
160
- &__footer {
161
- border-top: 1px solid #E9E9E9;
162
- padding-top: 10px;
163
- &__title {
164
- color: #525F7F;
165
- font-size: 0.875rem;
166
- font-weight: 600;
167
- margin-bottom: 0;
168
- }
169
- &__images {
170
- display: flex;
171
- align-items: center;
172
- user-select: none;
173
- img {
174
- $size: 32px;
175
- display: block;
176
- width: $size;
177
- height: $size;
178
- object-fit: cover;
179
- border-radius: 100px;
180
- border: 2px solid #fff;
181
- &:not(:first-child) {
182
- margin-left: -10px;
183
- }
184
- }
185
- }
186
- }
187
- }
188
- </style>
1
+ <template>
2
+ <article class="recruitment__card" @click="$emit('card-click')">
3
+ <header class="recruitment__card__header">
4
+ <div class="recruitment__card__header__status">
5
+ <p>SELECT</p>
6
+ </div>
7
+ <div class="recruitment__card__header__actions">
8
+ <el-tooltip placement="top" content="Anotações">
9
+ <button
10
+ class="action__item"
11
+ @click.stop.prevent="$emit('notes-click')"
12
+ >
13
+ <i class="far fa-comment-alt"></i>
14
+ </button>
15
+ </el-tooltip>
16
+
17
+ <el-tooltip placement="top" content="Compartilhar">
18
+ <button
19
+ class="action__item"
20
+ @click.stop.prevent="$emit('share-click')"
21
+ >
22
+ <i class="fas fa-share-alt"></i>
23
+ </button>
24
+ </el-tooltip>
25
+ </div>
26
+ </header>
27
+
28
+ <section class="recruitment__card__content">
29
+ <span class="recruitment__card__content__date">Publicada {{fromNow(job.published_at)}}</span>
30
+ <h2 class="recruitment__card__content__title">{{ job.title }}</h2>
31
+ <span class="recruitment__card__content__id">{{ job.id }}</span>
32
+
33
+ <div class="recruitment__card__info">
34
+ <p class="recruitment__card__info__text"><span>{{ job.info.applieds }}</span>Inscritos</p>
35
+ <p class="recruitment__card__info__text"><span>{{ job.info.positions }}</span>Posição</p>
36
+ <p class="recruitment__card__info__text"><span>{{ job.info.hireds }}</span>Contratados</p>
37
+ </div>
38
+ </section>
39
+
40
+ <footer class="recruitment__card__footer">
41
+ <p class="recruitment__card__footer__title">EQUIPE RESPONSÁVEL</p>
42
+ <div class="recruitment__card__footer__images">
43
+ <el-tooltip
44
+ v-for="(user, index) in job.team"
45
+ :key="index"
46
+ placement="top"
47
+ :content="user.name"
48
+ >
49
+ <img
50
+ :src="user.image"
51
+ :alt="user.name"
52
+ >
53
+ </el-tooltip>
54
+ </div>
55
+ </footer>
56
+
57
+ </article>
58
+ </template>
59
+
60
+ <script>
61
+ import moment from 'moment';
62
+ import 'moment/locale/pt-br';
63
+
64
+ export default {
65
+ name: 'recruitment-card',
66
+ props: {
67
+ job: {
68
+ type: Object,
69
+ default: () => []
70
+ }
71
+ },
72
+ methods: {
73
+ fromNow(date, format = 'YYYYMMDD') {
74
+ return moment(date, format).fromNow();
75
+ }
76
+ }
77
+ };
78
+ </script>
79
+
80
+ <style lang="scss" scoped>
81
+ .recruitment__card {
82
+ cursor: pointer;
83
+ background: #fff;
84
+ box-shadow: 0 3px 20px rgba(0, 0, 0, 0.08);
85
+ padding: 20px;
86
+ border-radius: 4px;
87
+ transition: transform 0.25s;
88
+ &:hover {
89
+ transform: translateY(-5px);
90
+ }
91
+
92
+ &__header {
93
+ display: flex;
94
+ align-items: center;
95
+ justify-content: space-between;
96
+ padding: 5px 0;
97
+ &__actions {
98
+ display: flex;
99
+ align-items: center;
100
+ .action__item {
101
+ cursor: pointer;
102
+ width: 42px;
103
+ height: 42px;
104
+ border-radius: 100px;
105
+ transition: background 0.5s;
106
+ display: flex;
107
+ align-items: center;
108
+ justify-content: center;
109
+ background: transparent;
110
+ border: 0;
111
+ position: relative;
112
+ &:hover {
113
+ background: rgba(0, 0, 0, 0.08);
114
+ }
115
+ &:focus {
116
+ outline: none;
117
+ box-shadow: none;
118
+ }
119
+ &:not(:first-child) {
120
+ margin-left: 5px;
121
+ }
122
+ i {
123
+ color: #AEB6BE;
124
+ }
125
+ }
126
+ }
127
+ }
128
+
129
+ &__content {
130
+ &__date {
131
+ font-size: 0.875rem;
132
+ font-weight: 400;
133
+ color: #AEB6BE;
134
+ }
135
+ &__title {
136
+ font-size: 1.275rem;
137
+ color: #1D364B;
138
+ margin-bottom: 0;
139
+ }
140
+ &__id {
141
+ font-size: 0.875rem;
142
+ font-weight: 600;
143
+ color: #525F7F;
144
+ }
145
+ }
146
+
147
+ &__info {
148
+ padding: 20px 0;
149
+ &__text {
150
+ margin-bottom: 0;
151
+ font-size: 1rem;
152
+ font-weight: 500;
153
+ span {
154
+ margin-right: 5px;
155
+ color: #1F8CEB;
156
+ }
157
+ }
158
+ }
159
+
160
+ &__footer {
161
+ border-top: 1px solid #E9E9E9;
162
+ padding-top: 10px;
163
+ &__title {
164
+ color: #525F7F;
165
+ font-size: 0.875rem;
166
+ font-weight: 600;
167
+ margin-bottom: 0;
168
+ }
169
+ &__images {
170
+ display: flex;
171
+ align-items: center;
172
+ user-select: none;
173
+ img {
174
+ $size: 32px;
175
+ display: block;
176
+ width: $size;
177
+ height: $size;
178
+ object-fit: cover;
179
+ border-radius: 100px;
180
+ border: 2px solid #fff;
181
+ &:not(:first-child) {
182
+ margin-left: -10px;
183
+ }
184
+ }
185
+ }
186
+ }
187
+ }
188
+ </style>
@@ -1,106 +1,106 @@
1
- <template>
2
- <vue-slick-carousel v-bind="settings" :arrows="true" :dots="true">
3
- <div
4
- v-for="(item, index) in carouselItems"
5
- :key="index"
6
- class="carousel__image"
7
- >
8
- <img :src="item.img" :alt="item.title" draggable="false">
9
- </div>
10
- </vue-slick-carousel>
11
- </template>
12
-
13
- <script>
14
- import VueSlickCarousel from 'vue-slick-carousel';
15
- import 'vue-slick-carousel/dist/vue-slick-carousel.css';
16
- import 'vue-slick-carousel/dist/vue-slick-carousel-theme.css';
17
-
18
- export default {
19
- name: 'ImageCarousel',
20
- components: {
21
- VueSlickCarousel
22
- },
23
- props: {
24
- carouselItems: {
25
- type: Array,
26
- default: () => {
27
- return [];
28
- }
29
- },
30
- dots: {
31
- type: Boolean,
32
- default: true
33
- },
34
- infinite: {
35
- type: Boolean,
36
- default: true
37
- },
38
- autoplay: {
39
- type: Boolean,
40
- default: true
41
- },
42
- slides: {
43
- type: Number,
44
- default: 3
45
- },
46
- speed: {
47
- type: Number,
48
- default: 500
49
- },
50
- breakpoints: {
51
- type: Array,
52
- default: () => {
53
- return [
54
- {
55
- breakpoint: 800,
56
- settings: {
57
- slidesToShow: 2,
58
- slidesToScroll: 2
59
- }
60
- },
61
- {
62
- breakpoint: 600,
63
- settings: {
64
- slidesToShow: 1,
65
- slidesToScroll: 1
66
- }
67
- }
68
- ];
69
- }
70
- }
71
- },
72
- data() {
73
- return {
74
- settings: {}
75
- };
76
- },
77
- mounted() {
78
- const settings = {
79
- dots: this.dots,
80
- infinite: this.infinite,
81
- autoplay: this.autoplay,
82
- slidesToShow: this.slides,
83
- slidesToScroll: this.slides,
84
- speed: this.speed,
85
- responsive: this.breakpoints
86
- };
87
-
88
- this.settings = settings;
89
- }
90
- };
91
- </script>
92
-
93
- <style lang="scss">
94
- .carousel__image {
95
- padding: 20px 0;
96
- display: flex!important;
97
- align-items: center;
98
- justify-content: center;
99
- user-select: none;
100
- img {
101
- display: block;
102
- width: 150px;
103
- padding: 10px;
104
- }
105
- }
106
- </style>
1
+ <template>
2
+ <vue-slick-carousel v-bind="settings" :arrows="true" :dots="true">
3
+ <div
4
+ v-for="(item, index) in carouselItems"
5
+ :key="index"
6
+ class="carousel__image"
7
+ >
8
+ <img :src="item.img" :alt="item.title" draggable="false">
9
+ </div>
10
+ </vue-slick-carousel>
11
+ </template>
12
+
13
+ <script>
14
+ import VueSlickCarousel from 'vue-slick-carousel';
15
+ import 'vue-slick-carousel/dist/vue-slick-carousel.css';
16
+ import 'vue-slick-carousel/dist/vue-slick-carousel-theme.css';
17
+
18
+ export default {
19
+ name: 'ImageCarousel',
20
+ components: {
21
+ VueSlickCarousel
22
+ },
23
+ props: {
24
+ carouselItems: {
25
+ type: Array,
26
+ default: () => {
27
+ return [];
28
+ }
29
+ },
30
+ dots: {
31
+ type: Boolean,
32
+ default: true
33
+ },
34
+ infinite: {
35
+ type: Boolean,
36
+ default: true
37
+ },
38
+ autoplay: {
39
+ type: Boolean,
40
+ default: true
41
+ },
42
+ slides: {
43
+ type: Number,
44
+ default: 3
45
+ },
46
+ speed: {
47
+ type: Number,
48
+ default: 500
49
+ },
50
+ breakpoints: {
51
+ type: Array,
52
+ default: () => {
53
+ return [
54
+ {
55
+ breakpoint: 800,
56
+ settings: {
57
+ slidesToShow: 2,
58
+ slidesToScroll: 2
59
+ }
60
+ },
61
+ {
62
+ breakpoint: 600,
63
+ settings: {
64
+ slidesToShow: 1,
65
+ slidesToScroll: 1
66
+ }
67
+ }
68
+ ];
69
+ }
70
+ }
71
+ },
72
+ data() {
73
+ return {
74
+ settings: {}
75
+ };
76
+ },
77
+ mounted() {
78
+ const settings = {
79
+ dots: this.dots,
80
+ infinite: this.infinite,
81
+ autoplay: this.autoplay,
82
+ slidesToShow: this.slides,
83
+ slidesToScroll: this.slides,
84
+ speed: this.speed,
85
+ responsive: this.breakpoints
86
+ };
87
+
88
+ this.settings = settings;
89
+ }
90
+ };
91
+ </script>
92
+
93
+ <style lang="scss">
94
+ .carousel__image {
95
+ padding: 20px 0;
96
+ display: flex!important;
97
+ align-items: center;
98
+ justify-content: center;
99
+ user-select: none;
100
+ img {
101
+ display: block;
102
+ width: 150px;
103
+ padding: 10px;
104
+ }
105
+ }
106
+ </style>