@eturnity/eturnity_reusable_components 6.42.1-EPDM-3013.6 → 6.42.2-EPDM-6921.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.
- package/package.json +3 -6
- package/src/App.vue +101 -99
- package/src/components/iconWrapper/index.vue +118 -125
- package/src/components/inputs/searchInput/index.vue +10 -20
- package/src/components/inputs/select/index.vue +18 -6
- package/src/components/inputs/select/option/index.vue +48 -57
- package/src/helpers/translateLang.js +0 -2
- package/postcss.config.js +0 -6
- package/src/assets/svgIcons/update.svg +0 -3
- package/src/components/filter/filterSettings.vue +0 -644
- package/src/components/filter/index.vue +0 -132
- package/src/components/filter/parentDropdown.vue +0 -91
@@ -1,132 +0,0 @@
|
|
1
|
-
<template>
|
2
|
-
<page-wrapper ref="dropdown">
|
3
|
-
<parent-dropdown
|
4
|
-
@on-toggle="onToggleDropdown()"
|
5
|
-
:isOpen="isDropdownOpen"
|
6
|
-
:dropdownText="dropdownText ? dropdownText : 'Default view'"
|
7
|
-
/>
|
8
|
-
<filter-settings
|
9
|
-
v-if="isDropdownOpen"
|
10
|
-
:filterData="filterData"
|
11
|
-
:filterViews="filterViews"
|
12
|
-
:buttonText="buttonText"
|
13
|
-
@on-view-select="onViewSelect($event)"
|
14
|
-
@on-view-delete="onViewDelete($event)"
|
15
|
-
@on-save-new-view="$emit('on-save-new-view')"
|
16
|
-
@on-filter-change="onFilterChange($event)"
|
17
|
-
@on-cancel-view="onCancelSettings()"
|
18
|
-
@on-drag-change="$emit('on-drag-change', $event)"
|
19
|
-
@on-apply-current-view="onApplyCurrentView()"
|
20
|
-
@on-prevent-close="onPreventClose($event)"
|
21
|
-
@on-reset-filters="onResetFilters()"
|
22
|
-
:hasActiveView="hasActiveView"
|
23
|
-
:activeView="activeView"
|
24
|
-
:activeLanguage="activeLanguage"
|
25
|
-
:settingsTranslations="settingsTranslations"
|
26
|
-
/>
|
27
|
-
</page-wrapper>
|
28
|
-
</template>
|
29
|
-
|
30
|
-
<script>
|
31
|
-
import styled from 'vue-styled-components'
|
32
|
-
import parentDropdown from './parentDropdown'
|
33
|
-
import filterSettings from './filterSettings'
|
34
|
-
|
35
|
-
const PageWrapper = styled.div`
|
36
|
-
position: relative;
|
37
|
-
`
|
38
|
-
|
39
|
-
export default {
|
40
|
-
name: 'filter-component',
|
41
|
-
components: {
|
42
|
-
parentDropdown,
|
43
|
-
PageWrapper,
|
44
|
-
filterSettings
|
45
|
-
},
|
46
|
-
props: {
|
47
|
-
filterData: {
|
48
|
-
required: true
|
49
|
-
},
|
50
|
-
dropdownText: {
|
51
|
-
required: false
|
52
|
-
},
|
53
|
-
filterViews: {
|
54
|
-
required: true
|
55
|
-
},
|
56
|
-
activeView: {
|
57
|
-
required: false,
|
58
|
-
default: null
|
59
|
-
},
|
60
|
-
buttonText: {
|
61
|
-
required: false
|
62
|
-
},
|
63
|
-
hasActiveView: {
|
64
|
-
required: false
|
65
|
-
},
|
66
|
-
activeLanguage: {
|
67
|
-
required: false,
|
68
|
-
default: 'en-us'
|
69
|
-
},
|
70
|
-
settingsTranslations: {
|
71
|
-
required: false
|
72
|
-
}
|
73
|
-
},
|
74
|
-
data() {
|
75
|
-
return {
|
76
|
-
isDropdownOpen: false,
|
77
|
-
activeFilter: null,
|
78
|
-
preventOutsideClick: false
|
79
|
-
}
|
80
|
-
},
|
81
|
-
methods: {
|
82
|
-
onToggleDropdown() {
|
83
|
-
this.isDropdownOpen = !this.isDropdownOpen
|
84
|
-
},
|
85
|
-
clickOutside(event) {
|
86
|
-
if (
|
87
|
-
!this.$refs.dropdown.$el.contains(event.target) &&
|
88
|
-
!this.preventOutsideClick
|
89
|
-
) {
|
90
|
-
this.isDropdownOpen = false
|
91
|
-
}
|
92
|
-
},
|
93
|
-
onPreventClose(value) {
|
94
|
-
setTimeout(() => {
|
95
|
-
this.preventOutsideClick = value
|
96
|
-
}, 100)
|
97
|
-
},
|
98
|
-
onFilterChange(data) {
|
99
|
-
// this.preventOutsideClick = true is needed for when the user clicks on the calendar icon on the date range
|
100
|
-
// because clicking the calendar does not trigger the @focus
|
101
|
-
this.preventOutsideClick = true
|
102
|
-
this.$emit('on-filter-settings-change', data)
|
103
|
-
this.onPreventClose(false)
|
104
|
-
},
|
105
|
-
onCancelSettings() {
|
106
|
-
this.onToggleDropdown()
|
107
|
-
this.$emit('on-cancel-view')
|
108
|
-
},
|
109
|
-
onViewSelect(item) {
|
110
|
-
this.onToggleDropdown()
|
111
|
-
this.$emit('on-filter-view-select', item)
|
112
|
-
},
|
113
|
-
onViewDelete(item) {
|
114
|
-
this.$emit('on-filter-view-delete', item)
|
115
|
-
},
|
116
|
-
onApplyCurrentView() {
|
117
|
-
this.onToggleDropdown()
|
118
|
-
this.$emit('on-apply-current-view')
|
119
|
-
},
|
120
|
-
onResetFilters() {
|
121
|
-
this.onToggleDropdown()
|
122
|
-
this.$emit('on-reset-filters')
|
123
|
-
}
|
124
|
-
},
|
125
|
-
mounted() {
|
126
|
-
document.addEventListener('click', this.clickOutside)
|
127
|
-
},
|
128
|
-
beforeDestroy() {
|
129
|
-
document.removeEventListener('click', this.clickOutside)
|
130
|
-
}
|
131
|
-
}
|
132
|
-
</script>
|
@@ -1,91 +0,0 @@
|
|
1
|
-
<template>
|
2
|
-
<page-wrapper @click="$emit('on-toggle')">
|
3
|
-
<icon-wrapper>
|
4
|
-
<icon name="settings" size="18px" />
|
5
|
-
</icon-wrapper>
|
6
|
-
<title-wrapper :isOpen="isOpen">
|
7
|
-
<title-text>
|
8
|
-
{{ dropdownText }}
|
9
|
-
</title-text>
|
10
|
-
<arrow-wrapper>
|
11
|
-
<icon
|
12
|
-
@click.native.stop="$emit('on-toggle')"
|
13
|
-
:name="isOpen ? 'arrow_up' : 'arrow_down'"
|
14
|
-
size="12px"
|
15
|
-
/>
|
16
|
-
</arrow-wrapper>
|
17
|
-
</title-wrapper>
|
18
|
-
</page-wrapper>
|
19
|
-
</template>
|
20
|
-
|
21
|
-
<script>
|
22
|
-
import styled from 'vue-styled-components'
|
23
|
-
import Icon from '../icon'
|
24
|
-
|
25
|
-
const PageWrapper = styled.div`
|
26
|
-
display: grid;
|
27
|
-
grid-template-columns: auto auto;
|
28
|
-
cursor: pointer;
|
29
|
-
`
|
30
|
-
|
31
|
-
const IconWrapper = styled.div`
|
32
|
-
display: grid;
|
33
|
-
align-items: center;
|
34
|
-
justify-items: center;
|
35
|
-
border: 1px solid ${(props) => props.theme.colors.grey4};
|
36
|
-
border-radius: 4px 0px 0px 4px;
|
37
|
-
padding: 6px;
|
38
|
-
`
|
39
|
-
|
40
|
-
const TitleAttrs = { isOpen: Boolean }
|
41
|
-
const TitleWrapper = styled('div', TitleAttrs)`
|
42
|
-
display: grid;
|
43
|
-
grid-template-columns: auto auto;
|
44
|
-
align-items: center;
|
45
|
-
justify-items: center;
|
46
|
-
grid-gap: 10px;
|
47
|
-
border: 1px solid ${(props) => props.theme.colors.grey4};
|
48
|
-
background-color: ${(props) =>
|
49
|
-
props.isOpen ? props.theme.colors.grey5 : props.theme.colors.white};
|
50
|
-
border-left: none;
|
51
|
-
border-radius: 0px 4px 4px 0px;
|
52
|
-
padding: 6px 14px;
|
53
|
-
user-select: none;
|
54
|
-
`
|
55
|
-
|
56
|
-
const TitleText = styled.div`
|
57
|
-
font-size: 13px;
|
58
|
-
`
|
59
|
-
|
60
|
-
const ArrowWrapper = styled.div`
|
61
|
-
display: grid;
|
62
|
-
align-items: center;
|
63
|
-
|
64
|
-
div {
|
65
|
-
height: auto !important;
|
66
|
-
min-height: unset;
|
67
|
-
}
|
68
|
-
`
|
69
|
-
|
70
|
-
export default {
|
71
|
-
name: 'parent-dropdown',
|
72
|
-
components: {
|
73
|
-
PageWrapper,
|
74
|
-
Icon,
|
75
|
-
IconWrapper,
|
76
|
-
TitleWrapper,
|
77
|
-
TitleText,
|
78
|
-
ArrowWrapper
|
79
|
-
},
|
80
|
-
props: {
|
81
|
-
isOpen: {
|
82
|
-
required: true,
|
83
|
-
default: false
|
84
|
-
},
|
85
|
-
dropdownText: {
|
86
|
-
required: true,
|
87
|
-
default: 'View'
|
88
|
-
}
|
89
|
-
}
|
90
|
-
}
|
91
|
-
</script>
|