@eturnity/eturnity_reusable_components 6.48.0-EPDM-8148.8 → 6.48.0-EPDM-8891.3

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eturnity/eturnity_reusable_components",
3
- "version": "6.48.0-EPDM-8148.8",
3
+ "version": "6.48.0-EPDM-8891.3",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "dev": "vue-cli-service serve",
@@ -8,85 +8,63 @@
8
8
  :color="iconColor"
9
9
  :hoveredBackgroundColor="hoveredBackgroundColor"
10
10
  :isHovered="isHovered"
11
- >
12
- <icon
13
- :disabled="disabled"
14
- :size="iconSize"
15
- :name="name"
16
- :color="iconColor"
17
- :hoveredColor="hoveredIconColor"
18
- :isStriked="isStriked"
19
- />
20
-
21
- <caret v-if="hasCaret">
22
- <iconWrapper
23
- :disabled="disabled"
24
- size="10px"
25
- name="arrow_down"
26
- :iconColor="iconColor"
27
- :hoveredBackgroundColor="hoveredIconColor"
28
- borderRadius="1px"
29
- />
30
- </caret>
31
- </Wrapper>
32
- </template>
33
-
34
- <script>
35
- // import Icon from "@eturnity/eturnity_reusable_components/src/components/icon"
36
- // How to use:
37
- //<icon
38
- // name="House" //required. a svg file named [name].svg should be present in /assets/svgIcons
39
- // color="red"
40
- // hoveredColor="blue"
41
- // size="60px" by default, this is 30px
42
- // />
43
-
44
- import styled from 'vue-styled-components'
45
- import icon from '../icon'
46
- const wrapperAttrs = {
47
- color: String,
48
- isHovered: Boolean,
49
- borderRadius: String,
50
- disabled: Boolean,
51
- size: String,
52
- backgroundColor: String,
53
- hoveredBackgroundColor: String,
54
- hasBorder: Boolean
55
- }
56
- const Wrapper = styled('div', wrapperAttrs)`
57
- position: relative;
58
- display: inline-flex;
59
- width: ${(props) => props.size};
60
- height: ${(props) => props.size};
61
- border: ${(props) =>
62
- props.hasBorder
63
- ? 'solid 1px ' + props.theme.colors[props.color] || props.color
64
- : ''};
65
- justify-content: center;
66
- align-items: center;
67
- cursor: ${(props) => (props.disabled ? 'not-allowed' : 'pointer')};
68
- background-color: ${(props) =>
69
- props.theme.colors[props.backgroundColor] || props.backgroundColor};
70
- border-radius: ${(props) => props.borderRadius};
71
- ${(props) =>
72
- props.isHovered
73
- ? 'background-color:' +
74
- props.theme.colors[props.hoveredBackgroundColor] ||
75
- props.hoveredBackgroundColor
76
- : ''};
77
- &:hover {
78
- background-color: ${(props) =>
79
- props.theme.colors[props.hoveredBackgroundColor] ||
80
- props.hoveredBackgroundColor};
81
- }
82
- `
83
- const caret = styled.div`
84
- position: absolute;
85
- bottom: 3px;
86
- right: 2px;
87
- height: 10px;
88
- `
89
-
11
+ >
12
+ <icon :disabled="disabled"
13
+ :size="iconSize"
14
+ :name="name"
15
+ :color="iconColor"
16
+ :hoveredColor="hoveredIconColor"
17
+ :isStriked="isStriked"
18
+ />
19
+
20
+ <caret v-if="hasCaret">
21
+ <iconWrapper :disabled="disabled"
22
+ size="10px"
23
+ name="arrow_down"
24
+ :iconColor="iconColor"
25
+ :hoveredBackgroundColor="hoveredIconColor"
26
+ borderRadius="1px"
27
+ />
28
+ </caret>
29
+ </Wrapper>
30
+ </template>
31
+
32
+ <script>
33
+ // import Icon from "@eturnity/eturnity_reusable_components/src/components/icon"
34
+ // How to use:
35
+ //<icon
36
+ // name="House" //required. a svg file named [name].svg should be present in /assets/svgIcons
37
+ // color="red"
38
+ // hoveredColor="blue"
39
+ // size="60px" by default, this is 30px
40
+ // />
41
+
42
+ import styled from 'vue-styled-components'
43
+ import icon from '../icon'
44
+ const wrapperAttrs = { color: String, isHovered:Boolean,borderRadius:String,disabled: Boolean, size: String,backgroundColor:String,hoveredBackgroundColor:String,hasBorder:Boolean }
45
+ const Wrapper = styled('div', wrapperAttrs)`
46
+ position:relative;
47
+ display: inline-flex;
48
+ width: ${(props) => props.size};
49
+ height: ${(props) => props.size};
50
+ border: ${(props) => props.hasBorder? 'solid 1px '+props.theme.colors[props.color] || props.color : ""};
51
+ justify-content:center;
52
+ align-items:center;
53
+ cursor: ${(props) => (props.disabled ? 'not-allowed' : 'pointer')};
54
+ background-color: ${(props)=>props.theme.colors[props.backgroundColor] || props.backgroundColor};
55
+ border-radius: ${(props) => props.borderRadius};
56
+ ${(props)=>(props.isHovered ? 'background-color:'+props.theme.colors[props.hoveredBackgroundColor] || props.hoveredBackgroundColor : "")};
57
+ &:hover{
58
+ background-color:${(props)=>props.theme.colors[props.hoveredBackgroundColor] || props.hoveredBackgroundColor};
59
+ }
60
+ `
61
+ const caret=styled.div`
62
+ position:absolute;
63
+ bottom:3px;
64
+ right:2px;
65
+ height:10px;
66
+ `
67
+
90
68
  export default {
91
69
  name: 'iconWrapper',
92
70
  components: {
@@ -471,7 +471,7 @@ export default {
471
471
  ? this.minNumber
472
472
  : event
473
473
  }
474
- if (!this.allowNegative && typeof event === 'number') {
474
+ if (!this.allowNegative) {
475
475
  event = Math.abs(event)
476
476
  }
477
477
  event = parseFloat(event)
@@ -492,14 +492,10 @@ export default {
492
492
  this.toggleDropdown()
493
493
  },
494
494
  clickOutside(event) {
495
- const dropdownRef = this.$refs.dropdown
496
- // we need to prevent closing on selecting an option, because in the case of
497
- // a disabled option, we don't want to close the dropdown
498
495
  if (!this.isClickOutsideActive) return
499
496
  if (
500
497
  this.$refs.select.$el == event.target ||
501
- this.$refs.select.$el.contains(event.target) ||
502
- event.target.parentNode === dropdownRef.$el
498
+ this.$refs.select.$el.contains(event.target)
503
499
  ) {
504
500
  return
505
501
  } else {
@@ -541,7 +537,15 @@ export default {
541
537
  computed: {
542
538
  optionLength() {
543
539
  if (this.isDropdownOpen) {
544
- return this.$refs.dropdown.$children.length
540
+ // this filterRef is needed to check for the # of children on Filter dropdowns
541
+ const filterRef =
542
+ this.$refs.dropdown.$children &&
543
+ this.$refs.dropdown.$children.length > 1
544
+ ? this.$refs.dropdown.$children
545
+ : this.$refs.dropdown.$children[0].$children
546
+ ? this.$refs.dropdown.$children[0].$children
547
+ : this.$refs.dropdown.$children
548
+ return filterRef.length
545
549
  } else {
546
550
  return 0
547
551
  }
@@ -1,18 +1,10 @@
1
1
  <template>
2
2
  <optionContainer
3
3
  :data-value="value"
4
- :hoveredBgColor="
5
- colorMode == 'dark'
6
- ? '#000000'
7
- : hoveredBgColor
8
- ? hoveredBgColor
9
- : 'grey5'
10
- "
4
+ :hoveredBgColor="colorMode == 'dark' ? '#000000' : 'hoveredBgColor'"
5
+ :backgroundColor="colorMode == 'dark' ? 'eturnityGrey' : '#fff'"
11
6
  @click="clickHandler"
12
7
  @mouseover="hoverHandler"
13
- :cursorType="cursorType"
14
- :backgroundColor="colorMode == 'dark' ? '#000000' : backgroundColor"
15
- :title="hoverText"
16
8
  >
17
9
  <slot></slot>
18
10
  </optionContainer>
@@ -22,29 +14,18 @@
22
14
  // import selectButton from './selectButton'
23
15
  // import selectDropdown from './selectDropDown'
24
16
  import styled from 'vue-styled-components'
25
- const optionProps = {
26
- hoveredBgColor: String,
27
- cursorType: String,
28
- backgroundColor: String
29
- }
17
+ const optionProps = { hoveredBgColor: String, backgroundColor: String }
30
18
  const optionContainer = styled('div', optionProps)`
31
19
  display: flex;
32
- cursor: ${(props) => props.cursorType};
20
+ cursor: pointer;
33
21
  flex-direction: row;
34
22
  justify-content: space-between;
35
23
  align-items: center;
36
24
  padding: 12px 10px;
37
25
  gap: 14px;
38
26
  width: 100%;
39
- background-color: ${(props) =>
40
- props.theme.colors[props.backgroundColor]
41
- ? props.theme.colors[props.backgroundColor]
42
- : props.backgroundColor};
27
+ background-color: ${(props) => props.theme.colors[props.backgroundColor]?props.theme.colors[props.backgroundColor]:props.backgroundColor};
43
28
  box-sizing: inherit;
44
- background-color: ${(props) =>
45
- props.theme.colors[props.backgroundColor]
46
- ? props.theme.colors[props.backgroundColor]
47
- : props.backgroundColor};
48
29
  &:hover {
49
30
  background-color: ${(props) =>
50
31
  props.theme.colors[props.hoveredBgColor]
@@ -66,21 +47,6 @@ export default {
66
47
  colorMode: {
67
48
  required: false,
68
49
  default: 'light'
69
- },
70
- cursorType: {
71
- required: false,
72
- default: 'cursor'
73
- },
74
- backgroundColor: {
75
- required: false,
76
- default: 'white'
77
- },
78
- hoverText: {
79
- required: false
80
- },
81
- isDisabled: {
82
- required: false,
83
- default: false
84
50
  }
85
51
  },
86
52
 
@@ -91,12 +57,7 @@ export default {
91
57
  },
92
58
  methods: {
93
59
  clickHandler() {
94
- if (this.isDisabled) {
95
- // prevent emitter if the option is disabled
96
- return
97
- } else {
98
- this.$parent.$emit('option-selected', this.value)
99
- }
60
+ this.$parent.$emit('option-selected', this.value)
100
61
  },
101
62
  hoverHandler() {
102
63
  this.$parent.$emit('option-hovered', this.value)
@@ -37,7 +37,7 @@ const ContentContainer = styled('div', contentAttrs)`
37
37
  visibility: ${(props) => (props.visible ? 'inherit' : 'hidden')};
38
38
  `
39
39
 
40
- const pageAttrs = { isOpen: Boolean, backdrop: String, position: String }
40
+ const pageAttrs = { isOpen: Boolean, backdrop: String,position:String }
41
41
  const PageWrapper = styled('div', pageAttrs)`
42
42
  position: ${(props) => props.position}
43
43
  display: grid;
@@ -134,13 +134,11 @@
134
134
  {{ !!item[option] ? item[option] : '-' }}
135
135
  </span>
136
136
  <template-button
137
- :key="idx"
138
137
  @click.stop="onTemplateClick(item)"
139
138
  v-else-if="option === 'template' && item.has_template"
140
139
  >{{ $gettext('Use template...') }}</template-button
141
140
  >
142
141
  <no-template
143
- :key="idx"
144
142
  v-else-if="option === 'template' && !item.has_template"
145
143
  >
146
144
  {{ $gettext('No main component template') }}
@@ -91,11 +91,19 @@ export const stringToNumber = ({
91
91
  return parseFloat(newVal)
92
92
  }
93
93
 
94
- export const numberToString = ({ value, numberPrecision, minDecimals }) => {
95
- const minimumRounding = minDecimals ? minDecimals : 0
94
+ export const numberToString = ({ value, numberPrecision = 0 }) => {
96
95
  value = parseFloat(value)
96
+ let minNumberPrecision
97
+ let maxNumberPrecision
98
+ if (typeof numberPrecision === 'number') {
99
+ minNumberPrecision = numberPrecision
100
+ maxNumberPrecision = numberPrecision
101
+ } else {
102
+ minNumberPrecision = numberPrecision[0]
103
+ maxNumberPrecision = numberPrecision[1]
104
+ }
97
105
  return value.toLocaleString(langForLocaleString(), {
98
- minimumFractionDigits: minimumRounding, // removing this for now. Why do we need this to be a minimum amount?
99
- maximumFractionDigits: numberPrecision
106
+ minimumFractionDigits: minNumberPrecision,
107
+ maximumFractionDigits: maxNumberPrecision
100
108
  })
101
109
  }
@@ -1,3 +0,0 @@
1
- <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <path fill-rule="evenodd" clip-rule="evenodd" d="M10 0H11H16C17.1046 0 18 0.895431 18 2V12H12C10.8954 12 10 11.1046 10 10V4L0 4V2C0 0.89543 0.895431 0 2 0H10ZM0 6H6C7.10457 6 8 6.89543 8 8V14H18V16C18 17.1046 17.1046 18 16 18H8H7H2C0.895431 18 0 17.1046 0 16V6Z" fill="white"/>
3
- </svg>