@eturnity/eturnity_reusable_components 1.2.22-EPDM-5202.1 → 1.2.23-3d-master.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/babel.config.js CHANGED
@@ -2,4 +2,4 @@ module.exports = {
2
2
  presets: [
3
3
  '@vue/cli-plugin-babel/preset'
4
4
  ]
5
- }
5
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eturnity/eturnity_reusable_components",
3
- "version": "1.2.22-EPDM-5202.1",
3
+ "version": "1.2.23-3d-master.0",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "dev": "vue-cli-service serve",
package/src/App.vue CHANGED
@@ -2,7 +2,12 @@
2
2
  <ThemeProvider :theme="getTheme()" :style="{ height: '100%' }">
3
3
  <page-container>
4
4
  <br />
5
+
6
+ <iconWrapper name="bell"/>
7
+ <modal backdrop="dark" :isLoading="false" :isOpen="true">
8
+
5
9
  <modal backdrop="dark" :isLoading="false" :isOpen="false">
10
+
6
11
  <main-table titleText="My Table">
7
12
  <thead>
8
13
  <tr>
@@ -59,42 +64,75 @@
59
64
  :disabled="false"
60
65
  />
61
66
  <br />
67
+ >>>>>>> EPDM-5448
62
68
  <input-number
63
- placeholder="Enter distance"
64
- :numberPrecision="2"
65
69
  :value="inputValue"
66
- @input-change="onInputChange($event)"
67
- />
70
+ @input-change="inputValue = $event"
71
+ inputWidth="250px"
72
+ slotSize="50%"
73
+ ><InputAnnexContainer>
74
+ <span>123m2</span>
75
+ <info-text size="10px" alignArrow="right" text="infoText ceci est le text"></info-text>
76
+ </InputAnnexContainer>
77
+ </input-number>
78
+ <input-number
79
+ :value="inputValue"
80
+ @input-change="inputValue = $event"
81
+ inputWidth="250px"
82
+ slotSize="50%"
83
+ :isError="true"
84
+ ><InputAnnexContainer>
85
+ <span>123m2</span>
86
+ <info-text :style="{'justify-self': 'end'}" size="12px" alignArrow="center" text="infoText ceci est le text">This is the tooltip text</info-text>
87
+ </InputAnnexContainer>
88
+ </input-number>
68
89
  <br />
69
- <page-subtitle text="My Subtitle" infoText="My info Text" />
70
- <spinner size="30px" />
71
- <checkbox
72
- label="Do you accept the Terms?"
73
- :isChecked="true"
74
- size="small"
75
- :isDisabled="false"
90
+
91
+ <p>InputText</p>
92
+ <input-text
93
+ placeholder="Company name"
94
+ :value="inputValue"
95
+ :isError="true"
96
+ errorMessage="This is my error message"
97
+ infoTextAlign="right"
98
+ infoTextMessage="My info message"
99
+ label="Question 5"
100
+ alignItems="vertical"
101
+ inputWidth="250px"
102
+ minWidth="100px"
103
+ />
104
+ <br/>
105
+ <input-number
106
+ :value="num"
107
+ @input-change="num = $event"
108
+ unitName="t"
109
+ id="biebie"
110
+ test="koko"
111
+ @keydown="keydownHandler"
76
112
  />
77
- <external-button text="Click me!" minWidth="500px" />
78
113
  </page-container>
79
114
  </ThemeProvider>
80
115
  </template>
81
116
 
82
117
  <script>
83
- import { ThemeProvider } from 'vue-styled-components'
84
- import theme from './assets/theme'
85
- import styled from 'vue-styled-components'
86
- import MainTable from '@/components/tables/mainTable'
87
- import ThreeDots from '@/components/threeDots'
88
- import Toggle from '@/components/inputs/toggle'
89
- import InputNumber from '@/components/inputs/inputNumber'
90
- import Checkbox from '@/components/inputs/checkbox'
91
- import PageSubtitle from '@/components/pageSubtitle'
92
- import Spinner from '@/components/spinner'
93
- import ExternalButton from '@/components/buttons/externalButton'
94
- import ProjectMarker from '@/components/projectMarker'
95
- import iconCollection from '@/components/icon/iconCollection'
96
- import Modal from '@/components/modals/modal'
118
+ import { ThemeProvider } from "vue-styled-components"
119
+ import theme from "./assets/theme"
120
+ import styled from "vue-styled-components"
121
+ import MainTable from "@/components/tables/mainTable"
122
+ import ThreeDots from "@/components/threeDots"
123
+ import Toggle from "@/components/inputs/toggle"
124
+ import InputNumber from "@/components/inputs/inputNumber"
125
+ import Checkbox from "@/components/inputs/checkbox"
126
+ import PageSubtitle from "@/components/pageSubtitle"
127
+ import Spinner from "@/components/spinner"
128
+ import ExternalButton from "@/components/buttons/externalButton"
129
+ import InputText from "@/components/inputs/inputText"
97
130
  // import TableDropdown from "@/components/tableDropdown"
131
+ const InputAnnexContainer = styled.div`
132
+ display: grid;
133
+ grid-template-columns: auto auto;
134
+ grid-gap: 10px;
135
+ `
98
136
 
99
137
  const PageContainer = styled.div`
100
138
  padding: 40px;
@@ -111,14 +149,13 @@ export default {
111
149
  components: {
112
150
  ThemeProvider,
113
151
  PageContainer,
114
- MainTable,
115
- ThreeDots,
116
- Toggle,
117
152
  InputNumber,
118
153
  PageSubtitle,
119
154
  Spinner,
120
155
  Checkbox,
156
+ InputText,
121
157
  ExternalButton,
158
+ iconWrapper,
122
159
  Modal,
123
160
  ProjectMarker,
124
161
  iconCollection,
@@ -126,6 +163,7 @@ export default {
126
163
  },
127
164
  data() {
128
165
  return {
166
+ num: 42,
129
167
  inputValue: null,
130
168
  checkedOption: 'button_1',
131
169
  question: {
@@ -185,11 +223,8 @@ export default {
185
223
  }
186
224
  },
187
225
  methods: {
188
- consoleLog(data) {
189
- console.log(data)
190
- },
191
- gettext(string) {
192
- return string.toUpperCase()
226
+ keydownHandler(e) {
227
+ console.log('test', e)
193
228
  },
194
229
  getTheme() {
195
230
  return theme
@@ -240,8 +275,8 @@ export default {
240
275
  item = '-'
241
276
  }
242
277
  return item
243
- },
244
- },
278
+ }
279
+ }
245
280
  }
246
281
  </script>
247
282
 
@@ -0,0 +1,3 @@
1
+ <svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="0.75" y="0.75" width="12.5" height="12.5" stroke="white" stroke-width="1.5"/>
3
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="26" height="26" viewBox="0 0 26 26" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M0 0L26 26H0V0Z" fill="#0068DE"/>
3
+ <line x1="12.4823" y1="20.4854" x2="4.70417" y2="12.7072" stroke="white" stroke-linecap="round"/>
4
+ <line x1="8.94524" y1="21.1924" x2="3.99549" y2="16.2427" stroke="white" stroke-linecap="round"/>
5
+ </svg>
@@ -0,0 +1,6 @@
1
+ <svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M5.77451 5.87537C6.42348 5.2264 7.47566 5.2264 8.12463 5.87537C8.7736 6.52434 8.7736 7.57652 8.12463 8.22549L2.83685 13.5133C2.18788 14.1622 1.1357 14.1622 0.486727 13.5133C-0.162242 12.8643 -0.162242 11.8121 0.486727 11.1631L5.77451 5.87537Z" fill="white"/>
3
+ <path d="M13.9998 0L13.5544 1.14505C13.2528 1.92013 13.2528 2.78011 13.5544 3.5552L13.9998 4.70025L12.8548 4.25476C12.0797 3.9532 11.2197 3.9532 10.4446 4.25476L9.2996 4.70025L9.74509 3.5552C10.0466 2.78012 10.0466 1.92013 9.74509 1.14505L9.2996 0L10.4446 0.445491C11.2197 0.747047 12.0797 0.747047 12.8548 0.445491L13.9998 0Z" fill="white"/>
4
+ <path d="M12.3948 8.99997L12.3845 9.02637C12.0829 9.80146 12.0829 10.6614 12.3845 11.4365L12.3948 11.4629L12.3684 11.4527C11.5933 11.1511 10.7333 11.1511 9.9582 11.4527L9.9318 11.4629L9.94207 11.4365C10.2436 10.6614 10.2436 9.80146 9.94207 9.02637L9.9318 8.99997L9.9582 9.01024C10.7333 9.3118 11.5933 9.3118 12.3684 9.01024L12.3948 8.99997Z" fill="white"/>
5
+ <path d="M5.55927 0.5027L5.33136 1.0885C5.02981 1.86359 5.02981 2.72357 5.33136 3.49866L5.55927 4.08446L4.97347 3.85655C4.19839 3.55499 3.3384 3.55499 2.56332 3.85655L1.97752 4.08446L2.20543 3.49866C2.50698 2.72357 2.50698 1.86359 2.20543 1.0885L1.97752 0.5027L2.56332 0.730611C3.3384 1.03217 4.19839 1.03217 4.97347 0.730611L5.55927 0.5027Z" fill="white"/>
6
+ </svg>
@@ -1,3 +1,5 @@
1
- <svg fill="none" height="14" viewbox="13 13 14 14" width="14" xmlns="http://www.w3.org/2000/svg">
2
- <path d="M21.3333 15V24H22.1281L21.9394 24.0809L17.6667 25.912L14 24.3406V14.5165L17.2727 15.9191L17.4614 16H16.6667V25H18.6667V16H17.8719L18.0606 15.9191L22.3333 14.088L26 15.6594V25.4835L22.7273 24.0809L22.5386 24H23.3333V15H21.3333Z" stroke="#B2B9C5" stroke-width="2"></path>
1
+ <svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M9 12L14 14V2L9 0L5 2L0 0V12L5 14L9 12ZM4.93167 12.3571L8.93167 10.3571L12.5 11.7845V3.01555L9.06834 1.64288L5.06834 3.64288L1.5 2.21555V10.9845L4.93167 12.3571Z" fill="white"/>
3
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M4.25 13V3H5.75V13H4.25Z" fill="white"/>
4
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M8.25 11V1H9.75V11H8.25Z" fill="white"/>
3
5
  </svg>
@@ -0,0 +1,6 @@
1
+ <svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <!-- <rect x="0.75" y="0.75" width="12.5" height="12.5" stroke="white" stroke-width="1.5"/>
3
+ <rect x="4.5" y="4.5" width="5" height="5" stroke="white" stroke-width="1.5"/> -->
4
+ <path d="M0 0 h 14 v 14 h -14 v-12.5 h 1.5 v11 h11 v-11 h-12.5 Z" fill="red"></path>
5
+ <path d="M3 3 h 8 v 8 h -8 v-7.5 h1.5 v6 h5 v-5 h-6.5Z" fill="red"></path>
6
+ </svg>
@@ -1,13 +1,9 @@
1
- <svg fill="none" height="23" viewbox="6 12 34 23" width="34" xmlns="http://www.w3.org/2000/svg">
2
- <mask height="14" id="mask0_6458_86453" maskunits="userSpaceOnUse" style="mask-type:alpha" width="14" x="13" y="13">
3
- <rect fill="#FF5656" height="14" width="14" x="13" y="13"></rect>
4
- </mask>
5
- <g mask="url(#mask0_6458_86453)">
6
- <rect fill="#FF5656" height="1.55556" transform="rotate(-45 6.77783 21.6267)" width="21" x="6.77783" y="21.6267"></rect>
7
- <rect fill="#FF5656" height="1.55556" transform="rotate(-45 8.97803 23.8269)" width="21" x="8.97803" y="23.8269"></rect>
8
- <rect fill="#FF5656" height="1.55556" transform="rotate(-45 11.1777 26.0269)" width="21" x="11.1777" y="26.0269"></rect>
9
- <rect fill="#FF5656" height="1.55556" transform="rotate(-45 13.3774 28.2266)" width="21" x="13.3774" y="28.2266"></rect>
10
- <rect fill="#FF5656" height="1.55556" transform="rotate(-45 15.5771 30.4265)" width="21" x="15.5771" y="30.4265"></rect>
11
- <rect fill="#FF5656" height="1.55556" transform="rotate(-45 17.7773 32.6262)" width="21" x="17.7773" y="32.6262"></rect>
1
+ <svg fill="none" height="16" viewbox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg">
2
+ <defs>
3
+ <pattern id="pattern_Z6wSY" patternUnits="userSpaceOnUse" width="4" height="4" patternTransform="rotate(-45)">
4
+ <path d="M0 0 L 16 0 L 16 2 L 0 2 Z" fill="red" stroke-width="0"></path>
5
+ </pattern>
6
+ </defs>
7
+ <rect width="16" height="16" fill="url(#pattern_Z6wSY)" :opacity="1" />
12
8
  </g>
13
9
  </svg>
@@ -0,0 +1,11 @@
1
+ <svg width="15" height="16" viewBox="0 0 15 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="2.80078" y="4.06415" width="8" height="1.6" transform="rotate(90 2.80078 4.06415)" fill="white"/>
3
+ <rect x="7.00195" y="3.8642" width="4" height="1.6" transform="rotate(-180 7.00195 3.8642)" fill="white"/>
4
+ <path d="M8.5 3.07846L6.00098 0.935599L6.00098 5.22131L8.5 3.07846Z" fill="white"/>
5
+ <rect x="11.002" y="13.8643" width="8" height="1.6" transform="rotate(-180 11.002 13.8643)" fill="white"/>
6
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M2 4.06409C2.55228 4.06409 3 3.61637 3 3.06409C3 2.5118 2.55228 2.06409 2 2.06409C1.44772 2.06409 1 2.5118 1 3.06409C1 3.61637 1.44772 4.06409 2 4.06409ZM2 5.06409C3.10457 5.06409 4 4.16866 4 3.06409C4 1.95952 3.10457 1.06409 2 1.06409C0.895431 1.06409 0 1.95952 0 3.06409C0 4.16866 0.895431 5.06409 2 5.06409Z" fill="white"/>
7
+ <rect x="12.7988" y="4.06433" width="8" height="1.6" transform="rotate(90 12.7988 4.06433)" fill="white"/>
8
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M12.002 4.06421C12.5542 4.06421 13.002 3.61649 13.002 3.06421C13.002 2.51192 12.5542 2.06421 12.002 2.06421C11.4497 2.06421 11.002 2.51192 11.002 3.06421C11.002 3.61649 11.4497 4.06421 12.002 4.06421ZM12.002 5.06421C13.1065 5.06421 14.002 4.16878 14.002 3.06421C14.002 1.95964 13.1065 1.06421 12.002 1.06421C10.8974 1.06421 10.002 1.95964 10.002 3.06421C10.002 4.16878 10.8974 5.06421 12.002 5.06421Z" fill="white"/>
9
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M12.002 14.0643C12.5542 14.0643 13.002 13.6166 13.002 13.0643C13.002 12.512 12.5542 12.0643 12.002 12.0643C11.4497 12.0643 11.002 12.512 11.002 13.0643C11.002 13.6166 11.4497 14.0643 12.002 14.0643ZM12.002 15.0643C13.1065 15.0643 14.002 14.1688 14.002 13.0643C14.002 11.9597 13.1065 11.0643 12.002 11.0643C10.8974 11.0643 10.002 11.9597 10.002 13.0643C10.002 14.1688 10.8974 15.0643 12.002 15.0643Z" fill="white"/>
10
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M2 14.0644C2.55228 14.0644 3 13.6167 3 13.0644C3 12.5121 2.55228 12.0644 2 12.0644C1.44772 12.0644 1 12.5121 1 13.0644C1 13.6167 1.44772 14.0644 2 14.0644ZM2 15.0644C3.10457 15.0644 4 14.169 4 13.0644C4 11.9598 3.10457 11.0644 2 11.0644C0.895431 11.0644 0 11.9598 0 13.0644C0 14.169 0.895431 15.0644 2 15.0644Z" fill="white"/>
11
+ </svg>
@@ -0,0 +1,6 @@
1
+ <svg width="14" height="10" viewBox="0 0 14 10" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M4.51904 2H10.519V4H4.51904V2Z" fill="#555D61"/>
3
+ <path d="M4.51904 8H8.51904V10H4.51904V8Z" fill="#555D61"/>
4
+ <path d="M10.519 5.92321L13.4807 2.96161L10.519 0L10.519 5.92321Z" fill="#555D61"/>
5
+ <path d="M7.98391 8C7.29229 9.1956 5.99961 10 4.51904 10C2.3099 10 0.519043 8.20914 0.519043 6C0.519043 3.79086 2.3099 2 4.51904 2C5.99961 2 7.2923 2.8044 7.98391 4H4.51904C3.41447 4 2.51904 4.89543 2.51904 6C2.51904 7.10457 3.41447 8 4.51904 8H7.98391Z" fill="#555D61"/>
6
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="26" height="26" viewBox="0 0 26 26" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M0 0L26 26H0V0Z" fill="#0068DE"/>
3
+ <line x1="12.4823" y1="20.4854" x2="4.70417" y2="12.7072" stroke="white" stroke-linecap="round"/>
4
+ <line x1="8.94524" y1="21.1924" x2="3.99549" y2="16.2427" stroke="white" stroke-linecap="round"/>
5
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M0 10 L7 0 L14 10" fill="none" stroke="white" stroke-width="1.5"/>
3
+ </svg>
@@ -0,0 +1,6 @@
1
+ <svg width="14" height="10" viewBox="0 0 14 10" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M9.48096 2H3.48096V4H9.48096V2Z" fill="white"/>
3
+ <path d="M9.48096 8H5.48096V10H9.48096V8Z" fill="white"/>
4
+ <path d="M3.48096 5.92321L0.519349 2.96161L3.48096 0L3.48096 5.92321Z" fill="white"/>
5
+ <path d="M6.01609 8C6.70771 9.1956 8.00039 10 9.48096 10C11.6901 10 13.481 8.20914 13.481 6C13.481 3.79086 11.6901 2 9.48096 2C8.00039 2 6.7077 2.8044 6.01609 4H9.48096C10.5855 4 11.481 4.89543 11.481 6C11.481 7.10457 10.5855 8 9.48096 8H6.01609Z" fill="white"/>
6
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M6.96161 0L10.9232 3.96161L7.96713 3.96161V6.55264L12.3875 9.0786L14 10L12.3875 10.9214L7 14L1.61245 10.9214L0 10L1.61245 9.0786L5.99272 6.57559V3.96161L3 3.96161L6.96161 0ZM5.99272 8.41839L3.2249 10L7 12.1572L10.7751 10L7.96713 8.39545V9.78795H5.99272V8.41839Z" fill="white"/>
3
+ </svg>
@@ -19,6 +19,8 @@ const theme = {
19
19
  grey4: '#dee2eb',
20
20
  grey5: '#fafafa',
21
21
  green: '#99db0c',
22
+ transparentWhite1:'#ffffff32',
23
+ transparentBlack1:'#263238e6',
22
24
  disabled: '#dfe1e1'
23
25
  },
24
26
  screen: {
@@ -0,0 +1,62 @@
1
+ <template>
2
+ <component-wrapper>
3
+ <text-overlay>
4
+ <slot></slot>
5
+ </text-overlay>
6
+ </component-wrapper>
7
+ </template>
8
+
9
+ <script>
10
+ // import InfoText from "@eturnity/eturnity_reusable_components/src/components/infoText"
11
+ //To use:
12
+ // <error-message
13
+ // alignText="right" // default is left
14
+ // />
15
+
16
+ import styled from 'vue-styled-components'
17
+
18
+ const TextOverlay = styled.div`
19
+ position: absolute;
20
+ top: calc(100% + 13px);
21
+ background: ${(props) => props.theme.colors.red};
22
+ padding: 10px;
23
+ width: max-content;
24
+ max-width: 100%;
25
+ min-width: 200px;
26
+ font-size: 11px;
27
+ font-weight: 400;
28
+ border-radius: 4px;
29
+ font-family: 'Lato-Bold', Arial;
30
+ z-index: 10;
31
+ color: ${(props) => props.theme.colors.white};
32
+
33
+ :before {
34
+ content: '';
35
+ background-color: ${(props) => props.theme.colors.red};
36
+ position: absolute;
37
+ top: 2px;
38
+ left: 40px;
39
+ height: 11px;
40
+ width: 11px;
41
+ transform-origin: center center;
42
+ transform: translate(-2em, -0.5em) rotate(45deg);
43
+ }
44
+ `
45
+
46
+ const ComponentWrapper = styled.div`
47
+ display: block;
48
+ `
49
+
50
+ export default {
51
+ name: 'info-text',
52
+ components: {
53
+ TextOverlay,
54
+ ComponentWrapper
55
+ },
56
+ props: {},
57
+ methods: {},
58
+ data() {
59
+ return {}
60
+ }
61
+ }
62
+ </script>
@@ -1,6 +1,7 @@
1
1
  <template>
2
- <wrapper :isDisabled="isDisabled" :size="size" :cursor="cursor">
2
+ <Wrapper :isDisabled="disabled" :size="size" :cursor="cursor">
3
3
  <icon-image
4
+ :disabled="disabled"
4
5
  :size="size"
5
6
  :color="color"
6
7
  :hoveredColor="hoveredColor"
@@ -8,7 +9,7 @@
8
9
  require(`!html-loader!./../../assets/svgIcons/${name.toLowerCase()}.svg`)
9
10
  "
10
11
  ></icon-image>
11
- </wrapper>
12
+ </Wrapper>
12
13
  </template>
13
14
 
14
15
  <script>
@@ -34,14 +35,14 @@ const Wrapper = styled('div', wrapperAttrs)`
34
35
  const IconImageProps = { color: String, hoveredColor: String, size: String }
35
36
  const IconImage = styled('div', IconImageProps)`
36
37
  svg {
37
- width: ${(props) => props.size};
38
- height: ${(props) => props.size};
38
+ width: 100%;
39
+ height: 100%;
39
40
  }
40
- svg > path {
41
+ svg path {
41
42
  ${(props) =>
42
43
  props.color && `fill: ${props.theme.colors[props.color] || props.color};`}
43
44
  }
44
- &:hover > svg > path {
45
+ &:hover > svg path {
45
46
  ${(props) => props.hoveredColor && `fill: ${props.hoveredColor};`}
46
47
  }
47
48
  `
@@ -49,11 +50,11 @@ const IconImage = styled('div', IconImageProps)`
49
50
  export default {
50
51
  name: 'icon',
51
52
  components: {
52
- Wrapper,
53
- IconImage
53
+ IconImage,
54
+ Wrapper
54
55
  },
55
56
  props: {
56
- isDisabled: {
57
+ disabled: {
57
58
  required: false,
58
59
  default: false
59
60
  },
@@ -72,7 +73,7 @@ export default {
72
73
  },
73
74
  cursor: {
74
75
  required: false,
75
- default: 'pointer'
76
+ default: null
76
77
  }
77
78
  },
78
79
  data() {
@@ -0,0 +1,116 @@
1
+ <template>
2
+ <Wrapper
3
+ :disabled="disabled"
4
+ :size="size"
5
+ :backgroundColor="backgroundColor"
6
+ :borderRadius="borderRadius"
7
+ :hoveredBackgroundColor="hoveredBackgroundColor"
8
+ :isHovered="isHovered"
9
+ >
10
+ <icon :disabled="disabled"
11
+ :size="iconSize"
12
+ :name="name"
13
+ :color="iconColor"
14
+ :hoveredColor="hoveredIconColor" />
15
+ <caret v-if="hasCaret">
16
+ <iconWrapper :disabled="disabled"
17
+ size="10px"
18
+ name="arrow_down"
19
+ :iconColor="iconColor"
20
+ :hoveredBackgroundColor="hoveredIconColor"
21
+ borderRadius="1px"
22
+ />
23
+ </caret>
24
+ </Wrapper>
25
+ </template>
26
+
27
+ <script>
28
+ // import Icon from "@eturnity/eturnity_reusable_components/src/components/icon"
29
+ // How to use:
30
+ //<icon
31
+ // name="House" //required. a svg file named [name].svg should be present in /assets/svgIcons
32
+ // color="red"
33
+ // hoveredColor="blue"
34
+ // size="60px" by default, this is 30px
35
+ // />
36
+
37
+ import styled from 'vue-styled-components'
38
+ import icon from '../icon'
39
+ const wrapperAttrs = { isHovered:Boolean,borderRadius:String,disabled: Boolean, size: String,backgroundColor:String,hoveredBackgroundColor:String }
40
+ const Wrapper = styled('div', wrapperAttrs)`
41
+ position:relative;
42
+ display: inline-flex;
43
+ width: ${(props) => props.size};
44
+ height: ${(props) => props.size};
45
+ justify-content:center;
46
+ align-items:center;
47
+ cursor: ${(props) => (props.disabled ? 'not-allowed' : 'pointer')};
48
+ background-color: ${(props)=>props.theme.colors[props.backgroundColor] || props.backgroundColor};
49
+ border-radius: ${(props) => props.borderRadius};
50
+ ${(props)=>(props.isHovered ? 'background-color:'+props.theme.colors[props.hoveredBackgroundColor] || props.hoveredBackgroundColor : "")};
51
+ &:hover{
52
+ background-color:${(props)=>props.theme.colors[props.hoveredBackgroundColor] || props.hoveredBackgroundColor};
53
+ }
54
+ `
55
+ const caret=styled.div`
56
+ position:absolute;
57
+ bottom:3px;
58
+ right:2px;
59
+ height:10px;
60
+ `
61
+
62
+ export default {
63
+ name: 'iconWrapper',
64
+ components: {
65
+ Wrapper,
66
+ icon,
67
+ caret
68
+ },
69
+ props: {
70
+ disabled: {
71
+ required: false,
72
+ default: false
73
+ },
74
+ name: {
75
+ required: true
76
+ },
77
+ iconColor: {
78
+ required: false,
79
+ default: 'white'
80
+ },
81
+ hoveredIconColor: {
82
+ required: false
83
+ },
84
+ backgroundColor: {
85
+ required: false,
86
+ },
87
+ hoveredBackgroundColor: {
88
+ required: false,
89
+ default:"transparentWhite1"
90
+ },
91
+ size: {
92
+ required: false,
93
+ default: '32px'
94
+ },
95
+ iconSize:{
96
+ required: false,
97
+ default:'18px'
98
+ },
99
+ hasCaret:{
100
+ required: false,
101
+ default: false
102
+ },
103
+ borderRadius:{
104
+ required:false,
105
+ default:'6px'
106
+ },
107
+ isHovered:{
108
+ required:false,
109
+ default:false
110
+ }
111
+ },
112
+ data() {
113
+ return {}
114
+ }
115
+ }
116
+ </script>