@eturnity/eturnity_reusable_components 7.24.3-EPDM-10576.1 → 7.24.3-EPDM-11320.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/.eslintrc.js +125 -0
- package/package.json +6 -20
- package/src/App.vue +75 -70
- package/src/components/addNewButton/index.vue +24 -27
- package/src/components/banner/actionBanner/index.vue +32 -30
- package/src/components/banner/banner/index.vue +88 -80
- package/src/components/banner/infoBanner/index.vue +36 -44
- package/src/components/buttons/buttonIcon/index.vue +83 -78
- package/src/components/buttons/closeButton/index.vue +26 -26
- package/src/components/buttons/mainButton/index.vue +80 -76
- package/src/components/card/index.vue +56 -52
- package/src/components/collapsableInfoText/index.vue +81 -76
- package/src/components/deleteIcon/index.vue +31 -28
- package/src/components/draggableInputHandle/index.vue +20 -17
- package/src/components/dropdown/Dropdown.stories.js +8 -8
- package/src/components/dropdown/index.vue +75 -72
- package/src/components/errorMessage/index.vue +23 -23
- package/src/components/filter/filterSettings.vue +349 -333
- package/src/components/filter/index.vue +130 -130
- package/src/components/filter/parentDropdown.vue +43 -40
- package/src/components/icon/Icons.stories.js +4 -4
- package/src/components/icon/iconCache.js +1 -1
- package/src/components/icon/iconCollection.vue +40 -37
- package/src/components/icon/index.vue +72 -65
- package/src/components/iconWrapper/index.vue +122 -118
- package/src/components/infoCard/index.vue +20 -17
- package/src/components/infoText/index.vue +88 -82
- package/src/components/inputs/checkbox/index.vue +91 -94
- package/src/components/inputs/inputNumber/index.vue +508 -488
- package/src/components/inputs/inputNumberQuestion/index.vue +127 -124
- package/src/components/inputs/inputText/index.vue +265 -252
- package/src/components/inputs/radioButton/index.vue +135 -120
- package/src/components/inputs/searchInput/index.vue +84 -81
- package/src/components/inputs/select/index.vue +644 -631
- package/src/components/inputs/select/option/index.vue +91 -91
- package/src/components/inputs/select/select.stories.js +7 -7
- package/src/components/inputs/slider/index.vue +46 -46
- package/src/components/inputs/switchField/index.vue +159 -152
- package/src/components/inputs/textAreaInput/index.vue +120 -113
- package/src/components/inputs/toggle/index.vue +137 -127
- package/src/components/label/index.vue +64 -61
- package/src/components/markerItem/index.vue +40 -40
- package/src/components/modals/actionModal/index.vue +32 -29
- package/src/components/modals/infoModal/index.vue +34 -27
- package/src/components/modals/modal/index.vue +88 -80
- package/src/components/navigationTabs/index.vue +50 -47
- package/src/components/pageSubtitle/index.vue +33 -29
- package/src/components/pageTitle/index.vue +47 -39
- package/src/components/pagination/index.vue +64 -62
- package/src/components/progressBar/index.vue +70 -67
- package/src/components/projectMarker/index.vue +172 -163
- package/src/components/rangeSlider/Slider.vue +449 -449
- package/src/components/rangeSlider/index.vue +282 -270
- package/src/components/rangeSlider/utils/dom.js +3 -3
- package/src/components/selectedOptions/index.vue +51 -51
- package/src/components/sideMenu/index.vue +117 -109
- package/src/components/spinner/index.vue +37 -34
- package/src/components/tableDropdown/index.vue +343 -326
- package/src/components/tables/mainTable/index.vue +109 -106
- package/src/components/tables/viewTable/index.vue +105 -92
- package/src/components/threeDots/index.vue +174 -171
- package/src/components/videoThumbnail/index.vue +67 -59
- package/src/components/videoThumbnail/videoThumbnail.stories.js +6 -6
- package/.prettierrc +0 -7
- package/public/favicon.ico +0 -0
- package/public/index.html +0 -17
@@ -1,46 +1,61 @@
|
|
1
1
|
<template>
|
2
|
-
<
|
3
|
-
<
|
4
|
-
|
2
|
+
<ComponentWrapper :layout="layout">
|
3
|
+
<RadioWrapper
|
4
|
+
v-for="(item, index) in options"
|
5
|
+
:key="item.value"
|
6
|
+
>
|
7
|
+
<LabelContainer
|
8
|
+
:checkmark-color="checkmarkColor"
|
9
|
+
:has-label="item.label"
|
10
|
+
:is-checked="selectedOption === item.value"
|
11
|
+
:is-disabled="item.disabled"
|
5
12
|
:size="size"
|
6
|
-
:hasLabel="item.label"
|
7
|
-
:isDisabled="item.disabled"
|
8
|
-
:isChecked="selectedOption === item.value"
|
9
|
-
:checkmarkColor="checkmarkColor"
|
10
13
|
>
|
11
|
-
<
|
14
|
+
<Radio
|
15
|
+
:checked="selectedOption === item.value"
|
16
|
+
:data-id="`radio_button_${dataId}_option_${item.value}`"
|
17
|
+
:disabled="item.disabled"
|
18
|
+
:name="'radioButtons_' + radioName"
|
12
19
|
type="radio"
|
13
20
|
:value="selectedOption"
|
14
21
|
@click="onInputHandler(item.value)"
|
15
|
-
:name="'radioButtons_' + radioName"
|
16
|
-
:checked="selectedOption === item.value"
|
17
|
-
:disabled="item.disabled"
|
18
|
-
:data-id="`radio_button_${dataId}_option_${item.value}`"
|
19
22
|
/>
|
20
23
|
<span class="checkmark"></span>
|
21
|
-
<
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
24
|
+
<LabelText
|
25
|
+
v-if="item.label"
|
26
|
+
:is-disabled="item.disabled"
|
27
|
+
>
|
28
|
+
{{ item.label }}
|
29
|
+
</LabelText>
|
30
|
+
<InfoText
|
31
|
+
v-if="item.infoText"
|
32
|
+
size="16px"
|
33
|
+
:text="item.infoText"
|
34
|
+
/>
|
35
|
+
</LabelContainer>
|
36
|
+
<ImageContainer v-if="item.img">
|
37
|
+
<RadioImage :src="item.img" />
|
38
|
+
<div
|
39
|
+
class="search-icn-container"
|
40
|
+
@click="toggleImageModal(index)"
|
41
|
+
>
|
27
42
|
<img
|
28
43
|
class="search-icn"
|
29
44
|
:src="require('../../../assets/icons/search_icon.png')"
|
30
45
|
/>
|
31
46
|
</div>
|
32
|
-
</
|
33
|
-
<
|
47
|
+
</ImageContainer>
|
48
|
+
<Modal
|
34
49
|
v-if="item.img"
|
35
|
-
:
|
50
|
+
:is-open="isImageOpen(index)"
|
36
51
|
@on-close="toggleImageModal(null)"
|
37
52
|
>
|
38
|
-
<
|
39
|
-
<
|
40
|
-
</
|
41
|
-
</
|
42
|
-
</
|
43
|
-
</
|
53
|
+
<ModalImageContainer>
|
54
|
+
<ModalImage :src="item.img" />
|
55
|
+
</ModalImageContainer>
|
56
|
+
</Modal>
|
57
|
+
</RadioWrapper>
|
58
|
+
</ComponentWrapper>
|
44
59
|
</template>
|
45
60
|
|
46
61
|
<script>
|
@@ -61,22 +76,22 @@
|
|
61
76
|
// { label: 'Button 4', value: 'button_4', disabled: true }
|
62
77
|
// ]
|
63
78
|
|
64
|
-
import styled from 'vue3-styled-components'
|
65
|
-
import Modal from '../../modals/modal'
|
66
|
-
import InfoText from '../../infoText'
|
79
|
+
import styled from 'vue3-styled-components'
|
80
|
+
import Modal from '../../modals/modal'
|
81
|
+
import InfoText from '../../infoText'
|
67
82
|
|
68
|
-
const wrapperProps = {
|
69
|
-
|
70
|
-
}
|
71
|
-
const ComponentWrapper = styled('div', wrapperProps)`
|
83
|
+
const wrapperProps = {
|
84
|
+
layout: String
|
85
|
+
}
|
86
|
+
const ComponentWrapper = styled('div', wrapperProps)`
|
72
87
|
display: flex;
|
73
88
|
flex-direction: ${(props) =>
|
74
|
-
|
89
|
+
props.layout === 'vertical' ? 'column' : 'row'};
|
75
90
|
grid-gap: 10px 5px;
|
76
91
|
flex-wrap: wrap;
|
77
92
|
`
|
78
93
|
|
79
|
-
const Radio = styled.input`
|
94
|
+
const Radio = styled.input`
|
80
95
|
cursor: pointer;
|
81
96
|
position: absolute;
|
82
97
|
opacity: 0;
|
@@ -85,26 +100,26 @@ const Radio = styled.input`
|
|
85
100
|
width: 0;
|
86
101
|
`
|
87
102
|
|
88
|
-
const RadioWrapper = styled.div`
|
103
|
+
const RadioWrapper = styled.div`
|
89
104
|
display: grid;
|
90
105
|
grid-gap: 10px;
|
91
106
|
`
|
92
107
|
|
93
|
-
const containerProps = {
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
}
|
99
|
-
const LabelContainer = styled('label', containerProps)`
|
108
|
+
const containerProps = {
|
109
|
+
size: String,
|
110
|
+
isDisabled: Boolean,
|
111
|
+
isChecked: Boolean,
|
112
|
+
checkmarkColor: String
|
113
|
+
}
|
114
|
+
const LabelContainer = styled('label', containerProps)`
|
100
115
|
display: grid;
|
101
116
|
grid-template-columns: auto 1fr auto;
|
102
117
|
grid-gap: ${(props) =>
|
103
118
|
props.hasLabel
|
104
|
-
|
119
|
+
? '15px' : 0 };
|
105
120
|
align-items: center;
|
106
121
|
color: ${(props) =>
|
107
|
-
|
122
|
+
props.isDisabled ? props.theme.colors.grey2 : props.theme.colors.black};
|
108
123
|
position: relative;
|
109
124
|
cursor: ${(props) => (props.isDisabled ? 'not-allowed' : 'pointer')};
|
110
125
|
font-size: ${(props) =>
|
@@ -112,7 +127,7 @@ const LabelContainer = styled('label', containerProps)`
|
|
112
127
|
? '16px'
|
113
128
|
: props.size === 'medium'
|
114
129
|
? '13px'
|
115
|
-
|
130
|
+
: '10px'};
|
116
131
|
user-select: none;
|
117
132
|
flex: auto;
|
118
133
|
align-self: baseline;
|
@@ -123,13 +138,13 @@ const LabelContainer = styled('label', containerProps)`
|
|
123
138
|
? '23px'
|
124
139
|
: props.size === 'medium'
|
125
140
|
? '16px'
|
126
|
-
|
141
|
+
: '12px'};
|
127
142
|
width: ${(props) =>
|
128
143
|
props.size === 'large'
|
129
144
|
? '23px'
|
130
145
|
: props.size === 'medium'
|
131
146
|
? '16px'
|
132
|
-
|
147
|
+
: '12px'};
|
133
148
|
background-color: #fff;
|
134
149
|
border-radius: 100%;
|
135
150
|
border: 1px solid ${(props) => props.theme.colors.mediumGray};
|
@@ -145,31 +160,31 @@ const LabelContainer = styled('label', containerProps)`
|
|
145
160
|
? '10px'
|
146
161
|
: props.size === 'medium'
|
147
162
|
? '8px'
|
148
|
-
|
163
|
+
: '6px'};
|
149
164
|
height: ${(props) =>
|
150
165
|
props.size === 'large'
|
151
166
|
? '10px'
|
152
167
|
: props.size === 'medium'
|
153
168
|
? '8px'
|
154
|
-
|
169
|
+
: '6px'};
|
155
170
|
border-radius: 100%;
|
156
171
|
background: ${(props) =>
|
157
|
-
|
172
|
+
props.checkmarkColor ? props.checkmarkColor : props.theme.colors.green};
|
158
173
|
}
|
159
174
|
}
|
160
175
|
`
|
161
176
|
|
162
|
-
const textAttrs = { isDisabled: Boolean }
|
163
|
-
const LabelText = styled('div', textAttrs)`
|
177
|
+
const textAttrs = { isDisabled: Boolean }
|
178
|
+
const LabelText = styled('div', textAttrs)`
|
164
179
|
color: ${(props) =>
|
165
|
-
|
180
|
+
props.isDisabled ? props.theme.colors.grey2 : props.theme.colors.black};
|
166
181
|
`
|
167
182
|
|
168
|
-
const RadioImage = styled.img`
|
183
|
+
const RadioImage = styled.img`
|
169
184
|
max-width: 100px;
|
170
185
|
`
|
171
186
|
|
172
|
-
const ImageContainer = styled.div`
|
187
|
+
const ImageContainer = styled.div`
|
173
188
|
border-radius: 4px;
|
174
189
|
cursor: pointer;
|
175
190
|
display: grid;
|
@@ -194,77 +209,77 @@ const ImageContainer = styled.div`
|
|
194
209
|
}
|
195
210
|
`
|
196
211
|
|
197
|
-
const ModalImage = styled.img``
|
212
|
+
const ModalImage = styled.img``
|
198
213
|
|
199
|
-
const ModalImageContainer = styled.div`
|
214
|
+
const ModalImageContainer = styled.div`
|
200
215
|
padding: 40px;
|
201
216
|
`
|
202
217
|
|
203
|
-
export default {
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
},
|
218
|
-
props: {
|
219
|
-
selectedOption: {
|
220
|
-
required: true,
|
221
|
-
default: false
|
222
|
-
},
|
223
|
-
options: {
|
224
|
-
required: true,
|
225
|
-
default: []
|
226
|
-
},
|
227
|
-
layout: {
|
228
|
-
required: false,
|
229
|
-
default: 'horizontal' //2 options: 'vertical' (only 1 per row) & 'horizontal' (many per row)
|
218
|
+
export default {
|
219
|
+
name: 'RadioButton',
|
220
|
+
components: {
|
221
|
+
Radio,
|
222
|
+
ComponentWrapper,
|
223
|
+
LabelContainer,
|
224
|
+
RadioWrapper,
|
225
|
+
RadioImage,
|
226
|
+
ImageContainer,
|
227
|
+
Modal,
|
228
|
+
ModalImage,
|
229
|
+
ModalImageContainer,
|
230
|
+
InfoText,
|
231
|
+
LabelText
|
230
232
|
},
|
231
|
-
|
232
|
-
|
233
|
-
|
233
|
+
props: {
|
234
|
+
selectedOption: {
|
235
|
+
required: true,
|
236
|
+
default: false
|
237
|
+
},
|
238
|
+
options: {
|
239
|
+
required: true,
|
240
|
+
default: []
|
241
|
+
},
|
242
|
+
layout: {
|
243
|
+
required: false,
|
244
|
+
default: 'horizontal' //2 options: 'vertical' (only 1 per row) & 'horizontal' (many per row)
|
245
|
+
},
|
246
|
+
size: {
|
247
|
+
required: false,
|
248
|
+
default: 'medium' // small, medium, large
|
249
|
+
},
|
250
|
+
name: {
|
251
|
+
required: false,
|
252
|
+
default: ''
|
253
|
+
},
|
254
|
+
checkmarkColor: {
|
255
|
+
required: false,
|
256
|
+
default: ''
|
257
|
+
},
|
258
|
+
dataId: {
|
259
|
+
type: String,
|
260
|
+
default: 'key'
|
261
|
+
}
|
234
262
|
},
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
required: false,
|
241
|
-
default: ''
|
242
|
-
},
|
243
|
-
dataId: {
|
244
|
-
type: String,
|
245
|
-
default: 'key'
|
246
|
-
}
|
247
|
-
},
|
248
|
-
data() {
|
249
|
-
return {
|
250
|
-
selectedImage: null,
|
251
|
-
radioName: ''
|
252
|
-
}
|
253
|
-
},
|
254
|
-
methods: {
|
255
|
-
onInputHandler(value) {
|
256
|
-
this.$emit('on-radio-change', value)
|
263
|
+
data() {
|
264
|
+
return {
|
265
|
+
selectedImage: null,
|
266
|
+
radioName: ''
|
267
|
+
}
|
257
268
|
},
|
258
|
-
|
259
|
-
|
269
|
+
created() {
|
270
|
+
this.radioName =
|
271
|
+
this.name.length === 0 ? Math.round(Math.random() * 10000) : this.name
|
260
272
|
},
|
261
|
-
|
262
|
-
|
273
|
+
methods: {
|
274
|
+
onInputHandler(value) {
|
275
|
+
this.$emit('on-radio-change', value)
|
276
|
+
},
|
277
|
+
isImageOpen(index) {
|
278
|
+
return this.selectedImage === index
|
279
|
+
},
|
280
|
+
toggleImageModal(value) {
|
281
|
+
this.selectedImage = value
|
282
|
+
}
|
263
283
|
}
|
264
|
-
},
|
265
|
-
created() {
|
266
|
-
this.radioName =
|
267
|
-
this.name.length === 0 ? Math.round(Math.random() * 10000) : this.name
|
268
284
|
}
|
269
|
-
}
|
270
285
|
</script>
|
@@ -1,21 +1,24 @@
|
|
1
1
|
<template>
|
2
|
-
<
|
3
|
-
<
|
2
|
+
<Container :input-width="inputWidth">
|
3
|
+
<InputWrapper
|
4
|
+
:icon-color="iconColor"
|
5
|
+
:icon-position="iconPosition"
|
6
|
+
>
|
4
7
|
<SearchIconSvg class="search-icn" />
|
5
|
-
<
|
8
|
+
<InputContainer
|
6
9
|
ref="inputElement"
|
10
|
+
:data-id="dataId"
|
11
|
+
:disabled="disabled"
|
12
|
+
:has-focus="hasFocus"
|
13
|
+
:input-width="inputWidth"
|
14
|
+
:is-disabled="disabled"
|
15
|
+
:is-filter="isFilter"
|
7
16
|
:placeholder="placeholder"
|
8
17
|
:value="value"
|
9
18
|
@input="onChangeHandler($event)"
|
10
|
-
:disabled="disabled"
|
11
|
-
:isDisabled="disabled"
|
12
|
-
:inputWidth="inputWidth"
|
13
|
-
:isFilter="isFilter"
|
14
|
-
:hasFocus="hasFocus"
|
15
|
-
:data-id="dataId"
|
16
19
|
/>
|
17
|
-
</
|
18
|
-
</
|
20
|
+
</InputWrapper>
|
21
|
+
</Container>
|
19
22
|
</template>
|
20
23
|
|
21
24
|
<script>
|
@@ -32,23 +35,23 @@
|
|
32
35
|
// iconPosition="left"
|
33
36
|
// iconColor="grey2"
|
34
37
|
// />
|
35
|
-
import styled from 'vue3-styled-components'
|
36
|
-
import SearchIconSvg from '../../../assets/icons/search_icon_black.svg'
|
38
|
+
import styled from 'vue3-styled-components'
|
39
|
+
import SearchIconSvg from '../../../assets/icons/search_icon_black.svg'
|
37
40
|
|
38
|
-
const inputAttrs = {
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
}
|
43
|
-
const Container = styled('div', inputAttrs)`
|
41
|
+
const inputAttrs = {
|
42
|
+
isDisabled: Boolean,
|
43
|
+
inputWidth: String,
|
44
|
+
isFilter: Boolean
|
45
|
+
}
|
46
|
+
const Container = styled('div', inputAttrs)`
|
44
47
|
width: ${(props) => (props.inputWidth ? props.inputWidth : '100%')};
|
45
48
|
position: relative;
|
46
49
|
`
|
47
50
|
|
48
|
-
const InputContainer = styled('input', inputAttrs)`
|
51
|
+
const InputContainer = styled('input', inputAttrs)`
|
49
52
|
border: 1px solid ${(props) => props.theme.colors.grey4};
|
50
53
|
padding: ${(props) =>
|
51
|
-
|
54
|
+
props.isFilter ? '7px 30px 7px 10px' : '11px 30px 11px 10px'};
|
52
55
|
border-radius: 4px;
|
53
56
|
font-size: 13px;
|
54
57
|
color: ${(props) => props.theme.colors.black};
|
@@ -65,7 +68,7 @@ const InputContainer = styled('input', inputAttrs)`
|
|
65
68
|
}
|
66
69
|
`
|
67
70
|
|
68
|
-
const InputWrapper = styled.span`
|
71
|
+
const InputWrapper = styled.span`
|
69
72
|
position: relative;
|
70
73
|
|
71
74
|
svg {
|
@@ -78,73 +81,73 @@ const InputWrapper = styled.span`
|
|
78
81
|
fill: ${(props) =>
|
79
82
|
props.theme.colors[props.iconColor]
|
80
83
|
? props.theme.colors[props.iconColor]
|
81
|
-
|
84
|
+
: props.iconColor};
|
82
85
|
}
|
83
86
|
}
|
84
87
|
`
|
85
88
|
|
86
|
-
export default {
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
},
|
94
|
-
props: {
|
95
|
-
value: {
|
96
|
-
required: true
|
97
|
-
},
|
98
|
-
disabled: {
|
99
|
-
required: false,
|
100
|
-
default: false
|
101
|
-
},
|
102
|
-
placeholder: {
|
103
|
-
required: false,
|
104
|
-
default: ''
|
105
|
-
},
|
106
|
-
inputWidth: {
|
107
|
-
required: false,
|
108
|
-
default: null
|
89
|
+
export default {
|
90
|
+
name: 'SearchInput',
|
91
|
+
components: {
|
92
|
+
InputContainer,
|
93
|
+
InputWrapper,
|
94
|
+
Container,
|
95
|
+
SearchIconSvg
|
109
96
|
},
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
97
|
+
props: {
|
98
|
+
value: {
|
99
|
+
required: true
|
100
|
+
},
|
101
|
+
disabled: {
|
102
|
+
required: false,
|
103
|
+
default: false
|
104
|
+
},
|
105
|
+
placeholder: {
|
106
|
+
required: false,
|
107
|
+
default: ''
|
108
|
+
},
|
109
|
+
inputWidth: {
|
110
|
+
required: false,
|
111
|
+
default: null
|
112
|
+
},
|
113
|
+
isFilter: {
|
114
|
+
required: false,
|
115
|
+
default: false
|
116
|
+
},
|
117
|
+
hasFocus: {
|
118
|
+
required: false,
|
119
|
+
default: false
|
120
|
+
},
|
121
|
+
dataId: {
|
122
|
+
required: false,
|
123
|
+
default: ''
|
124
|
+
},
|
125
|
+
iconPosition: {
|
126
|
+
type: String,
|
127
|
+
default: 'right'
|
128
|
+
},
|
129
|
+
iconColor: {
|
130
|
+
type: String,
|
131
|
+
default: 'black'
|
132
|
+
}
|
125
133
|
},
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
onChangeHandler(event) {
|
134
|
-
this.$emit('on-change', event.target.value)
|
134
|
+
emits: ['on-change'],
|
135
|
+
watch: {
|
136
|
+
hasFocus(newVal) {
|
137
|
+
if (newVal) {
|
138
|
+
this.focusInputElement()
|
139
|
+
}
|
140
|
+
}
|
135
141
|
},
|
136
|
-
|
137
|
-
|
138
|
-
this.$
|
139
|
-
}
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
if (newVal) {
|
145
|
-
this.focusInputElement()
|
142
|
+
methods: {
|
143
|
+
onChangeHandler(event) {
|
144
|
+
this.$emit('on-change', event.target.value)
|
145
|
+
},
|
146
|
+
focusInputElement() {
|
147
|
+
this.$nextTick(() => {
|
148
|
+
this.$refs.inputElement.$el.focus()
|
149
|
+
})
|
146
150
|
}
|
147
151
|
}
|
148
152
|
}
|
149
|
-
}
|
150
153
|
</script>
|