@everchron/ec-shards 4.2.0 → 4.4.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/css/app.99f04c26.css +1 -0
- package/dist/favicon.ico +0 -0
- 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/dist/index.html +1 -0
- package/dist/js/app.e6219346.js +2 -0
- package/dist/js/app.e6219346.js.map +1 -0
- package/dist/js/chunk-vendors.786a1bc3.js +12 -0
- package/dist/js/chunk-vendors.786a1bc3.js.map +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/action-toolbar/action-toolbar.vue +2 -2
- 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 +6 -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/dist/demo.html +0 -10
- package/dist/ec-shards.common.js +0 -26157
- package/dist/ec-shards.common.js.map +0 -1
- package/dist/ec-shards.css +0 -1
- package/dist/ec-shards.umd.js +0 -26167
- package/dist/ec-shards.umd.js.map +0 -1
- package/dist/ec-shards.umd.min.js +0 -6
- package/dist/ec-shards.umd.min.js.map +0 -1
- package/src/components/tiptap/tiptap.vue +0 -246
|
@@ -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
|
@@ -23,6 +23,7 @@ import EcsButtonToolbarIcon from "./button-toolbar-icon/button-toolbar-icon.vue"
|
|
|
23
23
|
import EcsCard from "./card/card.vue"
|
|
24
24
|
import EcsCitationLine from "./citation-line/citation-line.vue"
|
|
25
25
|
import EcsCheckbox from "./checkbox/checkbox.vue"
|
|
26
|
+
import EcsContextMenu from "./context-menu/context-menu.vue"
|
|
26
27
|
import EcsCollapse from "./collapse/collapse.vue"
|
|
27
28
|
import EcsCollectionControl from "./collection-control/collection-control.vue"
|
|
28
29
|
import EcsComment from "./comment/comment.vue"
|
|
@@ -48,6 +49,7 @@ import EcsEntryLink from "./entry-link/entry-link.vue"
|
|
|
48
49
|
import EcsExcerptSnippet from "./excerpt-snippet/excerpt-snippet.vue"
|
|
49
50
|
import EcsFavicon from "./favicon/favicon.vue"
|
|
50
51
|
import EcsFileIcon from "./file-icon/file-icon.vue"
|
|
52
|
+
import EcsFillIcon from "./fill-icon/fill-icon.vue"
|
|
51
53
|
import EcsFileList from "./file-list/file-list.vue"
|
|
52
54
|
import EcsFileListItem from "./file-list-item/file-list-item.vue"
|
|
53
55
|
import EcsFlag from "./flag/flag.vue"
|
|
@@ -102,6 +104,7 @@ import EcsSection from "./section/section.vue"
|
|
|
102
104
|
import EcsSegment from "./segment/segment.vue"
|
|
103
105
|
import EcsSelect from "./select/select.vue"
|
|
104
106
|
import EcsSelectTile from "./select-tile/select-tile.vue"
|
|
107
|
+
import EcsSeparator from "./separator/separator.vue"
|
|
105
108
|
import EcsSequenceMap from "./sequence-map/sequence-map.vue"
|
|
106
109
|
import EcsSequenceMapButton from "./sequence-map-button/sequence-map-button.vue"
|
|
107
110
|
import EcsSidebar from "./sidebar/sidebar.vue"
|
|
@@ -150,6 +153,7 @@ const Components = {
|
|
|
150
153
|
EcsButtonToolbarGroup,
|
|
151
154
|
EcsButtonToolbarIcon,
|
|
152
155
|
EcsCheckbox,
|
|
156
|
+
EcsContextMenu,
|
|
153
157
|
EcsCard,
|
|
154
158
|
EcsCitationLine,
|
|
155
159
|
EcsCollapse,
|
|
@@ -177,6 +181,7 @@ const Components = {
|
|
|
177
181
|
EcsExcerptSnippet,
|
|
178
182
|
EcsFavicon,
|
|
179
183
|
EcsFileIcon,
|
|
184
|
+
EcsFillIcon,
|
|
180
185
|
EcsFileList,
|
|
181
186
|
EcsFileListItem,
|
|
182
187
|
EcsFlag,
|
|
@@ -231,6 +236,7 @@ const Components = {
|
|
|
231
236
|
EcsSegment,
|
|
232
237
|
EcsSelect,
|
|
233
238
|
EcsSelectTile,
|
|
239
|
+
EcsSeparator,
|
|
234
240
|
EcsSequenceMap,
|
|
235
241
|
EcsSequenceMapButton,
|
|
236
242
|
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{
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="ecs-separator" :class="classes" :style="{margin: marginStyles, width: width, height: height}" />
|
|
3
|
+
</template>
|
|
4
|
+
|
|
5
|
+
<script>
|
|
6
|
+
export default {
|
|
7
|
+
props: {
|
|
8
|
+
/** Determines if the separator line is horinzontally or vertically shown. */
|
|
9
|
+
type: {
|
|
10
|
+
type: String,
|
|
11
|
+
default: 'horizontal',
|
|
12
|
+
validator: v => ['horizontal', 'vertical'].includes(v)
|
|
13
|
+
},
|
|
14
|
+
/** Determines the color strength of the line. */
|
|
15
|
+
strength: {
|
|
16
|
+
type: String,
|
|
17
|
+
default: 'medium',
|
|
18
|
+
validator: v => ['soft', 'medium', 'strong'].includes(v)
|
|
19
|
+
},
|
|
20
|
+
/** Determines to margin (top/bottom for horizontal, left/right for vertical). If a `Number` is passed, the margin will used for both top/bottom or left/right. If an `Array` is passed (eg. `[8, 16]`), you can set individual margins for each side (CSS shorthand syntax). */
|
|
21
|
+
margin: {
|
|
22
|
+
type: [Number, Array],
|
|
23
|
+
default: 0
|
|
24
|
+
},
|
|
25
|
+
/** Determines the width of the separator. Any valid css (px, %) value possible. */
|
|
26
|
+
width: {
|
|
27
|
+
type: String
|
|
28
|
+
},
|
|
29
|
+
/** Determines the height of the separator. Any valid css (px, %) value possible. Vertical separators typically require a pixel value height. */
|
|
30
|
+
height: {
|
|
31
|
+
type: String
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
|
|
35
|
+
computed: {
|
|
36
|
+
classes(){
|
|
37
|
+
return 'ecs-separator-' + this.type + ' ecs-separator-' + this.strength
|
|
38
|
+
},
|
|
39
|
+
|
|
40
|
+
marginStyles(){
|
|
41
|
+
if(typeof(this.margin) === 'number') {
|
|
42
|
+
if(this.type === 'horizontal')
|
|
43
|
+
return this.margin + 'px 0 ' + this.margin + 'px 0'
|
|
44
|
+
else
|
|
45
|
+
return '0 ' + this.margin + 'px 0 ' + this.margin + 'px'
|
|
46
|
+
} else if(typeof(this.margin) === 'object') {
|
|
47
|
+
const iterator = this.margin.values()
|
|
48
|
+
let margins
|
|
49
|
+
let iteration = 0
|
|
50
|
+
for (const value of iterator) {
|
|
51
|
+
if(iteration == 0)
|
|
52
|
+
margins = value + 'px '
|
|
53
|
+
else
|
|
54
|
+
margins = margins + value + 'px '
|
|
55
|
+
iteration++
|
|
56
|
+
}
|
|
57
|
+
return margins
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
</script>
|
|
63
|
+
|
|
64
|
+
<style lang="scss" scoped>
|
|
65
|
+
@import "../../tokens/build/scss/tokens.scss";
|
|
66
|
+
|
|
67
|
+
.ecs-separator{
|
|
68
|
+
border-radius: 1px;
|
|
69
|
+
|
|
70
|
+
&-soft{
|
|
71
|
+
background-color: $color-gray-2;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
&-medium{
|
|
75
|
+
background-color: $color-gray-3;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
&-strong{
|
|
79
|
+
background-color: $color-gray-4;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
&-horizontal{
|
|
83
|
+
width: 100%;
|
|
84
|
+
height: 1px;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
&-vertical{
|
|
88
|
+
height: 100%;
|
|
89
|
+
width: 1px;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
</style>
|
|
93
|
+
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
:class="[active ? 'active' : '', loading ? 'loading' : '', disabled ? 'disabled' : '', completed ? 'completed' : '']">
|
|
5
5
|
<span class="count">
|
|
6
6
|
{{ step }}
|
|
7
|
-
<ecs-icon v-if="loading" type="loading" class="loading"
|
|
7
|
+
<ecs-icon v-if="loading" type="loading" class="loading" size="34" />
|
|
8
8
|
</span>
|
|
9
9
|
<slot></slot>
|
|
10
10
|
<div class="step-indicator" />
|