@burh/nuxt-core 1.0.21 → 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 (42) 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 +181 -0
  15. package/components/burh-ds/Cards/WelcomeCard.vue +48 -42
  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 +158 -156
  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 -242
  40. package/package.json +2 -2
  41. package/components/burh-ds/Cards/RecentTestCard.vue +0 -51
  42. package/data/ListNavLinksMock.json +0 -113
@@ -1,171 +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="atributes.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="atributes.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-between flex-wrap">
31
- <base-button role="button" outline size="sm" type="test-online" class="mx-0"
32
- v-for="(buttons, index) in buttons" :key="index"
33
- :id="'button-' + buttons.id" :value="buttons.value"
34
- :class="buttons.id == currentSelectedButton ? 'focus' : ''"
35
- @click="timeSelection(buttons.id)"
36
- >
37
- <i v-if="buttons.id == currentSelectedButton" class="fas fa-check purple 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="test-online" role="button"
54
- @click="sendConfig()"
55
- class="ml-auto mr-3">{{sendButton}}</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
- atributes:{
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
- title:{
93
- type: String,
94
- default: 'Geral',
95
- description: 'Titulo do Modal'
96
- },
97
- textAreaTitle:{
98
- type: String,
99
- default: 'Descrição',
100
- description: 'Titulo da text area'
101
- },
102
- buttonAreaTitle:{
103
- type: String,
104
- default: 'Tempo Limite',
105
- description: 'Titulo da area de botões'
106
- },
107
- sendButton:{
108
- type: String,
109
- default: 'Salvar',
110
- description: 'Botão de envio'
111
- }
112
- },
113
- watch:{
114
- value(oldVal, newVal){
115
- this.selectCustomTime();
116
- }
117
- },
118
- computed:{
119
- openModal:{
120
- get(){return this.show},
121
- set(show){this.$emit('input', show)}
122
- }
123
- },
124
- methods:{
125
- timeSelection(buttonId){
126
- let btn = document.getElementById('button-' + buttonId);
127
- let timePicker = document.getElementById('time-picker');
128
- if(buttonId != 'custom'){
129
- this.atributes.selectedTime=btn.value;
130
- this.currentSelectedButton=buttonId
131
- this.disableTimePicker = true;
132
- }
133
- else{
134
- this.disableTimePicker = false;
135
- this.currentSelectedButton = 'custom'
136
- }
137
- },
138
- selectCustomTime(){
139
- 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(){
140
141
 
141
- button.value = this.value;
142
- this.atributes.selectedTime = this.value;
143
- },
144
-
145
- sendConfig(){
146
- if(this.atributes.title == '' || this.atributes.textarea == '' ||
147
- this.atributes.selectedTime == '' || this.atributes.selectedTime.length != 8){
148
- swal.fire({
149
- title: `Aviso`,
150
- html: `Por favor, preencha todos os campos corretamente para continuar.`,
151
- buttonsStyling: false,
152
- confirmButtonClass: 'btn btn-primary btn-fill',
153
- });
154
- }
155
- else{
156
- this.$emit('send-atributes', this.atributes)
157
- swal.fire({
158
- title: `Parabéns`,
159
- html: `Configurações salvas com sucesso.`,
160
- buttonsStyling: false,
161
- confirmButtonClass: 'btn btn-primary btn-fill',
162
- });
163
- this.openModal=false;
164
- }
165
- },
166
- },
167
- }
142
+ if(this.configInfo.title == '' || this.configInfo.textarea == '' ||
143
+ this.configInfo.selectedTime == '' || this.configInfo.selectedTime.length != 8){
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
+ };
168
158
  </script>
169
159
  <style lang="scss">
170
160
  @import "node_modules/@burh/nuxt-core/assets/sass/burh-ds/variables/_colors.scss";
171
- </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">