@burh/nuxt-core 1.0.76 → 1.0.77

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.
@@ -2,7 +2,7 @@
2
2
  <div
3
3
  class="card"
4
4
  :class="[
5
- { 'card-lift--hover': hover },
5
+ { 'z-2': hover },
6
6
  { shadow: shadow },
7
7
  { [`shadow-${shadowSize}`]: shadowSize },
8
8
  { [`bg-gradient-${gradient}`]: gradient },
File without changes
@@ -0,0 +1,144 @@
1
+ <template>
2
+ <div class="col-5 bg-light--darken py-5 px-5">
3
+ <div class="d-flex justify-content-center">
4
+ <a href="#!" class="avatar avatar-pdf">
5
+ <img alt="Image placeholder" :src="avatar">
6
+ </a>
7
+ </div>
8
+ <p class="text-center text-muted font-weight-bold mb-4">{{yearsOld}} anos</p>
9
+
10
+ <h2 class="display-4">Contato e Endereço</h2>
11
+ <p>{{street}}, {{number}}<br> {{neighborhood}}<br> {{city}} - {{regionCode}}</p>
12
+ <p><strong>Telefone:</strong> {{phone || 'não cadastrado'}}<br> <strong>Celular:</strong> {{cellphone || 'não cadastrado'}}<br></p>
13
+
14
+ <h2 class="display-4 mt-4">Educação</h2>
15
+ <div class="mb-4" v-for="(edu,index) in education" :key="`education-${index}`">
16
+ <h3 class="h6">{{edu.institution}}</h3>
17
+ <h4 class="h6 text-muted">{{edu.formation}}</h4>
18
+ <p>{{edu.start_month}}/{{edu.start_year}} - {{edu.end_month}}/{{edu.end_year}} {{getTime(edu)}}</p>
19
+ </div>
20
+
21
+ <h2 class="display-4 mt-4">Cursos Profissionalizantes</h2>
22
+ <div class="mb-4" v-for="(course, index) in courses" :key="`course-${index}`">
23
+ <h4 class="h6">{{course.name}}</h4>
24
+ <p>{{course.institution}} {{getTime(course)}}</p>
25
+ </div>
26
+
27
+ <h2 class="display-4 mt-4">Idiomas</h2>
28
+ <div class="mb-4" v-for="(lang, index) in languages" :key="`lang-${index}`">
29
+ <h4 class="h6 d-inline-block mr-3">{{lang.language[0].name}}</h4>
30
+ <el-tooltip placement="top" :content="languageLevel(lang.level)">
31
+ <div class="d-inline-block">
32
+ <font-awesome-icon :icon="['fas', 'star']" class="mr-2"
33
+ v-for="(j, posStar) in Array(7)" :key="`level-${lang.language[0].name}-${posStar}`"
34
+ :class="posStar < lang.level && 'text-warning'"/>
35
+ </div>
36
+ </el-tooltip>
37
+ </div>
38
+
39
+ <h2 class="display-4 mt-4">Habilidades</h2>
40
+ <badge rounded type="primary"
41
+ v-for="(skill, index) in skills" :key="`skill-${index}`">{{skill.skill_word}}</badge>
42
+
43
+ </div>
44
+ </template>
45
+
46
+ <script>
47
+ export default {
48
+ name: 'user-cv-left-side',
49
+ props: {
50
+ avatar: String,
51
+ yearsOld: String | Number,
52
+ city: String,
53
+ regionCode: String,
54
+ neighborhood: String,
55
+ street: String,
56
+ number: String,
57
+ cellphone: String,
58
+ phone: String,
59
+ education: {
60
+ type: Array,
61
+ default: () => ([])
62
+ },
63
+ courses: {
64
+ type: Array,
65
+ default: () => ([])
66
+ },
67
+ skills: {
68
+ type: Array,
69
+ default: () => ([])
70
+ },
71
+ languages: {
72
+ type: Array,
73
+ default: () => ([])
74
+ },
75
+ },
76
+ methods: {
77
+ getTime({start_year = null, end_year = null, start_month, end_month }, textHappening = 'Cursando') {
78
+ const isHappening = !end_month && !end_year
79
+
80
+ if(isHappening) {
81
+ return textHappening
82
+ }
83
+
84
+ const dateInitial = this.$moment(['1', start_month.toString(), start_year.toString()], 'DD/MM/YYYY');
85
+ const dateDone = this.$moment(['1', end_month.toString(), end_year.toString()], 'DD/MM/YYYY');
86
+ const diffDuration = this.$moment.duration(dateDone.diff(dateInitial));
87
+ const years = diffDuration.years()
88
+ const months = diffDuration.months()
89
+
90
+
91
+ if(years) {
92
+ return years > 1 ? `(${years} anos)` : `(${years} ano)`
93
+ }
94
+
95
+ return months > 1 ? `(${months} meses)` :
96
+ months == 1 ? `(${months} mês)` : ''
97
+ },
98
+ languageLevel(level) {
99
+ switch (parseInt(level)) {
100
+ case 1:
101
+ return 'Iniciante';
102
+ case 2:
103
+ return 'Elementar';
104
+ case 3:
105
+ return 'Pré-intermediário';
106
+ case 4:
107
+ return 'Intermediário';
108
+ case 5:
109
+ return 'Intermediário Superior';
110
+ case 6:
111
+ return 'Avançado';
112
+ case 7:
113
+ return 'Fluente';
114
+ default:
115
+ return '';
116
+ }
117
+ }
118
+ }
119
+ }
120
+ </script>
121
+
122
+ <style lang="scss" scoped>
123
+ @import "@burh/nuxt-core/assets/sass/burh-ds/variables/_colors.scss";
124
+
125
+ .bg-light--darken {
126
+ background-color: $gray-100 !important;
127
+ }
128
+
129
+ .avatar {
130
+ &.avatar-pdf {
131
+ background-color: white;
132
+ width: 104px;
133
+ height: 104px;
134
+ border-radius: 50%;
135
+
136
+ img {
137
+ width: 90px;
138
+ height: 90px;
139
+ z-index: 2;
140
+ border-radius: 50%;
141
+ }
142
+ }
143
+ }
144
+ </style>
@@ -0,0 +1,117 @@
1
+ <template>
2
+ <div class="col-7 bg-lighter py-5 px-5">
3
+ <h2 class="display-4 text-center mb-4">{{name}}</h2>
4
+ <p class="text-muted mb-0"> Pretensão Salarial de {{wagePretesion | convertToReal}} reais.</p>
5
+ <p class="text-muted">Código de indicação do usuário: <b>{{codUser}}</b></p>
6
+
7
+ <h2 class="display-4">Sobre</h2>
8
+ <p id="USER_ABOUT" class="readmore mb-0">{{about}}</p>
9
+ <a href="#" aria-label="expandir conteudo" @click.prevent.stop="toggleReadMore($event,'USER_ABOUT')">Ler mais</a>
10
+
11
+ <h2 class="display-4 mt-4">Experiência</h2>
12
+
13
+ <div class="mb-4" v-for="(exp, index) in experience" :key="`exp-${index}`">
14
+ <h4 class="d-inline-block h6 text-muted font-weight-bold">{{exp.job_title}} - </h4>
15
+ <h5 class="d-inline-block h6 text-muted font-weight-bold">{{exp.company}}</h5>
16
+ <h6>{{exp.start_month}}/{{exp.start_year}} - {{exp.end_month}}/{{exp.end_year}} {{getTime(exp, 'Trabalhando')}}</h6>
17
+
18
+ <div>
19
+ <p id="USER_EXPERIENCE-1" class="mb-0 readmore">{{exp.description}}</p>
20
+ <a href="#" aria-label="expandir conteudo" @click.prevent.stop="toggleReadMore($event,'USER_EXPERIENCE-1')">Ler mais</a>
21
+ </div>
22
+ </div>
23
+
24
+ <h2 class="display-4 mt-4">Cargos Desejados</h2>
25
+
26
+ <badge rounded type="primary" class="mr-2 mb-2"
27
+ v-for="(roleDesired, i) in roleDesireds" :key="`${roleDesired.occupation}-${i}`">
28
+ {{roleDesired.occupation}}
29
+ </badge>
30
+
31
+ </div>
32
+ </template>
33
+
34
+ <script>
35
+ export default {
36
+ name: 'user-cv-left-side',
37
+ props: {
38
+ name: String,
39
+ about: String,
40
+ codUser: String | Number,
41
+ wagePretesion: {
42
+ type: Number,
43
+ default: 0
44
+ },
45
+ experience: {
46
+ type: Array,
47
+ default: () => []
48
+ },
49
+ roleDesireds: {
50
+ type: Array,
51
+ default: () => []
52
+ },
53
+ },
54
+ data() {
55
+ return {
56
+ // roleDesireds: [
57
+ // "Supervisor de Produção",
58
+ // "Supervisor de Produção e Processos",
59
+ // "Supervisor de Produção e Qualidade",
60
+ // "Engenheiro de Produção",
61
+ // "Engenheiro de Processos",
62
+ // "Engenheiro de Processos / Produção",
63
+ // "Analista de Produção",
64
+ // "Analista de Qualidade",
65
+ // "Supervisor de Fábrica",
66
+ // "Líder de Produção"
67
+ // ]
68
+ }
69
+ },
70
+ filters: {
71
+ convertToReal(value) {
72
+ return 'R$ ' + value.toFixed(2).replace('.', ',');
73
+ }
74
+ },
75
+ methods: {
76
+ toggleReadMore(event, id) {
77
+ const element = document.getElementById(id)
78
+ element.classList.toggle('readmore')
79
+ event.target.innerText == 'Ler mais' ? event.target.innerText = 'Esconder' : event.target.innerText = 'Ler mais'
80
+ },
81
+ getTime({start_year = null, end_year = null, start_month, end_month }, textHappening = 'Trabalhando') {
82
+ const isHappening = !end_month && !end_year
83
+
84
+ if(isHappening) {
85
+ return textHappening
86
+ }
87
+
88
+ const dateInitial = this.$moment(['1', start_month.toString(), start_year.toString()], 'DD/MM/YYYY');
89
+ const dateDone = this.$moment(['1', end_month.toString(), end_year.toString()], 'DD/MM/YYYY');
90
+ const diffDuration = this.$moment.duration(dateDone.diff(dateInitial));
91
+ const years = diffDuration.years()
92
+ const months = diffDuration.months()
93
+
94
+
95
+ if(years) {
96
+ return years > 1 ? `(${years} anos)` : `(${years} ano)`
97
+ }
98
+
99
+ return months > 1 ? `(${months} meses)` :
100
+ months == 1 ? `(${months} mês)` : ''
101
+ },
102
+ }
103
+ }
104
+ </script>
105
+
106
+ <style lang="scss" scoped>
107
+ @import "@burh/nuxt-core/assets/sass/burh-ds/variables/_colors.scss";
108
+
109
+ .readmore {
110
+ overflow: hidden;
111
+ text-overflow: ellipsis;
112
+ display: -webkit-box;
113
+ -webkit-line-clamp: 3;
114
+ -webkit-box-orient: vertical;
115
+ }
116
+
117
+ </style>
@@ -0,0 +1,120 @@
1
+ <template>
2
+ <el-dialog
3
+ :visible.sync="isActive"
4
+ width="70%"
5
+ custom-class="position-relative"
6
+ @close="$emit('close')">
7
+ <template>
8
+ <div class="row mx-0 user-pdf">
9
+ <slot name="content"></slot>
10
+ </div>
11
+ <slot></slot>
12
+ <div class="tools" v-show="tools.length">
13
+ <el-tooltip v-for="(tool, index) in tools" :key="tool.id"
14
+ placement="top" :content="tool.tooltip">
15
+ <font-awesome-icon @click="$emit(tool.event)" :icon="tool.icon" class="h3 cursor-pointer text-primary" :class="index < tools.length - 1 && 'mb-4'"/>
16
+ </el-tooltip>
17
+ </div>
18
+ <!-- <el-tooltip placement="top" :content="!showTools ? 'Exibir Ferramentas' : 'Esconder Ferramentas'">
19
+ <span class="tool tool-show--tools">
20
+ <font-awesome-icon :icon="['fas', !showTools ? 'expand-alt' : 'compress-alt']" class="h3 text-primary"
21
+ @click="showTools = !showTools"/>
22
+ </span>
23
+ </el-tooltip> -->
24
+ <el-tooltip placement="top" :content="'Fechar'">
25
+ <span class="tool tool-close">
26
+ <font-awesome-icon :icon="['fas', 'times']" class="h3 text-primary"
27
+ @click="$emit('close')"/>
28
+ </span>
29
+ </el-tooltip>
30
+ </template>
31
+ </el-dialog>
32
+ </template>
33
+
34
+ <script>
35
+ import { Dialog } from 'element-ui'
36
+
37
+ export default {
38
+ name: 'user-curriculum',
39
+ components: {
40
+ [Dialog.name]: Dialog,
41
+ },
42
+ props: {
43
+ show: {
44
+ type: Boolean,
45
+ default: false,
46
+ },
47
+ tools: {
48
+ type: Array,
49
+ default: () => ([])
50
+ },
51
+ },
52
+ data() {
53
+ return {
54
+ isActive: this.show,
55
+ showTools: false,
56
+ }
57
+ },
58
+ watch: {
59
+ show(value) {
60
+ this.isActive = value
61
+ }
62
+ },
63
+ }
64
+ </script>
65
+
66
+ <style lang="scss" scoped>
67
+ @import "@burh/nuxt-core/assets/sass/burh-ds/variables/_colors.scss";
68
+
69
+ /deep/ .el-dialog__body {
70
+ padding: 0;
71
+ }
72
+
73
+ /deep/ .el-dialog__header {
74
+ display: none;
75
+ }
76
+
77
+ .tools {
78
+ position: absolute;
79
+ top: 0;
80
+ display: flex;
81
+ justify-content: center;
82
+ align-items: center;
83
+ flex-direction: column;
84
+ right: -70px;
85
+ width: 70px;
86
+ padding: 1rem;
87
+ background-color: $base-light;
88
+ border-top-right-radius: 23px;
89
+ border-bottom-right-radius: 23px;
90
+ opacity: 1;
91
+ transition: all .2s ease-in-out .2s;
92
+
93
+ &.hide {
94
+ opacity: 0;
95
+ pointer-events: none;
96
+ }
97
+ }
98
+
99
+ .tool {
100
+ position: absolute;
101
+ top: 1rem;
102
+ z-index: 10;
103
+ color: $primary;
104
+ cursor: pointer;
105
+
106
+ &-show--tools {
107
+ right: 1.5rem;
108
+ }
109
+
110
+ &-close{
111
+ right: 1.5rem
112
+ }
113
+ }
114
+
115
+ .user-pdf {
116
+ background-color: $primary;
117
+ // clip-path: polygon(0 12%, 10% 0, 100% 0, 100% 100%, 0 100%);
118
+ clip-path: polygon(10% 0%, 100% 0, 100% 10%, 100% 90%, 90% 100%, 10% 100%, 0 100%, 0% 10%);
119
+ }
120
+ </style>
@@ -1,37 +1,53 @@
1
1
  <template>
2
- <div class="row">
3
-
4
- <validation-provider tag="div" class="col-5" :vid="`first-input-${id}`"
5
- :name="firstInput.label" :rules="firstInput.rules" v-slot="{ errors }">
6
- <base-input
2
+ <div class="row input-row">
3
+ <validation-provider
4
+ tag="div"
5
+ class="col-5"
6
+ :vid="`first-input-${id}`"
7
+ :name="firstInput.label"
8
+ :rules="firstInput.rules"
9
+ v-slot="{ errors }"
10
+ >
11
+ <base-input
7
12
  type="text"
8
13
  v-model="firstField"
9
- v-on:input="$emit('first-input', $event);"
10
- :error="errors[0]"
14
+ v-on:input="$emit('first-input', $event)"
15
+ :error="errors[0]"
11
16
  :valid="errors.length ? true : false"
12
- :label="firstInput.label"/>
17
+ :label="firstInput.label"
18
+ />
13
19
  </validation-provider>
14
20
 
15
- <validation-provider tag="div" class="col-6" :vid="`second-input-${id}`"
16
- :name="secondInput.label" :rules="secondInput.rules" v-slot="{ errors }">
17
- <base-input
21
+ <validation-provider
22
+ tag="div"
23
+ class="col-6"
24
+ :vid="`second-input-${id}`"
25
+ :name="secondInput.label"
26
+ :rules="secondInput.rules"
27
+ v-slot="{ errors }"
28
+ >
29
+ <base-input
18
30
  type="text"
19
31
  v-model="secondField"
20
- v-on:input="$emit('second-input', $event);"
21
- :error="errors[0]"
22
- :valid="errors.length ? true : false"
23
- :label="secondInput.label"/>
32
+ v-on:input="$emit('second-input', $event)"
33
+ :error="errors[0]"
34
+ :valid="errors.length ? true : false"
35
+ :label="secondInput.label"
36
+ />
24
37
  </validation-provider>
25
38
 
26
39
  <span class="col-1 pt-4 mt-3 cursor-pointer" @click="$emit(icon.event)">
27
- <font-awesome-icon :icon="icon.type" :aria-label="'Icone de funcionalidade'" />
40
+ <font-awesome-icon
41
+ :icon="icon.type"
42
+ :aria-label="'Icone de funcionalidade'"
43
+ />
28
44
  </span>
29
45
  </div>
30
46
  </template>
31
47
 
32
48
  <script>
33
49
  export default {
34
- name: 'double-input-with-icon',
50
+ name: "double-input-with-icon",
35
51
  props: {
36
52
  data: Object,
37
53
  id: {
@@ -41,36 +57,36 @@ export default {
41
57
  firstInput: {
42
58
  type: Object,
43
59
  default: () => ({
44
- label: 'Nome',
60
+ label: "Nome",
45
61
  rules: { required: true }
46
62
  }),
47
- description: 'properties of first input in format JSON'
63
+ description: "properties of first input in format JSON"
48
64
  },
49
65
  secondInput: {
50
66
  type: Object,
51
67
  default: () => ({
52
- label: 'Email',
68
+ label: "Email",
53
69
  rules: {
54
70
  required: true,
55
71
  email: true
56
72
  }
57
73
  }),
58
- description: 'properties of second input in format JSON'
74
+ description: "properties of second input in format JSON"
59
75
  },
60
76
  icon: {
61
77
  type: Object,
62
78
  default: () => ({
63
- type: ['fas', 'trash'],
64
- event: 'remove'
79
+ type: ["fas", "trash"],
80
+ event: "remove"
65
81
  }),
66
- description: 'properties of icon in format JSON'
82
+ description: "properties of icon in format JSON"
67
83
  }
68
84
  },
69
85
  data() {
70
86
  return {
71
- firstField: '',
72
- secondField: ''
73
- }
87
+ firstField: "",
88
+ secondField: ""
89
+ };
74
90
  },
75
91
  watch: {
76
92
  data(newValue) {
@@ -78,9 +94,7 @@ export default {
78
94
  this.secondField = newValue[Object.keys(newValue)[1]];
79
95
  }
80
96
  }
81
- }
97
+ };
82
98
  </script>
83
99
 
84
- <style>
85
-
86
- </style>
100
+ <style></style>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burh/nuxt-core",
3
- "version": "1.0.76",
3
+ "version": "1.0.77",
4
4
  "description": "Design System and Components.",
5
5
  "author": "Burh",
6
6
  "scripts": {
@@ -1,67 +0,0 @@
1
- <template>
2
- <div class="box-applicant col-12 col-sm-6 col-md-3">
3
- <card
4
- :hover="true"
5
- :bodyClasses="'mx-auto text-center px-0'"
6
- :footerClasses="'mx-auto border-0'"
7
- >
8
- <div slot="body">
9
- <div class="avatar rounded-circle header-avatar">
10
- <img
11
- src="https://www.qries.com/images/banner_logo.png"
12
- class="border"
13
- />
14
- </div>
15
- <p class="display-4 mx-auto text-truncate">
16
- {{ applicantName }}
17
- </p>
18
- <p class="display-5 mx-auto text-muted">{{ applicantCity }}</p>
19
- <span class="mx-auto text-muted"
20
- ><i class="fab fa-whatsapp mr-2"></i
21
- >{{ applicantPhone }}</span
22
- >
23
- </div>
24
-
25
- <div slot="footer">
26
- <i v-if="isSeen" class="fa fa-eye"></i>
27
- <i v-else class="fa fa-eye-slash"></i>
28
- </div>
29
- </card>
30
- </div>
31
- </template>
32
- <script>
33
- export default {
34
- props: {
35
- applicantName: null,
36
- applicantImg: null,
37
- applicantPhone: null,
38
- applicantCity: null,
39
- isSeen: null
40
- },
41
- data() {
42
- return {};
43
- }
44
- };
45
- </script>
46
- <style lang="scss" scoped>
47
- .card {
48
- background: linear-gradient(#01386a 40%, #fff 20%);
49
- }
50
- .header {
51
- &-avatar {
52
- position: relative;
53
- width: 8rem;
54
- height: 8rem;
55
- max-width: 100%;
56
- max-height: 90%;
57
- img {
58
- height: 100%;
59
- }
60
- }
61
- }
62
- .box-applicant {
63
- .card-body {
64
- height: 20.5rem !important;
65
- }
66
- }
67
- </style>
@@ -1,80 +0,0 @@
1
- <template>
2
- <modal
3
- :show.sync="openModal"
4
- modalContentClasses="container-fluid"
5
- headerClasses="row px-4 pt-5"
6
- bodyClasses="row px-4"
7
- v-on:close="$emit('close-modal')"
8
- size="lg"
9
- class="modal"
10
- >
11
- <template slot="header">
12
- <div class="pl-3">
13
- <h2 class="display-4">Compartilhar</h2>
14
- </div>
15
- </template>
16
-
17
- <template>
18
- <div class="col-12">
19
- <slot name="body"></slot>
20
- </div>
21
-
22
- <div class="col-12 mb-4">
23
- <label class="mb-0 form-control-label mb-3">
24
- TEMPO LIMITE PARA CONCLUSÃO
25
- </label>
26
- <slot name="buttons"></slot>
27
- </div>
28
-
29
- <div class="col-12 d-flex pb-4">
30
- <base-button
31
- size="md"
32
- type="primary"
33
- role="button"
34
- @click="sendConfig()"
35
- class="ml-auto"
36
- >Enviar
37
- </base-button>
38
- </div>
39
- </template>
40
- </modal>
41
- </template>
42
- <script>
43
- import { mask } from "vue-the-mask";
44
- import { Select, Option } from "element-ui";
45
- export default {
46
- components: {
47
- [Select.name]: Select,
48
- [Option.name]: Option
49
- },
50
- directives: { mask },
51
- data() {
52
- return {};
53
- },
54
- model: {
55
- prop: "show"
56
- },
57
- props: {
58
- show: {
59
- type: Boolean,
60
- default: false
61
- }
62
- },
63
- watch: {},
64
- mounted() {},
65
- computed: {
66
- openModal: {
67
- get() {
68
- return this.show;
69
- },
70
- set(show) {
71
- this.$emit("input", show);
72
- }
73
- }
74
- },
75
- methods: {}
76
- };
77
- </script>
78
- <style lang="scss">
79
- @import "node_modules/@burh/nuxt-core/assets/sass/burh-ds/variables/_colors.scss";
80
- </style>