@eturnity/eturnity_reusable_components 7.12.7-EPDM-10299.0 → 7.12.7-EPDM-7951.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 (50) hide show
  1. package/.storybook/preview.js +1 -1
  2. package/package.json +19 -23
  3. package/src/App.vue +2 -2
  4. package/src/components/addNewButton/index.vue +5 -3
  5. package/src/components/buttons/buttonIcon/index.vue +1 -1
  6. package/src/components/buttons/closeButton/index.vue +1 -1
  7. package/src/components/buttons/mainButton/index.vue +6 -1
  8. package/src/components/deleteIcon/DeleteIcon.stories.js +7 -7
  9. package/src/components/deleteIcon/index.vue +25 -21
  10. package/src/components/draggableInputHandle/index.vue +24 -25
  11. package/src/components/dropdown/index.vue +129 -110
  12. package/src/components/errorMessage/index.vue +1 -1
  13. package/src/components/filter/filterSettings.vue +55 -97
  14. package/src/components/filter/index.vue +3 -3
  15. package/src/components/filter/parentDropdown.vue +2 -2
  16. package/src/components/icon/iconCache.js +23 -0
  17. package/src/components/icon/iconCollection.vue +2 -2
  18. package/src/components/icon/index.vue +67 -70
  19. package/src/components/iconWrapper/index.vue +1 -4
  20. package/src/components/infoCard/index.vue +2 -3
  21. package/src/components/infoText/index.vue +1 -1
  22. package/src/components/inputs/checkbox/index.vue +21 -6
  23. package/src/components/inputs/inputNumber/index.vue +10 -10
  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 +7 -8
  28. package/src/components/inputs/select/index.vue +199 -55
  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 +27 -31
  35. package/src/components/modals/modal/index.vue +2 -6
  36. package/src/components/navigationTabs/index.vue +27 -20
  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 +10 -7
  42. package/src/components/sideMenu/index.vue +1 -1
  43. package/src/components/spinner/index.vue +6 -11
  44. package/src/components/tableDropdown/index.vue +21 -26
  45. package/src/components/tables/mainTable/exampleNested.vue +1 -1
  46. package/src/components/tables/mainTable/index.vue +10 -9
  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 +95 -100
  50. package/src/main.js +4 -11
@@ -21,8 +21,8 @@
21
21
  // :minValue="10" //default is 0 if not specified
22
22
  // :maxValue="500" //default is 100 if not specified
23
23
  // />
24
- import Slider from "@vueform/slider/dist/slider.vue2.js"
25
- import styled from "vue-styled-components"
24
+ import Slider from '@vueform/slider'
25
+ import styled from 'vue3-styled-components'
26
26
 
27
27
  const Container = styled.div`
28
28
  margin: 16px 0 16px 21px;
@@ -81,45 +81,45 @@ const NumberText = styled.div`
81
81
  `
82
82
 
83
83
  export default {
84
- name: "slider",
84
+ name: 'slider',
85
85
  components: {
86
86
  Slider,
87
87
  Container,
88
- NumberText,
88
+ NumberText
89
89
  },
90
90
  props: {
91
91
  value: {
92
92
  required: false,
93
- default: 0,
93
+ default: 0
94
94
  },
95
95
  unit: {
96
96
  required: false,
97
- default: "",
97
+ default: ''
98
98
  },
99
99
  minValue: {
100
100
  required: false,
101
- default: 0,
101
+ default: 0
102
102
  },
103
103
  maxValue: {
104
104
  required: false,
105
- default: 100,
106
- },
105
+ default: 100
106
+ }
107
107
  },
108
108
  methods: {
109
109
  onChange(value) {
110
- this.$emit("change", value)
111
- },
110
+ this.$emit('change', value)
111
+ }
112
112
  },
113
113
  mounted() {
114
114
  // This is to add the 3 white lines to the slider button
115
- let slider = document.querySelector(".slider-touch-area")
116
- let span1 = document.createElement("span")
117
- let span2 = document.createElement("span")
118
- let span3 = document.createElement("span")
115
+ let slider = document.querySelector('.slider-touch-area')
116
+ let span1 = document.createElement('span')
117
+ let span2 = document.createElement('span')
118
+ let span3 = document.createElement('span')
119
119
  slider.appendChild(span1)
120
120
  slider.appendChild(span2)
121
121
  slider.appendChild(span3)
122
- },
122
+ }
123
123
  }
124
124
  </script>
125
125
 
@@ -45,7 +45,7 @@
45
45
  >
46
46
  <label-text :size="size" :fontColor="fontColor">{{ label }}</label-text>
47
47
  <info-text
48
- @click.native.stop
48
+ @click.stop
49
49
  v-if="infoTextMessage"
50
50
  :text="infoTextMessage"
51
51
  />
@@ -70,7 +70,7 @@
70
70
  // :disabled="false"
71
71
  // />
72
72
 
73
- import styled from 'vue-styled-components'
73
+ import styled from 'vue3-styled-components'
74
74
  import InfoText from '../../infoText'
75
75
  import theme from '../../../assets/theme'
76
76
  const Container = styled.div``
@@ -51,7 +51,7 @@
51
51
  // :isDisabled="true"
52
52
  // . fontSize="13px"
53
53
  // />
54
- import styled from 'vue-styled-components'
54
+ import styled from 'vue3-styled-components'
55
55
  import InfoText from '../../infoText'
56
56
  import ErrorMessage from '../../errorMessage'
57
57
 
@@ -44,7 +44,7 @@
44
44
  >
45
45
  <label-text :size="size" :fontColor="fontColor">{{ label }}</label-text>
46
46
  <info-text
47
- @click.native.stop
47
+ @click.stop
48
48
  v-if="infoTextMessage"
49
49
  :text="infoTextMessage"
50
50
  />
@@ -70,7 +70,7 @@
70
70
  // data-id="test_data_id"
71
71
  // />
72
72
 
73
- import styled from 'vue-styled-components'
73
+ import styled from 'vue3-styled-components'
74
74
  import InfoText from '../../infoText'
75
75
 
76
76
  const Container = styled.div`
@@ -1,29 +1,25 @@
1
1
  <template>
2
- <label-wrapper
3
- :labelAlign="labelAlign">
4
- <input-label
5
- :labelFontColor="labelFontColor"
6
- :fontSize="fontSize"
7
- >
8
- <slot></slot>
9
- <optionalLabel v-if="labelOptional"
10
- >({{ $gettext('Optional') }})</optionalLabel
11
- ></input-label
12
- >
13
- <info-text
14
- v-if="infoTextMessage"
15
- :text="infoTextMessage"
16
- :size="fontSize ? fontSize : '16px'"
17
- :alignArrow="infoTextAlign"
18
- />
19
- </label-wrapper>
2
+ <label-wrapper :labelAlign="labelAlign">
3
+ <input-label :labelFontColor="labelFontColor" :fontSize="fontSize">
4
+ <slot></slot>
5
+ <optionalLabel v-if="labelOptional"
6
+ >({{ $gettext('Optional') }})</optionalLabel
7
+ ></input-label
8
+ >
9
+ <info-text
10
+ v-if="infoTextMessage"
11
+ :text="infoTextMessage"
12
+ borderColor="#ccc"
13
+ :size="fontSize ? fontSize : '16px'"
14
+ :alignArrow="infoTextAlign"
15
+ />
16
+ </label-wrapper>
20
17
  </template>
21
18
 
22
19
  <script>
23
- import styled from 'vue-styled-components'
20
+ import styled from 'vue3-styled-components'
24
21
  import InfoText from '../infoText'
25
22
 
26
-
27
23
  const labelAttrs = { fontSize: String, labelFontColor: String }
28
24
  const InputLabel = styled('div', labelAttrs)`
29
25
  color: ${(props) =>
@@ -40,15 +36,15 @@ const optionalLabel = styled.span`
40
36
  font-weight: 300;
41
37
  `
42
38
 
43
- const LabelWrapper = styled('div',{labelAlign:String})`
44
- ${props=>props.labelAlign=='horizontal'?
45
- 'display: inline-grid;':
46
- 'display: grid;'
47
- }
48
- ${props=>props.labelAlign=='horizontal'?
49
- 'margin-right: 10px;':
50
- 'margin-bottom: 8px;'
51
- }
39
+ const LabelWrapper = styled('div', { labelAlign: String })`
40
+ ${(props) =>
41
+ props.labelAlign == 'horizontal'
42
+ ? 'display: inline-grid;'
43
+ : 'display: grid;'}
44
+ ${(props) =>
45
+ props.labelAlign == 'horizontal'
46
+ ? 'margin-right: 10px;'
47
+ : 'margin-bottom: 8px;'}
52
48
  vertical-align: center;
53
49
  grid-template-columns: auto auto;
54
50
  grid-gap: 12px;
@@ -97,7 +93,7 @@ export default {
97
93
  labelAlign: {
98
94
  required: false,
99
95
  default: 'vertical'
100
- },
101
- },
96
+ }
97
+ }
102
98
  }
103
99
  </script>
@@ -10,11 +10,7 @@
10
10
  <content-container :visible="!isLoading">
11
11
  <slot />
12
12
  </content-container>
13
- <close-button
14
- v-if="!hideClose"
15
- @click.native="onCloseModal()"
16
- class="close"
17
- />
13
+ <close-button v-if="!hideClose" @click="onCloseModal()" class="close" />
18
14
  </modal-container>
19
15
  </page-wrapper>
20
16
  </template>
@@ -30,7 +26,7 @@
30
26
  // <div>Data....</div>
31
27
  // </modal>
32
28
 
33
- import styled from 'vue-styled-components'
29
+ import styled from 'vue3-styled-components'
34
30
  import CloseButton from '../../buttons/closeButton'
35
31
  import Spinner from '../../spinner'
36
32
 
@@ -22,7 +22,7 @@
22
22
  </template>
23
23
 
24
24
  <script>
25
- import styled from 'vue-styled-components'
25
+ import styled from 'vue3-styled-components'
26
26
  import InfoText from '../infoText'
27
27
  const TabAttr = {
28
28
  active: Boolean,
@@ -31,12 +31,12 @@ const TabAttr = {
31
31
  }
32
32
 
33
33
  const bottomLine = styled('div')`
34
- position: absolute;
35
- bottom: 0;
36
- left: 0;
37
- height: 1px;
38
- width: 100%;
39
- background-color: #b2b9c5;
34
+ position: absolute;
35
+ bottom: 0;
36
+ left: 0;
37
+ height: 1px;
38
+ width: 100%;
39
+ background-color: ${(props) => props.theme.colors.grey3};
40
40
  `
41
41
  const roofTabWrap = styled('div')`
42
42
  display: flex;
@@ -48,17 +48,22 @@ const roofTabWrap = styled('div')`
48
48
  const Uppercase = styled('span')`
49
49
  text-transform: uppercase;
50
50
  `
51
- const Option = styled('div',TabAttr)`
52
- font-size: 13px;
53
- font-weight: 700;
54
- display:flex;
55
- justify-content: center;
56
- flex-direction: row;
57
- gap: 10px;
58
- color: ${props=>props.textColor ?
59
- props.theme.colors[props.textColor] ? props.theme.colors[props.textColor] : props.textColor :
60
- props.isDisabled ? props.theme.colors.grey2 : props.theme.colors.black};
61
- `
51
+ const Option = styled('div', TabAttr)`
52
+ font-size: 13px;
53
+ font-weight: 700;
54
+ display: flex;
55
+ justify-content: center;
56
+ flex-direction: row;
57
+ gap: 10px;
58
+ color: ${(props) =>
59
+ props.textColor
60
+ ? props.theme.colors[props.textColor]
61
+ ? props.theme.colors[props.textColor]
62
+ : props.textColor
63
+ : props.isDisabled
64
+ ? props.theme.colors.grey2
65
+ : props.theme.colors.black};
66
+ `
62
67
  const Tab = styled('div', TabAttr)`
63
68
  padding: 16px 10px;
64
69
  margin-right: 5px;
@@ -67,7 +72,8 @@ const Tab = styled('div', TabAttr)`
67
72
  z-index: 10;
68
73
  border-bottom: 2px solid
69
74
  ${(props) => (props.active ? props.theme.colors.primary : 'transparent')};
70
- background-color: ${(props) => (props.isDisabled ? props.theme.colors.grey5 : 'transparent')};
75
+ background-color: ${(props) =>
76
+ props.isDisabled ? props.theme.colors.grey5 : 'transparent'};
71
77
  transition: 0.2s ease;
72
78
  cursor: ${(props) => (props.isDisabled ? 'not-allowed' : 'pointer')};
73
79
  min-width: 140px;
@@ -76,7 +82,8 @@ const Tab = styled('div', TabAttr)`
76
82
  justify-content: space-between;
77
83
  min-height: 55px;
78
84
  &:hover {
79
- border-color: ${(props) => props.isDisabled ? props.theme.colors.grey2 : props.theme.colors.primary};
85
+ border-color: ${(props) =>
86
+ props.isDisabled ? props.theme.colors.grey2 : props.theme.colors.primary};
80
87
  }
81
88
  `
82
89
 
@@ -18,7 +18,7 @@
18
18
  // color="red"
19
19
  // infoText="My info text"
20
20
  // />
21
- import styled from "vue-styled-components"
21
+ import styled from "vue3-styled-components"
22
22
  import InfoText from "../infoText"
23
23
 
24
24
  const textAttrs = { color: String, hasInfoText: Boolean, marginBottom: String }
@@ -18,7 +18,7 @@
18
18
  // text="My Page Title"
19
19
  // color="red"
20
20
  // />
21
- import styled from "vue-styled-components"
21
+ import styled from "vue3-styled-components"
22
22
  import InfoText from "../infoText"
23
23
 
24
24
  const wrapAttrs = { hasInfoText: Boolean }
@@ -40,7 +40,7 @@ const TitleText = styled('span', titleAttrs)`
40
40
  `
41
41
 
42
42
  export default {
43
- name: "page-title",
43
+ name: 'page-title',
44
44
  components: {
45
45
  TitleText,
46
46
  TitleWrap,
@@ -48,10 +48,10 @@ export default {
48
48
  },
49
49
  props: {
50
50
  text: {
51
- required: true,
51
+ required: true
52
52
  },
53
53
  color: {
54
- required: false,
54
+ required: false
55
55
  },
56
56
  fontSize: {
57
57
  required: false,
@@ -70,7 +70,7 @@
70
70
  </template>
71
71
 
72
72
  <script>
73
- import styled from 'vue-styled-components'
73
+ import styled from 'vue3-styled-components'
74
74
  import icon from '../icon'
75
75
  import theme from '@/assets/theme.js'
76
76
 
@@ -31,7 +31,7 @@
31
31
  // stepNumber="4"
32
32
  // :labelText="translate('step')"
33
33
  // />
34
- import styled from "vue-styled-components"
34
+ import styled from "vue3-styled-components"
35
35
 
36
36
  const Container = styled.div`
37
37
  display: grid;
@@ -9,7 +9,7 @@
9
9
  :isEditionAllowed="editionAllowed"
10
10
  :isActive="activated"
11
11
  :cursor="cursor"
12
- @click.native="editionAllowed ? (activated = !activated) : ''"
12
+ @click="editionAllowed ? (activated = !activated) : ''"
13
13
  >
14
14
  <icon
15
15
  v-if="!!iconName"
@@ -28,11 +28,11 @@
28
28
  v-if="activated"
29
29
  v-click-outside="clickOutsideActionHandler"
30
30
  >
31
- <edit-item @click.native="deleteModalOpened = !deleteModalOpened">
31
+ <edit-item @click="deleteModalOpened = !deleteModalOpened">
32
32
  <delete-icon />
33
33
  <div>{{ $gettext('Delete') }}</div>
34
34
  </edit-item>
35
- <edit-item @click.native="onEditClick">
35
+ <edit-item @click="onEditClick">
36
36
  <icon-container>
37
37
  <icon name="edit_button" size="14px" />
38
38
  </icon-container>
@@ -52,10 +52,10 @@
52
52
  <page-title :text="$gettext('delete_confirm_text')" />
53
53
  <page-subtitle :text="$gettext('delete_confirm_subtext')" />
54
54
  <cta-container>
55
- <main-button @click.native="onDelete" :text="$gettext('Delete')" />
55
+ <main-button @click="onDelete" :text="$gettext('Delete')" />
56
56
  <main-button
57
57
  type="cancel"
58
- @click.native="closeDeleteModal"
58
+ @click="closeDeleteModal"
59
59
  :text="$gettext('Cancel')"
60
60
  />
61
61
  </cta-container>
@@ -78,7 +78,8 @@
78
78
  // @deleteHandler="onMarkerDelete($event)"
79
79
  // />
80
80
 
81
- import styled from 'vue-styled-components'
81
+ import styled from 'vue3-styled-components'
82
+ import vClickOutside from 'click-outside-vue3'
82
83
  import Icon from '../icon'
83
84
  import Modal from '../modals/modal'
84
85
  import PageTitle from '../pageTitle'
@@ -129,7 +130,6 @@ const MarkerContainer = styled('div', MarkerAttrs)`
129
130
  props.backgroundColor ? props.backgroundColor : props.theme.colors.grey3};
130
131
  border-radius: ${(props) =>
131
132
  props.hasBorderRadius ? (props.withDate ? '4px 0 0 4px' : '4px') : '0'};
132
-
133
133
  white-space: nowrap;
134
134
  cursor: ${(props) => (props.isEditionAllowed ? 'pointer' : props.cursor)};
135
135
 
@@ -196,6 +196,9 @@ const Date = styled.div`
196
196
 
197
197
  export default {
198
198
  name: 'project-marker',
199
+ directives: {
200
+ clickOutside: vClickOutside.directive
201
+ },
199
202
  components: {
200
203
  PageContainer,
201
204
  MarkerContainer,
@@ -78,7 +78,7 @@
78
78
  </template>
79
79
 
80
80
  <script>
81
- import styled from 'vue-styled-components'
81
+ import styled from 'vue3-styled-components'
82
82
  import Icon from '../icon'
83
83
  import Spinner from '../spinner'
84
84
 
@@ -1,24 +1,19 @@
1
1
  <template>
2
2
  <spinner-container v-if="fullWidth">
3
3
  <container>
4
- <spinner-wrapper
5
- :size="size"
6
- :src="require('../../assets/icons/black_spinner.svg')"
7
- />
4
+ <spinner-wrapper :size="size" />
8
5
  </container>
9
6
  </spinner-container>
10
7
  <container v-else :limitedToModal="limitedToModal">
11
- <spinner-wrapper
12
- :size="size"
13
- :src="require('../../assets/icons/black_spinner.svg')"
14
- />
8
+ <spinner-wrapper :size="size" />
15
9
  </container>
16
10
  </template>
17
11
 
18
12
  <script>
19
13
  // import Spinner from "@eturnity/eturnity_reusable_components/src/components/spinner"
20
14
  // <spinner size="30px" />
21
- import styled from 'vue-styled-components'
15
+ import styled from 'vue3-styled-components'
16
+ import SpinnerSvg from '../../assets/icons/black_spinner.svg?component'
22
17
 
23
18
  const SpinnerContainer = styled.div`
24
19
  position: fixed;
@@ -43,7 +38,7 @@ const Container = styled('div', containerAttrs)`
43
38
  `
44
39
 
45
40
  const spinnerAttrs = { size: String }
46
- const SpinnerWrapper = styled('img', spinnerAttrs)`
41
+ const SpinnerWrapper = styled(SpinnerSvg, spinnerAttrs)`
47
42
  width: ${(props) => (props.size ? props.size : '60px')};
48
43
  `
49
44
 
@@ -69,4 +64,4 @@ export default {
69
64
  }
70
65
  }
71
66
  }
72
- </script>
67
+ </script>
@@ -53,7 +53,7 @@
53
53
  </no-template>
54
54
  <input-container
55
55
  v-if="item.type === 'input'"
56
- @click.native.stop="onInputClick()"
56
+ @click.stop="onInputClick()"
57
57
  >
58
58
  <text-container
59
59
  v-if="customInputDisabled"
@@ -93,16 +93,11 @@
93
93
  triggerType="hover"
94
94
  ></et-popover>
95
95
  <arrow-down
96
- @click.native.stop="toggleOpen"
96
+ @click.stop="toggleOpen"
97
97
  v-if="!isOpen"
98
98
  class="arrow-dropdown"
99
- :src="require('../../assets/icons/collapse_arrow_icon.svg')"
100
- />
101
- <arrow-up
102
- @click.native.stop="toggleOpen"
103
- v-else
104
- :src="require('../../assets/icons/collapse_arrow_icon.svg')"
105
99
  />
100
+ <arrow-up @click.stop="toggleOpen" v-else />
106
101
  </arrow-wrapper>
107
102
  <options-container v-if="isOpen" ref="optionsContainer">
108
103
  <options-wrapper @click.prevent.stop>
@@ -127,20 +122,18 @@
127
122
  :key="index"
128
123
  @click="onItemClick(item)"
129
124
  :tabindex="0"
130
- @keyup.enter.native="onItemClick(item)"
125
+ @keyup.enter="onItemClick(item)"
131
126
  >
132
- <template v-for="(option, idx) in optionsDisplay">
133
- <span v-if="option !== 'template'" :key="idx">
127
+ <template v-for="(option, idx) in optionsDisplay" :key="idx">
128
+ <span v-if="option !== 'template'">
134
129
  {{ !!item[option] ? item[option] : '-' }}
135
130
  </span>
136
131
  <template-button
137
- :key="idx"
138
132
  @click.stop="onTemplateClick(item)"
139
133
  v-else-if="option === 'template' && item.has_template"
140
134
  >{{ $gettext('Use template...') }}</template-button
141
135
  >
142
136
  <no-template
143
- :key="idx"
144
137
  v-else-if="option === 'template' && !item.has_template"
145
138
  >
146
139
  {{ $gettext('No main component template') }}
@@ -183,10 +176,12 @@
183
176
  // :optionsDisplay="['display_name', 'company_item_number']" // Array. what should be displayed
184
177
  // :disabled="true"
185
178
  // />
186
- import styled from 'vue-styled-components'
187
- import Spinner from '@eturnity/eturnity_reusable_components/src/components/spinner'
188
- import SearchInput from '@eturnity/eturnity_reusable_components/src/components/inputs/searchInput'
189
- import InputText from '@eturnity/eturnity_reusable_components/src/components/inputs/inputText'
179
+ import styled from 'vue3-styled-components'
180
+ import Spinner from '../spinner'
181
+ import SearchInput from '../inputs/searchInput'
182
+ import InputText from '../inputs/inputText'
183
+ import CollapseArrowIcon from '../../assets/icons/collapse_arrow_icon.svg'
184
+ import SubpositionMarkerIcon from '../../assets/icons/subposition_marker.svg'
190
185
 
191
186
  const rowAttrs = { disabled: Boolean, isOpen: Boolean }
192
187
  const DropdownRow = styled('div', rowAttrs)`
@@ -237,9 +232,8 @@ const ComponentContainer = styled('div', containerAttrs)`
237
232
  padding: 5px 4px;
238
233
  `
239
234
 
240
- const ArrowDown = styled.img`
235
+ const ArrowDown = styled(CollapseArrowIcon)`
241
236
  width: 8px;
242
- transform: rotate(0deg);
243
237
  transition: transform 150ms ease;
244
238
  `
245
239
 
@@ -403,9 +397,7 @@ const TextContainer = styled.div`
403
397
  align-items: center;
404
398
  `
405
399
 
406
- const NestedIcon = styled.div`
407
- background-image: ${() =>
408
- `url(${require('../../assets/icons/subposition_marker.svg')})`};
400
+ const NestedIcon = styled(SubpositionMarkerIcon)`
409
401
  height: 10px;
410
402
  width: 6px;
411
403
  `
@@ -604,7 +596,7 @@ export default {
604
596
  }
605
597
  })
606
598
  })
607
- if (this.dynamicGridWidth.length === this.optionsDisplay.length) {
599
+ if (Array.isArray(this.dynamicGridWidth)) {
608
600
  this.dynamicGridWidth = this.dynamicGridWidth.join(' ')
609
601
  }
610
602
  }
@@ -627,9 +619,12 @@ export default {
627
619
  })
628
620
  }
629
621
  },
630
- optionItems(val) {
631
- if (val && val.length) {
632
- this.setDropdownWidth(val)
622
+ optionItems: {
623
+ immediate: true,
624
+ handler(val) {
625
+ if (val && val.length) {
626
+ this.setDropdownWidth(val)
627
+ }
633
628
  }
634
629
  }
635
630
  }
@@ -161,7 +161,7 @@
161
161
 
162
162
  <script>
163
163
  import draggable from "vuedraggable"
164
- import styled from "vue-styled-components"
164
+ import styled from "vue3-styled-components"
165
165
  import MainTable from "@/components/reusable-components/tables/MainTable"
166
166
  import InputText from "@eturnity/eturnity_reusable_components/src/components/inputs/inputText"
167
167
  import DeleteIcon from "@/components/reusable-components/DeleteIcon"
@@ -29,8 +29,12 @@
29
29
  <script>
30
30
  // ToDo: add this to storybook
31
31
  // import MainTable from "@eturnity/eturnity_reusable_components/src/components/tables/mainTable"
32
- import styled from 'vue-styled-components'
32
+ import styled from 'vue3-styled-components'
33
33
  import Spinner from '../../spinner'
34
+ import dragIconSvg from '../../../assets/icons/drag_icon.svg?url'
35
+ import subpositionIconSvg from '../../../assets/icons/subposition_icon.svg?url'
36
+ import arrowDownSvg from '../../../assets/icons/arrow_down.svg?url'
37
+ import arrowUpRedSvg from '../../../assets/icons/arrow_up_red.svg?url'
34
38
 
35
39
  const pageContainerProps = {
36
40
  tableHeight: String,
@@ -122,6 +126,7 @@ const TableContainer = styled('table', containerAttrs)`
122
126
  background-color: ${(props) => props.theme.colors.white};
123
127
  cursor: ${(props) => (props.tableCursor ? props.tableCursor : 'auto')};
124
128
 
129
+ .select-button,
125
130
  .arrow-container,
126
131
  .input-placeholder,
127
132
  .table-dropdown-item {
@@ -322,8 +327,7 @@ const TableContainer = styled('table', containerAttrs)`
322
327
  height: 16px;
323
328
  cursor: grab;
324
329
  background-position: center;
325
- background-image: ${() =>
326
- `url(${require('../../../assets/icons/drag_icon.svg')})`};
330
+ background-image: ${() => `url(${dragIconSvg})`};
327
331
 
328
332
  &:active {
329
333
  cursor: grabbing;
@@ -335,8 +339,7 @@ const TableContainer = styled('table', containerAttrs)`
335
339
  height: 11px;
336
340
  background: no-repeat;
337
341
  margin-left: 10px;
338
- background-image: ${() =>
339
- `url(${require('../../../assets/icons/subposition_icon.svg')})`};
342
+ background-image: ${() => `url(${subpositionIconSvg})`};
340
343
  }
341
344
 
342
345
  .arrow-down {
@@ -344,8 +347,7 @@ const TableContainer = styled('table', containerAttrs)`
344
347
  height: 11px;
345
348
  background: no-repeat;
346
349
  background-position: center;
347
- background-image: ${() =>
348
- `url(${require('../../../assets/icons/arrow_down.svg')})`};
350
+ background-image: ${() => `url(${arrowDownSvg})`};
349
351
  }
350
352
 
351
353
  .arrow-up {
@@ -353,8 +355,7 @@ const TableContainer = styled('table', containerAttrs)`
353
355
  height: 11px;
354
356
  background: no-repeat;
355
357
  background-position: center;
356
- background-image: ${() =>
357
- `url(${require('../../../assets/icons/arrow_up_red.svg')})`};
358
+ background-image: ${() => `url(${arrowUpRedSvg})`};
358
359
  }
359
360
  }
360
361