@burh/nuxt-core 1.0.340 → 1.0.342

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 (29) hide show
  1. package/assets/sass/burh-ds/_global.scss +323 -323
  2. package/assets/sass/burh-ds/content/_interface-spa.scss +306 -306
  3. package/assets/sass/burh-ds/content/_main-content.scss +25 -25
  4. package/components/argon-core/BaseDropdown.vue +114 -114
  5. package/components/argon-core/LoadingPanel.vue +26 -26
  6. package/components/argon-core/Modal.vue +183 -183
  7. package/components/burh-ds/Cards/BaseCard.vue +190 -188
  8. package/components/burh-ds/Cards/FeatureBusinessCard.vue +74 -74
  9. package/components/burh-ds/Cards/PerformanceCard.vue +81 -81
  10. package/components/burh-ds/Cards/RecruitmentCard.vue +229 -229
  11. package/components/burh-ds/Curriculum/UserCurriculum/index.vue +245 -245
  12. package/components/burh-ds/Dropdown/JobStatusDropdown.vue +153 -146
  13. package/components/burh-ds/Filters/BaseFilterContainer.vue +91 -71
  14. package/components/burh-ds/Filters/FilterWithDropdown.vue +228 -169
  15. package/components/burh-ds/Inputs/SearchInput.vue +64 -64
  16. package/components/burh-ds/Modals/NewUserModal.vue +87 -87
  17. package/components/burh-ds/Modals/SharedModal.vue +270 -270
  18. package/components/burh-ds/Modals/UniversityAccessModal.vue +134 -134
  19. package/components/burh-ds/Skeleton/BaseCardUniversity.vue +79 -79
  20. package/components/burh-ds/Skeleton/BaseCardUser.vue +84 -84
  21. package/components/burh-ds/Skeleton/BaseCourseInfo.vue +71 -71
  22. package/components/burh-ds/Skeleton/Cards.vue +86 -86
  23. package/components/burh-ds/Skeleton/Home.vue +100 -100
  24. package/components/burh-ds/Skeleton/RecruitmentCard.vue +169 -169
  25. package/components/burh-ds/Skeleton/SkeletonAnimate.vue +96 -96
  26. package/environment.js +221 -221
  27. package/nuxt.config.js +207 -207
  28. package/package.json +1 -1
  29. package/plugins/vClickOutside.js +4 -4
@@ -1,81 +1,81 @@
1
- <template>
2
- <card class="card">
3
- <h4 class="aria-text">Funcionalidades</h4>
4
- <ul class="list-unstyled list line-card">
5
- <functionality-item
6
- class="cursor-pointer card-item"
7
- :icone="firstItemIcon"
8
- :text="firstItemText"
9
- @functionality-click="$emit('click-first-item')"
10
- />
11
- <functionality-item
12
- class="cursor-pointer border-left card-item"
13
- :icone="secondItemIcon"
14
- :text="secondItemText"
15
- @functionality-click="$emit('click-second-item')"
16
- />
17
- </ul>
18
- <hr />
19
- <h6 class="list-title font-weight-bold">{{ title }}</h6>
20
- <ul class="list-unstyled list line-card">
21
- <slot></slot>
22
- </ul>
23
- <p class="footer-text">{{ context }}</p>
24
- </card>
25
- </template>
26
- <script>
27
- import FunctionalityItem from './FunctionalityItem';
28
- export default {
29
- name: 'performance-card',
30
- components: {
31
- FunctionalityItem
32
- },
33
- props: {
34
- title: String,
35
- context: String,
36
- firstItemText: String,
37
- secondItemText: String,
38
- firstItemIcon: String,
39
- secondItemIcon: String,
40
- subscribers: Number,
41
- jobs: Number,
42
- visualization: Number,
43
- skeleton: {
44
- type: Boolean,
45
- default: false
46
- }
47
- }
48
- };
49
- </script>
50
- <style lang="scss" scoped>
51
- hr {
52
- border-color: #e9ecef;
53
- }
54
-
55
- .list {
56
- margin: 1.8rem 0;
57
- display: flex;
58
- justify-content: space-evenly;
59
- }
60
-
61
- .line-card {
62
- ul {
63
- &:not(:first-child) {
64
- border: 2px solid #e9ecef;
65
- }
66
- }
67
- }
68
-
69
- .card-item {
70
- width: 50%;
71
- }
72
-
73
- .footer-text {
74
- margin-left: 1rem;
75
- opacity: 0.4;
76
- font-size: smaller;
77
- }
78
- .padding-border {
79
- padding-left: 7.5rem;
80
- }
81
- </style>
1
+ <template>
2
+ <card class="card">
3
+ <h4 class="aria-text">Funcionalidades</h4>
4
+ <ul class="list-unstyled list line-card">
5
+ <functionality-item
6
+ class="cursor-pointer card-item"
7
+ :icone="firstItemIcon"
8
+ :text="firstItemText"
9
+ @functionality-click="$emit('click-first-item')"
10
+ />
11
+ <functionality-item
12
+ class="cursor-pointer border-left card-item"
13
+ :icone="secondItemIcon"
14
+ :text="secondItemText"
15
+ @functionality-click="$emit('click-second-item')"
16
+ />
17
+ </ul>
18
+ <hr />
19
+ <h6 class="list-title font-weight-bold">{{ title }}</h6>
20
+ <ul class="list-unstyled list line-card">
21
+ <slot></slot>
22
+ </ul>
23
+ <p class="footer-text">{{ context }}</p>
24
+ </card>
25
+ </template>
26
+ <script>
27
+ import FunctionalityItem from './FunctionalityItem';
28
+ export default {
29
+ name: 'performance-card',
30
+ components: {
31
+ FunctionalityItem
32
+ },
33
+ props: {
34
+ title: String,
35
+ context: String,
36
+ firstItemText: String,
37
+ secondItemText: String,
38
+ firstItemIcon: String,
39
+ secondItemIcon: String,
40
+ subscribers: Number,
41
+ jobs: Number,
42
+ visualization: Number,
43
+ skeleton: {
44
+ type: Boolean,
45
+ default: false
46
+ }
47
+ }
48
+ };
49
+ </script>
50
+ <style lang="scss" scoped>
51
+ hr {
52
+ border-color: #e9ecef;
53
+ }
54
+
55
+ .list {
56
+ margin: 1.8rem 0;
57
+ display: flex;
58
+ justify-content: space-evenly;
59
+ }
60
+
61
+ .line-card {
62
+ ul {
63
+ &:not(:first-child) {
64
+ border: 2px solid #e9ecef;
65
+ }
66
+ }
67
+ }
68
+
69
+ .card-item {
70
+ width: 50%;
71
+ }
72
+
73
+ .footer-text {
74
+ margin-left: 1rem;
75
+ opacity: 0.4;
76
+ font-size: smaller;
77
+ }
78
+ .padding-border {
79
+ padding-left: 7.5rem;
80
+ }
81
+ </style>
@@ -1,229 +1,229 @@
1
- <template>
2
- <nuxt-link :to="`/recrutamento/vaga/${job.id}`" class="recruitment__card">
3
- <article>
4
- <header class="recruitment__card__header">
5
- <div class="recruitment__card__header__status">
6
- <job-status-dropdown
7
- :status="job.status"
8
- @select="handleChangeJobStatus"
9
- />
10
- </div>
11
- <div class="recruitment__card__header__actions">
12
- <el-tooltip placement="top" content="Anotações">
13
- <button
14
- class="action__item"
15
- @click.stop.prevent="$emit('notes-click')"
16
- >
17
- <i class="far fa-comment-alt"></i>
18
- </button>
19
- </el-tooltip>
20
-
21
- <el-tooltip placement="top" content="Compartilhar">
22
- <button
23
- class="action__item"
24
- @click.stop.prevent="$emit('share-click')"
25
- >
26
- <i class="fas fa-share-alt"></i>
27
- </button>
28
- </el-tooltip>
29
- </div>
30
- </header>
31
-
32
- <section class="recruitment__card__content">
33
- <span class="recruitment__card__content__date">Publicada {{fromNow(job.published_at)}}</span>
34
- <h2 class="recruitment__card__content__title">
35
- {{ job.title }}
36
- <i v-if="job.handicapped" class="fas fa-wheelchair pcd"></i>
37
- </h2>
38
- <span class="recruitment__card__content__id">{{ job.id }}</span>
39
-
40
- <div class="recruitment__card__info">
41
- <p class="recruitment__card__info__text"><span>{{ job.info.applieds }}</span>Inscritos</p>
42
- <p class="recruitment__card__info__text"><span>{{ job.info.positions }}</span>Posição</p>
43
- <p class="recruitment__card__info__text"><span>{{ job.info.hireds }}</span>Contratados</p>
44
- </div>
45
- </section>
46
-
47
- <footer class="recruitment__card__footer">
48
- <p class="recruitment__card__footer__title">EQUIPE RESPONSÁVEL</p>
49
- <div class="recruitment__card__footer__images">
50
- <el-tooltip
51
- v-for="user in job.team"
52
- :key="user.id"
53
- placement="top"
54
- :content="user.name"
55
- >
56
- <img
57
- :src="(user.avatar) ? user.avatar : getNameInitials(user.name, user.last_name)"
58
- :alt="user.name"
59
- >
60
- </el-tooltip>
61
- </div>
62
- </footer>
63
- </article>
64
- </nuxt-link>
65
- </template>
66
-
67
- <script>
68
- import moment from 'moment';
69
- import 'moment/locale/pt-br';
70
-
71
- import JobStatusDropdown from '@burh/nuxt-core/components/burh-ds/Dropdown/JobStatusDropdown.vue';
72
-
73
- export default {
74
- name: 'recruitment-card',
75
- components: {
76
- JobStatusDropdown
77
- },
78
- props: {
79
- job: {
80
- type: Object,
81
- default: () => []
82
- }
83
- },
84
- methods: {
85
- getNameInitials(name, last_name) {
86
- const avatarUrl = process.env.routes.avatar;
87
-
88
- let userAvatarName;
89
-
90
- if (name && last_name) {
91
- userAvatarName = `${name.toUpperCase().charAt(0)}${last_name.toUpperCase().charAt(0)}`;
92
- } else if (name && last_name === null) {
93
- userAvatarName = name;
94
- } else {
95
- userAvatarName = 'BURH';
96
- }
97
-
98
- return avatarUrl.replace(':size', '64x64').replace(':initials', userAvatarName);
99
- },
100
- fromNow(date, format = 'YYYYMMDD') {
101
- return moment(date, format).fromNow();
102
- },
103
- handleChangeJobStatus(id) {
104
- this.$emit('select', id);
105
- }
106
- }
107
- };
108
- </script>
109
-
110
- <style lang="scss" scoped>
111
- .recruitment__card {
112
- cursor: pointer;
113
- background: #fff;
114
- box-shadow: 0 3px 20px rgba(0, 0, 0, 0.08);
115
- padding: 20px;
116
- border-radius: 4px;
117
- border: none;
118
- text-align: initial;
119
- color: #1D364B;
120
- transition: transform 0.25s;
121
- &:focus {
122
- outline: none;
123
- transform: translateY(-5px);
124
- }
125
- &:hover {
126
- transform: translateY(-5px);
127
- }
128
-
129
- &__header {
130
- display: flex;
131
- align-items: center;
132
- justify-content: space-between;
133
- padding: 5px 0;
134
- &__actions {
135
- display: flex;
136
- align-items: center;
137
- .action__item {
138
- cursor: pointer;
139
- width: 42px;
140
- height: 42px;
141
- border-radius: 100px;
142
- transition: background 0.5s;
143
- display: flex;
144
- align-items: center;
145
- justify-content: center;
146
- background: transparent;
147
- border: 0;
148
- position: relative;
149
- &:not(:disabled):hover {
150
- background: rgba(0, 0, 0, 0.08);
151
- }
152
- &:focus {
153
- outline: none;
154
- background: rgba(0, 0, 0, 0.08);
155
- }
156
- &:not(:first-child) {
157
- margin-left: 5px;
158
- }
159
- i {
160
- color: #AEB6BE;
161
- }
162
- }
163
- }
164
- }
165
-
166
- &__content {
167
- &__date {
168
- font-size: 0.875rem;
169
- font-weight: 400;
170
- color: #AEB6BE;
171
- }
172
- &__title {
173
- font-size: 1.275rem;
174
- color: #1D364B;
175
- margin-bottom: 0;
176
- .pcd {
177
- color: #1F8CEB;
178
- margin-left: 5px;
179
- }
180
- }
181
- &__id {
182
- font-size: 0.875rem;
183
- font-weight: 600;
184
- color: #525F7F;
185
- }
186
- }
187
-
188
- &__info {
189
- padding: 20px 0;
190
- &__text {
191
- margin-bottom: 0;
192
- font-size: 1rem;
193
- font-weight: 500;
194
- span {
195
- margin-right: 5px;
196
- color: #1F8CEB;
197
- }
198
- }
199
- }
200
-
201
- &__footer {
202
- border-top: 1px solid #E9E9E9;
203
- padding-top: 10px;
204
- &__title {
205
- color: #525F7F;
206
- font-size: 0.875rem;
207
- font-weight: 600;
208
- margin-bottom: 0;
209
- }
210
- &__images {
211
- display: flex;
212
- align-items: center;
213
- user-select: none;
214
- img {
215
- $size: 32px;
216
- display: block;
217
- width: $size;
218
- height: $size;
219
- object-fit: cover;
220
- border-radius: 100px;
221
- border: 2px solid #fff;
222
- &:not(:first-child) {
223
- margin-left: -10px;
224
- }
225
- }
226
- }
227
- }
228
- }
229
- </style>
1
+ <template>
2
+ <nuxt-link :to="`/recrutamento/vaga/${job.id}`" class="recruitment__card">
3
+ <article>
4
+ <header class="recruitment__card__header">
5
+ <div class="recruitment__card__header__status">
6
+ <job-status-dropdown
7
+ :status="job.status"
8
+ @select="handleChangeJobStatus"
9
+ />
10
+ </div>
11
+ <div class="recruitment__card__header__actions">
12
+ <el-tooltip placement="top" content="Anotações">
13
+ <button
14
+ class="action__item"
15
+ @click.stop.prevent="$emit('notes-click')"
16
+ >
17
+ <i class="far fa-comment-alt"></i>
18
+ </button>
19
+ </el-tooltip>
20
+
21
+ <el-tooltip placement="top" content="Compartilhar">
22
+ <button
23
+ class="action__item"
24
+ @click.stop.prevent="$emit('share-click')"
25
+ >
26
+ <i class="fas fa-share-alt"></i>
27
+ </button>
28
+ </el-tooltip>
29
+ </div>
30
+ </header>
31
+
32
+ <section class="recruitment__card__content">
33
+ <span class="recruitment__card__content__date">Publicada {{fromNow(job.published_at)}}</span>
34
+ <h2 class="recruitment__card__content__title">
35
+ {{ job.title }}
36
+ <i v-if="job.handicapped" class="fas fa-wheelchair pcd"></i>
37
+ </h2>
38
+ <span class="recruitment__card__content__id">{{ job.id }}</span>
39
+
40
+ <div class="recruitment__card__info">
41
+ <p class="recruitment__card__info__text"><span>{{ job.info.applieds }}</span>Inscritos</p>
42
+ <p class="recruitment__card__info__text"><span>{{ job.info.positions }}</span>Posição</p>
43
+ <p class="recruitment__card__info__text"><span>{{ job.info.hireds }}</span>Contratados</p>
44
+ </div>
45
+ </section>
46
+
47
+ <footer class="recruitment__card__footer">
48
+ <p class="recruitment__card__footer__title">EQUIPE RESPONSÁVEL</p>
49
+ <div class="recruitment__card__footer__images">
50
+ <el-tooltip
51
+ v-for="user in job.team"
52
+ :key="user.id"
53
+ placement="top"
54
+ :content="user.name"
55
+ >
56
+ <img
57
+ :src="(user.avatar) ? user.avatar : getNameInitials(user.name, user.last_name)"
58
+ :alt="user.name"
59
+ >
60
+ </el-tooltip>
61
+ </div>
62
+ </footer>
63
+ </article>
64
+ </nuxt-link>
65
+ </template>
66
+
67
+ <script>
68
+ import moment from 'moment';
69
+ import 'moment/locale/pt-br';
70
+
71
+ import JobStatusDropdown from '@burh/nuxt-core/components/burh-ds/Dropdown/JobStatusDropdown.vue';
72
+
73
+ export default {
74
+ name: 'recruitment-card',
75
+ components: {
76
+ JobStatusDropdown
77
+ },
78
+ props: {
79
+ job: {
80
+ type: Object,
81
+ default: () => []
82
+ }
83
+ },
84
+ methods: {
85
+ getNameInitials(name, last_name) {
86
+ const avatarUrl = process.env.routes.avatar;
87
+
88
+ let userAvatarName;
89
+
90
+ if (name && last_name) {
91
+ userAvatarName = `${name.toUpperCase().charAt(0)}${last_name.toUpperCase().charAt(0)}`;
92
+ } else if (name && last_name === null) {
93
+ userAvatarName = name;
94
+ } else {
95
+ userAvatarName = 'BURH';
96
+ }
97
+
98
+ return avatarUrl.replace(':size', '64x64').replace(':initials', userAvatarName);
99
+ },
100
+ fromNow(date, format = 'YYYYMMDD') {
101
+ return moment(date, format).fromNow();
102
+ },
103
+ handleChangeJobStatus(id) {
104
+ this.$emit('select', id);
105
+ }
106
+ }
107
+ };
108
+ </script>
109
+
110
+ <style lang="scss" scoped>
111
+ .recruitment__card {
112
+ cursor: pointer;
113
+ background: #fff;
114
+ box-shadow: 0 3px 20px rgba(0, 0, 0, 0.08);
115
+ padding: 20px;
116
+ border-radius: 4px;
117
+ border: none;
118
+ text-align: initial;
119
+ color: #1D364B;
120
+ transition: transform 0.25s;
121
+ &:focus {
122
+ outline: none;
123
+ transform: translateY(-5px);
124
+ }
125
+ &:hover {
126
+ transform: translateY(-5px);
127
+ }
128
+
129
+ &__header {
130
+ display: flex;
131
+ align-items: center;
132
+ justify-content: space-between;
133
+ padding: 5px 0;
134
+ &__actions {
135
+ display: flex;
136
+ align-items: center;
137
+ .action__item {
138
+ cursor: pointer;
139
+ width: 42px;
140
+ height: 42px;
141
+ border-radius: 100px;
142
+ transition: background 0.5s;
143
+ display: flex;
144
+ align-items: center;
145
+ justify-content: center;
146
+ background: transparent;
147
+ border: 0;
148
+ position: relative;
149
+ &:not(:disabled):hover {
150
+ background: rgba(0, 0, 0, 0.08);
151
+ }
152
+ &:focus {
153
+ outline: none;
154
+ background: rgba(0, 0, 0, 0.08);
155
+ }
156
+ &:not(:first-child) {
157
+ margin-left: 5px;
158
+ }
159
+ i {
160
+ color: #AEB6BE;
161
+ }
162
+ }
163
+ }
164
+ }
165
+
166
+ &__content {
167
+ &__date {
168
+ font-size: 0.875rem;
169
+ font-weight: 400;
170
+ color: #AEB6BE;
171
+ }
172
+ &__title {
173
+ font-size: 1.275rem;
174
+ color: #1D364B;
175
+ margin-bottom: 0;
176
+ .pcd {
177
+ color: #1F8CEB;
178
+ margin-left: 5px;
179
+ }
180
+ }
181
+ &__id {
182
+ font-size: 0.875rem;
183
+ font-weight: 600;
184
+ color: #525F7F;
185
+ }
186
+ }
187
+
188
+ &__info {
189
+ padding: 20px 0;
190
+ &__text {
191
+ margin-bottom: 0;
192
+ font-size: 1rem;
193
+ font-weight: 500;
194
+ span {
195
+ margin-right: 5px;
196
+ color: #1F8CEB;
197
+ }
198
+ }
199
+ }
200
+
201
+ &__footer {
202
+ border-top: 1px solid #E9E9E9;
203
+ padding-top: 10px;
204
+ &__title {
205
+ color: #525F7F;
206
+ font-size: 0.875rem;
207
+ font-weight: 600;
208
+ margin-bottom: 0;
209
+ }
210
+ &__images {
211
+ display: flex;
212
+ align-items: center;
213
+ user-select: none;
214
+ img {
215
+ $size: 32px;
216
+ display: block;
217
+ width: $size;
218
+ height: $size;
219
+ object-fit: cover;
220
+ border-radius: 100px;
221
+ border: 2px solid #fff;
222
+ &:not(:first-child) {
223
+ margin-left: -10px;
224
+ }
225
+ }
226
+ }
227
+ }
228
+ }
229
+ </style>