@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 CHANGED
@@ -1,5 +1,3 @@
1
1
  module.exports = {
2
- presets: [
3
- '@vue/cli-plugin-babel/preset'
4
- ]
5
- }
2
+ presets: ['@vue/cli-plugin-babel/preset']
3
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eturnity/eturnity_reusable_components",
3
- "version": "7.4.4-EPDM-7260.26",
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
- const strikedAttrs = {
67
- isDisabled: Boolean,
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[props.color] || props.color};
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.div`
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) => props.backgroundColor};
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
 
@@ -26,7 +26,6 @@
26
26
  //To use:
27
27
  // <info-text
28
28
  // text="Veritatis et quasi architecto beatae vitae"
29
- // borderColor="#ccc"
30
29
  // size="20px"
31
30
  // alignArrow="right" // which side the arrow should be on
32
31
  // />
@@ -3,10 +3,11 @@
3
3
  <container
4
4
  :checkColor="checkColor"
5
5
  :size="size"
6
- :hasLabel="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="hasLabel">{{ label }}</label-text>
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' : 'pointer')};
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
- : '#fff'};
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.isBlurred) {
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
- :minWidth="minWidth"
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
- :minWidth="minWidth"
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" v-if="dropDownArrowVisible">
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
- minWidth: String,
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
- font-size: ${(props) => (props.fontSize ? props.fontSize : '13px')};
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.hasNoPadding ? '' : `padding-left: ${props.paddingLeft}`};
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) => props.dropdownPosition?.top}px;
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 DropdownWrapper = styled('div')`
348
- position: relative;
370
+ const DropdownAttrs = { noRelative: Boolean }
371
+ const DropdownWrapper = styled('div', DropdownAttrs)`
372
+ position: ${(props) => (props.noRelative ? 'static' : 'relative')};
349
373
  `
350
- const inputAttrs = { alignItems: String, hasLabel: Boolean, minWidth: String }
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'
@@ -49,7 +49,7 @@
49
49
  // label="Question 5"
50
50
  // alignItems="horizontal" // horizontal, vertical
51
51
  // :isDisabled="true"
52
- // . fontSize="13px"
52
+ // fontSize="13px"
53
53
  // />
54
54
  import styled from 'vue3-styled-components'
55
55
  import InfoText from '../../infoText'
@@ -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 "vue3-styled-components"
22
- import InfoText from "../infoText"
17
+ import styled from 'vue3-styled-components'
18
+ import InfoText from '../infoText'
23
19
 
24
20
  const wrapAttrs = { hasInfoText: Boolean }
25
- const TitleWrap = styled("div", wrapAttrs)`
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 ? "auto auto 1fr" : "1fr"};
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 : '16px')};
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: #fff;
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 ThreeDots from "@eturnity/eturnity_reusable_components/src/components/projectMarker"
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.purple};
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: {