@eturnity/eturnity_reusable_components 7.24.3-EPDM-11250.0 → 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.
Files changed (68) hide show
  1. package/.eslintrc.js +125 -0
  2. package/package.json +6 -20
  3. package/src/App.vue +75 -70
  4. package/src/components/addNewButton/index.vue +24 -27
  5. package/src/components/banner/actionBanner/index.vue +32 -30
  6. package/src/components/banner/banner/index.vue +88 -80
  7. package/src/components/banner/infoBanner/index.vue +36 -44
  8. package/src/components/buttons/buttonIcon/index.vue +83 -78
  9. package/src/components/buttons/closeButton/index.vue +26 -26
  10. package/src/components/buttons/mainButton/index.vue +80 -76
  11. package/src/components/card/index.vue +56 -52
  12. package/src/components/collapsableInfoText/index.vue +81 -76
  13. package/src/components/deleteIcon/index.vue +31 -28
  14. package/src/components/draggableInputHandle/index.vue +20 -17
  15. package/src/components/dropdown/Dropdown.stories.js +8 -8
  16. package/src/components/dropdown/index.vue +75 -72
  17. package/src/components/errorMessage/index.vue +23 -23
  18. package/src/components/filter/filterSettings.vue +349 -329
  19. package/src/components/filter/index.vue +130 -130
  20. package/src/components/filter/parentDropdown.vue +43 -40
  21. package/src/components/icon/Icons.stories.js +4 -4
  22. package/src/components/icon/iconCache.js +1 -1
  23. package/src/components/icon/iconCollection.vue +40 -37
  24. package/src/components/icon/index.vue +72 -65
  25. package/src/components/iconWrapper/index.vue +122 -118
  26. package/src/components/infoCard/index.vue +20 -17
  27. package/src/components/infoText/index.vue +88 -82
  28. package/src/components/inputs/checkbox/index.vue +91 -94
  29. package/src/components/inputs/inputNumber/index.vue +508 -488
  30. package/src/components/inputs/inputNumberQuestion/index.vue +127 -124
  31. package/src/components/inputs/inputText/index.vue +265 -252
  32. package/src/components/inputs/radioButton/index.vue +135 -120
  33. package/src/components/inputs/searchInput/index.vue +84 -81
  34. package/src/components/inputs/select/index.vue +644 -631
  35. package/src/components/inputs/select/option/index.vue +91 -91
  36. package/src/components/inputs/select/select.stories.js +7 -7
  37. package/src/components/inputs/slider/index.vue +46 -46
  38. package/src/components/inputs/switchField/index.vue +159 -152
  39. package/src/components/inputs/textAreaInput/index.vue +120 -113
  40. package/src/components/inputs/toggle/index.vue +137 -127
  41. package/src/components/label/index.vue +64 -61
  42. package/src/components/markerItem/index.vue +40 -40
  43. package/src/components/modals/actionModal/index.vue +32 -29
  44. package/src/components/modals/infoModal/index.vue +34 -27
  45. package/src/components/modals/modal/index.vue +88 -80
  46. package/src/components/navigationTabs/index.vue +50 -47
  47. package/src/components/pageSubtitle/index.vue +33 -29
  48. package/src/components/pageTitle/index.vue +47 -39
  49. package/src/components/pagination/index.vue +64 -62
  50. package/src/components/progressBar/index.vue +70 -67
  51. package/src/components/projectMarker/index.vue +172 -163
  52. package/src/components/rangeSlider/Slider.vue +449 -449
  53. package/src/components/rangeSlider/index.vue +282 -270
  54. package/src/components/rangeSlider/utils/dom.js +3 -3
  55. package/src/components/selectedOptions/index.vue +51 -51
  56. package/src/components/sideMenu/index.vue +117 -109
  57. package/src/components/spinner/index.vue +37 -34
  58. package/src/components/tableDropdown/index.vue +343 -326
  59. package/src/components/tables/mainTable/index.vue +109 -106
  60. package/src/components/tables/viewTable/index.vue +105 -92
  61. package/src/components/threeDots/index.vue +174 -171
  62. package/src/components/videoThumbnail/index.vue +67 -59
  63. package/src/components/videoThumbnail/videoThumbnail.stories.js +6 -6
  64. package/src/helpers/numberConverter.js +1 -3
  65. package/src/helpers/translateLang.js +10 -13
  66. package/.prettierrc +0 -7
  67. package/public/favicon.ico +0 -0
  68. package/public/index.html +0 -17
@@ -1,46 +1,61 @@
1
1
  <template>
2
- <component-wrapper :layout="layout">
3
- <radio-wrapper v-for="(item, index) in options" :key="item.value">
4
- <label-container
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
- <radio
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
- <label-text :isDisabled="item.disabled" v-if="item.label">{{ item.label }}</label-text>
22
- <info-text v-if="item.infoText" :text="item.infoText" size="16px" />
23
- </label-container>
24
- <image-container v-if="item.img">
25
- <radio-image :src="item.img" />
26
- <div class="search-icn-container" @click="toggleImageModal(index)">
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
- </image-container>
33
- <modal
47
+ </ImageContainer>
48
+ <Modal
34
49
  v-if="item.img"
35
- :isOpen="isImageOpen(index)"
50
+ :is-open="isImageOpen(index)"
36
51
  @on-close="toggleImageModal(null)"
37
52
  >
38
- <modal-image-container>
39
- <modal-image :src="item.img" />
40
- </modal-image-container>
41
- </modal>
42
- </radio-wrapper>
43
- </component-wrapper>
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
- layout: String
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
- props.layout === 'vertical' ? 'column' : 'row'};
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
- size: String,
95
- isDisabled: Boolean,
96
- isChecked: Boolean,
97
- checkmarkColor: String
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
- ? '15px' : 0 };
119
+ ? '15px' : 0 };
105
120
  align-items: center;
106
121
  color: ${(props) =>
107
- props.isDisabled ? props.theme.colors.grey2 : props.theme.colors.black};
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
- : '10px'};
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
- : '12px'};
141
+ : '12px'};
127
142
  width: ${(props) =>
128
143
  props.size === 'large'
129
144
  ? '23px'
130
145
  : props.size === 'medium'
131
146
  ? '16px'
132
- : '12px'};
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
- : '6px'};
163
+ : '6px'};
149
164
  height: ${(props) =>
150
165
  props.size === 'large'
151
166
  ? '10px'
152
167
  : props.size === 'medium'
153
168
  ? '8px'
154
- : '6px'};
169
+ : '6px'};
155
170
  border-radius: 100%;
156
171
  background: ${(props) =>
157
- props.checkmarkColor ? props.checkmarkColor : props.theme.colors.green};
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
- props.isDisabled ? props.theme.colors.grey2 : props.theme.colors.black};
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
- name: 'radio-button',
205
- components: {
206
- Radio,
207
- ComponentWrapper,
208
- LabelContainer,
209
- RadioWrapper,
210
- RadioImage,
211
- ImageContainer,
212
- Modal,
213
- ModalImage,
214
- ModalImageContainer,
215
- InfoText,
216
- LabelText
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
- size: {
232
- required: false,
233
- default: 'medium' // small, medium, large
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
- name: {
236
- required: false,
237
- default: ''
238
- },
239
- checkmarkColor: {
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
- isImageOpen(index) {
259
- return this.selectedImage === index
269
+ created() {
270
+ this.radioName =
271
+ this.name.length === 0 ? Math.round(Math.random() * 10000) : this.name
260
272
  },
261
- toggleImageModal(value) {
262
- this.selectedImage = value
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
- <container :inputWidth="inputWidth">
3
- <input-wrapper :iconPosition="iconPosition" :iconColor="iconColor">
2
+ <Container :input-width="inputWidth">
3
+ <InputWrapper
4
+ :icon-color="iconColor"
5
+ :icon-position="iconPosition"
6
+ >
4
7
  <SearchIconSvg class="search-icn" />
5
- <input-container
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
- </input-wrapper>
18
- </container>
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
- isDisabled: Boolean,
40
- inputWidth: String,
41
- isFilter: Boolean
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
- props.isFilter ? '7px 30px 7px 10px' : '11px 30px 11px 10px'};
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
- : props.iconColor};
84
+ : props.iconColor};
82
85
  }
83
86
  }
84
87
  `
85
88
 
86
- export default {
87
- name: 'search-input',
88
- components: {
89
- InputContainer,
90
- InputWrapper,
91
- Container,
92
- SearchIconSvg
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
- isFilter: {
111
- required: false,
112
- default: false
113
- },
114
- hasFocus: {
115
- required: false,
116
- default: false
117
- },
118
- dataId: {
119
- required: false,
120
- default: ''
121
- },
122
- iconPosition: {
123
- type: String,
124
- default: 'right'
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
- iconColor: {
127
- type: String,
128
- default: 'black'
129
- }
130
- },
131
- emits: ['on-change'],
132
- methods: {
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
- focusInputElement() {
137
- this.$nextTick(() => {
138
- this.$refs.inputElement.$el.focus()
139
- })
140
- }
141
- },
142
- watch: {
143
- hasFocus(newVal) {
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>