@eturnity/eturnity_reusable_components 1.0.62 → 1.0.66
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/package.json
CHANGED
package/src/App.vue
CHANGED
|
@@ -24,12 +24,19 @@
|
|
|
24
24
|
</main-table>
|
|
25
25
|
<br />
|
|
26
26
|
<br />
|
|
27
|
-
<
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
27
|
+
<input-wrapper>
|
|
28
|
+
<input-number
|
|
29
|
+
placeholder="Enter Value"
|
|
30
|
+
unitName="kWh"
|
|
31
|
+
:value="inputValue"
|
|
32
|
+
@input-change="onInputChange($event)"
|
|
33
|
+
textAlign="left"
|
|
34
|
+
fontSize="13px"
|
|
35
|
+
labelText="Number of Modules"
|
|
36
|
+
labelInfoText="Here is some information for you..."
|
|
37
|
+
:disabled="true"
|
|
38
|
+
/>
|
|
39
|
+
</input-wrapper>
|
|
33
40
|
</page-container>
|
|
34
41
|
</ThemeProvider>
|
|
35
42
|
</template>
|
|
@@ -40,12 +47,17 @@ import theme from "./assets/theme"
|
|
|
40
47
|
import styled from "vue-styled-components"
|
|
41
48
|
import MainTable from "@/components/tables/mainTable"
|
|
42
49
|
import ThreeDots from "@/components/threeDots"
|
|
43
|
-
import
|
|
50
|
+
import InputNumber from "@/components/inputs/inputNumber"
|
|
44
51
|
|
|
45
52
|
const PageContainer = styled.div`
|
|
46
53
|
padding: 40px;
|
|
47
54
|
`
|
|
48
55
|
|
|
56
|
+
const InputWrapper = styled.div`
|
|
57
|
+
height: 36px;
|
|
58
|
+
width: 180px;
|
|
59
|
+
`
|
|
60
|
+
|
|
49
61
|
export default {
|
|
50
62
|
name: "App",
|
|
51
63
|
components: {
|
|
@@ -53,11 +65,12 @@ export default {
|
|
|
53
65
|
PageContainer,
|
|
54
66
|
MainTable,
|
|
55
67
|
ThreeDots,
|
|
56
|
-
|
|
68
|
+
InputNumber,
|
|
69
|
+
InputWrapper,
|
|
57
70
|
},
|
|
58
71
|
data() {
|
|
59
72
|
return {
|
|
60
|
-
inputValue:
|
|
73
|
+
inputValue: 10,
|
|
61
74
|
checkedOption: "button_1",
|
|
62
75
|
question: {
|
|
63
76
|
number_format_precision: 4,
|
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
:size="size"
|
|
7
7
|
:borderColor="borderColor"
|
|
8
8
|
@click.prevent="toggleShowInfo()"
|
|
9
|
+
@mouseenter="toggleShowInfo()"
|
|
10
|
+
@mouseleave="toggleShowInfo()"
|
|
9
11
|
>
|
|
10
12
|
<svg
|
|
11
13
|
class="img-icon"
|
|
@@ -52,35 +54,28 @@ const IconWrapper = styled.div`
|
|
|
52
54
|
const textAttrs = { borderColor: String, alignText: String }
|
|
53
55
|
const TextOverlay = styled("div", textAttrs)`
|
|
54
56
|
position: absolute;
|
|
55
|
-
top:
|
|
57
|
+
top: 26px;
|
|
56
58
|
right: ${(props) => (props.alignText === "left" ? "-10px" : "inherit")};
|
|
57
59
|
left: ${(props) => (props.alignText === "left" ? "inherit" : "-10px")};
|
|
58
|
-
background:
|
|
59
|
-
|
|
60
|
-
${(props) =>
|
|
61
|
-
props.borderColor ? props.borderColor : props.theme.colors.secondary};
|
|
62
|
-
padding: 16px;
|
|
60
|
+
background: ${(props) => props.theme.colors.black};
|
|
61
|
+
padding: 10px;
|
|
63
62
|
width: max-content;
|
|
64
63
|
max-width: 400px;
|
|
65
|
-
font-size:
|
|
64
|
+
font-size: 13px;
|
|
66
65
|
font-weight: 400;
|
|
67
66
|
border-radius: 4px;
|
|
68
67
|
z-index: 99;
|
|
69
|
-
color: ${(props) => props.theme.colors.
|
|
68
|
+
color: ${(props) => props.theme.colors.white};
|
|
70
69
|
|
|
71
70
|
:before {
|
|
72
71
|
content: "";
|
|
73
|
-
background-color:
|
|
72
|
+
background-color: ${(props) => props.theme.colors.black};
|
|
74
73
|
position: absolute;
|
|
75
74
|
top: 2px;
|
|
76
75
|
right: ${(props) => (props.alignText === "left" ? "-12px" : "inherit")};
|
|
77
76
|
left: ${(props) => (props.alignText === "left" ? "inherit" : "40px")};
|
|
78
77
|
height: 8px;
|
|
79
78
|
width: 8px;
|
|
80
|
-
border: 1px solid
|
|
81
|
-
${(props) =>
|
|
82
|
-
props.borderColor ? props.borderColor : props.theme.colors.secondary};
|
|
83
|
-
border-width: 1px 0 0 1px;
|
|
84
79
|
transform-origin: center center;
|
|
85
80
|
transform: translate(-2em, -0.5em) rotate(45deg);
|
|
86
81
|
}
|
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<container>
|
|
3
|
+
<label-wrapper v-if="labelText">
|
|
4
|
+
<label-text>
|
|
5
|
+
{{ labelText }}
|
|
6
|
+
</label-text>
|
|
7
|
+
<info-text
|
|
8
|
+
v-if="labelInfoText"
|
|
9
|
+
:text="labelInfoText"
|
|
10
|
+
borderColor="#ccc"
|
|
11
|
+
size="13"
|
|
12
|
+
:alignText="labelInfoAlign"
|
|
13
|
+
/>
|
|
14
|
+
</label-wrapper>
|
|
3
15
|
<input-wrapper>
|
|
4
16
|
<input-container
|
|
5
17
|
:hasUnit="unitName && !!unitName.length"
|
|
@@ -15,6 +27,7 @@
|
|
|
15
27
|
:isDisabled="disabled"
|
|
16
28
|
:noBorder="noBorder"
|
|
17
29
|
:textAlign="textAlign"
|
|
30
|
+
:fontSize="fontSize"
|
|
18
31
|
/>
|
|
19
32
|
<unit-container
|
|
20
33
|
v-if="unitName && showLinearUnitName"
|
|
@@ -28,7 +41,7 @@
|
|
|
28
41
|
</template>
|
|
29
42
|
|
|
30
43
|
<script>
|
|
31
|
-
// import
|
|
44
|
+
// import InputNumber from "@eturnity/eturnity_reusable_components/src/components/inputs/inputNumber"
|
|
32
45
|
//This component should be used for questions with input fields only
|
|
33
46
|
//How to use:
|
|
34
47
|
// <input-number
|
|
@@ -37,7 +50,6 @@
|
|
|
37
50
|
// inputWidth="150px" //by default, this is 100%
|
|
38
51
|
// :numberPrecision="3"
|
|
39
52
|
// unitName="pc"
|
|
40
|
-
// :numberPrecision="4"
|
|
41
53
|
// :value="inputValue" //required -- String
|
|
42
54
|
// @input-change="onInputChange($event)" //required
|
|
43
55
|
// @on-enter-click="onInputSubmit()"
|
|
@@ -46,12 +58,17 @@
|
|
|
46
58
|
// :noBorder="true"
|
|
47
59
|
// textAlign="left" // "left, right, center"
|
|
48
60
|
// :showLinearUnitName="true"
|
|
61
|
+
// fontSize="13px"
|
|
62
|
+
// labelText="Number of Modules"
|
|
63
|
+
// labelInfoText="Here is some information for you..."
|
|
64
|
+
// labelInfoAlign="left"
|
|
49
65
|
// />
|
|
50
66
|
import styled from "vue-styled-components"
|
|
51
67
|
import {
|
|
52
68
|
stringToNumber,
|
|
53
69
|
numberToString,
|
|
54
70
|
} from "../../../helpers/numberConverter"
|
|
71
|
+
import InfoText from "../../infoText"
|
|
55
72
|
|
|
56
73
|
const Container = styled.div`
|
|
57
74
|
width: 100%;
|
|
@@ -66,6 +83,7 @@ const inputProps = {
|
|
|
66
83
|
isDisabled: Boolean,
|
|
67
84
|
noBorder: Boolean,
|
|
68
85
|
textAlign: String,
|
|
86
|
+
fontSize: String,
|
|
69
87
|
}
|
|
70
88
|
const InputContainer = styled("input", inputProps)`
|
|
71
89
|
border: ${(props) =>
|
|
@@ -81,7 +99,7 @@ const InputContainer = styled("input", inputProps)`
|
|
|
81
99
|
border-radius: 4px;
|
|
82
100
|
text-align: ${(props) => props.textAlign};
|
|
83
101
|
cursor: ${(props) => (props.isDisabled ? "not-allowed" : "auto")};
|
|
84
|
-
font-size:
|
|
102
|
+
font-size: ${(props) => (props.fontSize ? props.fontSize : "13px")};
|
|
85
103
|
color: ${(props) =>
|
|
86
104
|
props.isError ? props.theme.colors.red : props.theme.colors.black};
|
|
87
105
|
width: ${(props) => (props.inputWidth ? props.inputWidth : "100%")};
|
|
@@ -89,7 +107,7 @@ const InputContainer = styled("input", inputProps)`
|
|
|
89
107
|
props.isDisabled
|
|
90
108
|
? props.theme.colors.grey5 + " !important"
|
|
91
109
|
: "#fff !important"};
|
|
92
|
-
|
|
110
|
+
box-sizing: border-box;
|
|
93
111
|
|
|
94
112
|
&::placeholder {
|
|
95
113
|
color: ${(props) =>
|
|
@@ -131,6 +149,17 @@ const ErrorMessage = styled.div`
|
|
|
131
149
|
padding-top: 16px;
|
|
132
150
|
`
|
|
133
151
|
|
|
152
|
+
const LabelWrapper = styled.div`
|
|
153
|
+
display: flex;
|
|
154
|
+
gap: 10px;
|
|
155
|
+
margin-bottom: 8px;
|
|
156
|
+
`
|
|
157
|
+
|
|
158
|
+
const LabelText = styled.div`
|
|
159
|
+
font-weight: bold;
|
|
160
|
+
font-size: 13px;
|
|
161
|
+
`
|
|
162
|
+
|
|
134
163
|
export default {
|
|
135
164
|
name: "input-number",
|
|
136
165
|
components: {
|
|
@@ -139,6 +168,9 @@ export default {
|
|
|
139
168
|
InputWrapper,
|
|
140
169
|
UnitContainer,
|
|
141
170
|
ErrorMessage,
|
|
171
|
+
LabelWrapper,
|
|
172
|
+
LabelText,
|
|
173
|
+
InfoText,
|
|
142
174
|
},
|
|
143
175
|
data() {
|
|
144
176
|
return {
|
|
@@ -195,6 +227,22 @@ export default {
|
|
|
195
227
|
required: false,
|
|
196
228
|
default: "left",
|
|
197
229
|
},
|
|
230
|
+
fontSize: {
|
|
231
|
+
required: false,
|
|
232
|
+
default: "13px",
|
|
233
|
+
},
|
|
234
|
+
labelText: {
|
|
235
|
+
required: false,
|
|
236
|
+
default: null,
|
|
237
|
+
},
|
|
238
|
+
labelInfoText: {
|
|
239
|
+
required: false,
|
|
240
|
+
default: null,
|
|
241
|
+
},
|
|
242
|
+
labelInfoAlign: {
|
|
243
|
+
required: false,
|
|
244
|
+
default: "right",
|
|
245
|
+
},
|
|
198
246
|
},
|
|
199
247
|
methods: {
|
|
200
248
|
onChangeHandler(event) {
|
|
@@ -106,6 +106,8 @@ const TableContainer = styled.table`
|
|
|
106
106
|
&.empty {
|
|
107
107
|
height: 100px;
|
|
108
108
|
text-align: center;
|
|
109
|
+
cursor: default;
|
|
110
|
+
background-color: #fff !important;
|
|
109
111
|
}
|
|
110
112
|
|
|
111
113
|
&.no-border {
|
|
@@ -193,6 +195,7 @@ const TableContainer = styled.table`
|
|
|
193
195
|
}
|
|
194
196
|
|
|
195
197
|
.icons-container {
|
|
198
|
+
padding-right: 2px; // so that the icons are not cut off when hovering
|
|
196
199
|
width: 1%; // necessary so it doesn't take up too much white space
|
|
197
200
|
display: table-cell;
|
|
198
201
|
flex-wrap: nowrap;
|