@burh/nuxt-core 1.0.411 → 1.0.412

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.
@@ -1,114 +1,114 @@
1
- <template>
2
- <component
3
- :is="tag"
4
- :class="[{ show: isOpen }, `drop${direction}`]"
5
- @click="toggleDropDown"
6
- v-click-outside="closeDropDown"
7
- >
8
- <slot name="title-container" :is-open="isOpen">
9
- <component
10
- :is="titleTag"
11
- class="btn-rotate"
12
- :class="[{'dropdown-toggle': hasToggle}, titleClasses]"
13
- :aria-expanded="isOpen"
14
- data-toggle="dropdown"
15
- >
16
- <slot name="title" :is-open="isOpen">
17
- <i :class="icon"></i> {{ title }}
18
- </slot>
19
- </component>
20
- </slot>
21
- <ul
22
- class="dropdown-menu"
23
- :class="[
24
- { show: isOpen },
25
- { 'dropdown-menu-right': menuOnRight },
26
- menuClasses
27
- ]"
28
- >
29
- <slot></slot>
30
- </ul>
31
- </component>
32
- </template>
33
- <script>
34
- export default {
35
- name: 'base-dropdown',
36
- props: {
37
- tag: {
38
- type: String,
39
- default: 'div',
40
- description: 'Dropdown html tag (e.g div, ul etc)'
41
- },
42
- titleTag: {
43
- type: String,
44
- default: 'button',
45
- description: 'Dropdown title (toggle) html tag'
46
- },
47
- title: {
48
- type: String,
49
- description: 'Dropdown title'
50
- },
51
- direction: {
52
- type: String,
53
- default: 'down', // up | down
54
- description: 'Dropdown menu direction (up|down)'
55
- },
56
- icon: {
57
- type: String,
58
- description: 'Dropdown icon'
59
- },
60
- titleClasses: {
61
- type: [String, Object, Array],
62
- description: 'Title css classes'
63
- },
64
- menuClasses: {
65
- type: [String, Object],
66
- description: 'Menu css classes'
67
- },
68
- menuOnRight: {
69
- type: Boolean,
70
- description: 'Whether menu should appear on the right'
71
- },
72
- hasToggle: {
73
- type: Boolean,
74
- description: 'Whether dropdown has arrow icon shown',
75
- default: true
76
- },
77
- isDropdownOpen: {
78
- type: Boolean,
79
- default: false
80
- }
81
- },
82
- data() {
83
- return {
84
- isOpen: false
85
- };
86
- },
87
- watch: {
88
- isOpen() {
89
- if (this.isOpen === false) {
90
- this.$emit('close');
91
- }
92
- },
93
- isDropdownOpen() {
94
- this.isOpen = this.isDropdownOpen;
95
- }
96
- },
97
- methods: {
98
- toggleDropDown() {
99
- this.isOpen = !this.isOpen;
100
- this.$emit('change', this.isOpen);
101
- },
102
- closeDropDown() {
103
- this.isOpen = false;
104
- this.$emit('change', false);
105
- }
106
- }
107
- };
108
- </script>
109
- <style lang="scss" scoped>
110
- .dropdown {
111
- cursor: pointer;
112
- user-select: none;
113
- }
114
- </style>
1
+ <template>
2
+ <component
3
+ :is="tag"
4
+ :class="[{ show: isOpen }, `drop${direction}`]"
5
+ @click="toggleDropDown"
6
+ v-click-outside="closeDropDown"
7
+ >
8
+ <slot name="title-container" :is-open="isOpen">
9
+ <component
10
+ :is="titleTag"
11
+ class="btn-rotate"
12
+ :class="[{'dropdown-toggle': hasToggle}, titleClasses]"
13
+ :aria-expanded="isOpen"
14
+ data-toggle="dropdown"
15
+ >
16
+ <slot name="title" :is-open="isOpen">
17
+ <i :class="icon"></i> {{ title }}
18
+ </slot>
19
+ </component>
20
+ </slot>
21
+ <ul
22
+ class="dropdown-menu"
23
+ :class="[
24
+ { show: isOpen },
25
+ { 'dropdown-menu-right': menuOnRight },
26
+ menuClasses
27
+ ]"
28
+ >
29
+ <slot></slot>
30
+ </ul>
31
+ </component>
32
+ </template>
33
+ <script>
34
+ export default {
35
+ name: 'base-dropdown',
36
+ props: {
37
+ tag: {
38
+ type: String,
39
+ default: 'div',
40
+ description: 'Dropdown html tag (e.g div, ul etc)'
41
+ },
42
+ titleTag: {
43
+ type: String,
44
+ default: 'button',
45
+ description: 'Dropdown title (toggle) html tag'
46
+ },
47
+ title: {
48
+ type: String,
49
+ description: 'Dropdown title'
50
+ },
51
+ direction: {
52
+ type: String,
53
+ default: 'down', // up | down
54
+ description: 'Dropdown menu direction (up|down)'
55
+ },
56
+ icon: {
57
+ type: String,
58
+ description: 'Dropdown icon'
59
+ },
60
+ titleClasses: {
61
+ type: [String, Object, Array],
62
+ description: 'Title css classes'
63
+ },
64
+ menuClasses: {
65
+ type: [String, Object],
66
+ description: 'Menu css classes'
67
+ },
68
+ menuOnRight: {
69
+ type: Boolean,
70
+ description: 'Whether menu should appear on the right'
71
+ },
72
+ hasToggle: {
73
+ type: Boolean,
74
+ description: 'Whether dropdown has arrow icon shown',
75
+ default: true
76
+ },
77
+ isDropdownOpen: {
78
+ type: Boolean,
79
+ default: false
80
+ }
81
+ },
82
+ data() {
83
+ return {
84
+ isOpen: false
85
+ };
86
+ },
87
+ watch: {
88
+ isOpen() {
89
+ if (this.isOpen === false) {
90
+ this.$emit('close');
91
+ }
92
+ },
93
+ isDropdownOpen() {
94
+ this.isOpen = this.isDropdownOpen;
95
+ }
96
+ },
97
+ methods: {
98
+ toggleDropDown() {
99
+ this.isOpen = !this.isOpen;
100
+ this.$emit('change', this.isOpen);
101
+ },
102
+ closeDropDown() {
103
+ this.isOpen = false;
104
+ this.$emit('change', false);
105
+ }
106
+ }
107
+ };
108
+ </script>
109
+ <style lang="scss" scoped>
110
+ .dropdown {
111
+ cursor: pointer;
112
+ user-select: none;
113
+ }
114
+ </style>
@@ -1,26 +1,26 @@
1
- <template>
2
- <div class="row" v-loading="true" id="loading"></div>
3
- </template>
4
- <script>
5
- import Vue from 'vue';
6
- import { Loading } from 'element-ui';
7
-
8
- Vue.use(Loading.directive);
9
- export default {};
10
- </script>
11
- <style>
12
- #loading {
13
- min-height: 200px;
14
- display: flex;
15
- align-items: center;
16
- }
17
-
18
- .el-loading-spinner .path {
19
- stroke: #66615b !important;
20
- }
21
-
22
- .el-loading-mask {
23
- z-index: 100!important;
24
- background: transparent !important;
25
- }
26
- </style>
1
+ <template>
2
+ <div class="row" v-loading="true" id="loading"></div>
3
+ </template>
4
+ <script>
5
+ import Vue from 'vue';
6
+ import { Loading } from 'element-ui';
7
+
8
+ Vue.use(Loading.directive);
9
+ export default {};
10
+ </script>
11
+ <style>
12
+ #loading {
13
+ min-height: 200px;
14
+ display: flex;
15
+ align-items: center;
16
+ }
17
+
18
+ .el-loading-spinner .path {
19
+ stroke: #66615b !important;
20
+ }
21
+
22
+ .el-loading-mask {
23
+ z-index: 100!important;
24
+ background: transparent !important;
25
+ }
26
+ </style>
@@ -1,194 +1,194 @@
1
- <template>
2
- <div class="recruitment__user__card">
3
- <div
4
- class="recruitment__user__card__header"
5
- :class="[
6
- { 'header__cover--shadow': cover },
7
- { 'header__cover--glass': glass }
8
- ]"
9
- >
10
- <div class="recruitment__user__card__header__actions">
11
- <div class="left">
12
- <slot name="header-left" />
13
- </div>
14
- <div class="right">
15
- <slot name="header-right" />
16
- </div>
17
- </div>
18
- <img
19
- v-if="cover !== null"
20
- :src="cover"
21
- class="user__cover"
22
- @error="cover = null"
23
- >
24
- </div>
25
-
26
- <div class="recruitment__user__card__content">
27
- <img :src="(avatar) ? avatar : getNameInitials(name, last_name)" :alt="name">
28
-
29
- <slot name="card-content" />
30
- </div>
31
-
32
- <div class="recruitment__user__card__footer">
33
- <slot name="card-footer" />
34
- </div>
35
- </div>
36
- </template>
37
-
38
- <script>
39
- export default {
40
- name: 'recruitment-user-card',
41
- props: {
42
- cover: {
43
- type: String,
44
- default: null
45
- },
46
- avatar: {
47
- type: String,
48
- default: null
49
- },
50
- name: {
51
- type: String,
52
- default: null
53
- },
54
- last_name: {
55
- type: String,
56
- default: null
57
- },
58
- glass: {
59
- type: Boolean,
60
- default: false
61
- }
62
- },
63
- methods: {
64
- getNameInitials(name, last_name) {
65
- const avatarUrl = process.env.routes.avatar;
66
-
67
- let userAvatarName;
68
-
69
- if (name && last_name) {
70
- userAvatarName = `${name.toUpperCase().charAt(0)}${last_name.toUpperCase().charAt(0)}`;
71
- } else if (name && last_name === null) {
72
- userAvatarName = name;
73
- } else {
74
- userAvatarName = 'BURH';
75
- }
76
-
77
- return avatarUrl.replace(':size', '124x124').replace(':initials', userAvatarName);
78
- },
79
- }
80
- };
81
- </script>
82
-
83
- <style lang="scss" scoped>
84
-
85
- .recruitment__user__card {
86
- background: #fff;
87
- box-shadow: 0 3px 20px rgba(0, 0, 0, 0.08);
88
- border-radius: 4px;
89
- overflow: hidden;
90
- cursor: pointer;
91
- transition: transform 0.25s;
92
- &:focus {
93
- outline: none;
94
- transform: translateY(-5px);
95
- }
96
- &:hover {
97
- transform: translateY(-5px);
98
- }
99
-
100
- img {
101
- user-select: none;
102
- }
103
-
104
- &__header {
105
- width: 100%;
106
- height: 70px;
107
- overflow: hidden;
108
- position: relative;
109
- background: #1F8CEB;
110
- &.header__cover--shadow::before {
111
- content: '';
112
- position: absolute;
113
- top: 0;
114
- left: 0;
115
- width: 100%;
116
- height: 100%;
117
- background: linear-gradient(180deg, rgba(0, 0, 0, 0.6), 80%, transparent);
118
- z-index: 1;
119
- }
120
- &.header__cover--glass {
121
- &::before {
122
- backdrop-filter: blur( 4px );
123
- -webkit-backdrop-filter: blur( 4px );
124
- background: rgba(0,0,0,0.2)!important;
125
- }
126
- }
127
- .user__cover {
128
- width: 100%;
129
- height: 100%;
130
- object-fit: cover;
131
- }
132
- &__actions {
133
- position: absolute;
134
- top: 0;
135
- left: 0;
136
- width: 100%;
137
- display: flex;
138
- align-items: center;
139
- justify-content: space-between;
140
- padding: 10px 15px;
141
- z-index: 2;
142
- .right {
143
- display: flex;
144
- align-items: center;
145
- flex-direction: row;
146
- button {
147
- color: #fff;
148
- border: 0;
149
- background: transparent;
150
- width: 32px;
151
- height: 32px;
152
- display: flex;
153
- align-items: center;
154
- justify-content: center;
155
- }
156
- }
157
- }
158
- }
159
- &__content {
160
- display: flex;
161
- flex-direction: column;
162
- align-items: center;
163
- justify-content: center;
164
- padding: 0 15px;
165
- img {
166
- width: 120px;
167
- height: 120px;
168
- border-radius: 100px;
169
- object-fit: contain;
170
- margin-top: -20px;
171
- z-index: 10;
172
- box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
173
- background: #fff;
174
- border: 4px solid #fff;
175
- }
176
- }
177
- &__footer {
178
- display: flex;
179
- align-items: center;
180
- justify-content: center;
181
- padding-bottom: 20px;
182
- span {
183
- font-size: 0.875rem;
184
- font-weight: 500;
185
- margin: 0 10px;
186
- color: #AEB6BE;
187
- &.new {
188
- color: #1F8CEB;
189
- }
190
- }
191
- }
192
- }
193
-
194
- </style>
1
+ <template>
2
+ <div class="recruitment__user__card">
3
+ <div
4
+ class="recruitment__user__card__header"
5
+ :class="[
6
+ { 'header__cover--shadow': cover },
7
+ { 'header__cover--glass': glass }
8
+ ]"
9
+ >
10
+ <div class="recruitment__user__card__header__actions">
11
+ <div class="left">
12
+ <slot name="header-left" />
13
+ </div>
14
+ <div class="right">
15
+ <slot name="header-right" />
16
+ </div>
17
+ </div>
18
+ <img
19
+ v-if="cover !== null"
20
+ :src="cover"
21
+ class="user__cover"
22
+ @error="cover = null"
23
+ >
24
+ </div>
25
+
26
+ <div class="recruitment__user__card__content">
27
+ <img :src="(avatar) ? avatar : getNameInitials(name, last_name)" :alt="name">
28
+
29
+ <slot name="card-content" />
30
+ </div>
31
+
32
+ <div class="recruitment__user__card__footer">
33
+ <slot name="card-footer" />
34
+ </div>
35
+ </div>
36
+ </template>
37
+
38
+ <script>
39
+ export default {
40
+ name: 'recruitment-user-card',
41
+ props: {
42
+ cover: {
43
+ type: String,
44
+ default: null
45
+ },
46
+ avatar: {
47
+ type: String,
48
+ default: null
49
+ },
50
+ name: {
51
+ type: String,
52
+ default: null
53
+ },
54
+ last_name: {
55
+ type: String,
56
+ default: null
57
+ },
58
+ glass: {
59
+ type: Boolean,
60
+ default: false
61
+ }
62
+ },
63
+ methods: {
64
+ getNameInitials(name, last_name) {
65
+ const avatarUrl = process.env.routes.avatar;
66
+
67
+ let userAvatarName;
68
+
69
+ if (name && last_name) {
70
+ userAvatarName = `${name.toUpperCase().charAt(0)}${last_name.toUpperCase().charAt(0)}`;
71
+ } else if (name && last_name === null) {
72
+ userAvatarName = name;
73
+ } else {
74
+ userAvatarName = 'BURH';
75
+ }
76
+
77
+ return avatarUrl.replace(':size', '124x124').replace(':initials', userAvatarName);
78
+ },
79
+ }
80
+ };
81
+ </script>
82
+
83
+ <style lang="scss" scoped>
84
+
85
+ .recruitment__user__card {
86
+ background: #fff;
87
+ box-shadow: 0 3px 20px rgba(0, 0, 0, 0.08);
88
+ border-radius: 4px;
89
+ overflow: hidden;
90
+ cursor: pointer;
91
+ transition: transform 0.25s;
92
+ &:focus {
93
+ outline: none;
94
+ transform: translateY(-5px);
95
+ }
96
+ &:hover {
97
+ transform: translateY(-5px);
98
+ }
99
+
100
+ img {
101
+ user-select: none;
102
+ }
103
+
104
+ &__header {
105
+ width: 100%;
106
+ height: 70px;
107
+ overflow: hidden;
108
+ position: relative;
109
+ background: #1F8CEB;
110
+ &.header__cover--shadow::before {
111
+ content: '';
112
+ position: absolute;
113
+ top: 0;
114
+ left: 0;
115
+ width: 100%;
116
+ height: 100%;
117
+ background: linear-gradient(180deg, rgba(0, 0, 0, 0.6), 80%, transparent);
118
+ z-index: 1;
119
+ }
120
+ &.header__cover--glass {
121
+ &::before {
122
+ backdrop-filter: blur( 4px );
123
+ -webkit-backdrop-filter: blur( 4px );
124
+ background: rgba(0,0,0,0.2)!important;
125
+ }
126
+ }
127
+ .user__cover {
128
+ width: 100%;
129
+ height: 100%;
130
+ object-fit: cover;
131
+ }
132
+ &__actions {
133
+ position: absolute;
134
+ top: 0;
135
+ left: 0;
136
+ width: 100%;
137
+ display: flex;
138
+ align-items: center;
139
+ justify-content: space-between;
140
+ padding: 10px 15px;
141
+ z-index: 2;
142
+ .right {
143
+ display: flex;
144
+ align-items: center;
145
+ flex-direction: row;
146
+ button {
147
+ color: #fff;
148
+ border: 0;
149
+ background: transparent;
150
+ width: 32px;
151
+ height: 32px;
152
+ display: flex;
153
+ align-items: center;
154
+ justify-content: center;
155
+ }
156
+ }
157
+ }
158
+ }
159
+ &__content {
160
+ display: flex;
161
+ flex-direction: column;
162
+ align-items: center;
163
+ justify-content: center;
164
+ padding: 0 15px;
165
+ img {
166
+ width: 120px;
167
+ height: 120px;
168
+ border-radius: 100px;
169
+ object-fit: contain;
170
+ margin-top: -20px;
171
+ z-index: 10;
172
+ box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
173
+ background: #fff;
174
+ border: 4px solid #fff;
175
+ }
176
+ }
177
+ &__footer {
178
+ display: flex;
179
+ align-items: center;
180
+ justify-content: center;
181
+ padding-bottom: 20px;
182
+ span {
183
+ font-size: 0.875rem;
184
+ font-weight: 500;
185
+ margin: 0 10px;
186
+ color: #AEB6BE;
187
+ &.new {
188
+ color: #1F8CEB;
189
+ }
190
+ }
191
+ }
192
+ }
193
+
194
+ </style>