@eturnity/eturnity_reusable_components 7.4.4-EPDM-7260.26 → 7.4.4-EPDM-7260.28
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/babel.config.js +2 -4
- package/package.json +1 -2
- package/src/assets/svgIcons/clock_full.svg +3 -0
- package/src/assets/svgIcons/drag_icon.svg +8 -0
- package/src/assets/svgIcons/height_equalize.svg +3 -0
- package/src/assets/svgIcons/height_snap.svg +3 -0
- package/src/assets/svgIcons/inclination.svg +3 -0
- package/src/assets/svgIcons/length_2d.svg +3 -0
- package/src/assets/svgIcons/length_3d.svg +5 -0
- package/src/assets/svgIcons/length_calculator.svg +3 -0
- package/src/components/filter/index.vue +11 -0
- package/src/components/icon/index.vue +34 -22
- package/src/components/infoText/index.vue +0 -1
- package/src/components/inputs/checkbox/index.vue +12 -5
- package/src/components/inputs/inputNumber/index.vue +5 -9
- package/src/components/inputs/select/index.vue +58 -19
- package/src/components/inputs/select/option/index.vue +6 -0
- package/src/components/inputs/textAreaInput/index.vue +1 -1
- package/src/components/markerItem/index.vue +86 -0
- package/src/components/pageTitle/index.vue +10 -15
- package/src/components/pagination/index.vue +5 -4
- package/src/components/projectMarker/index.vue +1 -1
- package/src/components/tableDropdown/index.vue +18 -7
package/babel.config.js
CHANGED
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@eturnity/eturnity_reusable_components",
|
3
|
-
"version": "7.4.4-EPDM-7260.
|
3
|
+
"version": "7.4.4-EPDM-7260.28",
|
4
4
|
"private": false,
|
5
5
|
"scripts": {
|
6
6
|
"dev": "vue-cli-service serve",
|
@@ -23,7 +23,6 @@
|
|
23
23
|
},
|
24
24
|
"devDependencies": {
|
25
25
|
"@babel/core": "7.12.16",
|
26
|
-
"@babel/eslint-parser": "7.12.16",
|
27
26
|
"@vue/cli-plugin-babel": "5.0.8",
|
28
27
|
"@vue/cli-plugin-eslint": "5.0.8",
|
29
28
|
"@vue/cli-service": "5.0.8",
|
@@ -0,0 +1,3 @@
|
|
1
|
+
<svg width="10" height="10" viewBox="0 0 10 10" fill="none" xmlns="http://www.w3.org/2000/svg">
|
2
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M5 10C7.76142 10 10 7.76142 10 5C10 2.23858 7.76142 0 5 0C2.23858 0 0 2.23858 0 5C0 7.76142 2.23858 10 5 10ZM5.875 5.05243V2.125H4.125V5.92743L6.19061 7.47663L7.24061 6.07663L5.875 5.05243Z" fill="white"/>
|
3
|
+
</svg>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<svg width="10" height="16" viewBox="0 0 10 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
2
|
+
<path d="M4 2C4 3.10457 3.10457 4 2 4C0.89543 4 0 3.10457 0 2C0 0.89543 0.89543 0 2 0C3.10457 0 4 0.89543 4 2Z" fill="#B2B9C5"/>
|
3
|
+
<path d="M10 2C10 3.10457 9.10457 4 8 4C6.89543 4 6 3.10457 6 2C6 0.89543 6.89543 0 8 0C9.10457 0 10 0.89543 10 2Z" fill="#B2B9C5"/>
|
4
|
+
<path d="M4 8C4 9.10457 3.10457 10 2 10C0.89543 10 0 9.10457 0 8C0 6.89543 0.89543 6 2 6C3.10457 6 4 6.89543 4 8Z" fill="#B2B9C5"/>
|
5
|
+
<path d="M10 8C10 9.10457 9.10457 10 8 10C6.89543 10 6 9.10457 6 8C6 6.89543 6.89543 6 8 6C9.10457 6 10 6.89543 10 8Z" fill="#B2B9C5"/>
|
6
|
+
<path d="M4 14C4 15.1046 3.10457 16 2 16C0.89543 16 0 15.1046 0 14C0 12.8954 0.89543 12 2 12C3.10457 12 4 12.8954 4 14Z" fill="#B2B9C5"/>
|
7
|
+
<path d="M10 14C10 15.1046 9.10457 16 8 16C6.89543 16 6 15.1046 6 14C6 12.8954 6.89543 12 8 12C9.10457 12 10 12.8954 10 14Z" fill="#B2B9C5"/>
|
8
|
+
</svg>
|
@@ -0,0 +1,3 @@
|
|
1
|
+
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
|
2
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.99482 2.7C4.49188 2.7 4.89482 2.29706 4.89482 1.8C4.89482 1.30294 4.49188 0.9 3.99482 0.9C3.49777 0.9 3.09482 1.30294 3.09482 1.8C3.09482 2.29706 3.49777 2.7 3.99482 2.7ZM5.79482 1.8C5.79482 2.50671 5.38756 3.11829 4.79492 3.41285V4H5.80557L4.00557 6L2.20557 4H3.19492L3.19492 3.41294C2.60218 3.11842 2.19482 2.50678 2.19482 1.8C2.19482 0.805887 3.00071 0 3.99482 0C4.98894 0 5.79482 0.805887 5.79482 1.8ZM10.8948 1.8C10.8948 2.29706 10.4919 2.7 9.99482 2.7C9.49777 2.7 9.09482 2.29706 9.09482 1.8C9.09482 1.30294 9.49777 0.9 9.99482 0.9C10.4919 0.9 10.8948 1.30294 10.8948 1.8ZM10.7949 3.41285C11.3876 3.11829 11.7948 2.50671 11.7948 1.8C11.7948 0.805887 10.9889 0 9.99482 0C9.00071 0 8.19482 0.805887 8.19482 1.8C8.19482 2.50678 8.60218 3.11842 9.19492 3.41294V4H8.20557L10.0056 6L11.8056 4H10.7949V3.41285ZM14 7.79999L0 7.79999V6.19999L14 6.19999V7.79999ZM7.00518 11.3C6.50812 11.3 6.10518 11.7029 6.10518 12.2C6.10518 12.6971 6.50812 13.1 7.00518 13.1C7.50223 13.1 7.90518 12.6971 7.90518 12.2C7.90518 11.7029 7.50223 11.3 7.00518 11.3ZM5.20518 12.2C5.20518 11.4933 5.61244 10.8817 6.20508 10.5872L6.20508 10H5.19443L6.99443 8L8.79443 10H7.80508V10.5871C8.39782 10.8816 8.80518 11.4932 8.80518 12.2C8.80518 13.1941 7.99929 14 7.00518 14C6.01106 14 5.20518 13.1941 5.20518 12.2Z" fill="#B2B9C5"/>
|
3
|
+
</svg>
|
@@ -0,0 +1,3 @@
|
|
1
|
+
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
|
2
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 1.59997L14 1.59998V-2.44379e-05L0 -2.56618e-05V1.59997ZM6.10274 12.2C6.10274 11.7029 6.50568 11.3 7.00274 11.3C7.49979 11.3 7.90274 11.7029 7.90274 12.2C7.90274 12.6971 7.49979 13.1 7.00274 13.1C6.50568 13.1 6.10274 12.6971 6.10274 12.2ZM6.20264 10.5872C5.61 10.8817 5.20274 11.4933 5.20274 12.2C5.20274 13.1941 6.00862 14 7.00274 14C7.99685 14 8.80274 13.1941 8.80274 12.2C8.80274 11.4932 8.39538 10.8816 7.80264 10.5871L7.80264 4.65002H9.5L7 2.65002L4.5 4.65002H6.20264L6.20264 10.5872Z" fill="#B2B9C5"/>
|
3
|
+
</svg>
|
@@ -0,0 +1,3 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="12" viewBox="0 0 14 12" fill="none">
|
2
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.09548 3.62522L10.8209 1.59974L9.53978 0.508423L0.199219 11.4916H13.7992V9.80865H11.9546C11.7571 7.4083 10.7198 5.25339 9.09548 3.62522ZM10.2648 9.80859C10.0777 7.91689 9.26383 6.22054 8.00053 4.91205L3.83843 9.80864L10.2648 9.80859Z" fill="white"/>
|
3
|
+
</svg>
|
@@ -0,0 +1,3 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="10" viewBox="0 0 14 10" fill="none">
|
2
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M0.199219 9.85718V0.142822H1.75351L1.75352 9.85718H0.199219ZM5.38021 8.20572L2.14209 4.99999L5.38021 1.79425V4.19855L8.61833 4.19855V1.79425L11.8564 4.99999L8.61832 8.20572L8.61833 5.80142L5.38021 5.80142V8.20572ZM12.2449 0.142822V9.85718H13.7992V0.142822H12.2449Z" fill="white"/>
|
3
|
+
</svg>
|
@@ -0,0 +1,5 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" fill="none">
|
2
|
+
<path d="M5.33336 14L0 8.66664L1.06667 7.59997L6.40003 12.9333L5.33336 14Z" fill="white"/>
|
3
|
+
<path d="M8.42227 9.97776L4.00002 9.99998L4.02224 5.57774L5.67225 7.22775L7.22781 5.67219L5.57781 4.02218L10.0001 3.99996L9.97783 8.4222L8.32782 6.7722L6.77226 8.32776L8.42227 9.97776Z" fill="white"/>
|
4
|
+
<path d="M7.59997 1.06667L12.9333 6.40003L14 5.33336L8.66664 0L7.59997 1.06667Z" fill="white"/>
|
5
|
+
</svg>
|
@@ -0,0 +1,3 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" fill="none">
|
2
|
+
<path d="M12.4444 0H1.55556C0.7 0 0 0.7 0 1.55556V12.4444C0 13.3 0.7 14 1.55556 14H12.4444C13.3 14 14 13.3 14 12.4444V1.55556C14 0.7 13.3 0 12.4444 0ZM7.80111 3.15778L8.62556 2.33333L9.72222 3.43L10.8189 2.33333L11.6433 3.15778L10.5467 4.25444L11.6433 5.35111L10.8189 6.17556L9.72222 5.08667L8.62556 6.18333L7.80111 5.35889L8.89778 4.26222L7.80111 3.15778ZM2.52778 3.67111H6.41667V4.83778H2.52778V3.67111ZM6.61111 10.1111H5.05556V11.6667H3.88889V10.1111H2.33333V8.94444H3.88889V7.38889H5.05556V8.94444H6.61111V10.1111ZM11.6667 11.0833H7.77778V9.91667H11.6667V11.0833ZM11.6667 9.13889H7.77778V7.97222H11.6667V9.13889Z" fill="#263238"/>
|
3
|
+
</svg>
|
@@ -70,6 +70,9 @@ export default {
|
|
70
70
|
},
|
71
71
|
settingsTranslations: {
|
72
72
|
required: false
|
73
|
+
},
|
74
|
+
closeDropdown: {
|
75
|
+
required: false
|
73
76
|
}
|
74
77
|
},
|
75
78
|
data() {
|
@@ -122,6 +125,7 @@ export default {
|
|
122
125
|
this.$emit('on-filter-view-select', item)
|
123
126
|
},
|
124
127
|
onViewDelete(item) {
|
128
|
+
this.onToggleDropdown()
|
125
129
|
this.$emit('on-filter-view-delete', item)
|
126
130
|
},
|
127
131
|
onApplyCurrentView() {
|
@@ -138,6 +142,13 @@ export default {
|
|
138
142
|
},
|
139
143
|
beforeDestroy() {
|
140
144
|
document.removeEventListener('click', this.clickOutside)
|
145
|
+
},
|
146
|
+
watch: {
|
147
|
+
closeDropdown(newVal) {
|
148
|
+
if (newVal) {
|
149
|
+
this.isDropdownOpen = false
|
150
|
+
}
|
151
|
+
}
|
141
152
|
}
|
142
153
|
}
|
143
154
|
</script>
|
@@ -1,9 +1,13 @@
|
|
1
1
|
<template>
|
2
|
-
<wrapper>
|
3
|
-
<icon-image
|
2
|
+
<wrapper :disabled="disabled" :size="size" :cursor="cursor">
|
3
|
+
<icon-image
|
4
|
+
:color="color"
|
5
|
+
:background-color="backgroundColor"
|
6
|
+
:hovered-color="hoveredColor"
|
7
|
+
>
|
4
8
|
<i v-html="icon.html" />
|
5
9
|
</icon-image>
|
6
|
-
<striked-line v-if="isStriked"></striked-line>
|
10
|
+
<striked-line v-if="isStriked" :color="color"></striked-line>
|
7
11
|
</wrapper>
|
8
12
|
</template>
|
9
13
|
|
@@ -48,27 +52,31 @@ const props = defineProps({
|
|
48
52
|
isStriked: {
|
49
53
|
required: false,
|
50
54
|
default: false
|
55
|
+
},
|
56
|
+
backgroundColor: {
|
57
|
+
required: false,
|
58
|
+
default: null
|
51
59
|
}
|
52
60
|
})
|
53
61
|
|
54
|
-
const Wrapper = styled('div'
|
62
|
+
const Wrapper = styled('div', {
|
63
|
+
size: String,
|
64
|
+
disabled: Boolean,
|
65
|
+
cursor: String
|
66
|
+
})`
|
55
67
|
display: flex;
|
56
68
|
position: relative;
|
57
69
|
align-content: center;
|
58
70
|
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};
|
71
|
+
width: ${(props) => props.size};
|
72
|
+
height: ${(props) => props.size};
|
73
|
+
min-width: ${(props) => props.size};
|
74
|
+
min-height: ${(props) => props.size};
|
75
|
+
cursor: ${(props) => (props.disabled ? 'not-allowed' : props.cursor)};
|
64
76
|
line-height: 0;
|
65
77
|
`
|
66
|
-
|
67
|
-
|
68
|
-
color: String,
|
69
|
-
hoveredColor: String
|
70
|
-
}
|
71
|
-
const StrikedLine = styled.div`
|
78
|
+
|
79
|
+
const StrikedLine = styled('div', { color: String })`
|
72
80
|
display: flex;
|
73
81
|
position: absolute;
|
74
82
|
bottom: 0;
|
@@ -77,29 +85,33 @@ const StrikedLine = styled.div`
|
|
77
85
|
justify-content: center;
|
78
86
|
width: 143%;
|
79
87
|
height: 8%;
|
80
|
-
background-color: ${({ theme }) => theme.colors[
|
88
|
+
background-color: ${({ theme, color }) => theme.colors[color] || color};
|
81
89
|
min-height: 0;
|
82
90
|
line-height: 0;
|
83
91
|
transform-origin: 0% 100%;
|
84
92
|
transform: rotate(-45deg);
|
85
93
|
`
|
86
|
-
const IconImage = styled
|
94
|
+
const IconImage = styled('div', {
|
95
|
+
color: String,
|
96
|
+
backgroundColor: String,
|
97
|
+
hoveredColor: String
|
98
|
+
})`
|
87
99
|
width: 100%;
|
88
100
|
svg {
|
89
101
|
width: 100%;
|
90
102
|
height: 100%;
|
91
|
-
background-color: ${(props) =>
|
103
|
+
background-color: ${(props) =>
|
104
|
+
props.backgroundColor ? props.backgroundColor : 'transparent'};
|
92
105
|
padding: ${(props) => (props.backgroundColor ? '3px' : '0')};
|
93
106
|
}
|
94
107
|
svg path {
|
95
|
-
${({ theme }) =>
|
96
|
-
props.color && `fill: ${theme.colors[props.color] || props.color};`}
|
108
|
+
${({ theme, color }) => color && `fill: ${theme.colors[color] || color};`}
|
97
109
|
}
|
98
110
|
&:hover > svg path {
|
99
|
-
${props.hoveredColor && `fill: ${props.hoveredColor};`}
|
111
|
+
${(props) => props.hoveredColor && `fill: ${props.hoveredColor};`}
|
100
112
|
}
|
101
113
|
&:hover + div {
|
102
|
-
background-color: ${props.hoveredColor};
|
114
|
+
background-color: ${(props) => props.hoveredColor};
|
103
115
|
}
|
104
116
|
`
|
105
117
|
|
@@ -3,10 +3,11 @@
|
|
3
3
|
<container
|
4
4
|
:checkColor="checkColor"
|
5
5
|
:size="size"
|
6
|
-
:hasLabel="
|
6
|
+
:hasLabel="label && !!label.length"
|
7
7
|
:backgroundColor="backgroundColor"
|
8
8
|
:isChecked="isChecked"
|
9
9
|
:isDisabled="isDisabled"
|
10
|
+
:cursorType="cursorType"
|
10
11
|
>
|
11
12
|
<input-checkbox
|
12
13
|
type="checkbox"
|
@@ -17,7 +18,7 @@
|
|
17
18
|
<check-wrapper :hasLabel="hasLabel">
|
18
19
|
<span class="checkmark"></span>
|
19
20
|
</check-wrapper>
|
20
|
-
<label-text v-if="
|
21
|
+
<label-text v-if="label && !!label.length">{{ label }}</label-text>
|
21
22
|
</container>
|
22
23
|
</component-wrapper>
|
23
24
|
</template>
|
@@ -33,6 +34,7 @@
|
|
33
34
|
// size="small"
|
34
35
|
// backgroundColor="red"
|
35
36
|
// :isDisabled="true"
|
37
|
+
// cursorType="default"
|
36
38
|
// />
|
37
39
|
import styled from 'vue3-styled-components'
|
38
40
|
|
@@ -55,7 +57,8 @@ const containerAttrs = {
|
|
55
57
|
hasLabel: Boolean,
|
56
58
|
backgroundColor: String,
|
57
59
|
isChecked: Boolean,
|
58
|
-
isDisabled: Boolean
|
60
|
+
isDisabled: Boolean,
|
61
|
+
cursorType: String
|
59
62
|
}
|
60
63
|
const Container = styled('label', containerAttrs)`
|
61
64
|
display: grid;
|
@@ -64,7 +67,7 @@ const Container = styled('label', containerAttrs)`
|
|
64
67
|
align-content: center;
|
65
68
|
color: ${(props) => props.theme.colors.black};
|
66
69
|
position: relative;
|
67
|
-
cursor: ${(props) => (props.isDisabled ? 'not-allowed' :
|
70
|
+
cursor: ${(props) => (props.isDisabled ? 'not-allowed' : props.cursorType)};
|
68
71
|
font-size: 16px;
|
69
72
|
user-select: none;
|
70
73
|
|
@@ -89,7 +92,7 @@ const Container = styled('label', containerAttrs)`
|
|
89
92
|
: props.theme.colors.green
|
90
93
|
: props.isDisabled
|
91
94
|
? props.theme.colors.lightGray
|
92
|
-
:
|
95
|
+
: props.theme.colors.white};
|
93
96
|
border-radius: 4px;
|
94
97
|
border: 1px solid
|
95
98
|
${(props) =>
|
@@ -183,6 +186,10 @@ export default {
|
|
183
186
|
dataId: {
|
184
187
|
type: String,
|
185
188
|
default: ''
|
189
|
+
},
|
190
|
+
cursorType: {
|
191
|
+
type: String,
|
192
|
+
default: 'pointer'
|
186
193
|
}
|
187
194
|
},
|
188
195
|
computed: {
|
@@ -313,8 +313,7 @@ export default {
|
|
313
313
|
return {
|
314
314
|
textInput: '',
|
315
315
|
isFocused: false,
|
316
|
-
warningIcon: warningIcon
|
317
|
-
isBlurred: false
|
316
|
+
warningIcon: warningIcon
|
318
317
|
}
|
319
318
|
},
|
320
319
|
props: {
|
@@ -549,8 +548,7 @@ export default {
|
|
549
548
|
return array
|
550
549
|
},
|
551
550
|
onInput(event) {
|
552
|
-
if (this.
|
553
|
-
this.isBlurred = false
|
551
|
+
if (!this.isFocused) {
|
554
552
|
return
|
555
553
|
}
|
556
554
|
if (event.target.value === '') {
|
@@ -560,15 +558,13 @@ export default {
|
|
560
558
|
try {
|
561
559
|
evaluatedVal = this.onEvaluateCode(event)
|
562
560
|
} finally {
|
563
|
-
if (evaluatedVal) {
|
561
|
+
if (evaluatedVal && this.value != evaluatedVal) {
|
564
562
|
this.$emit('on-input', evaluatedVal)
|
565
563
|
}
|
566
564
|
}
|
567
565
|
},
|
568
566
|
onInputBlur(e) {
|
569
567
|
this.isFocused = false
|
570
|
-
// setting isBlurred so we don't trigger onInput as well
|
571
|
-
this.isBlurred = true
|
572
568
|
let value = e.target.value
|
573
569
|
let evaluatedInput = this.onEvaluateCode(e)
|
574
570
|
this.onChangeHandler(evaluatedInput ? evaluatedInput : value)
|
@@ -646,10 +642,10 @@ export default {
|
|
646
642
|
}
|
647
643
|
},
|
648
644
|
initInteraction(e) {
|
645
|
+
this.focusInput()
|
646
|
+
e.preventDefault()
|
649
647
|
window.addEventListener('mousemove', this.interact, false)
|
650
648
|
window.addEventListener('mouseup', this.stopInteract, false)
|
651
|
-
e.preventDefault()
|
652
|
-
this.focusInput()
|
653
649
|
},
|
654
650
|
interact(e) {
|
655
651
|
e.preventDefault()
|
@@ -1,15 +1,14 @@
|
|
1
1
|
<template>
|
2
2
|
<Container
|
3
3
|
:selectWidth="selectWidth"
|
4
|
-
:
|
5
|
-
:maxWidth="maxWidth"
|
4
|
+
:noRelative="noRelative"
|
6
5
|
@mouseenter="mouseEnterHandler"
|
7
6
|
@mouseleave="mouseLeaveHandler"
|
8
7
|
>
|
9
8
|
<input-wrapper
|
10
9
|
:hasLabel="!!label && label.length > 0"
|
11
10
|
:alignItems="alignItems"
|
12
|
-
:
|
11
|
+
:noRelative="noRelative"
|
13
12
|
>
|
14
13
|
<label-wrapper v-if="label" :data-id="labelDataId">
|
15
14
|
<input-label
|
@@ -51,6 +50,9 @@
|
|
51
50
|
:showBorder="showBorder"
|
52
51
|
:data-id="dataId"
|
53
52
|
:paddingLeft="paddingLeft"
|
53
|
+
:tablePaddingLeft="tablePaddingLeft"
|
54
|
+
:noRelative="noRelative"
|
55
|
+
:showDisabledBackground="showDisabledBackground"
|
54
56
|
>
|
55
57
|
<draggableInputHandle
|
56
58
|
v-if="isDraggable && !isSearchBarVisible"
|
@@ -81,7 +83,7 @@
|
|
81
83
|
>
|
82
84
|
<slot name="selector" :selectedValue="selectedValue"></slot>
|
83
85
|
</selector>
|
84
|
-
<Caret @click.stop="toggleCaretDropdown"
|
86
|
+
<Caret @click.stop="toggleCaretDropdown" class="caret_dropdown">
|
85
87
|
<icon
|
86
88
|
v-if="isDropdownOpen"
|
87
89
|
name="arrow_up"
|
@@ -104,7 +106,7 @@
|
|
104
106
|
/>
|
105
107
|
</Caret>
|
106
108
|
</selectButton>
|
107
|
-
<DropdownWrapper ref="dropdownWrapperRef">
|
109
|
+
<DropdownWrapper ref="dropdownWrapperRef" :noRelative="noRelative">
|
108
110
|
<Teleport to="#portal-target">
|
109
111
|
<selectDropdown
|
110
112
|
ref="dropdown"
|
@@ -123,10 +125,13 @@
|
|
123
125
|
:fontColor="
|
124
126
|
dropdownFontColor || colorMode == 'dark' ? 'white' : 'black'
|
125
127
|
"
|
128
|
+
:noRelative="noRelative"
|
126
129
|
:fontSize="fontSize"
|
130
|
+
:minWidth="minWidth"
|
127
131
|
:selectedValue="selectedValue"
|
128
132
|
@option-selected="optionSelected"
|
129
133
|
@option-hovered="optionHovered"
|
134
|
+
@mouseleave="optionLeave"
|
130
135
|
>
|
131
136
|
<slot name="dropdown"></slot>
|
132
137
|
</selectDropdown>
|
@@ -219,12 +224,11 @@ const optionalLabel = styled.span`
|
|
219
224
|
const inputProps = {
|
220
225
|
selectWidth: String,
|
221
226
|
optionWidth: String,
|
222
|
-
|
223
|
-
maxWidth: String
|
227
|
+
noRelative: Boolean
|
224
228
|
}
|
225
229
|
const Container = styled('div', inputProps)`
|
226
230
|
width: ${(props) => props.selectWidth};
|
227
|
-
position: relative;
|
231
|
+
position: ${(props) => (props.noRelative ? 'static' : 'relative')};
|
228
232
|
display: inline-block;
|
229
233
|
`
|
230
234
|
const LabelWrapper = styled.div`
|
@@ -253,16 +257,26 @@ const selectButtonAttrs = {
|
|
253
257
|
selectMinHeight: String,
|
254
258
|
hasNoPadding: Boolean,
|
255
259
|
showBorder: Boolean,
|
256
|
-
paddingLeft: String
|
260
|
+
paddingLeft: String,
|
261
|
+
noRelative: Boolean,
|
262
|
+
tablePaddingLeft: String,
|
263
|
+
showDisabledBackground: Boolean
|
257
264
|
}
|
258
265
|
const selectButton = styled('div', selectButtonAttrs)`
|
259
|
-
|
260
|
-
position: relative;
|
266
|
+
position: ${(props) => (props.noRelative ? 'static' : 'relative')};
|
261
267
|
box-sizing: border-box;
|
262
268
|
border-radius: 4px;
|
263
269
|
max-width: ${(props) => (props.selectWidth ? props.selectWidth : '100%')};
|
264
270
|
${(props) =>
|
265
|
-
props.
|
271
|
+
props.isSearchBarVisible
|
272
|
+
? ''
|
273
|
+
: `padding-left: ${
|
274
|
+
props.hasNoPadding
|
275
|
+
? '0'
|
276
|
+
: props.tablePaddingLeft
|
277
|
+
? props.tablePaddingLeft
|
278
|
+
: props.paddingLeft
|
279
|
+
}`};
|
266
280
|
text-align: left;
|
267
281
|
min-height: ${(props) =>
|
268
282
|
props.selectHeight
|
@@ -283,7 +297,7 @@ const selectButton = styled('div', selectButtonAttrs)`
|
|
283
297
|
}
|
284
298
|
`}
|
285
299
|
background-color:${(props) =>
|
286
|
-
props.disabled
|
300
|
+
props.disabled && props.showDisabledBackground
|
287
301
|
? props.theme.colors.grey5
|
288
302
|
: props.theme.colors[props.bgColor]
|
289
303
|
? props.theme.colors[props.bgColor]
|
@@ -309,13 +323,16 @@ const selectDropdownAttrs = {
|
|
309
323
|
fontSize: String,
|
310
324
|
dropdownPosition: Object,
|
311
325
|
hoveredValue: Number | String,
|
312
|
-
selectedValue: Number | String
|
326
|
+
selectedValue: Number | String,
|
327
|
+
noRelative: Boolean,
|
328
|
+
minWidth: String
|
313
329
|
}
|
314
330
|
const selectDropdown = styled('div', selectDropdownAttrs)`
|
315
331
|
box-sizing: border-box;
|
316
332
|
z-index: ${(props) => (props.isActive ? '2' : '99999')};
|
317
333
|
position: absolute;
|
318
|
-
top: ${(props) =>
|
334
|
+
top: ${(props) =>
|
335
|
+
props.noRelative ? 'auto' : props.dropdownPosition?.top + 'px'};
|
319
336
|
left: ${(props) => props.dropdownPosition?.left}px;
|
320
337
|
border: ${BORDER_WIDTH} solid ${(props) => props.theme.colors.grey4};
|
321
338
|
border-radius: 4px;
|
@@ -325,6 +342,12 @@ const selectDropdown = styled('div', selectDropdownAttrs)`
|
|
325
342
|
padding: 0px;
|
326
343
|
box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
|
327
344
|
width: ${(props) => (props.optionWidth ? props.optionWidth : '100%')};
|
345
|
+
min-width: ${(props) =>
|
346
|
+
props.minWidth
|
347
|
+
? props.minWidth
|
348
|
+
: props.optionWidth
|
349
|
+
? props.optionWidth
|
350
|
+
: '100%'};
|
328
351
|
background-color: ${(props) =>
|
329
352
|
props.theme.colors[props.bgColor]
|
330
353
|
? props.theme.colors[props.bgColor]
|
@@ -344,12 +367,17 @@ const selectDropdown = styled('div', selectDropdownAttrs)`
|
|
344
367
|
font-size: ${(props) => props.fontSize};
|
345
368
|
`
|
346
369
|
selectDropdown.emits = ['option-hovered', 'option-selected']
|
347
|
-
const
|
348
|
-
|
370
|
+
const DropdownAttrs = { noRelative: Boolean }
|
371
|
+
const DropdownWrapper = styled('div', DropdownAttrs)`
|
372
|
+
position: ${(props) => (props.noRelative ? 'static' : 'relative')};
|
349
373
|
`
|
350
|
-
const inputAttrs = {
|
374
|
+
const inputAttrs = {
|
375
|
+
alignItems: String,
|
376
|
+
hasLabel: Boolean,
|
377
|
+
noRelative: Boolean
|
378
|
+
}
|
351
379
|
const InputWrapper = styled('div', inputAttrs)`
|
352
|
-
position: relative;
|
380
|
+
position: ${(props) => (props.noRelative ? 'static' : 'relative')};
|
353
381
|
display: grid;
|
354
382
|
width: 100%;
|
355
383
|
min-width: ${(props) => (props.minWidth ? props.minWidth : '150px')};
|
@@ -380,6 +408,10 @@ export default {
|
|
380
408
|
required: false,
|
381
409
|
default: '13px'
|
382
410
|
},
|
411
|
+
noRelative: {
|
412
|
+
required: false,
|
413
|
+
default: false
|
414
|
+
},
|
383
415
|
label: {
|
384
416
|
required: false
|
385
417
|
},
|
@@ -501,6 +533,13 @@ export default {
|
|
501
533
|
type: String,
|
502
534
|
default: '15px'
|
503
535
|
},
|
536
|
+
tablePaddingLeft: {
|
537
|
+
required: false
|
538
|
+
},
|
539
|
+
showDisabledBackground: {
|
540
|
+
required: false,
|
541
|
+
default: true
|
542
|
+
},
|
504
543
|
minOptionLength: {
|
505
544
|
type: Number,
|
506
545
|
default: MIN_OPTION_LENGTH
|
@@ -16,6 +16,7 @@
|
|
16
16
|
:disabledTextColor="disabledTextColor"
|
17
17
|
:backgroundColor="colorMode == 'dark' ? '#000000' : backgroundColor"
|
18
18
|
:title="hoverText"
|
19
|
+
:minWidth="minWidth"
|
19
20
|
:padding="padding"
|
20
21
|
>
|
21
22
|
<slot></slot>
|
@@ -31,6 +32,7 @@ const optionProps = {
|
|
31
32
|
hoveredBgColor: String,
|
32
33
|
cursorType: String,
|
33
34
|
backgroundColor: String,
|
35
|
+
minWidth: String,
|
34
36
|
disabledBgColor: String,
|
35
37
|
disabledTextColor: String,
|
36
38
|
padding: String
|
@@ -44,6 +46,7 @@ const optionContainer = styled('div', optionProps)`
|
|
44
46
|
padding: ${(props) => props.padding};
|
45
47
|
gap: 14px;
|
46
48
|
width: 100%;
|
49
|
+
min-width: ${(props) => (props.minWidth ? props.minWidth : '100%')};
|
47
50
|
background-color: ${(props) =>
|
48
51
|
props.isDisabled
|
49
52
|
? props.theme.colors[props.disabledBgColor]
|
@@ -106,6 +109,9 @@ export default {
|
|
106
109
|
required: false,
|
107
110
|
default: false
|
108
111
|
},
|
112
|
+
minWidth: {
|
113
|
+
required: false
|
114
|
+
},
|
109
115
|
disabledBgColor: {
|
110
116
|
required: false,
|
111
117
|
default: 'white'
|
@@ -0,0 +1,86 @@
|
|
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 'vue3-styled-components'
|
31
|
+
import Icon from '../icon'
|
32
|
+
|
33
|
+
const PageContainer = styled.div`
|
34
|
+
display: flex;
|
35
|
+
align-items: center;
|
36
|
+
font-size: 12px;
|
37
|
+
line-height: 14px;
|
38
|
+
`
|
39
|
+
|
40
|
+
const MarkerAttrs = {
|
41
|
+
backgroundColor: String,
|
42
|
+
hasIcon: Boolean,
|
43
|
+
cursor: String
|
44
|
+
}
|
45
|
+
const MarkerContainer = styled('div', MarkerAttrs)`
|
46
|
+
display: grid;
|
47
|
+
grid-template-columns: ${(props) => (props.hasIcon ? 'auto 1fr' : '1fr')};
|
48
|
+
grid-gap: 5px;
|
49
|
+
position: relative;
|
50
|
+
align-items: center;
|
51
|
+
padding: 2px 7px;
|
52
|
+
color: ${(props) => props.theme.colors.white};
|
53
|
+
background-color: ${(props) =>
|
54
|
+
props.backgroundColor ? props.backgroundColor : props.theme.colors.grey3};
|
55
|
+
border: 1px solid
|
56
|
+
${(props) =>
|
57
|
+
props.backgroundColor ? props.backgroundColor : props.theme.colors.grey3};
|
58
|
+
border-radius: 4px;
|
59
|
+
white-space: nowrap;
|
60
|
+
cursor: ${(props) => (props.isEditionAllowed ? 'pointer' : props.cursor)};
|
61
|
+
`
|
62
|
+
|
63
|
+
export default {
|
64
|
+
name: 'project-marker',
|
65
|
+
components: {
|
66
|
+
PageContainer,
|
67
|
+
MarkerContainer,
|
68
|
+
Icon
|
69
|
+
},
|
70
|
+
props: {
|
71
|
+
backgroundColor: {
|
72
|
+
required: false
|
73
|
+
},
|
74
|
+
iconName: {
|
75
|
+
required: false
|
76
|
+
},
|
77
|
+
label: {
|
78
|
+
required: true
|
79
|
+
},
|
80
|
+
cursor: {
|
81
|
+
required: false,
|
82
|
+
default: 'default'
|
83
|
+
}
|
84
|
+
}
|
85
|
+
}
|
86
|
+
</script>
|
@@ -3,11 +3,7 @@
|
|
3
3
|
<title-text :color="color" :fontSize="fontSize" :uppercase="uppercase">
|
4
4
|
{{ text }}
|
5
5
|
</title-text>
|
6
|
-
<info-text
|
7
|
-
v-if="!!infoText"
|
8
|
-
:text="infoText"
|
9
|
-
:alignArrow="infoAlign"
|
10
|
-
/>
|
6
|
+
<info-text v-if="!!infoText" :text="infoText" :alignArrow="infoAlign" />
|
11
7
|
</title-wrap>
|
12
8
|
</template>
|
13
9
|
|
@@ -18,16 +14,16 @@
|
|
18
14
|
// text="My Page Title"
|
19
15
|
// color="red"
|
20
16
|
// />
|
21
|
-
import styled from
|
22
|
-
import InfoText from
|
17
|
+
import styled from 'vue3-styled-components'
|
18
|
+
import InfoText from '../infoText'
|
23
19
|
|
24
20
|
const wrapAttrs = { hasInfoText: Boolean }
|
25
|
-
const TitleWrap = styled(
|
21
|
+
const TitleWrap = styled('div', wrapAttrs)`
|
26
22
|
display: grid;
|
27
23
|
align-items: center;
|
28
24
|
grid-gap: 12px;
|
29
25
|
grid-template-columns: ${(props) =>
|
30
|
-
props.hasInfoText ?
|
26
|
+
props.hasInfoText ? 'auto auto 1fr' : '1fr'};
|
31
27
|
margin-bottom: 20px;
|
32
28
|
`
|
33
29
|
|
@@ -35,7 +31,7 @@ const titleAttrs = { color: String, fontSize: String, uppercase: Boolean }
|
|
35
31
|
const TitleText = styled('span', titleAttrs)`
|
36
32
|
color: ${(props) => (props.color ? props.color : props.theme.colors.black)};
|
37
33
|
font-weight: bold;
|
38
|
-
font-size: ${(props) => (props.fontSize ? props.fontSize : '
|
34
|
+
font-size: ${(props) => (props.fontSize ? props.fontSize : '18px')};
|
39
35
|
text-transform: ${(props) => (props.uppercase ? 'uppercase' : 'none')};
|
40
36
|
`
|
41
37
|
|
@@ -54,8 +50,7 @@ export default {
|
|
54
50
|
required: false
|
55
51
|
},
|
56
52
|
fontSize: {
|
57
|
-
required: false
|
58
|
-
default: '16px'
|
53
|
+
required: false
|
59
54
|
},
|
60
55
|
uppercase: {
|
61
56
|
required: false,
|
@@ -63,11 +58,11 @@ export default {
|
|
63
58
|
},
|
64
59
|
infoText: {
|
65
60
|
required: false,
|
66
|
-
default: null
|
61
|
+
default: null
|
67
62
|
},
|
68
63
|
infoAlign: {
|
69
|
-
required: false
|
64
|
+
required: false
|
70
65
|
}
|
71
|
-
}
|
66
|
+
}
|
72
67
|
}
|
73
68
|
</script>
|
@@ -81,8 +81,6 @@ const paginationWrapper = styled.nav`
|
|
81
81
|
flex-wrap: wrap;
|
82
82
|
justify-content: flex-end;
|
83
83
|
align-items: center;
|
84
|
-
margin-bottom: 2px;
|
85
|
-
margin-top: 10px;
|
86
84
|
`
|
87
85
|
const paginationLink = styled.div`
|
88
86
|
display: flex;
|
@@ -92,15 +90,18 @@ const paginationLink = styled.div`
|
|
92
90
|
border-radius: 3px;
|
93
91
|
white-space: nowrap;
|
94
92
|
cursor: pointer;
|
93
|
+
color: ${(props) => props.theme.colors.brightBlue};
|
95
94
|
|
96
95
|
&.active {
|
97
|
-
color:
|
96
|
+
color: ${(props) => props.theme.colors.white};
|
98
97
|
background-color: ${(props) => props.theme.colors.brightBlue};
|
99
98
|
padding: 7px 12px;
|
100
99
|
border-radius: 4px;
|
101
100
|
}
|
102
101
|
`
|
103
|
-
const arrowText = styled.div
|
102
|
+
const arrowText = styled.div`
|
103
|
+
color: ${(props) => props.theme.colors.brightBlue};
|
104
|
+
`
|
104
105
|
const arrowIconContainer = styled.div`
|
105
106
|
margin: 0 10px;
|
106
107
|
display: flex;
|
@@ -69,7 +69,7 @@
|
|
69
69
|
</template>
|
70
70
|
|
71
71
|
<script>
|
72
|
-
// import
|
72
|
+
// import ProjectMarker from "@eturnity/eturnity_reusable_components/src/components/projectMarker"
|
73
73
|
// To use:
|
74
74
|
// <project-marker
|
75
75
|
// :activeLanguage="'en-us'"
|
@@ -40,7 +40,12 @@
|
|
40
40
|
"
|
41
41
|
@click.stop="onSelectedTemplateClick(item.row)"
|
42
42
|
>
|
43
|
-
<img :src="fileIcon" alt="icon" width="12" height="16" />
|
43
|
+
<!-- <img :src="fileIcon" alt="icon" width="12" height="16" /> -->
|
44
|
+
<icon
|
45
|
+
name="template_icon_not_clickable"
|
46
|
+
:color="theme.colors.brightBlue"
|
47
|
+
size="14px"
|
48
|
+
/>
|
44
49
|
<div>{{ item.value }}</div>
|
45
50
|
</template-link>
|
46
51
|
<no-template v-if="item.type && item.type === 'no-template'">
|
@@ -178,6 +183,8 @@ import InputText from '../inputs/inputText'
|
|
178
183
|
import CollapseArrowIcon from '../../assets/icons/collapse_arrow_icon.svg'
|
179
184
|
import SubpositionMarkerIcon from '../../assets/icons/subposition_marker.svg'
|
180
185
|
import fileIconPng from '../../assets/icons/file_icon.png'
|
186
|
+
import Icon from '../icon'
|
187
|
+
import theme from '@/assets/theme.js'
|
181
188
|
|
182
189
|
const rowAttrs = { disabled: Boolean, isOpen: Boolean }
|
183
190
|
const DropdownRow = styled('div', rowAttrs)`
|
@@ -273,6 +280,7 @@ const ArrowWrapper = styled('div', arrowAttrs)`
|
|
273
280
|
const optionsAttrs = { top: Number, left: Number }
|
274
281
|
const OptionsContainer = styled('div', optionsAttrs)`
|
275
282
|
position: absolute;
|
283
|
+
margin-top: 10px;
|
276
284
|
display: grid;
|
277
285
|
grid-template-rows: 1fr auto;
|
278
286
|
left: 20px;
|
@@ -307,10 +315,6 @@ const OptionsWrapper = styled.div`
|
|
307
315
|
|
308
316
|
const OptionsItem = styled('div', containerAttrs)`
|
309
317
|
display: grid;
|
310
|
-
/* grid-template-columns: 1fr repeat(
|
311
|
-
${(props) => props.colSpan},
|
312
|
-
minmax(50px, auto)
|
313
|
-
); */
|
314
318
|
grid-template-columns: ${(props) => props.width};
|
315
319
|
grid-gap: 30px;
|
316
320
|
padding: 10px;
|
@@ -343,6 +347,7 @@ const TemplateButton = styled.div`
|
|
343
347
|
display: inline-block;
|
344
348
|
border-radius: 4px;
|
345
349
|
text-align: center;
|
350
|
+
margin-left: 15px;
|
346
351
|
`
|
347
352
|
|
348
353
|
const NoTemplate = styled.div`
|
@@ -350,14 +355,16 @@ const NoTemplate = styled.div`
|
|
350
355
|
font-style: italic;
|
351
356
|
overflow: hidden;
|
352
357
|
text-overflow: ellipsis;
|
358
|
+
padding-left: 15px;
|
353
359
|
`
|
354
360
|
|
355
361
|
const TemplateLink = styled.div`
|
356
|
-
color: ${(props) => props.theme.colors.
|
362
|
+
color: ${(props) => props.theme.colors.brightBlue};
|
357
363
|
cursor: pointer;
|
358
364
|
display: grid;
|
359
365
|
grid-template-columns: auto 1fr;
|
360
366
|
grid-gap: 12px;
|
367
|
+
padding-left: 15px;
|
361
368
|
`
|
362
369
|
|
363
370
|
const InputContainer = styled.div`
|
@@ -433,7 +440,8 @@ export default {
|
|
433
440
|
ArrowContainer,
|
434
441
|
TextContainer,
|
435
442
|
NestedIcon,
|
436
|
-
NestedContainer
|
443
|
+
NestedContainer,
|
444
|
+
Icon
|
437
445
|
},
|
438
446
|
props: {
|
439
447
|
colSpan: {
|
@@ -599,6 +607,9 @@ export default {
|
|
599
607
|
computed: {
|
600
608
|
getCustomName() {
|
601
609
|
return this.inputText
|
610
|
+
},
|
611
|
+
theme() {
|
612
|
+
return theme
|
602
613
|
}
|
603
614
|
},
|
604
615
|
watch: {
|