@eturnity/eturnity_reusable_components 7.12.7-EPDM-7951.2 → 7.12.7-EPDM-10602.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 (51) hide show
  1. package/.storybook/preview.js +1 -1
  2. package/package.json +23 -19
  3. package/src/App.vue +2 -2
  4. package/src/assets/svgIcons/anchor.svg +18 -0
  5. package/src/components/addNewButton/index.vue +3 -5
  6. package/src/components/buttons/buttonIcon/index.vue +1 -1
  7. package/src/components/buttons/closeButton/index.vue +1 -1
  8. package/src/components/buttons/mainButton/index.vue +1 -6
  9. package/src/components/deleteIcon/DeleteIcon.stories.js +7 -7
  10. package/src/components/deleteIcon/index.vue +21 -25
  11. package/src/components/draggableInputHandle/index.vue +25 -24
  12. package/src/components/dropdown/index.vue +110 -129
  13. package/src/components/errorMessage/index.vue +5 -10
  14. package/src/components/filter/filterSettings.vue +97 -57
  15. package/src/components/filter/index.vue +3 -3
  16. package/src/components/filter/parentDropdown.vue +2 -2
  17. package/src/components/icon/iconCollection.vue +2 -2
  18. package/src/components/icon/index.vue +70 -67
  19. package/src/components/iconWrapper/index.vue +4 -1
  20. package/src/components/infoCard/index.vue +3 -2
  21. package/src/components/infoText/index.vue +1 -1
  22. package/src/components/inputs/checkbox/index.vue +6 -21
  23. package/src/components/inputs/inputNumber/index.vue +11 -8
  24. package/src/components/inputs/inputNumberQuestion/index.vue +1 -1
  25. package/src/components/inputs/inputText/index.vue +3 -3
  26. package/src/components/inputs/radioButton/index.vue +1 -1
  27. package/src/components/inputs/searchInput/index.vue +8 -7
  28. package/src/components/inputs/select/index.vue +55 -199
  29. package/src/components/inputs/select/option/index.vue +5 -5
  30. package/src/components/inputs/slider/index.vue +16 -16
  31. package/src/components/inputs/switchField/index.vue +2 -2
  32. package/src/components/inputs/textAreaInput/index.vue +1 -1
  33. package/src/components/inputs/toggle/index.vue +2 -2
  34. package/src/components/label/index.vue +31 -27
  35. package/src/components/modals/modal/index.vue +6 -2
  36. package/src/components/navigationTabs/index.vue +20 -27
  37. package/src/components/pageSubtitle/index.vue +1 -1
  38. package/src/components/pageTitle/index.vue +4 -4
  39. package/src/components/pagination/index.vue +1 -1
  40. package/src/components/progressBar/index.vue +1 -1
  41. package/src/components/projectMarker/index.vue +7 -10
  42. package/src/components/sideMenu/index.vue +1 -1
  43. package/src/components/spinner/index.vue +11 -6
  44. package/src/components/tableDropdown/index.vue +26 -21
  45. package/src/components/tables/mainTable/exampleNested.vue +1 -1
  46. package/src/components/tables/mainTable/index.vue +9 -10
  47. package/src/components/tables/viewTable/index.vue +2 -2
  48. package/src/components/threeDots/index.vue +1 -1
  49. package/src/components/videoThumbnail/index.vue +100 -95
  50. package/src/main.js +11 -4
  51. 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
- <template #item="{ element: column }">
61
- <checkbox-wrapper>
62
- <drag-container class="drag-container">
63
- <icon :name="'duplicate-1'" size="12px" />
64
- </drag-container>
65
- <checkbox
66
- :label="column.text"
67
- :isChecked="column.selected"
68
- @on-event-handler="
69
- onChange({
70
- dataType: item.type,
71
- value: $event,
72
- choice: column.choice
73
- })
74
- "
75
- size="small"
76
- :isDisabled="column.selected && isCheckboxDisabled"
77
- />
78
- </checkbox-wrapper>
79
- </template>
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
- <VueDatePicker
173
- text-input
172
+ <date-picker-input
174
173
  :placeholder="$gettext('Date from')"
175
- :locale="getDatePickerLanguage()"
176
- :model-value="filter.range.start"
177
- :enable-time-picker="false"
178
- :clearable="false"
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
- @update:model-value="
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 'vue3-styled-components'
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 VueDatePicker from '@vuepic/vue-datepicker'
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 'vue3-styled-components'
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 'vue3-styled-components'
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 'vue3-styled-components'
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: 'collectionComponent',
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
- <wrapper>
3
- <icon-image>
4
- <i v-html="icon.html" />
5
- </icon-image>
6
- <striked-line v-if="isStriked"></striked-line>
7
- </wrapper>
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 setup>
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 { onMounted, reactive, watch } from 'vue'
23
- import styled from 'vue3-styled-components'
24
- import { fetchIcon } from './iconCache'
28
+ import styled from 'vue-styled-components'
25
29
 
26
- const props = defineProps({
27
- disabled: {
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.disabled ? 'not-allowed' : props.cursor};
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
- isDisabled: Boolean,
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: 0;
75
- left: 0;
47
+ bottom:0;
48
+ left:0;
76
49
  align-content: center;
77
50
  justify-content: center;
78
51
  width: 143%;
79
- height: 8%;
80
- background-color: ${({ theme }) => theme.colors[props.color] || props.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 IconImage = styled.div`
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
- ${({ theme }) =>
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
- const icon = reactive({ html: '' })
105
-
106
- const loadSvg = async () => {
107
- icon.html = await fetchIcon(props.name.toLowerCase())
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 'vue3-styled-components'
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 'vue3-styled-components'
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 'vue3-styled-components'
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="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
- <check-wrapper :hasLabel="hasLabel">
17
+ <div>
18
18
  <span class="checkmark"></span>
19
- </check-wrapper>
20
- <label-text v-if="hasLabel">{{ label }}</label-text>
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 'vue3-styled-components'
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 'vue3-styled-components'
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(event) {
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(event) {
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 (event.target.value === '') {
559
+ if (value === '') {
557
560
  this.$emit('on-input', '')
558
561
  }
559
562
  let evaluatedVal
560
563
  try {
561
- evaluatedVal = this.onEvaluateCode(event)
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(e)
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({
@@ -44,7 +44,7 @@
44
44
  // number_max_allowed: 10,
45
45
  // unit_short_name: "cm",
46
46
  // },
47
- import styled from "vue3-styled-components"
47
+ import styled from "vue-styled-components"
48
48
  import {
49
49
  stringToNumber,
50
50
  numberToString,