@eturnity/eturnity_reusable_components 7.12.7-EPDM-7951.1 → 7.12.7-EPDM-10597.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/.storybook/preview.js +1 -1
- package/package.json +23 -19
- package/src/App.vue +2 -2
- package/src/assets/svgIcons/anchor.svg +18 -0
- package/src/components/addNewButton/index.vue +3 -5
- package/src/components/buttons/buttonIcon/index.vue +1 -1
- package/src/components/buttons/closeButton/index.vue +1 -1
- package/src/components/buttons/mainButton/index.vue +1 -6
- package/src/components/deleteIcon/DeleteIcon.stories.js +7 -7
- package/src/components/deleteIcon/index.vue +21 -25
- package/src/components/draggableInputHandle/index.vue +25 -24
- package/src/components/dropdown/index.vue +110 -129
- package/src/components/errorMessage/index.vue +5 -10
- package/src/components/filter/filterSettings.vue +97 -57
- package/src/components/filter/index.vue +3 -3
- package/src/components/filter/parentDropdown.vue +2 -2
- package/src/components/icon/iconCollection.vue +2 -2
- package/src/components/icon/index.vue +70 -67
- package/src/components/iconWrapper/index.vue +4 -1
- package/src/components/infoCard/index.vue +3 -2
- package/src/components/infoText/index.vue +1 -1
- package/src/components/inputs/checkbox/index.vue +6 -21
- package/src/components/inputs/inputNumber/index.vue +11 -8
- package/src/components/inputs/inputNumberQuestion/index.vue +1 -1
- package/src/components/inputs/inputText/index.vue +3 -3
- package/src/components/inputs/radioButton/index.vue +1 -1
- package/src/components/inputs/searchInput/index.vue +8 -7
- package/src/components/inputs/select/index.vue +55 -199
- package/src/components/inputs/select/option/index.vue +5 -5
- package/src/components/inputs/slider/index.vue +16 -16
- package/src/components/inputs/switchField/index.vue +2 -2
- package/src/components/inputs/textAreaInput/index.vue +1 -1
- package/src/components/inputs/toggle/index.vue +2 -2
- package/src/components/label/index.vue +31 -27
- package/src/components/modals/modal/index.vue +6 -2
- package/src/components/navigationTabs/index.vue +20 -27
- package/src/components/pageSubtitle/index.vue +1 -1
- package/src/components/pageTitle/index.vue +4 -4
- package/src/components/pagination/index.vue +1 -1
- package/src/components/progressBar/index.vue +1 -1
- package/src/components/projectMarker/index.vue +7 -10
- package/src/components/sideMenu/index.vue +1 -1
- package/src/components/spinner/index.vue +11 -6
- package/src/components/tableDropdown/index.vue +26 -21
- package/src/components/tables/mainTable/exampleNested.vue +1 -1
- package/src/components/tables/mainTable/index.vue +9 -10
- package/src/components/tables/viewTable/index.vue +2 -2
- package/src/components/threeDots/index.vue +1 -1
- package/src/components/videoThumbnail/index.vue +100 -95
- package/src/main.js +11 -4
- package/src/components/icon/iconCache.js +0 -23
@@ -3,7 +3,7 @@
|
|
3
3
|
<upper-container v-if="filterViews && filterViews.length">
|
4
4
|
<view-container :maxWidth="activeView.length">
|
5
5
|
<select-component
|
6
|
-
@click.stop
|
6
|
+
@click.native.stop
|
7
7
|
selectWidth="100%"
|
8
8
|
selectHeight="36px"
|
9
9
|
fontSize="13px"
|
@@ -19,10 +19,10 @@
|
|
19
19
|
<Option
|
20
20
|
v-for="(item, idx) in filterViews"
|
21
21
|
:key="idx + '_view'"
|
22
|
-
@click="$emit('on-view-select', item)"
|
22
|
+
@click.native="$emit('on-view-select', item)"
|
23
23
|
:value="item.name"
|
24
24
|
>{{ item.name }}
|
25
|
-
<delete-icon @click.stop="$emit('on-view-delete', item)"
|
25
|
+
<delete-icon @click.native.stop="$emit('on-view-delete', item)"
|
26
26
|
/></Option>
|
27
27
|
</template>
|
28
28
|
</select-component>
|
@@ -55,28 +55,28 @@
|
|
55
55
|
ghost-class="ghost"
|
56
56
|
:setData="modifyDragItem"
|
57
57
|
v-model="item.dataOptions"
|
58
|
-
itemKey="choice"
|
59
58
|
>
|
60
|
-
<
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
<
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
59
|
+
<checkbox-wrapper
|
60
|
+
v-for="(column, index) in item.dataOptions"
|
61
|
+
:key="index + 'dataOption'"
|
62
|
+
>
|
63
|
+
<drag-container class="drag-container">
|
64
|
+
<icon :name="'duplicate-1'" size="12px" />
|
65
|
+
</drag-container>
|
66
|
+
<checkbox
|
67
|
+
:label="column.text"
|
68
|
+
:isChecked="column.selected"
|
69
|
+
@on-event-handler="
|
70
|
+
onChange({
|
71
|
+
dataType: item.type,
|
72
|
+
value: $event,
|
73
|
+
choice: column.choice
|
74
|
+
})
|
75
|
+
"
|
76
|
+
size="small"
|
77
|
+
:isDisabled="column.selected && isCheckboxDisabled"
|
78
|
+
/>
|
79
|
+
</checkbox-wrapper>
|
80
80
|
</draggable>
|
81
81
|
</checkbox-container>
|
82
82
|
</row-container>
|
@@ -169,20 +169,12 @@
|
|
169
169
|
>
|
170
170
|
<row-label :data-id="filter.dataId">{{ filter.label }}</row-label>
|
171
171
|
<grid-container>
|
172
|
-
<
|
173
|
-
text-input
|
172
|
+
<date-picker-input
|
174
173
|
:placeholder="$gettext('Date from')"
|
175
|
-
:
|
176
|
-
|
177
|
-
:
|
178
|
-
|
179
|
-
:auto-apply="true"
|
180
|
-
:disabled-dates="disableFutureDates"
|
181
|
-
format="yyyy-MM-dd"
|
182
|
-
model-type="format"
|
183
|
-
@focus="onDatepickerFocus(filter.range)"
|
184
|
-
@close="onDatepickerBlur()"
|
185
|
-
@update:model-value="
|
174
|
+
:lang="getDatePickerLanguage()"
|
175
|
+
type="date"
|
176
|
+
:value="filter.range.start"
|
177
|
+
@change="
|
186
178
|
onChange({
|
187
179
|
dataType: item.type,
|
188
180
|
value: $event,
|
@@ -190,21 +182,18 @@
|
|
190
182
|
field: filter.field
|
191
183
|
})
|
192
184
|
"
|
193
|
-
/>
|
194
|
-
<VueDatePicker
|
195
|
-
text-input
|
196
|
-
:placeholder="$gettext('Date to')"
|
197
|
-
:locale="getDatePickerLanguage()"
|
198
|
-
:model-value="filter.range.end"
|
199
|
-
:enable-time-picker="false"
|
200
|
-
:clearable="false"
|
201
|
-
:auto-apply="true"
|
202
|
-
:disabled-dates="disablePastDates"
|
203
|
-
format="yyyy-MM-dd"
|
204
|
-
model-type="format"
|
205
185
|
@focus="onDatepickerFocus(filter.range)"
|
206
186
|
@close="onDatepickerBlur()"
|
207
|
-
|
187
|
+
format="YYYY-MM-DD"
|
188
|
+
valueType="format"
|
189
|
+
:disabled-date="disableFutureDates"
|
190
|
+
/>
|
191
|
+
<date-picker-input
|
192
|
+
:placeholder="$gettext('Date to')"
|
193
|
+
:lang="getDatePickerLanguage()"
|
194
|
+
type="date"
|
195
|
+
:value="filter.range.end"
|
196
|
+
@change="
|
208
197
|
onChange({
|
209
198
|
dataType: item.type,
|
210
199
|
value: $event,
|
@@ -212,6 +201,11 @@
|
|
212
201
|
field: filter.field
|
213
202
|
})
|
214
203
|
"
|
204
|
+
@focus="onDatepickerFocus(filter.range)"
|
205
|
+
@close="onDatepickerBlur()"
|
206
|
+
format="YYYY-MM-DD"
|
207
|
+
valueType="format"
|
208
|
+
:disabled-date="disablePastDates"
|
215
209
|
/>
|
216
210
|
</grid-container>
|
217
211
|
</section-container>
|
@@ -253,26 +247,27 @@
|
|
253
247
|
v-if="buttonText.apply_view"
|
254
248
|
type="primary"
|
255
249
|
:text="buttonText.apply_view"
|
256
|
-
@click="$emit('on-apply-current-view')"
|
250
|
+
@click.native="$emit('on-apply-current-view')"
|
257
251
|
/>
|
258
252
|
<main-button
|
259
253
|
type="secondary"
|
260
254
|
v-if="buttonText.save_view"
|
261
255
|
:text="buttonText.save_view"
|
262
|
-
@click="$emit('on-save-new-view')"
|
256
|
+
@click.native="$emit('on-save-new-view')"
|
263
257
|
/>
|
264
258
|
<main-button
|
265
259
|
type="cancel"
|
266
260
|
v-if="buttonText.cancel"
|
267
261
|
:text="buttonText.cancel"
|
268
|
-
@click="$emit('on-cancel-view')"
|
262
|
+
@click.native="$emit('on-cancel-view')"
|
269
263
|
/>
|
270
264
|
</button-container>
|
271
265
|
</container-wrapper>
|
272
266
|
</template>
|
273
267
|
|
274
268
|
<script>
|
275
|
-
import styled from '
|
269
|
+
import styled from 'vue-styled-components'
|
270
|
+
import DatePicker from 'vue2-datepicker'
|
276
271
|
import SelectComponent from '../inputs/select'
|
277
272
|
import Option from '../inputs/select/option'
|
278
273
|
import InputNumber from '../inputs/inputNumber'
|
@@ -283,7 +278,12 @@ import Icon from '../icon'
|
|
283
278
|
import DeleteIcon from '../deleteIcon'
|
284
279
|
import { datePickerLang } from '../../helpers/translateLang'
|
285
280
|
import theme from '@/assets/theme.js'
|
286
|
-
import
|
281
|
+
import 'vue2-datepicker/index.css'
|
282
|
+
import 'vue2-datepicker/locale/de'
|
283
|
+
import 'vue2-datepicker/locale/en'
|
284
|
+
import 'vue2-datepicker/locale/es'
|
285
|
+
import 'vue2-datepicker/locale/fr'
|
286
|
+
import 'vue2-datepicker/locale/it'
|
287
287
|
|
288
288
|
const ContainerWrapper = styled.div`
|
289
289
|
position: absolute;
|
@@ -382,6 +382,46 @@ const RowWrapper = styled.div`
|
|
382
382
|
margin-bottom: 12px;
|
383
383
|
`
|
384
384
|
|
385
|
+
const DatePickerInput = styled(DatePicker)`
|
386
|
+
border: 1px solid ${(props) => props.theme.colors.grey4};
|
387
|
+
border-radius: 4px;
|
388
|
+
padding: 7px 12px 7px 7px;
|
389
|
+
width: 100%;
|
390
|
+
position: relative;
|
391
|
+
|
392
|
+
&.mx-datepicker {
|
393
|
+
width: 100% !important;
|
394
|
+
max-width: 100%;
|
395
|
+
height: 36px;
|
396
|
+
align-self: flex-end;
|
397
|
+
}
|
398
|
+
|
399
|
+
.mx-input-wrapper {
|
400
|
+
position: unset;
|
401
|
+
|
402
|
+
input {
|
403
|
+
border: none;
|
404
|
+
height: auto;
|
405
|
+
padding: 0;
|
406
|
+
font-size: 13px;
|
407
|
+
box-shadow: none;
|
408
|
+
color: #393939;
|
409
|
+
vertical-align: bottom;
|
410
|
+
}
|
411
|
+
|
412
|
+
.mx-input-append {
|
413
|
+
top: 1px;
|
414
|
+
}
|
415
|
+
}
|
416
|
+
|
417
|
+
.mx-input-append {
|
418
|
+
left: 0;
|
419
|
+
top: 5px;
|
420
|
+
height: auto;
|
421
|
+
cursor: pointer;
|
422
|
+
}
|
423
|
+
`
|
424
|
+
|
385
425
|
const LabelAttrs = {
|
386
426
|
marginTop: Boolean
|
387
427
|
}
|
@@ -446,14 +486,14 @@ export default {
|
|
446
486
|
Icon,
|
447
487
|
DragContainer,
|
448
488
|
InputNumber,
|
489
|
+
DatePickerInput,
|
449
490
|
RowLabel,
|
450
491
|
SectionContainer,
|
451
492
|
GridContainer,
|
452
493
|
ViewContainer,
|
453
494
|
DeleteIcon,
|
454
495
|
UpperContainer,
|
455
|
-
ResetButton
|
456
|
-
VueDatePicker
|
496
|
+
ResetButton
|
457
497
|
},
|
458
498
|
props: {
|
459
499
|
filterData: {
|
@@ -29,7 +29,7 @@
|
|
29
29
|
</template>
|
30
30
|
|
31
31
|
<script>
|
32
|
-
import styled from '
|
32
|
+
import styled from 'vue-styled-components'
|
33
33
|
import parentDropdown from './parentDropdown'
|
34
34
|
import filterSettings from './filterSettings'
|
35
35
|
|
@@ -93,9 +93,9 @@ export default {
|
|
93
93
|
}, 100)
|
94
94
|
},
|
95
95
|
clickOutside(event) {
|
96
|
+
const target = event.target
|
96
97
|
if (
|
97
|
-
this.$refs.dropdown &&
|
98
|
-
!this.$refs.dropdown.$el.contains(event.target) &&
|
98
|
+
!this.$refs.dropdown.$el.contains(target) &&
|
99
99
|
!this.preventOutsideClick
|
100
100
|
) {
|
101
101
|
this.isDropdownOpen = false
|
@@ -9,7 +9,7 @@
|
|
9
9
|
</title-text>
|
10
10
|
<arrow-wrapper>
|
11
11
|
<icon
|
12
|
-
@click.stop="$emit('on-toggle')"
|
12
|
+
@click.native.stop="$emit('on-toggle')"
|
13
13
|
:name="isOpen ? 'arrow_up' : 'arrow_down'"
|
14
14
|
size="12px"
|
15
15
|
/>
|
@@ -19,7 +19,7 @@
|
|
19
19
|
</template>
|
20
20
|
|
21
21
|
<script>
|
22
|
-
import styled from '
|
22
|
+
import styled from 'vue-styled-components'
|
23
23
|
import Icon from '../icon'
|
24
24
|
|
25
25
|
const PageWrapper = styled.div`
|
@@ -16,7 +16,7 @@
|
|
16
16
|
|
17
17
|
<script>
|
18
18
|
import icon from './index.vue'
|
19
|
-
import styled from '
|
19
|
+
import styled from 'vue-styled-components'
|
20
20
|
|
21
21
|
const Wrapper = styled.div`
|
22
22
|
display: block;
|
@@ -36,7 +36,7 @@ const IconWrapper = styled.div`
|
|
36
36
|
margin: 10px;
|
37
37
|
`
|
38
38
|
export default {
|
39
|
-
name: '
|
39
|
+
name: 'collection',
|
40
40
|
components: { icon, IconWrapper, Wrapper },
|
41
41
|
props: {
|
42
42
|
size: { required: false },
|
@@ -1,13 +1,19 @@
|
|
1
1
|
<template>
|
2
|
-
<
|
3
|
-
<icon-image
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
2
|
+
<Wrapper :isDisabled="disabled" :size="size" :cursor="cursor">
|
3
|
+
<icon-image
|
4
|
+
:disabled="disabled"
|
5
|
+
:size="size"
|
6
|
+
:color="color"
|
7
|
+
:hoveredColor="hoveredColor"
|
8
|
+
v-html="
|
9
|
+
require(`!html-loader!./../../assets/svgIcons/${name.toLowerCase()}.svg`)
|
10
|
+
"
|
11
|
+
></icon-image>
|
12
|
+
<striked-line v-if="isStriked" :color="color" :disabled="disabled" :hoveredColor="hoveredColor"></striked-line>
|
13
|
+
</Wrapper>
|
8
14
|
</template>
|
9
15
|
|
10
|
-
<script
|
16
|
+
<script>
|
11
17
|
// import Icon from "@eturnity/eturnity_reusable_components/src/components/icon"
|
12
18
|
// How to use:
|
13
19
|
//<icon
|
@@ -19,95 +25,92 @@
|
|
19
25
|
// isStriked = "true"
|
20
26
|
// />
|
21
27
|
|
22
|
-
import
|
23
|
-
import styled from 'vue3-styled-components'
|
24
|
-
import { fetchIcon } from './iconCache'
|
28
|
+
import styled from 'vue-styled-components'
|
25
29
|
|
26
|
-
const
|
27
|
-
|
28
|
-
required: false,
|
29
|
-
default: false
|
30
|
-
},
|
31
|
-
name: {
|
32
|
-
required: true
|
33
|
-
},
|
34
|
-
color: {
|
35
|
-
required: false
|
36
|
-
},
|
37
|
-
hoveredColor: {
|
38
|
-
required: false
|
39
|
-
},
|
40
|
-
size: {
|
41
|
-
required: false,
|
42
|
-
default: '30px'
|
43
|
-
},
|
44
|
-
cursor: {
|
45
|
-
required: false,
|
46
|
-
default: null
|
47
|
-
},
|
48
|
-
isStriked: {
|
49
|
-
required: false,
|
50
|
-
default: false
|
51
|
-
}
|
52
|
-
})
|
53
|
-
|
54
|
-
const Wrapper = styled('div')`
|
30
|
+
const wrapperAttrs = { isDisabled: Boolean, size: String, cursor: String }
|
31
|
+
const Wrapper = styled('div', wrapperAttrs)`
|
55
32
|
display: flex;
|
56
33
|
position: relative;
|
57
34
|
align-content: center;
|
58
35
|
justify-content: center;
|
59
|
-
width: ${props.size};
|
60
|
-
height: ${props.size};
|
61
|
-
min-width: ${props.size};
|
62
|
-
min-height: ${props.size};
|
63
|
-
cursor: ${props.
|
36
|
+
width: ${(props) => props.size};
|
37
|
+
height: ${(props) => props.size};
|
38
|
+
min-width: ${(props) => props.size};
|
39
|
+
min-height: ${(props) => props.size};
|
40
|
+
cursor: ${(props) => (props.isDisabled ? 'not-allowed' : props.cursor)};
|
64
41
|
line-height: 0;
|
65
42
|
`
|
66
|
-
const strikedAttrs = {
|
67
|
-
|
68
|
-
color: String,
|
69
|
-
hoveredColor: String
|
70
|
-
}
|
71
|
-
const StrikedLine = styled.div`
|
43
|
+
const strikedAttrs = { isDisabled: Boolean, color: String, hoveredColor: String }
|
44
|
+
const strikedLine = styled('div', strikedAttrs)`
|
72
45
|
display: flex;
|
73
46
|
position: absolute;
|
74
|
-
bottom:
|
75
|
-
left:
|
47
|
+
bottom:0;
|
48
|
+
left:0;
|
76
49
|
align-content: center;
|
77
50
|
justify-content: center;
|
78
51
|
width: 143%;
|
79
|
-
height:
|
80
|
-
background-color: ${(
|
52
|
+
height:8%;
|
53
|
+
background-color: ${(props)=>props.theme.colors[props.color] || props.color};
|
81
54
|
min-height: 0;
|
82
55
|
line-height: 0;
|
83
56
|
transform-origin: 0% 100%;
|
84
57
|
transform: rotate(-45deg);
|
85
58
|
`
|
86
|
-
const
|
59
|
+
const IconImageProps = { color: String, hoveredColor: String, size: String }
|
60
|
+
const IconImage = styled('div', IconImageProps)`
|
87
61
|
width: 100%;
|
88
62
|
svg {
|
89
63
|
width: 100%;
|
90
64
|
height: 100%;
|
91
65
|
}
|
92
66
|
svg path {
|
93
|
-
${(
|
94
|
-
props.color && `fill: ${theme.colors[props.color] || props.color};`}
|
67
|
+
${(props) =>
|
68
|
+
props.color && `fill: ${props.theme.colors[props.color] || props.color};`}
|
95
69
|
}
|
96
70
|
&:hover > svg path {
|
97
|
-
${props.hoveredColor && `fill: ${props.hoveredColor};`}
|
71
|
+
${(props) => props.hoveredColor && `fill: ${props.hoveredColor};`}
|
98
72
|
}
|
99
73
|
&:hover + div {
|
100
|
-
background-color: ${props.hoveredColor};
|
74
|
+
background-color: ${(props)=>props.hoveredColor};
|
101
75
|
}
|
102
76
|
`
|
103
77
|
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
78
|
+
export default {
|
79
|
+
name: 'icon',
|
80
|
+
components: {
|
81
|
+
IconImage,
|
82
|
+
Wrapper,
|
83
|
+
strikedLine
|
84
|
+
},
|
85
|
+
props: {
|
86
|
+
disabled: {
|
87
|
+
required: false,
|
88
|
+
default: false
|
89
|
+
},
|
90
|
+
name: {
|
91
|
+
required: true
|
92
|
+
},
|
93
|
+
color: {
|
94
|
+
required: false
|
95
|
+
},
|
96
|
+
hoveredColor: {
|
97
|
+
required: false
|
98
|
+
},
|
99
|
+
size: {
|
100
|
+
required: false,
|
101
|
+
default: '30px'
|
102
|
+
},
|
103
|
+
cursor: {
|
104
|
+
required: false,
|
105
|
+
default: null
|
106
|
+
},
|
107
|
+
isStriked: {
|
108
|
+
required: false,
|
109
|
+
default: false
|
110
|
+
}
|
111
|
+
},
|
112
|
+
data() {
|
113
|
+
return {}
|
114
|
+
}
|
108
115
|
}
|
109
|
-
|
110
|
-
onMounted(() => loadSvg())
|
111
|
-
|
112
|
-
watch(() => props.name, loadSvg)
|
113
116
|
</script>
|
@@ -42,7 +42,7 @@
|
|
42
42
|
// size="60px" by default, this is 30px
|
43
43
|
// />
|
44
44
|
|
45
|
-
import styled from '
|
45
|
+
import styled from 'vue-styled-components'
|
46
46
|
import icon from '../icon'
|
47
47
|
const wrapperAttrs = {
|
48
48
|
color: String,
|
@@ -148,6 +148,9 @@ export default {
|
|
148
148
|
required: false,
|
149
149
|
default: false
|
150
150
|
}
|
151
|
+
},
|
152
|
+
data() {
|
153
|
+
return {}
|
151
154
|
}
|
152
155
|
}
|
153
156
|
</script>
|
@@ -8,7 +8,7 @@
|
|
8
8
|
</template>
|
9
9
|
|
10
10
|
<script>
|
11
|
-
import styled from '
|
11
|
+
import styled from 'vue-styled-components'
|
12
12
|
import Icon from '../icon'
|
13
13
|
|
14
14
|
const InfoContainer = styled.div`
|
@@ -24,6 +24,7 @@ const TextContainer = styled.div`
|
|
24
24
|
width: 100%;
|
25
25
|
`
|
26
26
|
|
27
|
+
|
27
28
|
export default {
|
28
29
|
name: 'InfoCard',
|
29
30
|
components: {
|
@@ -32,4 +33,4 @@ export default {
|
|
32
33
|
TextContainer
|
33
34
|
}
|
34
35
|
}
|
35
|
-
</script>
|
36
|
+
</script>
|
@@ -30,7 +30,7 @@
|
|
30
30
|
// alignArrow="right" // which side the arrow should be on
|
31
31
|
// />
|
32
32
|
import theme from '../../assets/theme.js'
|
33
|
-
import styled from '
|
33
|
+
import styled from 'vue-styled-components'
|
34
34
|
import icon from '../icon'
|
35
35
|
|
36
36
|
const textAttrs = {
|
@@ -3,7 +3,7 @@
|
|
3
3
|
<container
|
4
4
|
:checkColor="checkColor"
|
5
5
|
:size="size"
|
6
|
-
:hasLabel="
|
6
|
+
:hasLabel="!!label.length"
|
7
7
|
:backgroundColor="backgroundColor"
|
8
8
|
:isChecked="isChecked"
|
9
9
|
:isDisabled="isDisabled"
|
@@ -14,10 +14,10 @@
|
|
14
14
|
:data-id="dataId"
|
15
15
|
@change="onChangeHandler(!isChecked)"
|
16
16
|
/>
|
17
|
-
<
|
17
|
+
<div>
|
18
18
|
<span class="checkmark"></span>
|
19
|
-
</
|
20
|
-
<label-text v-if="
|
19
|
+
</div>
|
20
|
+
<label-text v-if="!!label.length">{{ label }}</label-text>
|
21
21
|
</container>
|
22
22
|
</component-wrapper>
|
23
23
|
</template>
|
@@ -34,21 +34,12 @@
|
|
34
34
|
// backgroundColor="red"
|
35
35
|
// :isDisabled="true"
|
36
36
|
// />
|
37
|
-
import styled from '
|
37
|
+
import styled from 'vue-styled-components'
|
38
38
|
|
39
39
|
const ComponentWrapper = styled.div`
|
40
40
|
min-height: 18px;
|
41
41
|
`
|
42
42
|
|
43
|
-
const CheckWrapper = styled('div', { hasLabel: Boolean })`
|
44
|
-
${(props) =>
|
45
|
-
props.hasLabel &&
|
46
|
-
`
|
47
|
-
display: flex;
|
48
|
-
align-items: center;
|
49
|
-
`}
|
50
|
-
`
|
51
|
-
|
52
43
|
const containerAttrs = {
|
53
44
|
checkColor: String,
|
54
45
|
size: String,
|
@@ -154,8 +145,7 @@ export default {
|
|
154
145
|
ComponentWrapper,
|
155
146
|
Container,
|
156
147
|
InputCheckbox,
|
157
|
-
LabelText
|
158
|
-
CheckWrapper
|
148
|
+
LabelText
|
159
149
|
},
|
160
150
|
props: {
|
161
151
|
label: {
|
@@ -185,11 +175,6 @@ export default {
|
|
185
175
|
default: ''
|
186
176
|
}
|
187
177
|
},
|
188
|
-
computed: {
|
189
|
-
hasLabel() {
|
190
|
-
return !!this.label.length
|
191
|
-
}
|
192
|
-
},
|
193
178
|
methods: {
|
194
179
|
onChangeHandler(value) {
|
195
180
|
if (this.isDisabled) {
|
@@ -47,6 +47,7 @@
|
|
47
47
|
:fontSize="fontSize"
|
48
48
|
:fontColor="fontColor"
|
49
49
|
:backgroundColor="backgroundColor"
|
50
|
+
v-on="$listeners"
|
50
51
|
:hasSlot="hasSlot"
|
51
52
|
:hasLabelSlot="hasLabelSlot"
|
52
53
|
:slotSize="slotSize"
|
@@ -100,7 +101,7 @@
|
|
100
101
|
// >
|
101
102
|
//<template name=label><img>....</template>
|
102
103
|
//</inputNumber>
|
103
|
-
import styled from '
|
104
|
+
import styled from 'vue-styled-components'
|
104
105
|
import {
|
105
106
|
stringToNumber,
|
106
107
|
numberToString
|
@@ -468,7 +469,7 @@ export default {
|
|
468
469
|
}
|
469
470
|
},
|
470
471
|
methods: {
|
471
|
-
onEnterPress()
|
472
|
+
onEnterPress(){
|
472
473
|
this.$emit('on-enter-click')
|
473
474
|
this.$refs.inputField1.$el.blur()
|
474
475
|
},
|
@@ -487,10 +488,9 @@ export default {
|
|
487
488
|
// Need to return an integer rather than a string
|
488
489
|
this.$emit('input-change', event)
|
489
490
|
},
|
490
|
-
onEvaluateCode(
|
491
|
+
onEvaluateCode(val) {
|
491
492
|
// function to perform math on the code
|
492
493
|
// filter the string in case of any malicious content
|
493
|
-
const val = event.target.value
|
494
494
|
let filtered = val.replace('(auto)', '').replace(/[^-()\d/*+.,]/g, '')
|
495
495
|
filtered = filtered.split(/([-+*/()])/)
|
496
496
|
let formatted = filtered.map((item) => {
|
@@ -548,17 +548,20 @@ export default {
|
|
548
548
|
}
|
549
549
|
return array
|
550
550
|
},
|
551
|
-
onInput(
|
551
|
+
onInput(value) {
|
552
|
+
// if(!this.isFocused){
|
553
|
+
// return
|
554
|
+
// }
|
552
555
|
if (this.isBlurred) {
|
553
556
|
this.isBlurred = false
|
554
557
|
return
|
555
558
|
}
|
556
|
-
if (
|
559
|
+
if (value === '') {
|
557
560
|
this.$emit('on-input', '')
|
558
561
|
}
|
559
562
|
let evaluatedVal
|
560
563
|
try {
|
561
|
-
evaluatedVal = this.onEvaluateCode(
|
564
|
+
evaluatedVal = this.onEvaluateCode(value)
|
562
565
|
} finally {
|
563
566
|
if (evaluatedVal) {
|
564
567
|
this.$emit('on-input', evaluatedVal)
|
@@ -570,7 +573,7 @@ export default {
|
|
570
573
|
// setting isBlurred so we don't trigger onInput as well
|
571
574
|
this.isBlurred = true
|
572
575
|
let value = e.target.value
|
573
|
-
let evaluatedInput = this.onEvaluateCode(
|
576
|
+
let evaluatedInput = this.onEvaluateCode(value)
|
574
577
|
this.onChangeHandler(evaluatedInput ? evaluatedInput : value)
|
575
578
|
if ((evaluatedInput && value.length) || this.minNumber !== null) {
|
576
579
|
this.textInput = numberToString({
|