@everchron/ec-shards 4.2.0 → 4.3.0
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.
- package/dist/ec-shards.common.js +2562 -1465
- package/dist/ec-shards.common.js.map +1 -1
- package/dist/ec-shards.css +1 -1
- package/dist/ec-shards.umd.js +2562 -1465
- package/dist/ec-shards.umd.js.map +1 -1
- package/dist/ec-shards.umd.min.js +2 -2
- package/dist/ec-shards.umd.min.js.map +1 -1
- package/dist/img/EU.d180ac2d.svg +1 -0
- package/dist/img/login-email-mfa.33936706.svg +1 -0
- package/dist/img/login-email.4b81db3a.svg +1 -0
- package/dist/img/login-sso-azure.a49f3fe4.svg +1 -0
- package/dist/img/login-sso-okta.55de1bbd.svg +1 -0
- package/package.json +4 -2
- package/src/assets/icons/login-key.svg +7 -0
- package/src/assets/images/fill-icons/login-email-mfa.svg +1 -0
- package/src/assets/images/fill-icons/login-email.svg +1 -0
- package/src/assets/images/fill-icons/login-sso-azure.svg +1 -0
- package/src/assets/images/fill-icons/login-sso-okta.svg +1 -0
- package/src/assets/images/flags/EU.svg +1 -0
- package/src/components/alert/alert.vue +2 -2
- package/src/components/breadcrumb-button/breadcrumb-button.vue +2 -2
- package/src/components/button/button.vue +2 -2
- package/src/components/button-context/button-context.vue +1 -1
- package/src/components/button-more/button-more.vue +1 -1
- package/src/components/button-table/button-table.vue +1 -1
- package/src/components/button-toolbar/button-toolbar.vue +4 -4
- package/src/components/button-toolbar-icon/button-toolbar-icon.vue +1 -1
- package/src/components/collection-control/collection-control.vue +1 -1
- package/src/components/context-menu/context-menu.vue +215 -0
- package/src/components/data-card/data-card.vue +1 -1
- package/src/components/data-grid/data-grid-row.vue +25 -1
- package/src/components/dialog/dialog.vue +24 -46
- package/src/components/document-state/document-state.vue +1 -1
- package/src/components/empty-state/empty-state.vue +1 -1
- package/src/components/excerpt-snippet/excerpt-snippet.vue +1 -1
- package/src/components/fill-icon/fill-icon.vue +59 -0
- package/src/components/flag/flag.vue +5 -0
- package/src/components/index.js +4 -0
- package/src/components/info-tooltip/info-tooltip.vue +1 -1
- package/src/components/input-addon/input-addon.vue +1 -1
- package/src/components/input-clear/input-clear.vue +1 -1
- package/src/components/input-search/input-search.vue +1 -1
- package/src/components/multiselect-option/multiselect-option.vue +1 -1
- package/src/components/multiselect-search-token/multiselect-search-token.vue +2 -2
- package/src/components/multiselect-token/multiselect-token.vue +1 -1
- package/src/components/overlay/overlay.vue +1 -1
- package/src/components/pagination/pagination.vue +138 -105
- package/src/components/party-entry/party-entry.vue +2 -2
- package/src/components/popover-header/popover-header.vue +1 -1
- package/src/components/segment/segment.vue +1 -1
- package/src/components/select/select.vue +24 -3
- package/src/components/separator/separator.vue +93 -0
- package/src/components/sequence-map-button/sequence-map-button.vue +1 -1
- package/src/components/tab-button/tab-button.vue +16 -5
- package/src/components/transcript-state/transcript-state.vue +1 -1
- package/src/components/tree-list-item/tree-list-item.vue +1 -1
- package/src/stories/Changelog.stories.mdx +29 -0
- package/src/stories/context-menu/context-menu.stories.js +69 -0
- package/src/stories/fill-icon/fill-icon.stories.js +24 -0
- package/src/stories/flag/flag.stories.js +6 -1
- package/src/stories/pagination/pagination.stories.js +0 -15
- package/src/stories/select/select.stories.js +16 -0
- package/src/stories/separator/.DS_Store +0 -0
- package/src/stories/separator/separator.stories.js +33 -0
- package/src/components/tiptap/tiptap.vue +0 -246
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="ecs-fill-icon" :class="type" :style="{ width: width+ 'px', height: height+ 'px' }" />
|
|
3
|
+
</template>
|
|
4
|
+
|
|
5
|
+
<script>
|
|
6
|
+
export default {
|
|
7
|
+
props: {
|
|
8
|
+
/** The identifier of the icon which should show up. */
|
|
9
|
+
type: {
|
|
10
|
+
type: String,
|
|
11
|
+
validator: v => [
|
|
12
|
+
'login-email-mfa',
|
|
13
|
+
'login-email',
|
|
14
|
+
'login-sso-azure',
|
|
15
|
+
'login-sso-okta'
|
|
16
|
+
].includes(v),
|
|
17
|
+
required: true
|
|
18
|
+
},
|
|
19
|
+
/** The width in pixels. When only a width is passed without a height, the icon will not be resized, but the outer container. */
|
|
20
|
+
width: {
|
|
21
|
+
type: Number
|
|
22
|
+
},
|
|
23
|
+
/** The height in pixels. When only a height is passed without a width, the icon will not be resized, but the outer container. */
|
|
24
|
+
height:{
|
|
25
|
+
type: Number
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
</script>
|
|
30
|
+
|
|
31
|
+
<style lang="scss" scoped>
|
|
32
|
+
@import "../../tokens/build/scss/tokens.scss";
|
|
33
|
+
@import "../mixins/svg-uri";
|
|
34
|
+
|
|
35
|
+
.ecs-fill-icon{
|
|
36
|
+
width: 16px;
|
|
37
|
+
height: 20px;
|
|
38
|
+
background-size: 100% 100%;
|
|
39
|
+
background-repeat: no-repeat;
|
|
40
|
+
background-position: left center;
|
|
41
|
+
position: relative;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.login-email-mfa{
|
|
45
|
+
background-image: url("../../assets/images/fill-icons/login-email-mfa.svg");
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.login-email{
|
|
49
|
+
background-image: url("../../assets/images/fill-icons/login-email.svg");
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.login-sso-azure{
|
|
53
|
+
background-image: url("../../assets/images/fill-icons/login-sso-azure.svg");
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.login-sso-okta{
|
|
57
|
+
background-image: url("../../assets/images/fill-icons/login-sso-okta.svg");
|
|
58
|
+
}
|
|
59
|
+
</style>
|
|
@@ -17,6 +17,7 @@ export default {
|
|
|
17
17
|
'da',
|
|
18
18
|
'nl',
|
|
19
19
|
'en',
|
|
20
|
+
'eu',
|
|
20
21
|
'gb',
|
|
21
22
|
'au',
|
|
22
23
|
'ca',
|
|
@@ -93,6 +94,10 @@ export default {
|
|
|
93
94
|
background-image: url("../../assets/images/flags/GB-UKM.svg");
|
|
94
95
|
}
|
|
95
96
|
|
|
97
|
+
&.eu{
|
|
98
|
+
background-image: url("../../assets/images/flags/EU.svg");
|
|
99
|
+
}
|
|
100
|
+
|
|
96
101
|
&.us{
|
|
97
102
|
background-image: url("../../assets/images/flags/US.svg");
|
|
98
103
|
}
|
package/src/components/index.js
CHANGED
|
@@ -48,6 +48,7 @@ import EcsEntryLink from "./entry-link/entry-link.vue"
|
|
|
48
48
|
import EcsExcerptSnippet from "./excerpt-snippet/excerpt-snippet.vue"
|
|
49
49
|
import EcsFavicon from "./favicon/favicon.vue"
|
|
50
50
|
import EcsFileIcon from "./file-icon/file-icon.vue"
|
|
51
|
+
import EcsFillIcon from "./fill-icon/fill-icon.vue"
|
|
51
52
|
import EcsFileList from "./file-list/file-list.vue"
|
|
52
53
|
import EcsFileListItem from "./file-list-item/file-list-item.vue"
|
|
53
54
|
import EcsFlag from "./flag/flag.vue"
|
|
@@ -102,6 +103,7 @@ import EcsSection from "./section/section.vue"
|
|
|
102
103
|
import EcsSegment from "./segment/segment.vue"
|
|
103
104
|
import EcsSelect from "./select/select.vue"
|
|
104
105
|
import EcsSelectTile from "./select-tile/select-tile.vue"
|
|
106
|
+
import EcsSeparator from "./separator/separator.vue"
|
|
105
107
|
import EcsSequenceMap from "./sequence-map/sequence-map.vue"
|
|
106
108
|
import EcsSequenceMapButton from "./sequence-map-button/sequence-map-button.vue"
|
|
107
109
|
import EcsSidebar from "./sidebar/sidebar.vue"
|
|
@@ -177,6 +179,7 @@ const Components = {
|
|
|
177
179
|
EcsExcerptSnippet,
|
|
178
180
|
EcsFavicon,
|
|
179
181
|
EcsFileIcon,
|
|
182
|
+
EcsFillIcon,
|
|
180
183
|
EcsFileList,
|
|
181
184
|
EcsFileListItem,
|
|
182
185
|
EcsFlag,
|
|
@@ -231,6 +234,7 @@ const Components = {
|
|
|
231
234
|
EcsSegment,
|
|
232
235
|
EcsSelect,
|
|
233
236
|
EcsSelectTile,
|
|
237
|
+
EcsSeparator,
|
|
234
238
|
EcsSequenceMap,
|
|
235
239
|
EcsSequenceMapButton,
|
|
236
240
|
EcsSidebar,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="ecs-input-clear">
|
|
3
3
|
<button @click="$emit('click', $event)" :title="tooltip" class="ecs-input-clear-button" />
|
|
4
|
-
<ecs-icon v-if="loading" type="loading"
|
|
4
|
+
<ecs-icon v-if="loading" type="loading" size="32" spinning color="#AEB1B9" />
|
|
5
5
|
</div>
|
|
6
6
|
</template>
|
|
7
7
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="ecs-search-group" :class="groupSizeClass">
|
|
3
|
-
<ecs-icon type="search" color="#B9BCC2" :
|
|
3
|
+
<ecs-icon type="search" color="#B9BCC2" :size="iconSize" />
|
|
4
4
|
<input ref="input"
|
|
5
5
|
:name="name"
|
|
6
6
|
:disabled="disabled"
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="ecs-multiselect-search-token" :class="typeClass">
|
|
3
3
|
<div v-if="icon || operator" class="symbol">
|
|
4
|
-
<ecs-icon :type="icon"
|
|
4
|
+
<ecs-icon :type="icon" size="20" color="#FFF" />
|
|
5
5
|
<div v-if="operator" class="operator">{{ operator }}</div>
|
|
6
6
|
</div>
|
|
7
7
|
<div class="query">
|
|
8
8
|
<div v-if="descriptor" class="descriptor">{{ descriptor }}</div>
|
|
9
9
|
<slot></slot>
|
|
10
10
|
<button @click="$emit('remove', $event)" class="remove" title="Remove">
|
|
11
|
-
<ecs-icon type="close"
|
|
11
|
+
<ecs-icon type="close" size="14" color="#FFF" />
|
|
12
12
|
</button>
|
|
13
13
|
</div>
|
|
14
14
|
</div>
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<div v-if="isShown" class="ecs-overlay" :style="{ top: offsetTop + 'px', height: 'calc(100vh - '+ offsetTop +'px' }">
|
|
4
4
|
<div class="ecs-overlay-header">
|
|
5
5
|
<div class="ecs-overlay-titles">
|
|
6
|
-
<ecs-icon v-if="icon" :type="icon"
|
|
6
|
+
<ecs-icon v-if="icon" :type="icon" size="40" color="#B9BCC2" />
|
|
7
7
|
<div>
|
|
8
8
|
<span class="title"><span v-if="headerTitleEmphasized" class="emphasized">{{ headerTitleEmphasized }}</span> {{ headerTitle }}</span>
|
|
9
9
|
<span v-if="headerTitleSubline" class="subline">{{ headerTitleSubline }}</span>
|
|
@@ -1,62 +1,66 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="ecs-pagination" :class="[ floating ? 'ecs-pagination-floating' : '' ]">
|
|
3
|
-
<
|
|
4
|
-
<
|
|
5
|
-
<ecs-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
</ecs-
|
|
20
|
-
</
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
3
|
+
<div class="ecs-pagination-nav">
|
|
4
|
+
<ecs-button-toolbar-group>
|
|
5
|
+
<ecs-button-toolbar
|
|
6
|
+
@click="$emit('prevPage', $event)"
|
|
7
|
+
:disabled="loading || currentPage === 1"
|
|
8
|
+
icon="back"
|
|
9
|
+
data-test="pagination-previous-button">
|
|
10
|
+
Previous Page
|
|
11
|
+
</ecs-button-toolbar>
|
|
12
|
+
<ecs-button-toolbar
|
|
13
|
+
@click="$emit('nextPage', $event)"
|
|
14
|
+
:disabled="loading || currentPage === totalPages"
|
|
15
|
+
icon="next"
|
|
16
|
+
icon-position="right"
|
|
17
|
+
data-test="pagination-next-button">
|
|
18
|
+
Next Page
|
|
19
|
+
</ecs-button-toolbar>
|
|
20
|
+
</ecs-button-toolbar-group>
|
|
21
|
+
|
|
22
|
+
<div class="ecs-pagination-dropdown">
|
|
23
|
+
<span>Page</span>
|
|
24
|
+
<div @click="toggleDropdown" class="ecs-pagination-dropdown-button" :class="[dropdownShown ? 'active' : '', totalPages ? '' : 'disabled']">
|
|
25
|
+
<template v-if="currentPage">{{ currentPage }}</template>
|
|
26
|
+
<template v-else>-</template>
|
|
27
|
+
|
|
28
|
+
<transition name="dropdown">
|
|
29
|
+
<div v-if="dropdownShown && totalPages" class="ecs-pagination-select scrollbar scrollbar-sml">
|
|
30
|
+
<ecs-popover-list>
|
|
31
|
+
<ecs-popover-list-item
|
|
32
|
+
@click="$emit('update:page', n), hideDropdown"
|
|
33
|
+
v-for="n in totalPages"
|
|
34
|
+
:key="n"
|
|
35
|
+
:selected="n === currentPage">
|
|
36
|
+
{{ n }}
|
|
37
|
+
</ecs-popover-list-item>
|
|
38
|
+
</ecs-popover-list>
|
|
39
|
+
</div>
|
|
40
|
+
</transition>
|
|
41
|
+
</div>
|
|
42
|
+
<span v-if="totalPages" class="total">of {{ totalPages }}</span>
|
|
43
|
+
</div>
|
|
44
|
+
</div>
|
|
45
|
+
<div>
|
|
30
46
|
<!-- @slot Slot for a sheet tab bar. -->
|
|
31
47
|
<slot name="tabs"></slot>
|
|
32
48
|
</div>
|
|
33
|
-
|
|
34
|
-
<ecs-flex-row v-if="showItemsPerPage && type == 'paginated'" :gap="4" class="ecs-pagination-items">
|
|
35
|
-
<span>Items per page</span>
|
|
36
|
-
<ecs-select @change="$emit('itemsPerPage', $event.target.value)" :disabled="loading" size="sml">
|
|
37
|
-
<option v-for="n in itemsPerPage" :key="n" :value="n" :selected="n === itemsPerPageSelected">{{ n }}</option>
|
|
38
|
-
</ecs-select>
|
|
39
|
-
</ecs-flex-row>
|
|
40
|
-
|
|
41
|
-
<ecs-flex-row v-if="$slots.controls" :gap="4" class="ecs-pagination-controls">
|
|
42
|
-
<!-- @slot Slot for a additional controls, such as a settings button. -->
|
|
43
|
-
<slot name="controls"></slot>
|
|
44
|
-
</ecs-flex-row>
|
|
45
49
|
</div>
|
|
46
50
|
</template>
|
|
47
51
|
|
|
48
52
|
<script>
|
|
49
|
-
import
|
|
50
|
-
import
|
|
51
|
-
import
|
|
52
|
-
import
|
|
53
|
+
import EcsButtonToolbarGroup from '../button-toolbar-group/button-toolbar-group'
|
|
54
|
+
import EcsButtonToolbar from '../button-toolbar/button-toolbar'
|
|
55
|
+
import EcsPopoverList from '../popover-list/popover-list'
|
|
56
|
+
import EcsPopoverListItem from '../popover-list-item/popover-list-item'
|
|
53
57
|
|
|
54
58
|
export default {
|
|
55
59
|
components: {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
+
EcsButtonToolbarGroup,
|
|
61
|
+
EcsButtonToolbar,
|
|
62
|
+
EcsPopoverList,
|
|
63
|
+
EcsPopoverListItem
|
|
60
64
|
},
|
|
61
65
|
|
|
62
66
|
props: {
|
|
@@ -65,12 +69,6 @@
|
|
|
65
69
|
type: Boolean,
|
|
66
70
|
default: false
|
|
67
71
|
},
|
|
68
|
-
/** Determines which elements are visible in the pagination component. */
|
|
69
|
-
type: {
|
|
70
|
-
type: String,
|
|
71
|
-
validator: v => ['paginated', 'infinite'].includes(v),
|
|
72
|
-
default: 'paginated'
|
|
73
|
-
},
|
|
74
72
|
/** Briefly disables all controls while ongoing navigation. */
|
|
75
73
|
loading: {
|
|
76
74
|
type: Boolean,
|
|
@@ -83,28 +81,23 @@
|
|
|
83
81
|
/** The total pages of the index. */
|
|
84
82
|
totalPages: {
|
|
85
83
|
type: Number,
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
|
|
87
|
+
data() {
|
|
88
|
+
return {
|
|
89
|
+
dropdownShown: false
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
|
|
93
|
+
methods: {
|
|
94
|
+
toggleDropdown(){
|
|
95
|
+
if(this.totalPages)
|
|
96
|
+
this.dropdownShown = !this.dropdownShown
|
|
86
97
|
},
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
default: 400
|
|
91
|
-
},
|
|
92
|
-
/** Determines if the selector for items per page should be shown. */
|
|
93
|
-
showItemsPerPage: {
|
|
94
|
-
type: Boolean,
|
|
95
|
-
default: true
|
|
96
|
-
},
|
|
97
|
-
/** The options to be show as selectable in the items per page dropdown. Requires an array with Numbers. Default: `[25, 50, 100]` */
|
|
98
|
-
itemsPerPage: {
|
|
99
|
-
type: Array,
|
|
100
|
-
default() {
|
|
101
|
-
return [25, 50, 100]
|
|
102
|
-
}
|
|
103
|
-
},
|
|
104
|
-
/** The selected option in the items per page dropdown. */
|
|
105
|
-
itemsPerPageSelected: {
|
|
106
|
-
type: Number,
|
|
107
|
-
default: 100
|
|
98
|
+
|
|
99
|
+
hideDropdown(){
|
|
100
|
+
this.dropdownShown = false
|
|
108
101
|
}
|
|
109
102
|
}
|
|
110
103
|
}
|
|
@@ -123,9 +116,6 @@
|
|
|
123
116
|
box-shadow: 0 -1px 0 $color-gray-4;
|
|
124
117
|
position: relative;
|
|
125
118
|
z-index: 2;
|
|
126
|
-
font-size: $type-scale-2-font-size;
|
|
127
|
-
line-height: $type-scale-2-line-height;
|
|
128
|
-
color: $color-gray-15;
|
|
129
119
|
|
|
130
120
|
&-floating{
|
|
131
121
|
border-radius: $border-radius-small;
|
|
@@ -133,51 +123,94 @@
|
|
|
133
123
|
}
|
|
134
124
|
|
|
135
125
|
&-nav{
|
|
126
|
+
display: flex;
|
|
127
|
+
align-items: center;
|
|
136
128
|
height: 40px;
|
|
129
|
+
margin-right: 24px;
|
|
130
|
+
}
|
|
137
131
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
}
|
|
132
|
+
.ecs-toolbar-button-group{
|
|
133
|
+
margin-right: 32px;
|
|
141
134
|
}
|
|
142
135
|
|
|
143
|
-
|
|
144
|
-
|
|
136
|
+
.ecs-toolbar-button-icon{
|
|
137
|
+
font-size: $type-scale-2-font-size;
|
|
145
138
|
}
|
|
146
139
|
|
|
147
|
-
&-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
140
|
+
&-dropdown{
|
|
141
|
+
display: flex;
|
|
142
|
+
align-items: center;
|
|
143
|
+
font-size: $type-scale-2-font-size;
|
|
144
|
+
color: $color-gray-9;
|
|
145
|
+
|
|
146
|
+
.total{
|
|
147
|
+
color: $color-gray-15;
|
|
152
148
|
}
|
|
153
|
-
}
|
|
154
149
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
150
|
+
&-button{
|
|
151
|
+
background: #FFF;
|
|
152
|
+
display: flex;
|
|
153
|
+
align-items: center;
|
|
154
|
+
border: 1px solid $color-gray-3;
|
|
155
|
+
padding: 0 8px;
|
|
156
|
+
height: 32px;
|
|
157
|
+
transition: .2s;
|
|
158
|
+
border-radius: $border-radius-small;
|
|
159
|
+
margin: 0 6px;
|
|
160
|
+
cursor: pointer;
|
|
161
|
+
position: relative;
|
|
162
|
+
color: $color-gray-15;
|
|
163
|
+
|
|
164
|
+
&:after{
|
|
165
|
+
content: "";
|
|
166
|
+
background: svg-uri('<svg xmlns="http://www.w3.org/2000/svg" width="8" height="5" viewBox="0 0 8 5"><polyline fill="none" stroke="#858E9E" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" points="0 0 3 3 6 0" transform="translate(1 .8)"/></svg>');
|
|
167
|
+
width: 8px;
|
|
168
|
+
height: 5px;
|
|
169
|
+
margin-left: 6px;
|
|
170
|
+
}
|
|
158
171
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
172
|
+
&:hover{
|
|
173
|
+
border: 1px solid $color-gray-4;
|
|
174
|
+
box-shadow: 0 1px 1px rgba($color-gray-4, .25);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
&.active{
|
|
178
|
+
border: 1px solid $color-gray-5;
|
|
179
|
+
box-shadow: 0 1px 0 rgba($color-gray-2, .1) inset;
|
|
180
|
+
background: rgba($color-gray-5, .1);
|
|
181
|
+
}
|
|
164
182
|
|
|
165
|
-
|
|
166
|
-
|
|
183
|
+
&.disabled{
|
|
184
|
+
border: 1px solid $color-gray-3;
|
|
185
|
+
box-shadow: none;
|
|
186
|
+
cursor: not-allowed;
|
|
187
|
+
color: $color-gray-7;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
167
190
|
}
|
|
168
191
|
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
192
|
+
&-select{
|
|
193
|
+
position: absolute;
|
|
194
|
+
left: 0;
|
|
195
|
+
right: auto;
|
|
196
|
+
bottom: 34px;
|
|
197
|
+
z-index: 1000;
|
|
198
|
+
background-color: #fff;
|
|
199
|
+
box-shadow: 0 0 0 1px rgba($color-gray-15, .08), 0 1px 3px 0 rgba($color-gray-15, 0.15);
|
|
200
|
+
border-radius: $border-radius-small;
|
|
201
|
+
max-height: 30vh;
|
|
202
|
+
overflow: auto;
|
|
172
203
|
}
|
|
173
204
|
}
|
|
174
205
|
|
|
175
|
-
.
|
|
176
|
-
|
|
206
|
+
.dropdown-enter-active,
|
|
207
|
+
.dropdown-leave-active {
|
|
208
|
+
transition: all .3s;
|
|
177
209
|
}
|
|
178
210
|
|
|
179
|
-
.
|
|
211
|
+
.dropdown-enter,
|
|
212
|
+
.dropdown-leave-to {
|
|
180
213
|
opacity: 0;
|
|
181
|
-
transform:
|
|
214
|
+
transform: translateY(10px);
|
|
182
215
|
}
|
|
183
216
|
</style>
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="ecs-party-entry" :class="[ party, shared ? 'shared' : '', (color && background) ? 'ecs-party-entry-colored' : '']" :style="{ color: color }">
|
|
3
|
-
<ecs-icon v-if="icon && iconPosition == 'left'" :type="iconType" :color="iconColor" :style="'margin-right:'+iconSpacing" :
|
|
3
|
+
<ecs-icon v-if="icon && iconPosition == 'left'" :type="iconType" :color="iconColor" :style="'margin-right:'+iconSpacing" :size="iconSize" />
|
|
4
4
|
<span>
|
|
5
5
|
<slot></slot>
|
|
6
6
|
</span>
|
|
7
|
-
<ecs-icon v-if="icon && iconPosition == 'right'" :type="iconType" :color="iconColor" :style="'margin-left:'+iconSpacing" :
|
|
7
|
+
<ecs-icon v-if="icon && iconPosition == 'right'" :type="iconType" :color="iconColor" :style="'margin-left:'+iconSpacing" :size="iconSize" />
|
|
8
8
|
<div v-if="background" class="ecs-party-entry-background" />
|
|
9
9
|
</div>
|
|
10
10
|
</template>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<header class="ecs-popover-header">
|
|
3
3
|
<div class="ecs-popover-header-title">
|
|
4
|
-
<ecs-icon v-if="icon" :type="icon"
|
|
4
|
+
<ecs-icon v-if="icon" :type="icon" size="36" class="icon" color="#B4B9BE" />
|
|
5
5
|
<h2 class="ecs-headline-2">{{title}}</h2>
|
|
6
6
|
</div>
|
|
7
7
|
<div v-if="hasControls" class="ecs-popover-header-actions">
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<label v-for="option in options" :key="option.id" :for="option.id">
|
|
4
4
|
<input type="radio" :name="name" :value="option.id" :id="option.id" :checked="value==option.id" :disabled="option.disabled" @click="$emit('click', option.id)">
|
|
5
5
|
<span class="ecs-segment" :title="option.title">
|
|
6
|
-
<ecs-icon v-if="option.icon" :class="[option.icon && option.label ? 'icon-spacing' : '']" :type="option.icon"
|
|
6
|
+
<ecs-icon v-if="option.icon" :class="[option.icon && option.label ? 'icon-spacing' : '']" :type="option.icon" size="20" color="#2F333C" />
|
|
7
7
|
{{ option.label }}
|
|
8
8
|
</span>
|
|
9
9
|
</label>
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="ecs-form-select" :class="[sizeClass, typeClass, disabled ? `disabled` : null]">
|
|
3
|
-
<select @change="$emit('change', $event)"
|
|
3
|
+
<select @change="$emit('change', $event); hasPlaceholder = false"
|
|
4
4
|
@focus="$emit('focus', $event)"
|
|
5
5
|
@blur="$emit('blur', $event)"
|
|
6
|
-
v-bind="{ id, name, disabled, required }"
|
|
7
|
-
|
|
6
|
+
v-bind="{ id, name, disabled, required }"
|
|
7
|
+
:class="hasPlaceholder? 'placeholder' : ''" >
|
|
8
|
+
<option v-if="placeholder" selected hidden disabled>{{placeholder}}</option>
|
|
8
9
|
<slot></slot>
|
|
9
10
|
</select>
|
|
10
11
|
</div>
|
|
@@ -35,20 +36,36 @@ export default {
|
|
|
35
36
|
type: Boolean,
|
|
36
37
|
default: false
|
|
37
38
|
},
|
|
39
|
+
placeholder: {
|
|
40
|
+
type: String
|
|
41
|
+
},
|
|
38
42
|
id: String,
|
|
39
43
|
name: String
|
|
40
44
|
},
|
|
45
|
+
|
|
46
|
+
data() {
|
|
47
|
+
return {
|
|
48
|
+
hasPlaceholder: false
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
|
|
41
52
|
computed: {
|
|
42
53
|
sizeClass() {
|
|
43
54
|
if (this.size && this.size !== '')
|
|
44
55
|
return `ecs-form-select-${this.size}`
|
|
45
56
|
return this.size
|
|
46
57
|
},
|
|
58
|
+
|
|
47
59
|
typeClass() {
|
|
48
60
|
if (this.type && this.type !== '')
|
|
49
61
|
return `ecs-form-select-${this.type}`
|
|
50
62
|
return this.type
|
|
51
63
|
}
|
|
64
|
+
},
|
|
65
|
+
|
|
66
|
+
mounted: function () {
|
|
67
|
+
if (this.placeholder && this.placeholder !== '')
|
|
68
|
+
this.hasPlaceholder = true
|
|
52
69
|
}
|
|
53
70
|
}
|
|
54
71
|
</script>
|
|
@@ -118,6 +135,10 @@ export default {
|
|
|
118
135
|
option[value=""][disabled] {
|
|
119
136
|
display: none;
|
|
120
137
|
}
|
|
138
|
+
|
|
139
|
+
&.placeholder{
|
|
140
|
+
color: $color-gray-9;
|
|
141
|
+
}
|
|
121
142
|
}
|
|
122
143
|
|
|
123
144
|
&-subtle{
|