@burh/nuxt-core 1.0.409 → 1.0.411

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 (38) hide show
  1. package/assets/images/icons/icon5.svg +3 -3
  2. package/assets/images/icons/icon6.svg +3 -3
  3. package/assets/sass/burh-ds/_global.scss +324 -324
  4. package/assets/sass/burh-ds/atoms/_forms.scss +21 -19
  5. package/assets/sass/burh-ds/content/_interface-spa.scss +306 -306
  6. package/assets/sass/burh-ds/content/_main-content.scss +25 -25
  7. package/components/argon-core/BaseDropdown.vue +114 -114
  8. package/components/argon-core/LoadingPanel.vue +26 -26
  9. package/components/burh-ds/Cards/BaseCard.vue +194 -194
  10. package/components/burh-ds/Cards/FeatureBusinessCard.vue +74 -74
  11. package/components/burh-ds/Cards/PerformanceCard.vue +81 -81
  12. package/components/burh-ds/Curriculum/UserCurriculum/UserCvRightSide.vue +18 -2
  13. package/components/burh-ds/Curriculum/UserCurriculum/UserCvRightSideNotAuth.vue +379 -379
  14. package/components/burh-ds/Filters/BaseFilterContainer.vue +91 -91
  15. package/components/burh-ds/Headings/AppHeader.vue +222 -222
  16. package/components/burh-ds/Modals/AddCustomerModal.vue +5 -46
  17. package/components/burh-ds/Modals/AddMember.vue +5 -48
  18. package/components/burh-ds/Modals/AddRoleModal.vue +4 -47
  19. package/components/burh-ds/Modals/AppConfigModal.vue +326 -326
  20. package/components/burh-ds/Modals/NewUserModal.vue +87 -87
  21. package/components/burh-ds/Modals/PlanModal.vue +133 -172
  22. package/components/burh-ds/Modals/RequestModal.vue +206 -247
  23. package/components/burh-ds/Modals/SendTest.vue +7 -43
  24. package/components/burh-ds/Modals/SharedModal.vue +7 -50
  25. package/components/burh-ds/Modals/UniversalShareModal.vue +7 -50
  26. package/components/burh-ds/Modals/UniversalWhatsappModal.vue +5 -53
  27. package/components/burh-ds/Modals/WhatsappModal.vue +79 -127
  28. package/components/burh-ds/Skeleton/BaseCardUniversity.vue +79 -79
  29. package/components/burh-ds/Skeleton/BaseCardUser.vue +84 -84
  30. package/components/burh-ds/Skeleton/BaseCourseInfo.vue +71 -71
  31. package/components/burh-ds/Skeleton/Cards.vue +86 -86
  32. package/components/burh-ds/Skeleton/SkeletonAnimate.vue +96 -96
  33. package/components/burh-ds/Tabs/TesteTab.vue +108 -108
  34. package/components/layouts/burh-ds/navbar/PublicNavbar.vue +168 -168
  35. package/environment.js +221 -221
  36. package/nuxt.config.js +207 -207
  37. package/package.json +1 -1
  38. package/plugins/vClickOutside.js +4 -4
@@ -1,91 +1,91 @@
1
- <template>
2
- <div class="base__filter">
3
- <div class="base__filter__content">
4
- <slot />
5
- </div>
6
-
7
- <div v-if="showFooter" class="base__filter__footer">
8
- <div>
9
- <button
10
- @click="$emit('filter-clear')"
11
- class="base__filter__button clear"
12
- >
13
- <span>Limpar</span>
14
- </button>
15
- </div>
16
- <div>
17
- <button
18
- @click="$emit('filter-apply')"
19
- class="base__filter__button apply"
20
- >
21
- <span>Filtrar</span>
22
- </button>
23
- </div>
24
- </div>
25
- </div>
26
- </template>
27
-
28
- <script>
29
- export default {
30
- name: 'base-filter-container',
31
- props: {
32
- showFooter: {
33
- type: Boolean,
34
- default: true
35
- }
36
- }
37
- };
38
- </script>
39
-
40
- <style lang="scss" scoped>
41
- .base__filter {
42
- display: flex;
43
- flex-direction: column;
44
- justify-content: space-between;
45
- max-height: 350px;
46
- &__content {
47
- max-height: calc(350px - 44px);
48
- overflow: hidden;
49
- overflow-y: auto;
50
- &::-webkit-scrollbar-track {
51
- border-radius: 10px;
52
- background-color: #f5f5f5;
53
- }
54
-
55
- &::-webkit-scrollbar {
56
- width: 4px;
57
- background-color: #f5f5f5;
58
- }
59
-
60
- &::-webkit-scrollbar-thumb {
61
- border-radius: 10px;
62
- background-color: #e9e8e8;
63
- }
64
- }
65
- &__footer {
66
- display: flex;
67
- align-items: center;
68
- justify-content: space-between;
69
- margin-top: 20px;
70
- .base__filter__button {
71
- background: transparent;
72
- border: none;
73
- color: #32325d;
74
- padding: 10px 20px;
75
- border-radius: 4px;
76
- transition: background 0.5s, color 0.5s;
77
- &:focus {
78
- outline: none;
79
- }
80
- &.clear:hover {
81
- background: rgba(222, 33, 75, 0.1);
82
- color: #de214b;
83
- }
84
- &.apply:hover {
85
- background: rgba(88, 101, 242, 0.1);
86
- color: #5865F2;
87
- }
88
- }
89
- }
90
- }
91
- </style>
1
+ <template>
2
+ <div class="base__filter">
3
+ <div class="base__filter__content">
4
+ <slot />
5
+ </div>
6
+
7
+ <div v-if="showFooter" class="base__filter__footer">
8
+ <div>
9
+ <button
10
+ @click="$emit('filter-clear')"
11
+ class="base__filter__button clear"
12
+ >
13
+ <span>Limpar</span>
14
+ </button>
15
+ </div>
16
+ <div>
17
+ <button
18
+ @click="$emit('filter-apply')"
19
+ class="base__filter__button apply"
20
+ >
21
+ <span>Filtrar</span>
22
+ </button>
23
+ </div>
24
+ </div>
25
+ </div>
26
+ </template>
27
+
28
+ <script>
29
+ export default {
30
+ name: 'base-filter-container',
31
+ props: {
32
+ showFooter: {
33
+ type: Boolean,
34
+ default: true
35
+ }
36
+ }
37
+ };
38
+ </script>
39
+
40
+ <style lang="scss" scoped>
41
+ .base__filter {
42
+ display: flex;
43
+ flex-direction: column;
44
+ justify-content: space-between;
45
+ max-height: 350px;
46
+ &__content {
47
+ max-height: calc(350px - 44px);
48
+ overflow: hidden;
49
+ overflow-y: auto;
50
+ &::-webkit-scrollbar-track {
51
+ border-radius: 10px;
52
+ background-color: #f5f5f5;
53
+ }
54
+
55
+ &::-webkit-scrollbar {
56
+ width: 4px;
57
+ background-color: #f5f5f5;
58
+ }
59
+
60
+ &::-webkit-scrollbar-thumb {
61
+ border-radius: 10px;
62
+ background-color: #e9e8e8;
63
+ }
64
+ }
65
+ &__footer {
66
+ display: flex;
67
+ align-items: center;
68
+ justify-content: space-between;
69
+ margin-top: 20px;
70
+ .base__filter__button {
71
+ background: transparent;
72
+ border: none;
73
+ color: #32325d;
74
+ padding: 10px 20px;
75
+ border-radius: 4px;
76
+ transition: background 0.5s, color 0.5s;
77
+ &:focus {
78
+ outline: none;
79
+ }
80
+ &.clear:hover {
81
+ background: rgba(222, 33, 75, 0.1);
82
+ color: #de214b;
83
+ }
84
+ &.apply:hover {
85
+ background: rgba(88, 101, 242, 0.1);
86
+ color: #5865F2;
87
+ }
88
+ }
89
+ }
90
+ }
91
+ </style>
@@ -1,222 +1,222 @@
1
- <template>
2
- <base-header class="app-header" :type="'white'">
3
- <div class="row justify-content-between">
4
- <div
5
- :class="{ 'images__container': users.length }"
6
- class="col-8 my-auto header__container"
7
- >
8
- <slot name="header-top" />
9
-
10
- <div class="header__content">
11
- <div class="d-flex align-items-center flex-row">
12
- <button class="back__button" v-if="hasBackButton" @click="goBack()">
13
- <i class="fas fa-arrow-left"></i>
14
- </button>
15
- <h2 class="font-weight-bold display-3">{{name}}</h2>
16
- </div>
17
- <div class="images" v-if="users.length">
18
- <el-tooltip
19
- v-for="user in users"
20
- :key="user.id"
21
- placement="top"
22
- :content="user.name"
23
- class="user__avatar"
24
- :class="{ 'user__avatar--active': activeUserId === user.id }"
25
- >
26
- <img
27
- @click="setActiveUser(user.id)"
28
- :src="(user.avatar) ? user.avatar : getNameInitials(user.name, user.last_name)"
29
- :alt="user.name"
30
- >
31
- </el-tooltip>
32
- </div>
33
- </div>
34
-
35
- <span id="credits-amount" v-if="subheader !== null">
36
- {{ subheader }} Créditos
37
- </span>
38
-
39
- <slot name="header-bottom" />
40
- </div>
41
-
42
- <div class="col-4 d-flex justify-content-end align-items-start">
43
- <el-tooltip v-for="(item, index) in icons" :key="index"
44
- v-show="!item.disabled"
45
- class="item" effect="dark" :content="item.title" placement="top">
46
- <base-button size="md" type="link" class="text-primary px-2 w-auto"
47
- @click="$emit(item.event, item)">
48
- <font-awesome-icon :icon="item.icon" class="mr-2" />
49
- </base-button>
50
- </el-tooltip>
51
-
52
- <slot name="buttons" />
53
- </div>
54
-
55
- <slot/>
56
- </div>
57
- </base-header>
58
- </template>
59
- <script>
60
- export default {
61
- data(){
62
- return{
63
- default: '',
64
- activeUserId: null
65
- };
66
- },
67
- props:{
68
- icons:{
69
- type: Array,
70
- default: () =>[{ event: 'view', icon: ['fas', 'eye'], disabled: false, title: 'Visualizar' }, { event: 'config', icon: ['fas', 'cog'], disabled: false, title: 'Editar' } ]
71
- },
72
- name: {
73
- type: String,
74
- default: 'Teste de matematica'
75
- },
76
- subheader: {
77
- type: Number,
78
- default: null
79
- },
80
- users: {
81
- type: Array,
82
- default: () => []
83
- },
84
- hasBackButton: {
85
- type: Boolean,
86
- default: false
87
- },
88
- backClickAction: {
89
- type: Function || null,
90
- default: null
91
- }
92
- },
93
- methods: {
94
- goBack() {
95
- if (this.backClickAction === null) {
96
- this.$router.go(-1);
97
- } else {
98
- this.backClickAction();
99
- }
100
- },
101
- getNameInitials(name, last_name) {
102
- const avatarUrl = process.env.routes.avatar;
103
-
104
- let userAvatarName;
105
-
106
- if (name && last_name) {
107
- userAvatarName = `${name.toUpperCase().charAt(0)}${last_name.toUpperCase().charAt(0)}`;
108
- } else if (name && last_name === null) {
109
- userAvatarName = name;
110
- } else {
111
- userAvatarName = 'BURH';
112
- }
113
-
114
- return avatarUrl.replace(':size', '64x64').replace(':initials', userAvatarName);
115
- },
116
- setActiveUser(userId) {
117
- if (this.activeUserId !== userId) {
118
- this.activeUserId = userId;
119
- this.$emit('active-user', userId);
120
- } else {
121
- this.activeUserId = null;
122
- this.$emit('active-user', null);
123
- }
124
- }
125
- }
126
- };
127
- </script>
128
- <style lang="scss" scoped>
129
- #credits-amount {
130
- margin: 0!important;
131
- min-width: 8em;
132
- margin: 1rem 1rem 1rem 0;
133
- padding: 0.25em 1em;
134
- font-size: 0.85rem;
135
- line-height: 1.4em;
136
- border-radius: 23rem;
137
- font-weight: 400;
138
- text-align: center;
139
- background-color: rgba(29, 161, 241, 0.1);
140
- color: #5865F2;
141
- }
142
- </style>
143
- <style lang="scss">
144
-
145
- .app-header {
146
- width: 100%;
147
- padding-top: 1.25rem;
148
- box-shadow: 0 0 2rem 0 rgba(136, 152, 170, 0.15);
149
- }
150
-
151
- .back__button {
152
- cursor: pointer;
153
- width: 42px;
154
- height: 42px;
155
- display: flex;
156
- align-items: center;
157
- justify-content: center;
158
- margin-right: 10px;
159
- border-radius: 100px;
160
- transition: background 0.5s;
161
- margin-left: -15px;
162
- border: 0;
163
- background: transparent;
164
- color: #32325d;
165
- &:focus {
166
- outline: none;
167
- }
168
- &:not(:disabled):hover, &:focus:not(:disabled):hover {
169
- background: rgba(0, 0, 0, 0.08);
170
- }
171
- }
172
-
173
- .header__container {
174
- display: flex;
175
- flex-direction: column;
176
- justify-content: center;
177
- align-items: flex-start;
178
- }
179
-
180
- .images__container {
181
- display: flex;
182
- align-items: flex-start;
183
- justify-content: center;
184
- .header__content {
185
- display: flex;
186
- align-items: center;
187
- flex-direction: row;
188
- padding: 10px 0;
189
- h2 {
190
- margin-bottom: 0;
191
- }
192
- .images {
193
- margin-left: 10px;
194
- display: flex;
195
- align-items: center;
196
- user-select: none;
197
- .user__avatar {
198
- cursor: pointer;
199
- border: 2px solid transparent;
200
- transition: border-color 0.5s;
201
- border: 2px solid #fff;
202
- background: #fff;
203
- &--active {
204
- border-color: #5865F2;
205
- z-index: 10;
206
- }
207
- }
208
- img {
209
- $size: 42px;
210
- display: block;
211
- width: $size;
212
- height: $size;
213
- object-fit: cover;
214
- border-radius: 100px;
215
- &:not(:first-child) {
216
- margin-left: -10px;
217
- }
218
- }
219
- }
220
- }
221
- }
222
- </style>
1
+ <template>
2
+ <base-header class="app-header" :type="'white'">
3
+ <div class="row justify-content-between">
4
+ <div
5
+ :class="{ 'images__container': users.length }"
6
+ class="col-8 my-auto header__container"
7
+ >
8
+ <slot name="header-top" />
9
+
10
+ <div class="header__content">
11
+ <div class="d-flex align-items-center flex-row">
12
+ <button class="back__button" v-if="hasBackButton" @click="goBack()">
13
+ <i class="fas fa-arrow-left"></i>
14
+ </button>
15
+ <h2 class="font-weight-bold display-3">{{name}}</h2>
16
+ </div>
17
+ <div class="images" v-if="users.length">
18
+ <el-tooltip
19
+ v-for="user in users"
20
+ :key="user.id"
21
+ placement="top"
22
+ :content="user.name"
23
+ class="user__avatar"
24
+ :class="{ 'user__avatar--active': activeUserId === user.id }"
25
+ >
26
+ <img
27
+ @click="setActiveUser(user.id)"
28
+ :src="(user.avatar) ? user.avatar : getNameInitials(user.name, user.last_name)"
29
+ :alt="user.name"
30
+ >
31
+ </el-tooltip>
32
+ </div>
33
+ </div>
34
+
35
+ <span id="credits-amount" v-if="subheader !== null">
36
+ {{ subheader }} Créditos
37
+ </span>
38
+
39
+ <slot name="header-bottom" />
40
+ </div>
41
+
42
+ <div class="col-4 d-flex justify-content-end align-items-start">
43
+ <el-tooltip v-for="(item, index) in icons" :key="index"
44
+ v-show="!item.disabled"
45
+ class="item" effect="dark" :content="item.title" placement="top">
46
+ <base-button size="md" type="link" class="text-primary px-2 w-auto"
47
+ @click="$emit(item.event, item)">
48
+ <font-awesome-icon :icon="item.icon" class="mr-2" />
49
+ </base-button>
50
+ </el-tooltip>
51
+
52
+ <slot name="buttons" />
53
+ </div>
54
+
55
+ <slot/>
56
+ </div>
57
+ </base-header>
58
+ </template>
59
+ <script>
60
+ export default {
61
+ data(){
62
+ return{
63
+ default: '',
64
+ activeUserId: null
65
+ };
66
+ },
67
+ props:{
68
+ icons:{
69
+ type: Array,
70
+ default: () =>[{ event: 'view', icon: ['fas', 'eye'], disabled: false, title: 'Visualizar' }, { event: 'config', icon: ['fas', 'cog'], disabled: false, title: 'Editar' } ]
71
+ },
72
+ name: {
73
+ type: String,
74
+ default: 'Teste de matematica'
75
+ },
76
+ subheader: {
77
+ type: Number,
78
+ default: null
79
+ },
80
+ users: {
81
+ type: Array,
82
+ default: () => []
83
+ },
84
+ hasBackButton: {
85
+ type: Boolean,
86
+ default: false
87
+ },
88
+ backClickAction: {
89
+ type: Function || null,
90
+ default: null
91
+ }
92
+ },
93
+ methods: {
94
+ goBack() {
95
+ if (this.backClickAction === null) {
96
+ this.$router.go(-1);
97
+ } else {
98
+ this.backClickAction();
99
+ }
100
+ },
101
+ getNameInitials(name, last_name) {
102
+ const avatarUrl = process.env.routes.avatar;
103
+
104
+ let userAvatarName;
105
+
106
+ if (name && last_name) {
107
+ userAvatarName = `${name.toUpperCase().charAt(0)}${last_name.toUpperCase().charAt(0)}`;
108
+ } else if (name && last_name === null) {
109
+ userAvatarName = name;
110
+ } else {
111
+ userAvatarName = 'BURH';
112
+ }
113
+
114
+ return avatarUrl.replace(':size', '64x64').replace(':initials', userAvatarName);
115
+ },
116
+ setActiveUser(userId) {
117
+ if (this.activeUserId !== userId) {
118
+ this.activeUserId = userId;
119
+ this.$emit('active-user', userId);
120
+ } else {
121
+ this.activeUserId = null;
122
+ this.$emit('active-user', null);
123
+ }
124
+ }
125
+ }
126
+ };
127
+ </script>
128
+ <style lang="scss" scoped>
129
+ #credits-amount {
130
+ margin: 0!important;
131
+ min-width: 8em;
132
+ margin: 1rem 1rem 1rem 0;
133
+ padding: 0.25em 1em;
134
+ font-size: 0.85rem;
135
+ line-height: 1.4em;
136
+ border-radius: 23rem;
137
+ font-weight: 400;
138
+ text-align: center;
139
+ background-color: rgba(29, 161, 241, 0.1);
140
+ color: #5865F2;
141
+ }
142
+ </style>
143
+ <style lang="scss">
144
+
145
+ .app-header {
146
+ width: 100%;
147
+ padding-top: 1.25rem;
148
+ box-shadow: 0 0 2rem 0 rgba(136, 152, 170, 0.15);
149
+ }
150
+
151
+ .back__button {
152
+ cursor: pointer;
153
+ width: 42px;
154
+ height: 42px;
155
+ display: flex;
156
+ align-items: center;
157
+ justify-content: center;
158
+ margin-right: 10px;
159
+ border-radius: 100px;
160
+ transition: background 0.5s;
161
+ margin-left: -15px;
162
+ border: 0;
163
+ background: transparent;
164
+ color: #32325d;
165
+ &:focus {
166
+ outline: none;
167
+ }
168
+ &:not(:disabled):hover, &:focus:not(:disabled):hover {
169
+ background: rgba(0, 0, 0, 0.08);
170
+ }
171
+ }
172
+
173
+ .header__container {
174
+ display: flex;
175
+ flex-direction: column;
176
+ justify-content: center;
177
+ align-items: flex-start;
178
+ }
179
+
180
+ .images__container {
181
+ display: flex;
182
+ align-items: flex-start;
183
+ justify-content: center;
184
+ .header__content {
185
+ display: flex;
186
+ align-items: center;
187
+ flex-direction: row;
188
+ padding: 10px 0;
189
+ h2 {
190
+ margin-bottom: 0;
191
+ }
192
+ .images {
193
+ margin-left: 10px;
194
+ display: flex;
195
+ align-items: center;
196
+ user-select: none;
197
+ .user__avatar {
198
+ cursor: pointer;
199
+ border: 2px solid transparent;
200
+ transition: border-color 0.5s;
201
+ border: 2px solid #fff;
202
+ background: #fff;
203
+ &--active {
204
+ border-color: #5865F2;
205
+ z-index: 10;
206
+ }
207
+ }
208
+ img {
209
+ $size: 42px;
210
+ display: block;
211
+ width: $size;
212
+ height: $size;
213
+ object-fit: cover;
214
+ border-radius: 100px;
215
+ &:not(:first-child) {
216
+ margin-left: -10px;
217
+ }
218
+ }
219
+ }
220
+ }
221
+ }
222
+ </style>