@burh/nuxt-core 1.0.403 → 1.0.405

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.
@@ -118,7 +118,7 @@ $interviews: #ff539d !default;
118
118
  $workus: #ff7d7e !default;
119
119
  $corp-university: #5983fe !default;
120
120
  $store: #9d35fc !default;
121
- $tests: #8be77a !default;
121
+ $tests: #00b388 !default;
122
122
  $buffer: #81d6fb !default;
123
123
  $sms: #ffcf02 !default;
124
124
  $carrers: #5983fe !default;
@@ -1,183 +1,183 @@
1
- <template>
2
- <SlideYUpTransition :duration="animationDuration">
3
- <div
4
- class="modal fade"
5
- @click.self="closeModal"
6
- :class="[
7
- { 'show d-block': show },
8
- { 'd-none': !show },
9
- { 'modal-mini': type === 'mini' }
10
- ]"
11
- v-show="show"
12
- tabindex="-1"
13
- role="dialog"
14
- :aria-hidden="!show"
15
- >
16
- <div
17
- class="modal-dialog modal-dialog-centered"
18
- :class="[
19
- {
20
- 'modal-notice': type === 'notice',
21
- [`modal-${size}`]: size
22
- },
23
- modalClasses
24
- ]"
25
- >
26
- <div
27
- class="modal-content"
28
- :class="[
29
- gradient ? `bg-gradient-${gradient}` : '',
30
- modalContentClasses
31
- ]"
32
- >
33
- <div
34
- class="modal-header"
35
- :class="[headerClasses]"
36
- v-if="$slots.header"
37
- >
38
- <slot name="header"></slot>
39
- <slot name="close-button">
40
- <button
41
- class="tool tool-close"
42
- v-if="showClose"
43
- @click="closeModal"
44
- data-dismiss="modal"
45
- aria-label="Close"
46
- >
47
- Fechar
48
- <font-awesome-icon
49
- :icon="['fas', 'times']"
50
- class="text-white ml-1"
51
- />
52
- </button>
53
- </slot>
54
- </div>
55
-
56
- <div class="modal-body" :class="bodyClasses">
57
- <slot></slot>
58
- </div>
59
-
60
- <div
61
- class="modal-footer"
62
- :class="footerClasses"
63
- v-if="$slots.footer"
64
- >
65
- <slot name="footer"></slot>
66
- </div>
67
- </div>
68
- </div>
69
- </div>
70
- </SlideYUpTransition>
71
- </template>
72
- <script>
73
- import { SlideYUpTransition } from 'vue2-transitions';
74
-
75
- export default {
76
- name: 'modal',
77
- components: {
78
- SlideYUpTransition
79
- },
80
- props: {
81
- show: Boolean,
82
- showClose: {
83
- type: Boolean,
84
- default: true
85
- },
86
- type: {
87
- type: String,
88
- default: '',
89
- validator(value) {
90
- let acceptedValues = ['', 'notice', 'mini'];
91
- return acceptedValues.indexOf(value) !== -1;
92
- },
93
- description: 'Modal type (notice|mini|"") '
94
- },
95
- modalClasses: {
96
- type: [Object, String],
97
- description: 'Modal dialog css classes'
98
- },
99
- size: {
100
- type: String,
101
- description: 'Modal size',
102
- validator(value) {
103
- let acceptedValues = ['', 'sm', 'lg', 'xl'];
104
- return acceptedValues.indexOf(value) !== -1;
105
- }
106
- },
107
- modalContentClasses: {
108
- type: [Object, String],
109
- description: 'Modal dialog content css classes'
110
- },
111
- gradient: {
112
- type: String,
113
- description: 'Modal gradient type (danger, primary etc)'
114
- },
115
- headerClasses: {
116
- type: [Object, String],
117
- description: 'Modal Header css classes'
118
- },
119
- bodyClasses: {
120
- type: [Object, String],
121
- description: 'Modal Body css classes'
122
- },
123
- footerClasses: {
124
- type: [Object, String],
125
- description: 'Modal Footer css classes'
126
- },
127
- animationDuration: {
128
- type: Number,
129
- default: 500,
130
- description: 'Modal transition duration'
131
- }
132
- },
133
- methods: {
134
- closeModal() {
135
- this.$emit('update:show', false);
136
- this.$emit('close');
137
- }
138
- },
139
- watch: {
140
- show(val) {
141
- let documentClasses = document.body.classList;
142
- if (val) {
143
- documentClasses.add('modal-open');
144
- } else {
145
- documentClasses.remove('modal-open');
146
- }
147
- }
148
- }
149
- };
150
- </script>
151
- <style lang="scss">
152
- @import '@burh/nuxt-core/assets/sass/burh-ds/variables/_colors.scss';
153
- .modal.show {
154
- background-color: rgba(23,43,77, 0.7);
155
- }
156
-
157
- .tool {
158
- position: absolute;
159
- top: 1rem;
160
- z-index: 10;
161
- color: $primary;
162
- cursor: pointer;
163
- border: none;
164
-
165
- &-close {
166
- position: absolute;
167
- width: 88px;
168
- height: 27px;
169
- right: 7px;
170
- top: 7px;
171
- display: flex;
172
- justify-content: center;
173
- align-items: center;
174
-
175
- font-size: 11px;
176
-
177
- font-weight: 500;
178
- background: rgba(0, 0, 0, 0.2);
179
- border-radius: 17.5px;
180
- color: #fff;
181
- }
182
- }
183
- </style>
1
+ <template>
2
+ <SlideYUpTransition :duration="animationDuration">
3
+ <div
4
+ class="modal fade"
5
+ @mousedown.self="closeModal"
6
+ :class="[
7
+ { 'show d-block': show },
8
+ { 'd-none': !show },
9
+ { 'modal-mini': type === 'mini' }
10
+ ]"
11
+ v-show="show"
12
+ tabindex="-1"
13
+ role="dialog"
14
+ :aria-hidden="!show"
15
+ >
16
+ <div
17
+ class="modal-dialog modal-dialog-centered"
18
+ :class="[
19
+ {
20
+ 'modal-notice': type === 'notice',
21
+ [`modal-${size}`]: size
22
+ },
23
+ modalClasses
24
+ ]"
25
+ >
26
+ <div
27
+ class="modal-content"
28
+ :class="[
29
+ gradient ? `bg-gradient-${gradient}` : '',
30
+ modalContentClasses
31
+ ]"
32
+ >
33
+ <div
34
+ class="modal-header"
35
+ :class="[headerClasses]"
36
+ v-if="$slots.header"
37
+ >
38
+ <slot name="header"></slot>
39
+ <slot name="close-button">
40
+ <button
41
+ class="tool tool-close"
42
+ v-if="showClose"
43
+ @click="closeModal"
44
+ data-dismiss="modal"
45
+ aria-label="Close"
46
+ >
47
+ Fechar
48
+ <font-awesome-icon
49
+ :icon="['fas', 'times']"
50
+ class="text-white ml-1"
51
+ />
52
+ </button>
53
+ </slot>
54
+ </div>
55
+
56
+ <div class="modal-body" :class="bodyClasses">
57
+ <slot></slot>
58
+ </div>
59
+
60
+ <div
61
+ class="modal-footer"
62
+ :class="footerClasses"
63
+ v-if="$slots.footer"
64
+ >
65
+ <slot name="footer"></slot>
66
+ </div>
67
+ </div>
68
+ </div>
69
+ </div>
70
+ </SlideYUpTransition>
71
+ </template>
72
+ <script>
73
+ import { SlideYUpTransition } from 'vue2-transitions';
74
+
75
+ export default {
76
+ name: 'modal',
77
+ components: {
78
+ SlideYUpTransition
79
+ },
80
+ props: {
81
+ show: Boolean,
82
+ showClose: {
83
+ type: Boolean,
84
+ default: true
85
+ },
86
+ type: {
87
+ type: String,
88
+ default: '',
89
+ validator(value) {
90
+ let acceptedValues = ['', 'notice', 'mini'];
91
+ return acceptedValues.indexOf(value) !== -1;
92
+ },
93
+ description: 'Modal type (notice|mini|"") '
94
+ },
95
+ modalClasses: {
96
+ type: [Object, String],
97
+ description: 'Modal dialog css classes'
98
+ },
99
+ size: {
100
+ type: String,
101
+ description: 'Modal size',
102
+ validator(value) {
103
+ let acceptedValues = ['', 'sm', 'lg', 'xl'];
104
+ return acceptedValues.indexOf(value) !== -1;
105
+ }
106
+ },
107
+ modalContentClasses: {
108
+ type: [Object, String],
109
+ description: 'Modal dialog content css classes'
110
+ },
111
+ gradient: {
112
+ type: String,
113
+ description: 'Modal gradient type (danger, primary etc)'
114
+ },
115
+ headerClasses: {
116
+ type: [Object, String],
117
+ description: 'Modal Header css classes'
118
+ },
119
+ bodyClasses: {
120
+ type: [Object, String],
121
+ description: 'Modal Body css classes'
122
+ },
123
+ footerClasses: {
124
+ type: [Object, String],
125
+ description: 'Modal Footer css classes'
126
+ },
127
+ animationDuration: {
128
+ type: Number,
129
+ default: 500,
130
+ description: 'Modal transition duration'
131
+ }
132
+ },
133
+ methods: {
134
+ closeModal() {
135
+ this.$emit('update:show', false);
136
+ this.$emit('close');
137
+ }
138
+ },
139
+ watch: {
140
+ show(val) {
141
+ let documentClasses = document.body.classList;
142
+ if (val) {
143
+ documentClasses.add('modal-open');
144
+ } else {
145
+ documentClasses.remove('modal-open');
146
+ }
147
+ }
148
+ }
149
+ };
150
+ </script>
151
+ <style lang="scss">
152
+ @import '@burh/nuxt-core/assets/sass/burh-ds/variables/_colors.scss';
153
+ .modal.show {
154
+ background-color: rgba(23,43,77, 0.7);
155
+ }
156
+
157
+ .tool {
158
+ position: absolute;
159
+ top: 1rem;
160
+ z-index: 10;
161
+ color: $primary;
162
+ cursor: pointer;
163
+ border: none;
164
+
165
+ &-close {
166
+ position: absolute;
167
+ width: 88px;
168
+ height: 27px;
169
+ right: 7px;
170
+ top: 7px;
171
+ display: flex;
172
+ justify-content: center;
173
+ align-items: center;
174
+
175
+ font-size: 11px;
176
+
177
+ font-weight: 500;
178
+ background: rgba(0, 0, 0, 0.2);
179
+ border-radius: 17.5px;
180
+ color: #fff;
181
+ }
182
+ }
183
+ </style>
@@ -101,8 +101,8 @@ export default {
101
101
  hasCourse: {
102
102
  type: Boolean,
103
103
  default: false,
104
- },
105
- hideItems: {
104
+ },
105
+ hideItems: {
106
106
  type: Object,
107
107
  default: () => ({}),
108
108
  }
@@ -121,7 +121,7 @@ export default {
121
121
  this.$emit('copy-test');
122
122
  },
123
123
  openRenameEditor() {
124
- this.newName = this.text
124
+ this.newName = this.text;
125
125
  this.showNameEditor = true;
126
126
 
127
127
  this.$nextTick()
@@ -132,11 +132,13 @@ export default {
132
132
  this.$refs.teste.$el.focus();
133
133
  },
134
134
  renameTest() {
135
- const rename = {
136
- id: this.id,
137
- name: this.newName
138
- };
139
- this.$emit('rename-test', rename);
135
+ if (this.newName) {
136
+ const rename = {
137
+ id: this.id,
138
+ name: this.newName
139
+ };
140
+ this.$emit('rename-test', rename);
141
+ }
140
142
  this.showNameEditor = false;
141
143
  },
142
144
  deleteTest(id) {
@@ -176,6 +178,7 @@ export default {
176
178
  padding: .25rem .5rem;
177
179
  display: none;
178
180
  &:hover {
181
+
179
182
  cursor: pointer;
180
183
  }
181
184
  }
@@ -3,23 +3,43 @@
3
3
  <!-- FERRAMENTAS -->
4
4
  <div class="tools mt-3">
5
5
  <button
6
- @click="
7
- isLocked && tool.event !== 'share'
8
- ? $emit('open-contact')
9
- : $emit(tool.event)
10
- "
6
+ v-for="(tool, index) in tools"
7
+ :key="index"
11
8
  class="ml-3 burh-color"
12
9
  :class="{
13
- 'disabled-button': isLocked && tool.event !== 'share'
10
+ 'disabled-button': isLocked && !unlockedButtons.includes(tool.event)
14
11
  }"
15
- v-for="(tool, index) in tools"
16
- :key="index"
12
+ @click="
13
+ isLocked && !unlockedButtons.includes(tool.event)
14
+ ? $emit('open-contact')
15
+ : tool.event !== 'moveTo' && $emit(tool.event)
16
+ "
17
17
  >
18
- <i
19
- v-show="isLocked && tool.event !== 'share'"
20
- class="fas fa-lock mr-1"
21
- ></i>
22
- {{ tool.name }}
18
+ <template v-if="tool.event !== 'moveTo'">
19
+ <i
20
+ v-show="isLocked && tool.event !== 'share'"
21
+ class="fas fa-lock mr-1"
22
+ ></i>
23
+ {{ tool.name }}
24
+ </template>
25
+ <template v-else-if="tool.event === 'moveTo'">
26
+ <el-dropdown trigger="click" class="dropdown__content">
27
+ <span class="title__content icon">
28
+ {{tool.name}}
29
+ <i class="fas fa-angle-down"></i>
30
+ </span>
31
+ <el-dropdown-menu slot="dropdown">
32
+ <el-dropdown-item
33
+ v-for="(tab, index) in moveToItems"
34
+ :key="index"
35
+ @click.native="$emit(tool.event, tab)"
36
+ >
37
+ <i class="fas fa-clipboard-list"></i>
38
+ {{ tab.title }}
39
+ </el-dropdown-item>
40
+ </el-dropdown-menu>
41
+ </el-dropdown>
42
+ </template>
23
43
  </button>
24
44
  </div>
25
45
  <!-- SOBRE -->
@@ -185,6 +205,7 @@
185
205
  <script>
186
206
  import getPrefixes from '~/util/getPrefixes.js';
187
207
  import { mask } from 'vue-the-mask';
208
+ import { Dropdown, DropdownMenu, DropdownItem } from 'element-ui';
188
209
 
189
210
  export default {
190
211
  name: 'user-cv-middle',
@@ -198,6 +219,31 @@ export default {
198
219
  search: {
199
220
  type: String,
200
221
  default: ''
222
+ },
223
+ moveToItems: {
224
+ type: Array,
225
+ default: () => [
226
+ {
227
+ id: 1,
228
+ name: 'applieds',
229
+ title: 'Inscritos'
230
+ },
231
+ {
232
+ id: 3,
233
+ name: 'selecteds',
234
+ title: 'Selecionados'
235
+ },
236
+ {
237
+ id: 5,
238
+ name: 'hireds',
239
+ title: 'Contratados'
240
+ },
241
+ {
242
+ id: 4,
243
+ name: 'other',
244
+ title: 'Reprovado'
245
+ }
246
+ ]
201
247
  }
202
248
  },
203
249
  filters: {
@@ -208,17 +254,24 @@ export default {
208
254
  3: 'Graduação',
209
255
  4: 'Pós-Graduação',
210
256
  5: 'Mestrado',
211
- 6: 'Doutorado'
257
+ 6: 'Doutorado',
258
+ 8: 'Ensino Fundamental'
212
259
  };
213
260
 
214
261
  return typeFormation[id] || '-';
215
262
  }
216
263
  },
264
+ components: {
265
+ ElDropdown: Dropdown,
266
+ ElDropdownMenu: DropdownMenu,
267
+ ElDropdownItem: DropdownItem
268
+ },
217
269
  data() {
218
270
  return {
219
271
  isLocked: !this.companyHasProduct(
220
272
  this.$store.state.loja && this.$store.state.loja.showableProducts && this.$store.state.loja.showableProducts['INTERACAO_USUARIO'] || false
221
- )
273
+ ),
274
+ unlockedButtons: ['share', 'moveTo']
222
275
  };
223
276
  },
224
277
  mounted() {
@@ -423,6 +476,28 @@ export default {
423
476
  <style lang="scss" scoped>
424
477
  @import '@burh/nuxt-core/assets/sass/burh-ds/variables/_colors.scss';
425
478
 
479
+ /deep/ .dropdown__content {
480
+ &, .title__content {
481
+ width: 100%;
482
+ height: 100%;
483
+ display: grid;
484
+ place-items: center;
485
+ }
486
+ .title__content.icon {
487
+ grid-template-columns: 1fr 10px;
488
+ flex-direction: row;
489
+ align-items: center;
490
+ justify-content: space-between;
491
+ color: #fff;
492
+ font-weight: 600;
493
+ font-size: 12px;
494
+ i {
495
+ font-size: 1rem;
496
+ margin-left: 10px;
497
+ }
498
+ }
499
+ }
500
+
426
501
  /deep/ .search-highlight {
427
502
  background: rgb(255, 252, 61);
428
503
  color: #000;
@@ -444,11 +519,21 @@ export default {
444
519
 
445
520
  .tools {
446
521
  flex-wrap: wrap;
522
+ display: grid;
523
+ align-items: center;
524
+ justify-content: space-between;
525
+ grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
526
+ gap: 10px;
527
+ padding-right: 20px;
447
528
  button {
448
- width: 117px;
529
+ display: flex;
530
+ align-items: center;
531
+ justify-content: center;
532
+
533
+ margin-left: 0!important;
534
+
449
535
  height: 29px;
450
536
  border: none;
451
- margin-top: 15px;
452
537
 
453
538
  background: #5865F2;
454
539
  border-radius: 16px;
@@ -457,6 +542,8 @@ export default {
457
542
  font-size: 12px;
458
543
  font-weight: 600;
459
544
  outline: 0;
545
+
546
+ padding: 0 20px;
460
547
  }
461
548
  }
462
549
 
@@ -1,82 +1,98 @@
1
1
  <template>
2
- <default-link
3
- :link="!validated ? '' : to"
4
- class="product-item"
5
- :disabled="disabled"
6
- >
7
- <div @click="$emit('redirect-product', to, validated)">
8
- <div :class="'product-item--avatar bg-' + color">
9
- <img :src="avatar" alt="" />
10
- </div>
11
- <div :class="contentClass" class="product-item--content">
12
- <component
13
- :is="titleTag"
14
- :class="titleClass"
15
- class="product-item--title"
16
- >{{ title }}</component
17
- >
18
- <p
19
- :class="descriptionClass"
20
- class="product-item--description"
21
- v-if="description"
22
- >
23
- {{ description }}
24
- </p>
25
- <badge
26
- rounded
27
- size="md"
28
- class="ml-auto badge-bg-color badge-font"
29
- type="primary"
30
- v-show="hasEnableBadge"
31
- >ATUALIZAR
32
- </badge>
33
- </div>
34
- </div>
35
- </default-link>
2
+ <default-link
3
+ :link="!validated ? '' : to"
4
+ class="product-item"
5
+ :disabled="disabled"
6
+ >
7
+ <div @click="$emit('redirect-product', to, validated)">
8
+ <div :class="'product-item--avatar bg-' + color">
9
+ <img :src="avatar" alt="" />
10
+ </div>
11
+ <div :class="contentClass" class="product-item--content">
12
+ <component
13
+ :is="titleTag"
14
+ :class="titleClass"
15
+ class="product-item--title"
16
+ >
17
+ {{ title }}
18
+ </component>
19
+ <p
20
+ :class="descriptionClass"
21
+ class="product-item--description"
22
+ v-if="description"
23
+ >
24
+ {{ description }}
25
+ </p>
26
+ <badge
27
+ rounded
28
+ size="md"
29
+ class="ml-auto badge-bg-color badge-font"
30
+ type="primary"
31
+ v-if="hasEnableBadge"
32
+ >
33
+ ATUALIZAR
34
+ </badge>
35
+
36
+ <badge
37
+ rounded
38
+ size="md"
39
+ class="ml-auto badge-bg-color badge-font"
40
+ type="primary"
41
+ v-if="beta"
42
+ >
43
+ BETA
44
+ </badge>
45
+ </div>
46
+ </div>
47
+ </default-link>
36
48
  </template>
37
49
 
38
50
  <script>
39
51
  import DefaultLink from '../Link/DefaultLink';
40
52
  export default {
41
- name: 'simple-product-item',
42
- components: {
43
- DefaultLink
44
- },
45
- props: {
46
- tag: {
47
- type: String,
48
- default: 'section'
49
- },
50
- contentClass: String,
51
- title: String,
52
- titleTag: {
53
- type: String,
54
- default: 'h3'
55
- },
56
- titleClass: String,
57
- avatar: String,
58
- color: String,
59
- icon: String,
60
- avatarClass: String,
61
- description: String,
62
- descriptionClass: String,
63
- hasEnableBadge: Boolean,
64
- badgeClass: String,
65
- to: {
66
- type: String,
67
- default: '/'
68
- },
69
- indexableName: String,
70
- validated: Boolean,
71
- disabled: Boolean
72
- },
73
- methods: {
74
- callVideoTutorial() {
75
- // if (this.indexableName == 'VIDEO_CHAMADA') {
76
- this.$emit('callVideoTutorial');
77
- // }
78
- }
79
- }
53
+ name: 'simple-product-item',
54
+ components: {
55
+ DefaultLink
56
+ },
57
+ props: {
58
+ tag: {
59
+ type: String,
60
+ default: 'section'
61
+ },
62
+ contentClass: String,
63
+ title: String,
64
+ titleTag: {
65
+ type: String,
66
+ default: 'h3'
67
+ },
68
+ titleClass: String,
69
+ avatar: String,
70
+ color: String,
71
+ icon: String,
72
+ avatarClass: String,
73
+ description: String,
74
+ descriptionClass: String,
75
+ beta: {
76
+ type: Boolean,
77
+ default: false
78
+ },
79
+ hasEnableBadge: Boolean,
80
+ badgeClass: String,
81
+ to: {
82
+ type: String,
83
+ default: '/'
84
+ },
85
+ indexableName: String,
86
+ validated: Boolean,
87
+ disabled: Boolean
88
+ },
89
+ methods: {
90
+ callVideoTutorial() {
91
+ // if (this.indexableName == 'VIDEO_CHAMADA') {
92
+ this.$emit('callVideoTutorial');
93
+ // }
94
+ }
95
+ }
80
96
  };
81
97
  </script>
82
98
 
@@ -3,7 +3,7 @@
3
3
 
4
4
  <template slot="header">
5
5
  <h2 class="display-4 pb-3">
6
- Insira os e-mails que deseja convidar a empresa
6
+ Insira os e-mails que deseja adicionar a empresa
7
7
  </h2>
8
8
  </template>
9
9
 
@@ -13,66 +13,80 @@
13
13
  <div class="row send send-test mx-0">
14
14
  <h5>Insira o e-mail que deseja enviar o teste</h5>
15
15
  </div>
16
+ <validation-observer ref="sendTest">
16
17
 
17
- <div class="row mt-3 send send-form">
18
- <div class="col-6">
19
- <label for="teste">Selecione a vaga</label>
20
- <badge
21
- rounded
22
- size="md"
23
- type="primary"
24
- class="ml-auto badge-bg-color badge-font">
25
- opcional
26
- </badge>
27
- <el-select
28
- filterable
29
- clearable
30
- no-match-text="Nenhuma vaga encontrada"
31
- no-data-text="Nenhuma vaga encontrada"
32
- placeholder="Escolha a vaga"
33
- v-model="jobid"
34
- class="w-100"
35
- >
36
- <el-option
37
- v-for="job in allJobs"
38
- class="select-danger"
39
- :value="job.id"
40
- :label="job.name"
41
- :key="job.id"
42
- ></el-option>
43
- </el-select>
44
- </div>
18
+ <div class="row mt-3 send send-form">
19
+ <div class="col-6">
20
+ <label for="teste">Selecione a vaga</label>
21
+ <badge
22
+ rounded
23
+ size="md"
24
+ type="primary"
25
+ class="ml-auto badge-bg-color badge-font">
26
+ opcional
27
+ </badge>
28
+ <el-select
29
+ filterable
30
+ clearable
31
+ no-match-text="Nenhuma vaga encontrada"
32
+ no-data-text="Nenhuma vaga encontrada"
33
+ placeholder="Escolha a vaga"
34
+ v-model="jobid"
35
+ class="w-100"
36
+ >
37
+ <el-option
38
+ v-for="job in allJobs"
39
+ class="select-danger"
40
+ :value="job.id"
41
+ :label="job.name"
42
+ :key="job.id"
43
+ ></el-option>
44
+ </el-select>
45
+ </div>
45
46
 
46
- <div class="col-6">
47
- <label for="teste">Selecione o teste</label>
48
- <el-select
49
- clearable
50
- filterable
51
- no-match-text="Nenhuma teste encontrado"
52
- no-data-text="Nenhum teste encontrado"
53
- placeholder="Escolha o teste"
54
- v-model="testid"
55
- class="w-100"
56
- >
57
- <el-option
58
- v-for="test in allTests"
59
- class="select-danger"
60
- :value="test.id"
61
- :label="test.name"
62
- :key="test.id"
63
- :disabled="
64
- !categoryIsAllowedToSend(
65
- test.category_test_id
66
- )
67
- "
68
- ></el-option>
69
- </el-select>
47
+ <div class="col-6">
48
+ <validation-provider
49
+ tag="div"
50
+ name="Teste "
51
+ rules="required"
52
+ v-slot="{ errors }"
53
+ >
54
+ <label for="teste">Selecione o teste</label>
55
+ <el-select
56
+ filterable
57
+ required
58
+ no-match-text="Nenhuma teste encontrado"
59
+ no-data-text="Nenhum teste encontrado"
60
+ placeholder="Escolha o teste"
61
+ :class="{'is-invalid': errors[0]}"
62
+ rules="required"
63
+ v-model="testid"
64
+ class="w-100"
65
+ >
66
+ <el-option
67
+ v-for="test in allTests"
68
+ class="select-danger"
69
+ :value="test.id"
70
+ :label="test.name"
71
+ :key="test.id"
72
+ :disabled="
73
+ !categoryIsAllowedToSend(
74
+ test.category_test_id
75
+ )
76
+ "
77
+ ></el-option>
78
+ </el-select>
79
+ <div
80
+ class="invalid-feedback"
81
+ style="display: block;">
82
+ {{ errors[0] }}
83
+ </div>
84
+ </validation-provider>
85
+ </div>
70
86
  </div>
71
- </div>
72
87
 
73
- <hr />
88
+ <hr />
74
89
 
75
- <validation-observer ref="sendTest">
76
90
  <div
77
91
  class="row mt-3 send send-form"
78
92
  v-for="(slot, idx) in slots"
@@ -267,6 +281,12 @@ export default {
267
281
  margin-top: 0.7rem !important;
268
282
  }
269
283
 
284
+ .is-invalid {
285
+ /deep/ input {
286
+ border-color: #de214b!important;
287
+ }
288
+ }
289
+
270
290
  .badge-font {
271
291
  font-size: 10px !important;
272
292
  }
@@ -1,169 +1,203 @@
1
- <template>
2
- <div class="recruitment__card">
3
- <div>
4
- <div class="recruitment__card__header">
5
- <div class="recruitment__card__header__status">
6
- <skeleton-animate class="skeleton-mb" :width="100" :height="20" />
7
- </div>
8
- </div>
9
-
10
- <div class="recruitment__card__content">
11
- <span class="recruitment__card__content__date">
12
- <skeleton-animate class="skeleton-mb" :width="150" :height="10" />
13
- </span>
14
- <h2 class="recruitment__card__content__title">
15
- <skeleton-animate class="skeleton-mb" :width="250" :height="20" />
16
- </h2>
17
- <span class="recruitment__card__content__id">
18
- <skeleton-animate class="skeleton-mb" :width="110" :height="15" />
19
- </span>
20
-
21
- <div class="recruitment__card__info">
22
- <div class="recruitment__card__info__text">
23
- <skeleton-animate class="skeleton-mb" :width="120" :height="15" />
24
- </div>
25
- <div class="recruitment__card__info__text">
26
- <skeleton-animate class="skeleton-mb" :width="120" :height="15" />
27
- </div>
28
- <div class="recruitment__card__info__text">
29
- <skeleton-animate class="skeleton-mb" :width="120" :height="15" />
30
- </div>
31
- </div>
32
- </div>
33
-
34
- <div class="recruitment__card__footer">
35
- <p class="recruitment__card__footer__title">EQUIPE RESPONSÁVEL</p>
36
- <div class="recruitment__card__footer__images">
37
- <skeleton-animate class="skeleton-mt" :width="32" :height="32" img />
38
- </div>
39
- </div>
40
- </div>
41
- </div>
42
- </template>
43
-
44
- <script>
45
- import SkeletonAnimate from './SkeletonAnimate.vue';
46
- export default {
47
- name: 'recruitment-card-skeleton',
48
- components: {
49
- SkeletonAnimate
50
- }
51
- };
52
- </script>
53
-
54
- <style lang="scss" scoped>
55
- @-webkit-keyframes placeholderSkeleton {
56
- 0% {
57
- background-position: -468px 0;
58
- }
59
- 100% {
60
- background-position: 468px 0;
61
- }
62
- }
63
-
64
- @-webkit-keyframes skeletonAnimate {
65
- from {
66
- background-position: top left;
67
- }
68
- to {
69
- background-position: top right;
70
- }
71
- }
72
-
73
- .skeleton-mb {
74
- margin-bottom: 10px;
75
- }
76
-
77
- .skeleton-mt {
78
- margin-top: 10px;
79
- }
80
-
81
- .skeleton--animate {
82
- -webkit-animation-duration: 1s;
83
- -webkit-animation-fill-mode: forwards;
84
- -webkit-animation-iteration-count: infinite;
85
- -webkit-animation-name: placeholderSkeleton;
86
- -webkit-animation-timing-function: linear;
87
- background: #e0e3e6;
88
- background-image: -webkit-gradient(
89
- linear,
90
- left center,
91
- right center,
92
- from(#e0e3e6),
93
- color-stop(0.2, #edeef1),
94
- color-stop(0.4, #e0e3e6),
95
- to(#e0e3e6)
96
- );
97
- background-image: -webkit-linear-gradient(
98
- left,
99
- #e0e3e6 0%,
100
- #edeef1 20%,
101
- #e0e3e6 40%,
102
- #e0e3e6 100%
103
- );
104
- background-repeat: no-repeat;
105
- background-size: 800px 104px;
106
- }
107
-
108
- .recruitment__card {
109
- cursor: pointer;
110
- background: #fff;
111
- box-shadow: 0 3px 20px rgba(0, 0, 0, 0.08);
112
- padding: 20px;
113
- border-radius: 4px;
114
- border: none;
115
- text-align: initial;
116
- color: #1D364B;
117
- transition: transform 0.25s;
118
-
119
- &__header {
120
- display: flex;
121
- align-items: center;
122
- justify-content: space-between;
123
- padding: 5px 0;
124
- }
125
-
126
- &__content {
127
- &__date {
128
- font-size: 0.875rem;
129
- font-weight: 400;
130
- color: #AEB6BE;
131
- }
132
- &__title {
133
- font-size: 1.275rem;
134
- color: #1D364B;
135
- margin-bottom: 0;
136
- }
137
- &__id {
138
- font-size: 0.875rem;
139
- font-weight: 600;
140
- color: #525F7F;
141
- }
142
- }
143
-
144
- &__info {
145
- padding: 20px 0;
146
- &__text {
147
- margin-bottom: 0;
148
- font-size: 1rem;
149
- font-weight: 500;
150
- }
151
- }
152
-
153
- &__footer {
154
- border-top: 1px solid #E9E9E9;
155
- padding-top: 10px;
156
- &__title {
157
- color: #525F7F;
158
- font-size: 0.875rem;
159
- font-weight: 600;
160
- margin-bottom: 0;
161
- }
162
- &__images {
163
- display: flex;
164
- align-items: center;
165
- user-select: none;
166
- }
167
- }
168
- }
169
- </style>
1
+ <template>
2
+ <div class="recruitment__card">
3
+ <div>
4
+ <div class="recruitment__card__header">
5
+ <div class="recruitment__card__header__status">
6
+ <skeleton-animate class="skeleton-mb" :width="100" :height="20" />
7
+ </div>
8
+ </div>
9
+
10
+ <div class="recruitment__card__content">
11
+ <span class="recruitment__card__content__date">
12
+ <skeleton-animate class="skeleton-mb" :width="150" :height="10" />
13
+ </span>
14
+ <h2 class="recruitment__card__content__title">
15
+ <skeleton-animate class="skeleton-mb" :width="250" :height="20" />
16
+ </h2>
17
+ <span class="recruitment__card__content__city">
18
+ <skeleton-animate class="skeleton-mb" :width="110" :height="15" />
19
+ </span>
20
+ <span class="recruitment__card__content__id">
21
+ <skeleton-animate class="skeleton-mb" :width="110" :height="15" />
22
+ </span>
23
+
24
+ <div class="recruitment__card__info">
25
+ <div class="recruitment__card__info__text">
26
+ <skeleton-animate class="skeleton-mb" :width="120" :height="15" />
27
+ </div>
28
+ <div class="recruitment__card__info__text">
29
+ <skeleton-animate class="skeleton-mb" :width="120" :height="15" />
30
+ </div>
31
+ <div class="recruitment__card__info__text">
32
+ <skeleton-animate class="skeleton-mb" :width="120" :height="15" />
33
+ </div>
34
+ <div class="recruitment__card__info__text">
35
+ <skeleton-animate class="skeleton-mb" :width="120" :height="15" />
36
+ </div>
37
+ </div>
38
+ </div>
39
+
40
+ <div class="recruitment__card__footer">
41
+ <p class="recruitment__card__footer__title">EQUIPE RESPONSÁVEL</p>
42
+ <div class="recruitment__card__footer__images">
43
+ <skeleton-animate class="skeleton-mt" :width="32" :height="32" img />
44
+ </div>
45
+ </div>
46
+ </div>
47
+ </div>
48
+ </template>
49
+
50
+ <script>
51
+ import SkeletonAnimate from './SkeletonAnimate.vue';
52
+ export default {
53
+ name: 'recruitment-card-skeleton',
54
+ components: {
55
+ SkeletonAnimate
56
+ }
57
+ };
58
+ </script>
59
+
60
+ <style lang="scss" scoped>
61
+ @keyframes placeholderSkeleton {
62
+ 0% {
63
+ background-position: -468px 0;
64
+ }
65
+ 100% {
66
+ background-position: 468px 0;
67
+ }
68
+ }
69
+
70
+ @keyframes skeletonAnimate {
71
+ from {
72
+ background-position: top left;
73
+ }
74
+ to {
75
+ background-position: top right;
76
+ }
77
+ }
78
+
79
+ @-webkit-keyframes placeholderSkeleton {
80
+ 0% {
81
+ background-position: -468px 0;
82
+ }
83
+ 100% {
84
+ background-position: 468px 0;
85
+ }
86
+ }
87
+
88
+ @-webkit-keyframes skeletonAnimate {
89
+ from {
90
+ background-position: top left;
91
+ }
92
+ to {
93
+ background-position: top right;
94
+ }
95
+ }
96
+
97
+ .skeleton-mb {
98
+ margin-bottom: 10px;
99
+ }
100
+
101
+ .skeleton-mt {
102
+ margin-top: 10px;
103
+ }
104
+
105
+ .skeleton--animate {
106
+ animation-duration: 1s;
107
+ animation-fill-mode: forwards;
108
+ animation-iteration-count: infinite;
109
+ animation-name: placeholderSkeleton;
110
+ animation-timing-function: linear;
111
+
112
+ -webkit-animation-duration: 1s;
113
+ -webkit-animation-fill-mode: forwards;
114
+ -webkit-animation-iteration-count: infinite;
115
+ -webkit-animation-name: placeholderSkeleton;
116
+ -webkit-animation-timing-function: linear;
117
+ background: #e0e3e6;
118
+ background-image: -webkit-gradient(
119
+ linear,
120
+ left center,
121
+ right center,
122
+ from(#e0e3e6),
123
+ color-stop(0.2, #edeef1),
124
+ color-stop(0.4, #e0e3e6),
125
+ to(#e0e3e6)
126
+ );
127
+ background-image: -webkit-linear-gradient(
128
+ left,
129
+ #e0e3e6 0%,
130
+ #edeef1 20%,
131
+ #e0e3e6 40%,
132
+ #e0e3e6 100%
133
+ );
134
+ background-repeat: no-repeat;
135
+ background-size: 800px 104px;
136
+ }
137
+
138
+ .recruitment__card {
139
+ cursor: pointer;
140
+ background: #fff;
141
+ box-shadow: 0 3px 20px rgba(0, 0, 0, 0.08);
142
+ padding: 20px;
143
+ border-radius: 4px;
144
+ border: none;
145
+ text-align: initial;
146
+ color: #1D364B;
147
+ transition: transform 0.25s;
148
+
149
+ &__header {
150
+ display: flex;
151
+ align-items: center;
152
+ justify-content: space-between;
153
+ padding: 5px 0;
154
+ }
155
+
156
+ &__content {
157
+ &__date {
158
+ font-size: 0.875rem;
159
+ font-weight: 400;
160
+ color: #AEB6BE;
161
+ }
162
+ &__title {
163
+ font-size: 1.275rem;
164
+ color: #1D364B;
165
+ margin-bottom: 0;
166
+ }
167
+ &__id, &__city {
168
+ font-size: 0.875rem;
169
+ font-weight: 600;
170
+ color: #525F7F;
171
+ display: block;
172
+ }
173
+ &__city {
174
+ font-size: 1rem;
175
+ }
176
+ }
177
+
178
+ &__info {
179
+ padding: 20px 0;
180
+ &__text {
181
+ margin-bottom: 0;
182
+ font-size: 1rem;
183
+ font-weight: 500;
184
+ }
185
+ }
186
+
187
+ &__footer {
188
+ border-top: 1px solid #E9E9E9;
189
+ padding-top: 10px;
190
+ &__title {
191
+ color: #525F7F;
192
+ font-size: 0.875rem;
193
+ font-weight: 600;
194
+ margin-bottom: 0;
195
+ }
196
+ &__images {
197
+ display: flex;
198
+ align-items: center;
199
+ user-select: none;
200
+ }
201
+ }
202
+ }
203
+ </style>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burh/nuxt-core",
3
- "version": "1.0.403",
3
+ "version": "1.0.405",
4
4
  "description": "Design System and Components.",
5
5
  "author": "Burh",
6
6
  "scripts": {