@burh/nuxt-core 1.0.22 → 1.0.23

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 (41) hide show
  1. package/assets/css/variables.css +3 -0
  2. package/assets/sass/argon-panna.scss +106 -0
  3. package/assets/sass/argon-test-online.scss +106 -0
  4. package/assets/sass/burh-ds/_variables.scss +1 -0
  5. package/assets/sass/burh-ds/organisms/_cards.scss +36 -4
  6. package/assets/sass/burh-ds/variables/_colors-panna.scss +303 -0
  7. package/assets/sass/burh-ds/variables/_colors-test-online.scss +303 -0
  8. package/assets/sass/burh-ds/variables/_colors.scss +0 -1
  9. package/assets/sass/custom/_variables.scss +1 -0
  10. package/components/argon-core/BaseDropdown.vue +1 -1
  11. package/components/argon-core/Modal.vue +1 -1
  12. package/components/burh-ds/Avatar/AvatarLink.vue +24 -18
  13. package/components/burh-ds/Button/ExportButton.vue +3 -8
  14. package/components/burh-ds/Cards/TestCard.vue +163 -52
  15. package/components/burh-ds/Cards/WelcomeCard.vue +36 -43
  16. package/components/burh-ds/Dropdown/AppLinkArea.vue +125 -39
  17. package/components/burh-ds/Dropdown/DropdownItem.vue +21 -16
  18. package/components/burh-ds/Dropdown/DropdownSection.vue +26 -26
  19. package/components/burh-ds/Dropdown/FaqVideoArea.vue +79 -65
  20. package/components/burh-ds/Dropdown/SignOutItem.vue +6 -6
  21. package/components/burh-ds/Dropdown/UserMenuDropdown.vue +54 -48
  22. package/components/burh-ds/Groups/SimpleProductItem.vue +26 -11
  23. package/components/burh-ds/Headings/AppHeader.vue +46 -47
  24. package/components/burh-ds/Headings/StepHeader.vue +95 -51
  25. package/components/burh-ds/Link/DefaultLink.vue +31 -0
  26. package/components/burh-ds/Lists/ListNavLinks.vue +47 -34
  27. package/components/burh-ds/Modals/AppConfigModal.vue +157 -159
  28. package/components/burh-ds/Modals/SendTest.vue +170 -0
  29. package/components/burh-ds/Modals/VideoModal.vue +15 -5
  30. package/components/burh-ds/Navbar/BaseNav.vue +2 -2
  31. package/components/burh-ds/Pagination/NamedPagination.vue +179 -0
  32. package/components/burh-ds/Questions/Question.vue +76 -36
  33. package/components/burh-ds/Questions/QuestionAttach.vue +1 -1
  34. package/components/burh-ds/Questions/QuestionRadio.vue +79 -73
  35. package/components/burh-ds/Questions/QuestionRadioItem.vue +25 -18
  36. package/components/burh-ds/Questions/QuestionText.vue +53 -22
  37. package/components/burh-ds/Tabs/TesteTab.vue +100 -0
  38. package/components/layouts/burh-ds/navbar/AppNavbar.vue +73 -35
  39. package/components/layouts/burh-ds/navbar/BusinessGlobalNavbar.vue +385 -241
  40. package/package.json +2 -2
  41. package/data/ListNavLinksMock.json +0 -113
@@ -1,175 +1,173 @@
1
1
  <template>
2
- <modal :show.sync="openModal" v-on:close="$emit('close-modal')" size='lg' class="modal">
3
- <template slot="header">
4
- <h2 class="display-4 px-4">{{title}}</h2>
5
- </template>
6
-
7
- <div class="row px-4">
8
- <div class="col-12">
9
- <label for="description">{{name}}</label>
10
- <base-input
11
- placeholder="Insira o nome do teste"
12
- v-model="configInfo.title"
13
- >
14
- </base-input>
15
- </div>
2
+ <modal :show.sync="openModal" v-on:close="$emit('close-modal')" size='lg' class="modal">
3
+ <template slot="header">
4
+ <h2 class="display-4 px-4">{{title}}</h2>
5
+ </template>
16
6
 
17
- <div class="col-12">
18
- <label for="description">{{textAreaTitle}}</label>
19
- <el-input
20
- type="textarea"
21
- :rows="5"
22
- placeholder="Insira a descrição do teste"
23
- v-model="configInfo.textarea">
24
- </el-input>
25
- </div>
7
+ <div class="row px-4">
8
+ <div class="col-12">
9
+ <label for="description">{{name}}</label>
10
+ <base-input
11
+ placeholder="Insira o nome do teste"
12
+ v-model="configInfo.title"
13
+ >
14
+ </base-input>
15
+ </div>
26
16
 
27
- <div class="col-12">
28
- <p class="mb-0 mt-3">{{buttonAreaTitle}}</p>
17
+ <div class="col-12">
18
+ <label for="description">{{textAreaTitle}}</label>
19
+ <base-input>
20
+ <textarea class="form-control"
21
+ placeholder="Insira a descrição do teste"
22
+ v-model="configInfo.textarea"
23
+ ></textarea>
24
+ </base-input>
25
+ </div>
29
26
 
30
- <div class="d-flex justify-content-lg-between justify-content-center flex-wrap">
31
- <base-button role="button" outline size="sm" :type=appModalBtnType class="mx-lg-0"
32
- v-for="(buttons, index) in buttons" :key="index"
33
- :id="'button-' + buttons.id" :value="buttons.value"
34
- :class="buttons.id == currentSelectedButton ? 'active' : ''"
35
- @click="timeSelection(buttons.id)"
36
- >
37
- <i v-if="buttons.id == currentSelectedButton" class="fas fa-check mr-1"></i>
38
- <small>{{buttons.time}}</small>
39
- </base-button>
40
- </div>
27
+ <div class="col-12">
28
+ <p class="mb-0 mt-3">{{buttonAreaTitle}}</p>
41
29
 
42
- <base-input
43
- v-model="value"
44
- id='time-picker'
45
- placeholder='00:00:00'
46
- :disabled="disableTimePicker"
47
- type="'tel'"
48
- v-mask="'##:##:##'"
49
- class="w-50"
50
- ></base-input>
51
- </div>
30
+ <div class="fixed-button d-flex justify-content-lg-between justify-content-center flex-wrap">
31
+ <base-button role="button" outline size="sm" :type="appModalBtnType" class="mx-lg-0"
32
+ v-for="(buttons, index) in buttons" :key="index"
33
+ :id="'button-' + buttons.id" :value="buttons.value"
34
+ :class="buttons.id == currentSelectedButton ? 'active' : ''"
35
+ @click="timeSelection(buttons.id)"
36
+ >
37
+ <i v-if="buttons.id == currentSelectedButton" class="fas fa-check mr-1"></i>
38
+ <small>{{buttons.time}}</small>
39
+ </base-button>
40
+ </div>
41
+ </div>
52
42
 
53
- <base-button size="md" :type=appModalBtnType role="button"
54
- @click="sendConfig()"
55
- class="ml-auto mr-3">{{configAppButton}}</base-button>
56
- </div>
57
- </modal>
43
+ <base-button size="md" :type="appModalBtnType" role="button"
44
+ @click="sendConfig()"
45
+ class="ml-auto mr-3">{{configAppButton}}</base-button>
46
+ </div>
47
+ </modal>
58
48
  </template>
59
49
  <script>
60
50
  import swal from 'sweetalert2';
61
- import {mask} from 'vue-the-mask'
51
+ import { mask } from 'vue-the-mask';
62
52
  export default {
63
- directives: {mask},
64
- data(){
65
- return{
66
- configInfo:{
67
- title: '',
68
- textarea: '',
69
- selectedTime: '',
70
- },
71
- currentSelectedButton: String,
72
- disableTimePicker: true,
73
- value: '',
74
- }
53
+ directives: { mask },
54
+ data(){
55
+ return{
56
+ configInfo:{
57
+ title: this.titleValue,
58
+ textarea: this.textAreaValue,
59
+ selectedTime: '',
60
+ },
61
+ currentSelectedButton: String,
62
+ value: '',
63
+ };
64
+ },
65
+ model:{
66
+ prop: 'show'
67
+ },
68
+ props:{
69
+ show: false,
70
+ name:{
71
+ type: String,
72
+ default: 'Nome'
73
+ },
74
+ buttons:{
75
+ type: Array,
76
+ default: () => [{ id: '1', time: '5 minutos', value:'00:05:00' }, { id: '2', time: '10 minutos', value:'00:10:00' }, { id: '3', time: '15 minutos', value:'00:15:00' },
77
+ { id: '4', time: '30 minutos', value:'00:30:00' }, { id: '5', time: '45 minutos', value:'00:45:00' }, { id: '6', time: '60 minutos', value:'01:00:00' },
78
+ { id: '7', time: '2 horas', value: '02:00:00' }, { id: '8', time: '8 horas', value: '08:00:00' }],
79
+ description: 'Botoes de tempo'
80
+ },
81
+ appModalBtnType:{
82
+ type: String,
83
+ default: 'primary'
84
+ },
85
+ title:{
86
+ type: String,
87
+ default: 'Configurações Gerais',
88
+ description: 'Titulo do Modal'
89
+ },
90
+ textAreaTitle:{
91
+ type: String,
92
+ default: 'Descrição',
93
+ description: 'Titulo da text area'
94
+ },
95
+ buttonAreaTitle:{
96
+ type: String,
97
+ default: 'Tempo Limite',
98
+ description: 'Titulo da area de botões'
99
+ },
100
+ configAppButton:{
101
+ type: String,
102
+ default: 'Salvar',
103
+ description: 'Botão de envio'
75
104
  },
76
- model:{
77
- prop: 'show'
78
- },
79
- props:{
80
- show: false,
81
- name:{
82
- type: String,
83
- default: 'Nome'
84
- },
85
- buttons:{
86
- type: Array,
87
- default: () => [{id: '1', time: '5 minutos', value:'00:05:00'}, {id: '2', time: '10 minutos', value:'00:10:00'}, {id: '3', time: '15 minutos', value:'00:15:00'},
88
- {id: '4', time: '30 minutos', value:'00:30:00'},{id: '5', time: '45 minutos', value:'00:45:00'}, {id: '6', time: '60 minutos', value:'01:00:00'},
89
- {id: '7', time: '2 horas', value: '02:00:00'}, {id: 'custom', time: 'Personalizado', value: ''}],
90
- description: 'Botoes de tempo'
91
- },
92
- appModalBtnType:{
93
- type: String,
94
- default: 'test-online'
95
- },
96
- title:{
97
- type: String,
98
- default: 'Geral',
99
- description: 'Titulo do Modal'
100
- },
101
- textAreaTitle:{
102
- type: String,
103
- default: 'Descrição',
104
- description: 'Titulo da text area'
105
- },
106
- buttonAreaTitle:{
107
- type: String,
108
- default: 'Tempo Limite',
109
- description: 'Titulo da area de botões'
110
- },
111
- configAppButton:{
112
- type: String,
113
- default: 'Salvar',
114
- description: 'Botão de envio'
115
- }
116
- },
117
- watch:{
118
- value(oldVal, newVal){
119
- this.selectCustomTime();
120
- }
121
- },
122
- computed:{
123
- openModal:{
124
- get(){return this.show},
125
- set(show){this.$emit('input', show)}
126
- }
127
- },
128
- methods:{
129
- timeSelection(buttonId){
130
- let btn = document.getElementById('button-' + buttonId);
131
- let timePicker = document.getElementById('time-picker');
132
- if(buttonId != 'custom'){
133
- this.configInfo.selectedTime=btn.value;
134
- this.currentSelectedButton=buttonId
135
- this.disableTimePicker = true;
136
- }
137
- else{
138
- this.disableTimePicker = false;
139
- this.currentSelectedButton = 'custom'
140
- }
141
- },
142
- selectCustomTime(){
143
- let button = document.getElementById('button-custom');
105
+ titleValue: {
106
+ type: String,
107
+ default: ''
108
+ },
109
+ textAreaValue: {
110
+ type: String,
111
+ default: ''
112
+ },
113
+ time: {
114
+ type: String,
115
+ default: ''
116
+ },
117
+ },
118
+ mounted() {
119
+ this.loadTime();
120
+ },
121
+ computed:{
122
+ openModal:{
123
+ get(){return this.show;},
124
+ set(show){this.$emit('input', show);}
125
+ }
126
+ },
127
+ methods:{
128
+ loadTime() {
129
+ const time = this.buttons.find(e => e.value == this.time);
130
+ if(time != null){
131
+ this.currentSelectedButton = time.id
132
+ this.configInfo.selectedTime = this.time
133
+ }
134
+ },
135
+ timeSelection(buttonId){
136
+ let btn = document.getElementById('button-' + buttonId);
137
+ this.configInfo.selectedTime=btn.value;
138
+ this.currentSelectedButton=buttonId;
139
+ },
140
+ sendConfig(){
144
141
 
145
- button.value = this.value;
146
- this.configInfo.selectedTime = this.value;
147
- },
148
-
149
- sendConfig(){
150
- if(this.configInfo.title == '' || this.configInfo.textarea == '' ||
142
+ if(this.configInfo.title == '' || this.configInfo.textarea == '' ||
151
143
  this.configInfo.selectedTime == '' || this.configInfo.selectedTime.length != 8){
152
- swal.fire({
153
- title: `Aviso`,
154
- html: `Por favor, preencha todos os campos corretamente para continuar.`,
155
- buttonsStyling: false,
156
- confirmButtonClass: 'btn btn-test-online btn-fill',
157
- });
158
- }
159
- else{
160
- this.$emit('send-config-info', this.configInfo)
161
- swal.fire({
162
- title: `Parabéns`,
163
- html: `Configurações salvas com sucesso.`,
164
- buttonsStyling: false,
165
- confirmButtonClass: 'btn btn-test-online btn-fill',
166
- });
167
- this.openModal=false;
168
- }
169
- },
170
- },
171
- }
144
+ swal.fire({
145
+ title: 'Aviso',
146
+ html: 'Por favor, preencha todos os campos corretamente para continuar.',
147
+ buttonsStyling: false,
148
+ confirmButtonClass: 'btn btn-primary btn-fill',
149
+ });
150
+ }
151
+ else{
152
+ this.$emit('send-config-info', this.configInfo);
153
+ this.openModal=false;
154
+ }
155
+ },
156
+ },
157
+ };
172
158
  </script>
173
159
  <style lang="scss">
174
160
  @import "node_modules/@burh/nuxt-core/assets/sass/burh-ds/variables/_colors.scss";
175
- </style>
161
+ @import "@burh/nuxt-core/assets/sass/argon.scss";
162
+ .fixed-button{
163
+ .btn{
164
+ font-size: 0.775rem;
165
+ @media screen and (max-width: 992px){
166
+ &:last-child{
167
+ margin-right: 1rem !important;
168
+ }
169
+ }
170
+ width: 10rem;
171
+ }
172
+ }
173
+ </style>
@@ -0,0 +1,170 @@
1
+ <template>
2
+ <modal :show="isModalOpen" v-on:close="closeModal" size='xl' class="modal">
3
+ <template slot="header">
4
+ <h2 class="display-4 px-4">Insira os e-mail que deseja enviar o teste</h2>
5
+ </template>
6
+ <div class="row px-4">
7
+ <div class="col-3">
8
+ <label for="name">Nome(opcional)</label>
9
+ </div>
10
+ <div class="col-3">
11
+ <label for="email">E-mail</label>
12
+ </div>
13
+ <div class="col-3">
14
+ <label for="teste">Selecione a vaga</label>
15
+ </div>
16
+ <div class="col-3">
17
+ <label for="teste">Selecione o teste</label>
18
+ </div>
19
+ </div>
20
+ <div class="row px-4"
21
+ v-for="(slot, idx) in slots"
22
+ :key="idx"
23
+ >
24
+ <div class="col-3">
25
+ <base-input v-model="slot.name"/>
26
+ </div>
27
+ <div class="col-3">
28
+ <base-input v-model="slot.email"/>
29
+ </div>
30
+ <div class="col-3">
31
+ <el-select
32
+ placeholder="Escolha a vaga"
33
+ v-model="slot.jobid">
34
+ <el-option v-for="job in allJobs"
35
+ class="select-danger"
36
+ :value="job.id"
37
+ :label="job.name"
38
+ :key="job.id">
39
+ </el-option>
40
+ </el-select>
41
+ </div>
42
+ <div class="col-2">
43
+ <el-select
44
+ placeholder="Escolha o teste"
45
+ v-model="slot.testid">
46
+ <el-option v-for="test in allTests"
47
+ class="select-danger"
48
+ :value="test.id"
49
+ :label="test.name"
50
+ :key="test.id">
51
+ </el-option>
52
+ </el-select>
53
+ </div>
54
+ <div class="col-1">
55
+ <i v-if="idx !== (slots.length - 1)" class="fa fa-trash pointer" @click="removeSlot(slot.id)"></i>
56
+ <i v-else class="fa fa-plus pointer" @click="addSlot"></i>
57
+ </div>
58
+ </div>
59
+ <div class="row">
60
+ <base-button class="mx-auto" type="primary" @click="sendTest">Enviar teste</base-button>
61
+ </div>
62
+ </modal>
63
+ </template>
64
+
65
+ <script>
66
+ import { Select, Option } from "element-ui";
67
+
68
+ export default {
69
+ name: 'send-test',
70
+ components: {
71
+ [Select.name]: Select,
72
+ [Option.name]: Option,
73
+ },
74
+ props: {
75
+ allTests: Array,
76
+ allJobs: Array,
77
+ isModalOpen: {
78
+ type: Boolean,
79
+ default: false,
80
+ },
81
+ selectedTest: Number,
82
+ },
83
+ methods: {
84
+ closeModal(e) {
85
+ this.$emit('closemodal', e);
86
+ },
87
+ removeSlot(id) {
88
+ this.slots = this.slots.filter(slot => slot.id !== (id) );
89
+ },
90
+ addSlot() {
91
+ const newSlot = {
92
+ id: new Date().getTime(),
93
+ name: '',
94
+ email: '',
95
+ selected: 8
96
+ };
97
+
98
+ this.slots = [...this.slots, newSlot];
99
+ },
100
+ sendTest() {
101
+ const testRequest = this.slots;
102
+ this.$emit('send-test', testRequest);
103
+ }
104
+ },
105
+ watch: {
106
+ selectedTest(newValue) {
107
+ this.slots = this.slots.map(slot => ({...slot, testid: newValue}));
108
+ }
109
+ },
110
+ data() {
111
+ return {
112
+ slots: [
113
+ {
114
+ id: 'first',
115
+ name: '',
116
+ email: '',
117
+ testid: this.selectedTest,
118
+ jobid: null,
119
+ },
120
+ {
121
+ id: 'second',
122
+ name: '',
123
+ email: '',
124
+ testid: this.selectedTest,
125
+ jobid: null,
126
+ },
127
+ {
128
+ id: 'third',
129
+ name: '',
130
+ email: '',
131
+ testid: this.selectedTest,
132
+ jobid: null,
133
+ },
134
+ {
135
+ id: 'fourth',
136
+ name: '',
137
+ email: '',
138
+ testid: this.selectedTest,
139
+ jobid: null,
140
+ },
141
+ {
142
+ id: 'fifth',
143
+ name: '',
144
+ email: '',
145
+ testid: this.selectedTest,
146
+ jobid: null,
147
+ }
148
+ ]
149
+ }
150
+ },
151
+ };
152
+ </script>
153
+ <style lang="scss" scoped>
154
+ .send-test-modal {
155
+ position: fixed;
156
+ overflow-y: scroll;
157
+ overflow-x: hidden;
158
+ width: 60%;
159
+ height: 50%;
160
+ background-color: #ffffff;
161
+ z-index: 999 !important;
162
+ top: 20% !important;
163
+ left: 20% !important;
164
+ box-sizing: border-box;
165
+ }
166
+
167
+ .pointer {
168
+ cursor: pointer;
169
+ }
170
+ </style>
@@ -1,13 +1,16 @@
1
1
  <template>
2
2
  <div>
3
- <modal :show.sync="show" class="modal">
3
+ <modal :show.sync="show" class="modal modal-video">
4
4
  <template slot="header">
5
5
  <h5 class="modal-title">{{title}}</h5>
6
6
  </template>
7
7
  <hr class="mb-0 mt-4">
8
8
  <div class="footer text-center">
9
- <iframe width="320" height="240" :src=link frameborder="0" allowfullscreen class="rounded video--faq">
9
+ <iframe width="810" height="540" :src=link frameborder="0" allowfullscreen class="rounded video--faq">
10
10
  </iframe>
11
+ <div class="bottom-button" v-if="button">
12
+ <button @click="$emit('clickVideo')" class="btn btn-success">{{button.text}}</button>
13
+ </div>
11
14
  </div>
12
15
  </modal>
13
16
  </div>
@@ -19,7 +22,8 @@ export default {
19
22
  props: {
20
23
  show: Boolean,
21
24
  link: String,
22
- title: String
25
+ title: String,
26
+ button: Object
23
27
  },
24
28
  data() {
25
29
  return {
@@ -29,7 +33,7 @@ export default {
29
33
  };
30
34
  },
31
35
  mounted(){
32
-
36
+
33
37
  },
34
38
  };
35
39
  </script>
@@ -49,4 +53,10 @@ export default {
49
53
  .modal-body{
50
54
  padding: 0;
51
55
  }
52
- </style>
56
+
57
+ .modal-video {
58
+ .modal-dialog{
59
+ min-width: 60rem;
60
+ }
61
+ }
62
+ </style>
@@ -6,7 +6,7 @@
6
6
  <div class="d-flex">
7
7
  <slot name="toggle-button">
8
8
  <button
9
- class="navbar-toggler collapsed"
9
+ class="navbar-toggler collapsed d-sm-none"
10
10
  v-if="hasMenu"
11
11
  type="button"
12
12
  @click="toggleBodyClass('no-scroll')"
@@ -18,7 +18,7 @@
18
18
  </button>
19
19
  </slot>
20
20
  <div
21
- class="navbar-collapse navbar-custom-collapse collapse show"
21
+ class="navbar-collapse navbar-custom-collapse collapse show d-sm-none"
22
22
  :class="menuClasses"
23
23
  v-show="show"
24
24
  v-click-outside="closeMenu">