@eturnity/eturnity_reusable_components 7.12.7--EPDM-5518.2 → 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 (52) 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 +54 -113
  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 +24 -16
  23. package/src/components/inputs/inputNumber/index.vue +7 -10
  24. package/src/components/inputs/inputNumberQuestion/index.vue +1 -1
  25. package/src/components/inputs/inputText/index.vue +4 -4
  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 +208 -66
  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 +2 -2
  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 +5 -3
  40. package/src/components/progressBar/index.vue +1 -1
  41. package/src/components/projectMarker/index.vue +11 -8
  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
  51. package/src/components/markerItem/index.vue +0 -96
  52. package/src/components/selectedOptions/index.vue +0 -145
@@ -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
 
@@ -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 = {
@@ -1,108 +1,103 @@
1
1
  <template>
2
- <wrapper :width="width" :height="height" :fit="fit">
3
- <img :src="src">
4
- <iconWrapper>
5
- <icon
6
- name="play"
7
- :size="playIconSize"
8
- :color="playIconColor"
9
- />
10
- </iconWrapper>
11
- </wrapper>
12
- </template>
13
-
14
- <script>
15
- // import VideoThumbnail from "@eturnity/eturnity_reusable_components/src/components/videoThumbnail"
16
- // How to use:
17
- //<videoThumbnail src="https://musicart.xboxlive.com/6/cfaf1e9d-0000-0000-0000-000000000009/504/image.jpg?w=1920&h=1080"
18
- // playIconColor="red"
19
- // playIconSize="20px"
20
- // width="400px"
21
- // height="600px"
22
- // />
23
-
24
- import styled from 'vue-styled-components'
25
- import Icon from '../icon'
26
-
27
- const wrapperAttrs = { width: String, height:String,fit:String }
28
- const Wrapper = styled('div', wrapperAttrs)`
29
- display: inline-block;
30
- position: relative;
31
- width:${props=>props.width};
32
- height:${props=>props.height};
33
- & img{
34
- object-fit:${props=>props.fit};
35
- width:${props=>props.width};
36
- height:${props=>props.height};
37
- }
38
- `
39
- const iconWrapper = styled('div')`
40
- position: absolute;
41
- top:0;
42
- bottom:0;
43
- left:0;
44
- right:0;
45
- display:flex;
46
- justify-content:center;
47
- align-items: center;
48
- `
2
+ <wrapper :width="width" :height="height" :fit="fit">
3
+ <img :src="src" />
4
+ <iconWrapper>
5
+ <icon name="play" :size="playIconSize" :color="playIconColor" />
6
+ </iconWrapper>
7
+ </wrapper>
8
+ </template>
9
+
10
+ <script>
11
+ // import VideoThumbnail from "@eturnity/eturnity_reusable_components/src/components/videoThumbnail"
12
+ // How to use:
13
+ //<videoThumbnail src="https://musicart.xboxlive.com/6/cfaf1e9d-0000-0000-0000-000000000009/504/image.jpg?w=1920&h=1080"
14
+ // playIconColor="red"
15
+ // playIconSize="20px"
16
+ // width="400px"
17
+ // height="600px"
18
+ // />
19
+
20
+ import styled from 'vue3-styled-components'
21
+ import Icon from '../icon'
49
22
 
50
- export default {
51
- name: 'VideoThumbnail',
52
- components: {
53
- Wrapper,
54
- Icon,
55
- iconWrapper
23
+ const wrapperAttrs = { width: String, height: String, fit: String }
24
+ const Wrapper = styled('div', wrapperAttrs)`
25
+ display: inline-block;
26
+ position: relative;
27
+ width: ${(props) => props.width};
28
+ height: ${(props) => props.height};
29
+ & img {
30
+ object-fit: ${(props) => props.fit};
31
+ width: ${(props) => props.width};
32
+ height: ${(props) => props.height};
33
+ }
34
+ `
35
+ const iconWrapper = styled('div')`
36
+ position: absolute;
37
+ top: 0;
38
+ bottom: 0;
39
+ left: 0;
40
+ right: 0;
41
+ display: flex;
42
+ justify-content: center;
43
+ align-items: center;
44
+ `
45
+
46
+ export default {
47
+ name: 'VideoThumbnail',
48
+ components: {
49
+ Wrapper,
50
+ Icon,
51
+ iconWrapper
52
+ },
53
+ props: {
54
+ src: {
55
+ required: true
56
56
  },
57
- props: {
58
- src:{
59
- required: true,
60
- },
61
- fit:{
62
- required: false,
63
- default: 'cover'
64
- },
65
- width: {
66
- required: false,
67
- default: '300px'
68
- },
69
- height: {
70
- required: false,
71
- default: '200px'
72
- },
73
- playIconSize:{
74
- required: false,
75
- default: '50px'
76
- },
77
- playIconColor:{
78
- required: false,
79
- default: 'blue'
80
- }
57
+ fit: {
58
+ required: false,
59
+ default: 'cover'
81
60
  },
82
- data() {
83
- return {
84
- isOpenByClick:false
85
- }
61
+ width: {
62
+ required: false,
63
+ default: '300px'
86
64
  },
87
- methods:{
88
- clickOutside(event) {
89
- if (this.openingMode!="click") return
90
- if (
91
- this.$refs.dropdown.$el == event.target ||
92
- this.$refs.dropdown.$el.contains(event.target)
93
- ) {
94
- return
95
- } else {
96
- this.isOpenByClick=false
97
- }
98
- },
65
+ height: {
66
+ required: false,
67
+ default: '200px'
99
68
  },
100
- mounted() {
101
- document.addEventListener('click', this.clickOutside)
102
- },
103
- beforeDestroy() {
104
- document.removeEventListener('click', this.clickOutside)
69
+ playIconSize: {
70
+ required: false,
71
+ default: '50px'
105
72
  },
73
+ playIconColor: {
74
+ required: false,
75
+ default: 'blue'
76
+ }
77
+ },
78
+ data() {
79
+ return {
80
+ isOpenByClick: false
81
+ }
82
+ },
83
+ methods: {
84
+ clickOutside(event) {
85
+ if (this.openingMode != 'click') return
86
+ if (
87
+ this.$refs.dropdown.$el == event.target ||
88
+ this.$refs.dropdown.$el.contains(event.target)
89
+ ) {
90
+ return
91
+ } else {
92
+ this.isOpenByClick = false
93
+ }
94
+ }
95
+ },
96
+ mounted() {
97
+ document.addEventListener('click', this.clickOutside)
98
+ },
99
+ beforeDestroy() {
100
+ document.removeEventListener('click', this.clickOutside)
106
101
  }
107
- </script>
108
-
102
+ }
103
+ </script>
package/src/main.js CHANGED
@@ -1,13 +1,6 @@
1
- import Vue from "vue"
2
- import App from "./App.vue"
3
- import VueCompositionAPI from "@vue/composition-api"
4
- import vClickOutside from 'v-click-outside'
1
+ import App from './App.vue'
2
+ import { createApp } from 'vue'
5
3
 
6
- Vue.config.productionTip = false
4
+ const app = createApp(App)
7
5
 
8
- Vue.use(VueCompositionAPI)
9
- Vue.use(vClickOutside)
10
-
11
- new Vue({
12
- render: (h) => h(App),
13
- }).$mount("#app")
6
+ app.mount('#app')
@@ -1,96 +0,0 @@
1
- <template>
2
- <page-container>
3
- <marker-container
4
- :backgroundColor="backgroundColor"
5
- :hasIcon="!!iconName"
6
- :cursor="cursor"
7
- >
8
- <icon
9
- v-if="!!iconName"
10
- :name="iconName"
11
- color="white"
12
- size="10px"
13
- :cursor="cursor"
14
- />
15
- <span>{{ label }}</span>
16
- </marker-container>
17
- </page-container>
18
- </template>
19
-
20
- <script>
21
- // import MarkerItem from "@eturnity/eturnity_reusable_components/src/components/markerItem"
22
- // To use:
23
- // <marker-item
24
- // label="Label"
25
- // backgroundColor="#ab5348"
26
- // iconName="icon_name"
27
- // cursor="pointer"
28
- // />
29
-
30
- import styled from 'vue-styled-components'
31
- import Icon from '../icon'
32
- import Modal from '../modals/modal'
33
- import PageTitle from '../pageTitle'
34
- import DeleteIcon from '../deleteIcon'
35
- import PageSubtitle from '../pageSubtitle'
36
- import MainButton from '../buttons/mainButton'
37
-
38
- const PageContainer = styled.div`
39
- display: flex;
40
- align-items: center;
41
- font-size: 12px;
42
- line-height: 14px;
43
- `
44
-
45
- const MarkerAttrs = {
46
- backgroundColor: String,
47
- hasIcon: Boolean,
48
- cursor: String
49
- }
50
- const MarkerContainer = styled('div', MarkerAttrs)`
51
- display: grid;
52
- grid-template-columns: ${(props) => (props.hasIcon ? 'auto 1fr' : '1fr')};
53
- grid-gap: 5px;
54
- position: relative;
55
- align-items: center;
56
- padding: 2px 7px;
57
- color: ${(props) => props.theme.colors.white};
58
- background-color: ${(props) =>
59
- props.backgroundColor ? props.backgroundColor : props.theme.colors.grey3};
60
- border: 1px solid
61
- ${(props) =>
62
- props.backgroundColor ? props.backgroundColor : props.theme.colors.grey3};
63
- border-radius: 4px;
64
- white-space: nowrap;
65
- cursor: ${(props) => (props.isEditionAllowed ? 'pointer' : props.cursor)};
66
- `
67
-
68
- // const IconContainer = styled.div`
69
- // padding: 8px;
70
- // line-height: 0;
71
- // `
72
-
73
- export default {
74
- name: 'project-marker',
75
- components: {
76
- PageContainer,
77
- MarkerContainer,
78
- Icon
79
- },
80
- props: {
81
- backgroundColor: {
82
- required: false
83
- },
84
- iconName: {
85
- required: false
86
- },
87
- label: {
88
- required: true
89
- },
90
- cursor: {
91
- required: false,
92
- default: 'default'
93
- }
94
- }
95
- }
96
- </script>
@@ -1,145 +0,0 @@
1
- <template>
2
- <page-container>
3
- <box-container>
4
- <selected-container
5
- >{{ numberSelected }} {{ $gettext('selected') }}</selected-container
6
- >
7
- <list-container v-if="optionsList.length">
8
- <list-item
9
- v-for="item in optionsList"
10
- :key="item.type"
11
- :hoverColor="item.hoverColor"
12
- @click="$emit('on-' + item.type)"
13
- >
14
- {{ item.name }}
15
- </list-item>
16
- </list-container>
17
- <empty-text v-if="!optionsList.length">
18
- {{ $gettext('no_batch_actions_available') }}
19
- </empty-text>
20
- <icon-container @click="$emit('on-close')">
21
- <icon
22
- name="close_for_modals,_tool_tips"
23
- color="white"
24
- size="14px"
25
- cursor="pointer"
26
- />
27
- </icon-container>
28
- </box-container>
29
- </page-container>
30
- </template>
31
-
32
- <script>
33
- // import SelectedOptions from "@eturnity/eturnity_reusable_components/src/components/selectedOptions"
34
- // optionsList = [
35
- // {
36
- // type: 'export',
37
- // name: 'Export'
38
- // },
39
- // {
40
- // type: 'delete',
41
- // name: 'Delete',
42
- // hoverColor: 'red' // default is green
43
- // }
44
- // ]
45
- // @on-${type}="function" should $emit the callback for the 'type' in the optionsList
46
- // <selected-options
47
- // :numberSelected="numberSelected"
48
- // :optionsList="optionsList"
49
- // @on-close="onCloseFunction()"
50
- // @on-export="function()" @on-delete="function()"
51
- // />
52
- import styled from 'vue-styled-components'
53
- import Icon from '../icon'
54
-
55
- const PageContainer = styled.div`
56
- position: fixed;
57
- bottom: 30px;
58
- left: 50%;
59
- transform: translateX(-50%);
60
- `
61
-
62
- const SelectedContainer = styled.div`
63
- display: grid;
64
- align-items: center;
65
- height: 100%;
66
- padding-right: 20px;
67
- border-right: 1px solid rgba(255, 255, 255, 0.2);
68
- `
69
-
70
- const BoxContainer = styled.div`
71
- display: flex;
72
- align-items: center;
73
- background-color: ${(props) => props.theme.colors.black};
74
- opacity: 90%;
75
- color: ${(props) => props.theme.colors.white};
76
- border-radius: 4px;
77
- padding: 8px 10px 8px 20px;
78
- font-size: 14px;
79
- height: 40px;
80
- `
81
-
82
- const ListContainer = styled.div`
83
- padding: 0 20px;
84
- display: flex;
85
- gap: 20px;
86
- color: ${(props) => props.theme.colors.white};
87
- `
88
-
89
- const ListAttrs = {
90
- hoverColor: String
91
- }
92
- const ListItem = styled('div', ListAttrs)`
93
- cursor: pointer;
94
- &:hover {
95
- color: ${(props) =>
96
- props.hoverColor
97
- ? props.theme.colors[props.hoverColor]
98
- : props.theme.colors.green};
99
- }
100
- `
101
-
102
- const IconContainer = styled.div`
103
- display: grid;
104
- align-items: center;
105
- justify-items: center;
106
- height: 30px;
107
- width: 30px;
108
- cursor: pointer;
109
- margin-left: 20px;
110
-
111
- &:hover {
112
- background: rgba(255, 255, 255, 0.1);
113
- border-radius: 4px;
114
- }
115
- `
116
-
117
- const EmptyText = styled.div`
118
- color: ${(props) => props.theme.colors.white};
119
- font-size: 13px;
120
- padding-left: 16px;
121
- `
122
-
123
- export default {
124
- name: 'selected-options',
125
- components: {
126
- PageContainer,
127
- BoxContainer,
128
- SelectedContainer,
129
- ListContainer,
130
- ListItem,
131
- Icon,
132
- IconContainer,
133
- EmptyText
134
- },
135
- props: {
136
- optionsList: {
137
- required: true
138
- },
139
- numberSelected: {
140
- required: true,
141
- default: 0
142
- }
143
- }
144
- }
145
- </script>