@eturnity/eturnity_reusable_components 7.12.6-EPDM-10310.2 → 7.12.6-EPDM-7951.2

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 (49) hide show
  1. package/.storybook/preview.js +1 -1
  2. package/package.json +18 -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/iconCollection.vue +2 -2
  17. package/src/components/icon/index.vue +60 -54
  18. package/src/components/iconWrapper/index.vue +1 -4
  19. package/src/components/infoCard/index.vue +2 -3
  20. package/src/components/infoText/index.vue +1 -1
  21. package/src/components/inputs/checkbox/index.vue +21 -6
  22. package/src/components/inputs/inputNumber/index.vue +8 -11
  23. package/src/components/inputs/inputNumberQuestion/index.vue +1 -1
  24. package/src/components/inputs/inputText/index.vue +3 -3
  25. package/src/components/inputs/radioButton/index.vue +1 -1
  26. package/src/components/inputs/searchInput/index.vue +7 -8
  27. package/src/components/inputs/select/index.vue +201 -71
  28. package/src/components/inputs/select/option/index.vue +5 -5
  29. package/src/components/inputs/slider/index.vue +16 -16
  30. package/src/components/inputs/switchField/index.vue +2 -2
  31. package/src/components/inputs/textAreaInput/index.vue +1 -1
  32. package/src/components/inputs/toggle/index.vue +2 -2
  33. package/src/components/label/index.vue +27 -31
  34. package/src/components/modals/modal/index.vue +2 -6
  35. package/src/components/navigationTabs/index.vue +27 -20
  36. package/src/components/pageSubtitle/index.vue +1 -1
  37. package/src/components/pageTitle/index.vue +4 -4
  38. package/src/components/pagination/index.vue +1 -1
  39. package/src/components/progressBar/index.vue +1 -1
  40. package/src/components/projectMarker/index.vue +10 -7
  41. package/src/components/sideMenu/index.vue +1 -1
  42. package/src/components/spinner/index.vue +6 -11
  43. package/src/components/tableDropdown/index.vue +21 -26
  44. package/src/components/tables/mainTable/exampleNested.vue +1 -1
  45. package/src/components/tables/mainTable/index.vue +2 -1
  46. package/src/components/tables/viewTable/index.vue +2 -2
  47. package/src/components/threeDots/index.vue +1 -1
  48. package/src/components/videoThumbnail/index.vue +95 -100
  49. package/src/main.js +4 -11
@@ -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'
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,7 +29,7 @@
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
34
 
35
35
  const pageContainerProps = {
@@ -122,6 +122,7 @@ const TableContainer = styled('table', containerAttrs)`
122
122
  background-color: ${(props) => props.theme.colors.white};
123
123
  cursor: ${(props) => (props.tableCursor ? props.tableCursor : 'auto')};
124
124
 
125
+ .select-button,
125
126
  .arrow-container,
126
127
  .input-placeholder,
127
128
  .table-dropdown-item {
@@ -29,7 +29,7 @@
29
29
  </table-item>
30
30
  <icons-container v-if="showIconsContainer">
31
31
  <delete-icon
32
- @click.native="$emit('on-click-delete', index)"
32
+ @click="$emit('on-click-delete', index)"
33
33
  color="gray"
34
34
  />
35
35
  </icons-container>
@@ -45,7 +45,7 @@
45
45
  // This is a read only table. Pass it data, and it displays it
46
46
  // ToDo: add this to storybook
47
47
  // import ViewTable from "@eturnity/eturnity_reusable_components/src/components/tables/viewTable"
48
- import styled from 'vue-styled-components'
48
+ import styled from 'vue3-styled-components'
49
49
  import DeleteIcon from '../../deleteIcon'
50
50
  import Spinner from '../../spinner'
51
51
 
@@ -123,7 +123,7 @@
123
123
  // },
124
124
  // ],
125
125
 
126
- import styled from 'vue-styled-components'
126
+ import styled from 'vue3-styled-components'
127
127
  import Spinner from '../spinner'
128
128
 
129
129
  const PageContainerAttrs = {