@eturnity/eturnity_reusable_components 7.10.0-EPDM-10285.1 → 7.10.0-EPDM-10285.2

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": "7.10.0-EPDM-10285.1",
3
+ "version": "7.10.0-EPDM-10285.2",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "dev": "vue-cli-service serve",
package/src/App.vue CHANGED
@@ -14,87 +14,42 @@
14
14
  textAlign="left"
15
15
  :isInteractive="true"
16
16
  :interactionStep="1"
17
- @on-input="value = $event"
17
+ @on-input="inputHandler"
18
18
  @input-change="changeHandler"
19
19
  @input-focus="focusHandler"
20
20
  @input-blur="blurHandler"
21
21
  >
22
22
  <template v-slot:label>
23
- <div>Interactive Label</div>
23
+ <div>Interactive Label 1</div>
24
24
  </template>
25
25
  </input-number>
26
26
 
27
- <dropdown-component openingMode="hover" gap="30px">
28
- <template #trigger><i>Click Me</i></template>
29
- <template #dropdown>
30
- <div>
31
- <a href="">test1</a>
32
- <button href="">test2</button>
33
- <br />
34
- <p>Text</p>
35
- </div>
36
- </template>
37
- </dropdown-component>
38
-
39
- <videoThumbnail
40
- src="https://musicart.xboxlive.com/6/cfaf1e9d-0000-0000-0000-000000000009/504/image.jpg?w=1920&h=1080"
41
- playIconColor="red"
42
- playIconSize="20px"
43
- width="400px"
44
- height="600px"
45
- />
27
+ <hr>
46
28
 
47
- <SwitchField
48
- @on-switch-change="onInputChange($event)"
49
- :options="[
50
- { value: 0, content: 'zero' },
51
- { value: 1, content: 'one' },
52
- { value: 2, content: 'two' }
53
- ]"
54
- :value="value"
55
- label="label"
56
- toggleColor="red"
57
- size="large"
58
- backgroundColor="blue"
59
- labelAlign="left"
60
- fontColor="black"
61
- :disabled="false"
62
- />
63
- <icon
64
- name="opacity"
65
- color="red"
66
- hoveredColor="blue"
67
- size="60px"
68
- cursor="default"
69
- isStriked="true"
70
- />
71
- <Select
29
+ <input-number
72
30
  :value="value"
73
- selectWidth="100%"
74
- optionWidth="50%"
75
- label="that is a label"
76
- alignItems="vertical"
77
- colorMode="dark"
78
- isSearchable="true"
79
- @input-change="value = $event"
80
- @search-change="searchValue = $event"
31
+ :minNumber="0"
32
+ unitName="mm"
33
+ :numberPrecision="0"
34
+ backgroundColor="transparent"
35
+ borderColor="eturnityGrey"
36
+ inputHeight="34px"
37
+ inputWidth="420px"
38
+ textAlign="left"
39
+ :isInteractive="true"
40
+ :interactionStep="1"
41
+ @on-input="inputHandler"
42
+ @input-change="changeHandler"
43
+ @input-focus="focusHandler"
44
+ @input-blur="blurHandler"
81
45
  >
82
- <template #selector="{ selectedValue }">
83
- value selected: {{ selectedValue }}
84
- </template>
85
- <template #dropdown>
86
- <Option
87
- v-for="opt in filteredOptionList"
88
- :key="opt.id"
89
- :value="opt.val"
90
- >{{ opt.lookFor }}
91
- </Option>
46
+ <template v-slot:label>
47
+ <div>Interactive Label 2</div>
92
48
  </template>
93
- </Select>
94
-
95
- {{ filteredOptionList }}
49
+ </input-number>
96
50
 
97
- <iconCollection color="red" />
51
+ <hr>
52
+ <button @click="value=42">Click to set at 42</button>
98
53
  </page-container>
99
54
  </ThemeProvider>
100
55
  </template>
@@ -104,64 +59,24 @@ import { ThemeProvider } from 'vue-styled-components'
104
59
  import theme from './assets/theme'
105
60
  import styled from 'vue-styled-components'
106
61
  import InputNumber from '@/components/inputs/inputNumber'
107
- import Select from '@/components/inputs/select'
108
- import SwitchField from '@/components/inputs/switchField'
109
- import Option from '@/components/inputs/select/option'
110
- import iconCollection from '@/components/icon/iconCollection'
111
- import dropdownComponent from '@/components/dropdown'
112
- import videoThumbnail from '@/components/videoThumbnail'
113
- import icon from '@/components/icon'
114
- // import infoCard from '@/components/infoCard'
115
- // import TableDropdown from "@/components/tableDropdown"
116
62
 
117
63
  const PageContainer = styled.div`
118
64
  padding: 40px;
119
65
  `
120
66
 
121
- // const RowContainer = styled.div`
122
- // display: inline-flex;
123
- // gap: 10px;
124
- // flex-wrap: wrap;
125
- // `
126
-
127
67
  export default {
128
68
  name: 'App',
129
69
  components: {
130
70
  ThemeProvider,
131
71
  PageContainer,
132
72
  InputNumber,
133
- Option,
134
- Select,
135
- SwitchField,
136
- iconCollection,
137
- dropdownComponent,
138
- videoThumbnail,
139
- icon,
140
73
  },
141
74
  data() {
142
75
  return {
143
76
  value: 42,
144
- value2: 42,
145
- companyName: 'toto',
146
- optionList: [
147
- { id: 'a', val: 'A', lookFor: 'babababa' },
148
- { id: 'b', val: 'B', lookFor: 'abab' },
149
- { id: 'c', val: 'C', lookFor: 'ccc' },
150
- { id: 'd', val: 'D', lookFor: 'ddd' },
151
- { id: 'e', val: 'E', lookFor: 'dddee' },
152
- { id: 'f', val: 'F', lookFor: 'ddfff' },
153
- { id: 'g', val: 'G', lookFor: 'dggg' },
154
- { id: 'h', val: 'H', lookFor: 'dddhhh' }
155
- ],
156
- searchValue: ''
157
77
  }
158
78
  },
159
79
  computed: {
160
- filteredOptionList() {
161
- return this.optionList.filter((opt) =>
162
- opt.lookFor.includes(this.searchValue)
163
- )
164
- }
165
80
  },
166
81
  methods: {
167
82
  blurHandler(e) {
@@ -174,64 +89,12 @@ export default {
174
89
  console.log('focus', e)
175
90
  },
176
91
  inputHandler(e) {
177
- this.value2 = e
178
92
  console.log('input', e)
179
- },
180
- keydownHandler(e) {
181
- console.log('test', e)
93
+ //this.value = e
94
+ setTimeout(()=>{this.value = e},1000)
182
95
  },
183
96
  getTheme() {
184
97
  return theme
185
- },
186
- onInputChange(event) {
187
- this.inputValue = event
188
- },
189
- onInputBlur(event) {
190
- console.log(event)
191
- },
192
- isDropdownOpen() {
193
- return this.dropdownOpen
194
- },
195
- onClickButton() {
196
- console.log('Test')
197
- },
198
- toggleDropdownOpen() {
199
- this.dropdownOpen = !this.dropdownOpen
200
- },
201
- getDropdownValues() {
202
- let items = []
203
- items = [
204
- {
205
- value: this.getComponentInfo({
206
- row: this.itemOptions[0],
207
- value: 'display_name'
208
- })
209
- },
210
- {
211
- value: this.getComponentInfo({
212
- row: this.itemOptions[0],
213
- value: 'company_item_number'
214
- })
215
- },
216
- {
217
- value: this.getComponentInfo({
218
- row: this.itemOptions[0],
219
- value: 'model'
220
- })
221
- }
222
- ]
223
- return items
224
- },
225
- getComponentInfo({ row, value }) {
226
- let item
227
- if (row.selectedValue && row.selectedValue[value]) {
228
- item = row.selectedValue[value]
229
- } else if (row[value]) {
230
- item = row[value]
231
- } else {
232
- item = '-'
233
- }
234
- return item
235
98
  }
236
99
  }
237
100
  }
@@ -0,0 +1,44 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
4
+ viewBox="0 0 20 20" style="enable-background:new 0 0 20 20;" xml:space="preserve">
5
+ <style type="text/css">
6
+ .st0{display:none;}
7
+ .st1{display:inline;}
8
+ .st2{fill:#FFFFFF;}
9
+ </style>
10
+ <g class="st0">
11
+ <g class="st1">
12
+ <rect x="-312.013" y="-258.339" class="st2" width="2" height="16"/>
13
+ </g>
14
+ <g class="st1">
15
+ <polygon class="st2" points="-303.346,-242.339 -303.346,-248.339 -312.013,-248.426 -312.013,-242.339 "/>
16
+ </g>
17
+ <g class="st1">
18
+ <rect x="-311.673" y="-258.339" class="st2" width="8" height="2"/>
19
+ </g>
20
+ <g class="st1">
21
+ <path class="st2" d="M-294.833-255.839v-2.5h-7v2.5c0,1.933,1.567,3.5,3.5,3.5l0,0
22
+ C-296.4-252.339-294.833-253.906-294.833-255.839z"/>
23
+ </g>
24
+ <g class="st1">
25
+ <rect x="-305.346" y="-258.339" class="st2" width="2" height="16"/>
26
+ </g>
27
+ <g class="st1">
28
+ <rect x="-299.333" y="-258.339" class="st2" width="2" height="12"/>
29
+ </g>
30
+ <g class="st1">
31
+ <rect x="-303.346" y="-248.339" class="st2" width="6" height="2"/>
32
+ </g>
33
+ <g class="st1">
34
+ <rect x="-301.346" y="-260.339" class="st2" width="2" height="2"/>
35
+ </g>
36
+ <g class="st1">
37
+ <rect x="-297.346" y="-260.339" class="st2" width="2" height="2"/>
38
+ </g>
39
+ </g>
40
+ <g>
41
+ <path class="st2" d="M15.777,8.974h3v-2h-3V6h-1c-1.857,0-3.404,1.272-3.855,2.987H8.889V3V1h-2H3.223h-2v2v14v2h2h5.667v-1v-1
42
+ v-6.013h2.025C11.356,12.716,12.911,14,14.777,14h1v-1.026h3v-2h-3V8.987V8.974z M6.889,17H3.223V3h3.667v5.987v2V17z"/>
43
+ </g>
44
+ </svg>
@@ -0,0 +1,12 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
+ <!-- Creator: CorelDRAW 2021 (64-Bit) -->
4
+ <svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="462px" height="512px" version="1.1" shape-rendering="geometricPrecision" text-rendering="geometricPrecision" image-rendering="optimizeQuality" fill-rule="evenodd" clip-rule="evenodd"
5
+ viewBox="0 0 462 511.93"
6
+ xmlns:xlink="http://www.w3.org/1999/xlink"
7
+ xmlns:xodm="http://www.corel.com/coreldraw/odm/2003">
8
+ <g id="Layer_x0020_1">
9
+ <metadata id="CorelCorpID_0Corel-Layer"/>
10
+ <path fill="white" d="M22.37 0l417.26 0c12.31,0 22.37,10.06 22.37,22.37l0 400.73c0,12.3 -10.06,22.37 -22.37,22.37l-32.27 0 0 19.01c0,6.2 -5.06,11.27 -11.26,11.27l-25.1 0 0 32.03c0,2.28 -1.87,4.15 -4.15,4.15l-32.33 0c-4.56,0 -8.29,-3.73 -8.29,-8.29l0 -27.89 -33.43 0 0 32.03c0,2.28 -1.86,4.15 -4.14,4.15l-32.34 0c-4.56,0 -8.28,-3.73 -8.28,-8.29l0 -27.89 -33.43 0 0 32.03c0,2.28 -1.86,4.15 -4.14,4.15l-32.34 0c-4.56,0 -8.28,-3.73 -8.28,-8.29l0 -27.89 -33.43 0 0 32.03c0,2.28 -1.86,4.15 -4.14,4.15l-32.34 0c-4.56,0 -8.28,-3.73 -8.28,-8.29l0 -27.89 -25.76 0c-6.2,0 -11.26,-5.07 -11.26,-11.27l0 -19.01 -32.27 0c-12.31,0 -22.37,-10.07 -22.37,-22.37l0 -400.73c0,-12.31 10.06,-22.37 22.37,-22.37zm61.36 103.62l294.54 0c3.34,0 6.38,1.38 8.57,3.57 2.19,2.19 3.56,5.23 3.56,8.57l0 53.77c0,3.33 -1.37,6.37 -3.56,8.56 -2.2,2.2 -5.23,3.57 -8.57,3.57l-294.54 0c-3.34,0 -6.38,-1.37 -8.57,-3.57 -2.19,-2.19 -3.56,-5.23 -3.56,-8.56l0 -53.77c0,-3.34 1.36,-6.37 3.56,-8.57 2.2,-2.21 5.23,-3.57 8.57,-3.57zm159 210.98l15.79 0c2.29,0.01 4.15,1.87 4.15,4.16 0,0.83 -0.25,1.63 -0.7,2.32l-37.64 64.27c-0.75,1.23 -2.09,1.98 -3.53,1.98 -2.29,0 -4.15,-1.86 -4.15,-4.14 0,-0.28 0.02,-0.55 0.08,-0.81l5.55 -39.45 -18.73 0.32c-0.02,0 -0.05,0 -0.08,0 -2.25,0 -4.09,-1.81 -4.13,-4.06 0,-0.01 0,-0.01 0,-0.02 0,-0.75 0.2,-1.5 0.58,-2.15l37.06 -64.26c0.75,-1.24 2.1,-2 3.55,-2 2.29,0 4.15,1.85 4.15,4.15 0,0.18 -0.02,0.36 -0.04,0.54l-1.91 39.15zm151.34 -255.93c5.79,0 10.49,4.95 10.49,11.06 0,6.1 -4.7,11.05 -10.49,11.05 -5.8,0 -10.5,-4.95 -10.5,-11.05 0,-6.11 4.7,-11.06 10.5,-11.06zm-326.13 0c5.8,0 10.5,4.95 10.5,11.06 0,6.1 -4.7,11.05 -10.5,11.05 -5.8,0 -10.5,-4.95 -10.5,-11.05 0,-6.11 4.7,-11.06 10.5,-11.06zm0 307.96c5.8,0 10.5,4.96 10.5,11.06 0,6.11 -4.7,11.06 -10.5,11.06 -5.8,0 -10.5,-4.95 -10.5,-11.06 0,-6.1 4.7,-11.06 10.5,-11.06zm326.13 0c5.79,0 10.49,4.96 10.49,11.06 0,6.11 -4.7,11.06 -10.49,11.06 -5.8,0 -10.5,-4.95 -10.5,-11.06 0,-6.1 4.7,-11.06 10.5,-11.06zm-38.94 -206.03c-3.07,0 -5.53,-0.96 -7.39,-2.88 -1.85,-1.92 -2.77,-4.45 -2.77,-7.59l0 -14.98c0,-3.15 0.92,-5.67 2.77,-7.59 1.86,-1.92 4.32,-2.88 7.39,-2.88 3.08,0 5.55,0.96 7.4,2.88 1.85,1.92 2.78,4.44 2.78,7.59l0 14.98c0,3.14 -0.93,5.67 -2.78,7.59 -1.85,1.92 -4.32,2.88 -7.4,2.88zm0 -7.1c0.6,0 1.08,-0.26 1.42,-0.79 0.35,-0.53 0.52,-1.22 0.52,-2.08l0 -15.98c0,-0.86 -0.17,-1.56 -0.52,-2.09 -0.34,-0.52 -0.82,-0.79 -1.42,-0.79 -0.59,0 -1.06,0.27 -1.41,0.79 -0.34,0.53 -0.52,1.23 -0.52,2.09l0 15.98c0,0.86 0.18,1.55 0.52,2.08 0.35,0.53 0.82,0.79 1.41,0.79zm-61.12 7.1c-3.07,0 -5.54,-0.96 -7.39,-2.88 -1.85,-1.92 -2.78,-4.45 -2.78,-7.59l0 -14.98c0,-3.15 0.93,-5.67 2.78,-7.59 1.85,-1.92 4.32,-2.88 7.39,-2.88 3.08,0 5.55,0.96 7.4,2.88 1.85,1.92 2.77,4.44 2.77,7.59l0 14.98c0,3.14 -0.92,5.67 -2.77,7.59 -1.85,1.92 -4.32,2.88 -7.4,2.88zm0 -7.1c0.6,0 1.07,-0.26 1.42,-0.79 0.35,-0.53 0.52,-1.22 0.52,-2.08l0 -15.98c0,-0.86 -0.17,-1.56 -0.52,-2.09 -0.35,-0.52 -0.82,-0.79 -1.42,-0.79 -0.59,0 -1.07,0.27 -1.41,0.79 -0.35,0.53 -0.52,1.23 -0.52,2.09l0 15.98c0,0.86 0.17,1.55 0.52,2.08 0.34,0.53 0.82,0.79 1.41,0.79zm-63.81 7.1c-3.07,0 -5.54,-0.96 -7.39,-2.88 -1.85,-1.92 -2.77,-4.45 -2.77,-7.59l0 -14.98c0,-3.15 0.92,-5.67 2.77,-7.59 1.85,-1.92 4.32,-2.88 7.39,-2.88 3.08,0 5.54,0.96 7.4,2.88 1.85,1.92 2.77,4.44 2.77,7.59l0 14.98c0,3.14 -0.92,5.67 -2.77,7.59 -1.86,1.92 -4.32,2.88 -7.4,2.88zm0 -7.1c0.6,0 1.07,-0.26 1.42,-0.79 0.35,-0.53 0.52,-1.22 0.52,-2.08l0 -15.98c0,-0.86 -0.17,-1.56 -0.52,-2.09 -0.35,-0.52 -0.82,-0.79 -1.42,-0.79 -0.59,0 -1.06,0.27 -1.41,0.79 -0.35,0.53 -0.52,1.23 -0.52,2.09l0 15.98c0,0.86 0.17,1.55 0.52,2.08 0.35,0.53 0.82,0.79 1.41,0.79zm-61.33 7.1c-3.07,0 -5.54,-0.96 -7.39,-2.88 -1.85,-1.92 -2.77,-4.45 -2.77,-7.59l0 -14.98c0,-3.15 0.92,-5.67 2.77,-7.59 1.85,-1.92 4.32,-2.88 7.39,-2.88 3.08,0 5.55,0.96 7.4,2.88 1.85,1.92 2.77,4.44 2.77,7.59l0 14.98c0,3.14 -0.92,5.67 -2.77,7.59 -1.85,1.92 -4.32,2.88 -7.4,2.88zm0 -7.1c0.6,0 1.07,-0.26 1.42,-0.79 0.35,-0.53 0.52,-1.22 0.52,-2.08l0 -15.98c0,-0.86 -0.17,-1.56 -0.52,-2.09 -0.35,-0.52 -0.82,-0.79 -1.42,-0.79 -0.59,0 -1.06,0.27 -1.41,0.79 -0.35,0.53 -0.52,1.23 -0.52,2.09l0 15.98c0,0.86 0.17,1.55 0.52,2.08 0.35,0.53 0.82,0.79 1.41,0.79zm-61.16 7.1c-3.08,0 -5.54,-0.96 -7.39,-2.88 -1.85,-1.92 -2.78,-4.45 -2.78,-7.59l0 -14.98c0,-3.15 0.93,-5.67 2.78,-7.59 1.85,-1.92 4.31,-2.88 7.39,-2.88 3.07,0 5.54,0.96 7.39,2.88 1.85,1.92 2.78,4.44 2.78,7.59l0 14.98c0,3.14 -0.93,5.67 -2.78,7.59 -1.85,1.92 -4.32,2.88 -7.39,2.88zm0 -7.1c0.6,0 1.07,-0.26 1.41,-0.79 0.35,-0.53 0.53,-1.22 0.53,-2.08l0 -15.98c0,-0.86 -0.18,-1.56 -0.53,-2.09 -0.34,-0.52 -0.81,-0.79 -1.41,-0.79 -0.6,0 -1.07,0.27 -1.41,0.79 -0.35,0.53 -0.52,1.23 -0.52,2.09l0 15.98c0,0.86 0.17,1.55 0.52,2.08 0.34,0.53 0.81,0.79 1.41,0.79zm58.85 102.29c-4.25,0 -7.69,-3.45 -7.69,-7.69 0,-4.24 3.44,-7.68 7.69,-7.68l128.88 0c4.25,0 7.69,3.44 7.69,7.68 0,4.24 -3.44,7.69 -7.69,7.69l-128.88 0zm-50.58 -38.85c-4.24,0 -7.69,-3.44 -7.69,-7.68 0,-4.24 3.45,-7.69 7.69,-7.69l230.04 0c4.24,0 7.68,3.45 7.68,7.69 0,4.24 -3.44,7.68 -7.68,7.68l-230.04 0zm212.57 -103.71l0 58.82 49.72 0c0.69,0 1.32,-0.29 1.78,-0.75 0.46,-0.45 0.75,-1.09 0.75,-1.77l0 -53.77c0,-0.69 -0.29,-1.33 -0.75,-1.79 -0.45,-0.45 -1.09,-0.74 -1.78,-0.74l-49.72 0zm-9.61 58.82l0 -58.82 -52.26 0 0 58.82 52.26 0zm-61.87 0l0 -58.82 -52.14 0 0 58.82 52.14 0zm-61.75 0l0 -58.82 -52.3 0 0 58.82 52.3 0zm-61.91 0l0 -58.82 -49.68 0c-0.7,0 -1.33,0.29 -1.79,0.74 -0.45,0.46 -0.74,1.09 -0.74,1.79l0 53.77c0,0.69 0.29,1.32 0.74,1.77 0.46,0.46 1.1,0.75 1.79,0.75l49.68 0zm-74.08 -133.14l343.34 0c12.31,0 22.37,10.07 22.37,22.37l0 324.85c0,12.3 -10.07,22.37 -22.37,22.37l-343.34 0c-12.3,0 -22.37,-10.06 -22.37,-22.37l0 -324.85c0,-12.31 10.06,-22.37 22.37,-22.37z"/>
11
+ </g>
12
+ </svg>
@@ -0,0 +1,95 @@
1
+ <template>
2
+ <Wrapper
3
+ v-show="!isLoading"
4
+ :class="viewCardClass"
5
+ :width="width"
6
+ :minWidth="minWidth"
7
+ >
8
+ <Spinner v-if="isLoading" size="50px" :limitedToModal="true" />
9
+ <CardWrapper v-else>
10
+ <CardTitle :class="titleClass" >
11
+ {{ $gettext(title) }}
12
+ <et-popover
13
+ v-if="showPopover && popoverText !== ''"
14
+ :text="popoverText"
15
+ ></et-popover>
16
+ </CardTitle>
17
+ <slot></slot>
18
+ </CardWrapper>
19
+ </Wrapper>
20
+ </template>
21
+
22
+ <script>
23
+ import styled from 'vue-styled-components'
24
+ import Spinner from '../spinner'
25
+
26
+ const WrapperProps = { width: [Number, String], minWidth: [Number, String] }
27
+ const Wrapper = styled('div', WrapperProps)`
28
+ max-width: ${(props) => props.width};
29
+ min-width: ${(props) => props.minWidth};
30
+ padding: 20px;
31
+ box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
32
+ border-radius: 4px;
33
+ background-color: ${props => props.theme.colors.white};
34
+ height: 100%;
35
+ `
36
+
37
+ const CardWrapper = styled('div')`
38
+ height: 100%;
39
+ width: auto;
40
+ `
41
+
42
+ const CardTitle = styled('p')`
43
+ font-size: 14px;
44
+ line-height: 1;
45
+ color: ${props => props.theme.colors.black};
46
+ font-weight: 700;
47
+ margin-bottom: 10px;
48
+ `
49
+
50
+ export default {
51
+ name: 'Card',
52
+ props: {
53
+ title: {
54
+ type: String,
55
+ default: ''
56
+ },
57
+ width: {
58
+ type: [Number, String],
59
+ required: false,
60
+ default: '400px'
61
+ },
62
+ minWidth: {
63
+ type: [Number, String],
64
+ required: false,
65
+ default: null
66
+ },
67
+ titleClass: {
68
+ type: String,
69
+ default: ''
70
+ },
71
+ showPopover: {
72
+ type: Boolean,
73
+ default: false
74
+ },
75
+ viewCardClass: {
76
+ type: String,
77
+ default: ''
78
+ },
79
+ popoverText: {
80
+ type: String,
81
+ default: ''
82
+ },
83
+ isLoading: {
84
+ type: Boolean,
85
+ default: false
86
+ }
87
+ },
88
+ components: {
89
+ Spinner,
90
+ Wrapper,
91
+ CardTitle,
92
+ CardWrapper,
93
+ }
94
+ }
95
+ </script>
@@ -9,9 +9,7 @@
9
9
  <script>
10
10
  // import ErrorMessage from "@eturnity/eturnity_reusable_components/src/components/errorMessage"
11
11
  //To use:
12
- // <error-message
13
- // alignText="right" // default is left
14
- // />
12
+ // <error-message />
15
13
 
16
14
  import styled from 'vue-styled-components'
17
15
 
@@ -5,6 +5,7 @@
5
5
  :size="size"
6
6
  :color="color"
7
7
  :hoveredColor="hoveredColor"
8
+ :backgroundColor="backgroundColor"
8
9
  v-html="
9
10
  require(`!html-loader!./../../assets/svgIcons/${name.toLowerCase()}.svg`)
10
11
  "
@@ -40,6 +41,7 @@ const Wrapper = styled('div', wrapperAttrs)`
40
41
  cursor: ${(props) => (props.isDisabled ? 'not-allowed' : props.cursor)};
41
42
  line-height: 0;
42
43
  `
44
+
43
45
  const strikedAttrs = { isDisabled: Boolean, color: String, hoveredColor: String }
44
46
  const strikedLine = styled('div', strikedAttrs)`
45
47
  display: flex;
@@ -56,12 +58,14 @@ const strikedLine = styled('div', strikedAttrs)`
56
58
  transform-origin: 0% 100%;
57
59
  transform: rotate(-45deg);
58
60
  `
59
- const IconImageProps = { color: String, hoveredColor: String, size: String }
61
+ const IconImageProps = { color: String, hoveredColor: String, size: String, backgroundColor: String}
60
62
  const IconImage = styled('div', IconImageProps)`
61
63
  width: 100%;
62
64
  svg {
63
65
  width: 100%;
64
66
  height: 100%;
67
+ background-color: ${(props) => props.backgroundColor};
68
+ padding: ${(props) => props.backgroundColor ? '3px' : '0'};
65
69
  }
66
70
  svg path {
67
71
  ${(props) =>
@@ -93,6 +97,9 @@ export default {
93
97
  color: {
94
98
  required: false
95
99
  },
100
+ backgroundColor: {
101
+ required: false
102
+ },
96
103
  hoveredColor: {
97
104
  required: false
98
105
  },
@@ -10,7 +10,6 @@
10
10
  </icon-img>
11
11
  <text-overlay
12
12
  v-if="showInfo"
13
- :borderColor="borderColor"
14
13
  :width="width"
15
14
  :halfComputedTextInfoWidth="halfComputedTextInfoWidth"
16
15
  :alignArrow="alignArrow"
@@ -27,7 +26,6 @@
27
26
  //To use:
28
27
  // <info-text
29
28
  // text="Veritatis et quasi architecto beatae vitae"
30
- // borderColor="#ccc"
31
29
  // size="20"
32
30
  // alignArrow="right" // which side the arrow should be on
33
31
  // />
@@ -37,7 +35,6 @@ import icon from '../icon'
37
35
 
38
36
  const textAttrs = {
39
37
  iconSize: String,
40
- borderColor: String,
41
38
  alignArrow: String,
42
39
  width: String,
43
40
  halfComputedTextInfoWidth: Number
@@ -112,10 +109,6 @@ export default {
112
109
  text: {
113
110
  required: false
114
111
  },
115
- borderColor: {
116
- required: false,
117
- default: null
118
- },
119
112
  size: {
120
113
  required: false,
121
114
  default: '14px'
@@ -157,11 +150,7 @@ export default {
157
150
  },
158
151
  computed: {
159
152
  iconColor() {
160
- return this.isActive
161
- ? this.borderColor
162
- ? this.borderColor
163
- : theme.colors.secondary
164
- : theme.colors.mediumGray
153
+ return theme.colors.mediumGray
165
154
  },
166
155
  halfComputedTextInfoWidth() {
167
156
  return parseInt(this.width) / 2
@@ -16,12 +16,10 @@
16
16
  <label-text :labelFontColor="labelFontColor" :data-id="labelDataId">
17
17
  {{ labelText }}
18
18
  </label-text>
19
-
19
+
20
20
  <info-text
21
21
  v-if="labelInfoText"
22
22
  :text="labelInfoText"
23
- borderColor="#ccc"
24
- size="14px"
25
23
  :alignArrow="labelInfoAlign"
26
24
  />
27
25
  </label-wrapper>
@@ -100,7 +98,9 @@
100
98
  // labelInfoAlign="left"
101
99
  // :minNumber="0"
102
100
  // fontColor="blue"
103
- // />
101
+ // >
102
+ //<template name=label><img>....</template>
103
+ //</inputNumber>
104
104
  import styled from 'vue-styled-components'
105
105
  import {
106
106
  stringToNumber,
@@ -469,7 +469,7 @@ export default {
469
469
  }
470
470
  },
471
471
  methods: {
472
- onEnterPress(event){
472
+ onEnterPress(){
473
473
  this.$emit('on-enter-click')
474
474
  this.$refs.inputField1.$el.blur()
475
475
  },
@@ -549,6 +549,9 @@ export default {
549
549
  return array
550
550
  },
551
551
  onInput(value) {
552
+ // if(!this.isFocused){
553
+ // return
554
+ // }
552
555
  if (this.isBlurred) {
553
556
  this.isBlurred = false
554
557
  return
@@ -17,7 +17,6 @@
17
17
  <info-text
18
18
  v-if="infoTextMessage"
19
19
  :text="infoTextMessage"
20
- borderColor="#ccc"
21
20
  :size="fontSize ? fontSize : '16px'"
22
21
  :alignArrow="infoTextAlign"
23
22
  />
@@ -22,9 +22,7 @@
22
22
  <info-text
23
23
  v-if="infoTextMessage"
24
24
  :text="infoTextMessage"
25
- borderColor="#ccc"
26
25
  :size="infoTextSize"
27
- :alignText="infoTextAlign"
28
26
  />
29
27
  </label-wrapper>
30
28
  <select-button-wrapper :disabled="disabled">
@@ -46,9 +44,12 @@
46
44
  @keydown.native="onKeyDown"
47
45
  :showBorder="showBorder"
48
46
  :data-id="dataId"
49
- :isDraggable="isDraggable"
50
- >
51
- <draggableInputHandle v-if="isDraggable && !isSearchBarVisible" :height="selectHeight" />
47
+ :paddingLeft="paddingLeft"
48
+ >
49
+ <draggableInputHandle
50
+ v-if="isDraggable && !isSearchBarVisible"
51
+ :height="selectHeight"
52
+ />
52
53
  <inputText
53
54
  v-if="isSearchBarVisible"
54
55
  ref="searchInput"
@@ -65,7 +66,12 @@
65
66
  @input-change="searchChange"
66
67
  @click.native.stop
67
68
  />
68
- <selector v-else>
69
+ <selector
70
+ v-else
71
+ :showBorder="showBorder"
72
+ :selectWidth="selectWidth"
73
+ :paddingLeft="paddingLeft"
74
+ >
69
75
  <slot name="selector" :selectedValue="selectedValue"></slot>
70
76
  </selector>
71
77
  <Caret @click.stop="toggleCaretDropdown">
@@ -145,20 +151,38 @@ import icon from '../../icon'
145
151
  import inputText from '../inputText'
146
152
  import draggableInputHandle from '../../draggableInputHandle'
147
153
 
154
+ const CARET_WIDTH = '30px'
155
+ const BORDER_WIDTH = '1px'
156
+
148
157
  const Caret = styled.div`
149
158
  display: flex;
150
159
  align-items: center;
151
160
  justify-content: center;
152
- width: 30px;
153
- min-width: 30px;
161
+ width: ${CARET_WIDTH};
162
+ min-width: ${CARET_WIDTH};
154
163
  height: 100%;
155
- align-items: stretch
164
+ align-items: stretch;
156
165
  cursor: pointer;
157
166
  margin-left: auto;
158
167
  `
159
168
 
160
- const Selector = styled.div`
161
- width: 100%;
169
+ const selectorProps = {
170
+ selectWidth: String,
171
+ paddingLeft: String,
172
+ showBorder: Boolean
173
+ }
174
+ const Selector = styled('div', selectorProps)`
175
+ ${(props) => props.selectWidth === '100%' ? 'width: 100%;' : `width: calc(${props.selectWidth} -
176
+ (
177
+ ${CARET_WIDTH} +
178
+ ${props.paddingLeft}
179
+ ${props.showBorder ? `+ (${BORDER_WIDTH} * 2)` : ''}
180
+ )
181
+ );
182
+ white-space: nowrap;
183
+ text-overflow: ellipsis;
184
+ overflow: hidden;`
185
+ }
162
186
  `
163
187
 
164
188
  const labelAttrs = { fontSize: String, fontColor: String }
@@ -167,7 +191,7 @@ const InputLabel = styled('div', labelAttrs)`
167
191
  props.theme.colors[props.fontColor]
168
192
  ? props.theme.colors[props.fontColor]
169
193
  : props.fontColor};
170
- font-size: ${(props) => (props.fontSize ? props.fontSize : '13px')};
194
+ font-size: ${(props) => props.fontSize};
171
195
  font-weight: 700;
172
196
  `
173
197
  const optionalLabel = styled.span`
@@ -175,7 +199,7 @@ const optionalLabel = styled.span`
175
199
  `
176
200
  const inputProps = { selectWidth: String, optionWidth: String }
177
201
  const Container = styled('div', inputProps)`
178
- width: ${(props) => (props.selectWidth ? props.selectWidth : '100%')};
202
+ width: ${(props) => props.selectWidth};
179
203
  position: relative;
180
204
  display: inline-block;
181
205
  `
@@ -204,15 +228,15 @@ const selectButtonAttrs = {
204
228
  selectMinHeight: String,
205
229
  isSearchBarVisible: Boolean,
206
230
  showBorder: Boolean,
207
- isDraggable: Boolean,
231
+ paddingLeft: String
208
232
  }
209
233
  const selectButton = styled('div', selectButtonAttrs)`
210
234
  position: relative;
211
235
  box-sizing: border-box;
212
236
  border-radius: 4px;
213
- padding-left:${(props) => (props.isSearchBarVisible ? '0' : props.isDraggable?'30px':'15px')};
237
+ ${(props) =>
238
+ props.isSearchBarVisible ? '' : `padding-left: ${props.paddingLeft}`};
214
239
  text-align: left;
215
- border-radius: 4px;
216
240
  min-height: ${(props) =>
217
241
  props.selectHeight
218
242
  ? props.selectHeight
@@ -227,7 +251,9 @@ const selectButton = styled('div', selectButtonAttrs)`
227
251
  ${({ showBorder, theme, hasError }) =>
228
252
  showBorder &&
229
253
  `
230
- border:1px solid ${hasError ? theme.colors.red : theme.colors.grey4}
254
+ border: ${BORDER_WIDTH} solid ${
255
+ hasError ? theme.colors.red : theme.colors.grey4
256
+ }
231
257
  `}
232
258
  background-color:${(props) =>
233
259
  props.disabled
@@ -241,49 +267,50 @@ const selectButton = styled('div', selectButtonAttrs)`
241
267
  : props.fontColor};
242
268
  ${(props) => (props.disabled ? 'pointer-events: none' : '')};
243
269
  overflow: hidden;
244
- & >.handle{
245
- border-right:${(props) =>props.hasError ? props.theme.colors.red : props.theme.colors.grey4} 1px solid;
270
+ & > .handle {
271
+ border-right: ${(props) =>
272
+ props.hasError ? props.theme.colors.red : props.theme.colors.grey4}
273
+ 1px solid;
246
274
  }
247
275
  `
248
276
  const selectDropdownAttrs = {
249
277
  hoveredBgColor: String,
250
278
  bgColor: String,
251
279
  fontColor: String,
252
- selectWidth: String,
253
280
  optionWidth: String,
254
281
  hoveredIndex: Number,
255
282
  hoveredValue: Number | String,
256
283
  selectedValue: Number | String
257
284
  }
258
285
  const selectDropdown = styled('div', selectDropdownAttrs)`
259
- box-sizing: border-box;
260
- z-index:${(props) => (props.isActive ? '2' : '1')};
261
- position:absolute;
262
- top:5px;
263
- border:1px solid ${(props) => props.theme.colors.grey4}
264
- border-radius:4px;
265
- display: flex;
266
- flex-direction: column;
267
- align-items: flex-start;
268
- padding: 0px;
269
- box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
270
- width: ${(props) => (props.optionWidth ? props.optionWidth : '100%')};
271
- background-color:${(props) =>
272
- props.theme.colors[props.bgColor]
273
- ? props.theme.colors[props.bgColor]
274
- : props.bgColor};
275
- color:${(props) =>
276
- props.theme.colors[props.fontColor]
277
- ? props.theme.colors[props.fontColor]
278
- : props.fontColor};
279
- max-height:300px;
280
- overflow-y:auto;
281
- &>div[data-value="${(props) => props.hoveredValue}"]{
282
- background-color:${(props) =>
283
- props.theme.colors[props.hoveredBgColor]
284
- ? props.theme.colors[props.hoveredBgColor]
285
- : props.hoveredBgColor};
286
- }
286
+ box-sizing: border-box;
287
+ z-index: ${(props) => (props.isActive ? '2' : '1')};
288
+ position: absolute;
289
+ top: 5px;
290
+ border: ${BORDER_WIDTH} solid ${(props) => props.theme.colors.grey4};
291
+ border-radius: 4px;
292
+ display: flex;
293
+ flex-direction: column;
294
+ align-items: flex-start;
295
+ padding: 0px;
296
+ box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
297
+ width: ${(props) => (props.optionWidth ? props.optionWidth : '100%')};
298
+ background-color: ${(props) =>
299
+ props.theme.colors[props.bgColor]
300
+ ? props.theme.colors[props.bgColor]
301
+ : props.bgColor};
302
+ color: ${(props) =>
303
+ props.theme.colors[props.fontColor]
304
+ ? props.theme.colors[props.fontColor]
305
+ : props.fontColor};
306
+ max-height: 300px;
307
+ overflow-y: auto;
308
+ & > div[data-value='${(props) => props.hoveredValue}'] {
309
+ background-color: ${(props) =>
310
+ props.theme.colors[props.hoveredBgColor]
311
+ ? props.theme.colors[props.hoveredBgColor]
312
+ : props.hoveredBgColor};
313
+ }
287
314
  `
288
315
  const DropdownWrapper = styled('div')`
289
316
  position: relative;
@@ -307,7 +334,7 @@ export default {
307
334
  },
308
335
  fontSize: {
309
336
  required: false,
310
- default: null
337
+ default: '13px'
311
338
  },
312
339
  label: {
313
340
  required: false
@@ -323,12 +350,10 @@ export default {
323
350
  infoTextMessage: {
324
351
  required: false
325
352
  },
326
- infoTextAlign: {
327
- required: false
328
- },
329
353
  selectWidth: {
354
+ type: String,
330
355
  required: false,
331
- default: null
356
+ default: '100%'
332
357
  },
333
358
  selectHeight: {
334
359
  type: String,
@@ -437,6 +462,7 @@ export default {
437
462
  data() {
438
463
  return {
439
464
  selectedValue: null,
465
+ paddingLeft: this.isDraggable ? '30px' : '15px',
440
466
  isDropdownOpen: false,
441
467
  isActive: false,
442
468
  textSearch: '',
@@ -511,9 +537,6 @@ export default {
511
537
  }
512
538
  })
513
539
  },
514
- onSelectSlotClick() {
515
- this.toggleDropdown()
516
- },
517
540
  clickOutside(event) {
518
541
  const dropdownRef = this.$refs.dropdown
519
542
  // we need to prevent closing on selecting an option, because in the case of
@@ -559,26 +582,21 @@ export default {
559
582
  this.$refs.dropdown.$el.scrollTop = topPos
560
583
  }
561
584
  }
585
+ },
586
+ clearSearch() {
587
+ this.textSearch = ''
562
588
  }
563
589
  },
564
590
  computed: {
565
591
  optionLength() {
566
592
  if (this.isDropdownOpen) {
567
- // this filterRef is needed to check for the # of children on Filter dropdowns
568
- const filterRef =
569
- this.$refs.dropdown.$children &&
570
- this.$refs.dropdown.$children.length > 1
571
- ? this.$refs.dropdown.$children
572
- : this.$refs.dropdown.$children[0].$children
573
- ? this.$refs.dropdown.$children[0].$children
574
- : this.$refs.dropdown.$children
575
- return filterRef.length
576
- } else {
577
- return 0
593
+ return this.$refs.dropdown.$el.childElementCount
578
594
  }
595
+
596
+ return 0
579
597
  },
580
598
  isSearchBarVisible() {
581
- return this.isSearchable && this.optionLength >= 5 && this.isDropdownOpen
599
+ return this.isSearchable && this.isDropdownOpen
582
600
  }
583
601
  },
584
602
  watch: {
@@ -17,9 +17,6 @@
17
17
  <info-text
18
18
  v-if="infoTextMessage"
19
19
  :text="infoTextMessage"
20
- borderColor="#ccc"
21
- size="14px"
22
- :alignText="infoTextAlign"
23
20
  />
24
21
  </label-container>
25
22
 
@@ -51,9 +48,6 @@
51
48
  @click.native.stop
52
49
  v-if="infoTextMessage"
53
50
  :text="infoTextMessage"
54
- borderColor="#ccc"
55
- size="14px"
56
- :alignText="infoTextAlign"
57
51
  />
58
52
  </label-container>
59
53
  </flex-wrapper>
@@ -207,9 +201,6 @@ export default {
207
201
  infoTextMessage: {
208
202
  required: false
209
203
  },
210
- infoTextAlign: {
211
- required: false
212
- },
213
204
  colorMode: {
214
205
  required: false,
215
206
  default: 'light'
@@ -22,7 +22,6 @@ const Template = (args, { argTypes }) => ({
22
22
  // rowHeight="4" //optional
23
23
  // :isError="false"
24
24
  // :errorText="$gettext('field_required')"
25
- // infoTextAlign="right" // left by default
26
25
  // infoTextMessage="My info message"
27
26
  // label="Question 5"
28
27
  // alignItems="horizontal" // horizontal, vertical
@@ -37,7 +36,6 @@ Default.args = {
37
36
  rowHeight: "2",
38
37
  isError: false,
39
38
  errorText: "This field is required",
40
- infoTextAlign: "right",
41
39
  infoTextMessage: "",
42
40
  label: "",
43
41
  value: "",
@@ -52,7 +50,6 @@ Disabled.args = {
52
50
  rowHeight: "2",
53
51
  isError: false,
54
52
  errorText: "This field is required",
55
- infoTextAlign: "right",
56
53
  infoTextMessage: "",
57
54
  label: "",
58
55
  value: "",
@@ -67,7 +64,6 @@ Error.args = {
67
64
  rowHeight: "2",
68
65
  isError: true,
69
66
  errorText: "This field is required",
70
- infoTextAlign: "right",
71
67
  infoTextMessage: "",
72
68
  label: "",
73
69
  value: "",
@@ -82,7 +78,6 @@ WithLabel.args = {
82
78
  rowHeight: "2",
83
79
  isError: false,
84
80
  errorText: "This field is required",
85
- infoTextAlign: "right",
86
81
  infoTextMessage: "Here is some information",
87
82
  label: "Description",
88
83
  value: "Here is my description!",
@@ -97,7 +92,6 @@ HorizontalLabel.args = {
97
92
  rowHeight: "2",
98
93
  isError: false,
99
94
  errorText: "This field is required",
100
- infoTextAlign: "right",
101
95
  infoTextMessage: "Here is some information",
102
96
  label: "Description",
103
97
  value: "Here is my description!",
@@ -112,7 +106,6 @@ LargerTextArea.args = {
112
106
  rowHeight: "5",
113
107
  isError: false,
114
108
  errorText: "This field is required",
115
- infoTextAlign: "right",
116
109
  infoTextMessage: "Here is some information",
117
110
  label: "Description",
118
111
  value: "Here is my description!",
@@ -127,7 +120,6 @@ LargerFontSize.args = {
127
120
  fontSize: "24px",
128
121
  isError: false,
129
122
  errorText: "This field is required",
130
- infoTextAlign: "right",
131
123
  infoTextMessage: "Here is some information",
132
124
  label: "Description",
133
125
  value: "Here is my description!",
@@ -11,9 +11,7 @@
11
11
  <info-text
12
12
  v-if="infoTextMessage"
13
13
  :text="infoTextMessage"
14
- borderColor="#ccc"
15
14
  size="16px"
16
- :alignText="infoTextAlign"
17
15
  />
18
16
  </label-wrapper>
19
17
  <input-container
@@ -47,7 +45,6 @@
47
45
  // rowHeight="4" //optional
48
46
  // :isError="false"
49
47
  // :errorText="$gettext('field_required')"
50
- // infoTextAlign="right" // left by default
51
48
  // infoTextMessage="My info message"
52
49
  // label="Question 5"
53
50
  // alignItems="horizontal" // horizontal, vertical
@@ -167,9 +164,6 @@ export default {
167
164
  infoTextMessage: {
168
165
  required: false
169
166
  },
170
- infoTextAlign: {
171
- required: false
172
- },
173
167
  label: {
174
168
  required: false
175
169
  },
@@ -14,9 +14,6 @@
14
14
  <info-text
15
15
  v-if="infoTextMessage"
16
16
  :text="infoTextMessage"
17
- borderColor="#ccc"
18
- size="14px"
19
- :alignText="infoTextAlign"
20
17
  />
21
18
  </label-container>
22
19
  <toggle-wrapper
@@ -50,9 +47,6 @@
50
47
  @click.native.stop
51
48
  v-if="infoTextMessage"
52
49
  :text="infoTextMessage"
53
- borderColor="#ccc"
54
- size="14px"
55
- :alignText="infoTextAlign"
56
50
  />
57
51
  </label-container>
58
52
  </flex-wrapper>
@@ -72,7 +66,6 @@
72
66
  // labelAlign="right"
73
67
  // fontColor="black"
74
68
  // :disabled="true"
75
- // infoTextAlign="right" // left by default
76
69
  // infoTextMessage="My info message"
77
70
  // data-id="test_data_id"
78
71
  // />
@@ -193,7 +186,7 @@ const ToggleDot = styled('span', toggleProps)`
193
186
  : props.size === 'small'
194
187
  ? '10px'
195
188
  : '14px'};
196
- left: 3px
189
+ left: 3px;
197
190
  bottom: ${(props) =>
198
191
  props.size === 'medium' ? '5px' : props.size === 'small' ? '2px' : '5px'};
199
192
  background-color: ${(props) =>
@@ -278,9 +271,6 @@ export default {
278
271
  infoTextMessage: {
279
272
  required: false
280
273
  },
281
- infoTextAlign: {
282
- required: false
283
- },
284
274
  dataId: {
285
275
  type: String,
286
276
  default: ''
@@ -13,7 +13,6 @@
13
13
  <info-text
14
14
  v-if="infoTextMessage"
15
15
  :text="infoTextMessage"
16
- borderColor="#ccc"
17
16
  :size="fontSize ? fontSize : '16px'"
18
17
  :alignArrow="infoTextAlign"
19
18
  />
@@ -5,7 +5,7 @@
5
5
  :class="{ visible: isOpen, hidden: !isOpen }"
6
6
  :backdrop="backdrop"
7
7
  >
8
- <modal-container @click.stop>
8
+ <modal-container @click="onClickModalContainer">
9
9
  <spinner v-if="isLoading" size="50px" :limitedToModal="true" />
10
10
  <content-container :visible="!isLoading">
11
11
  <slot />
@@ -26,7 +26,7 @@
26
26
  // import Modal from "@eturnity/eturnity_reusable_components/src/components/modals/modal"
27
27
  // This is a more flexible modal box, where the parent can decide how the body of the modal looks
28
28
  // To use:
29
- // <modal :isOpen="isOpen" @on-close="$emit('on-close-summary')" :isLoading="true" :hideClose="true">
29
+ // <modal :isOpen="isOpen" @on-close="$emit('on-close-summary')" :isLoading="true" :hideClose="true" :stopPropagation="false">
30
30
  // <div>Data....</div>
31
31
  // </modal>
32
32
 
@@ -151,6 +151,10 @@ export default {
151
151
  position: {
152
152
  required: false,
153
153
  default: 'fixed'
154
+ },
155
+ stopPropagation: {
156
+ type: Boolean,
157
+ default: true
154
158
  }
155
159
  },
156
160
  beforeDestroy() {
@@ -164,6 +168,11 @@ export default {
164
168
  if (key === 'Escape') {
165
169
  this.onCloseModal()
166
170
  }
171
+ },
172
+ onClickModalContainer(event) {
173
+ if (this.stopPropagation) {
174
+ event.stopPropagation()
175
+ }
167
176
  }
168
177
  },
169
178
  watch: {
@@ -13,8 +13,6 @@
13
13
  <info-text
14
14
  v-if="tab['labelInfoText']"
15
15
  :text="tab['labelInfoText']"
16
- borderColor="#ccc"
17
- size="14px"
18
16
  :alignArrow="tab['labelInfoAlign']"
19
17
  />
20
18
  </Option>
@@ -57,7 +55,7 @@ const Option = styled('div',TabAttr)`
57
55
  justify-content: center;
58
56
  flex-direction: row;
59
57
  gap: 10px;
60
- color: ${props=>props.textColor ?
58
+ color: ${props=>props.textColor ?
61
59
  props.theme.colors[props.textColor] ? props.theme.colors[props.textColor] : props.textColor :
62
60
  props.isDisabled ? props.theme.colors.grey2 : props.theme.colors.black};
63
61
  `
@@ -4,11 +4,8 @@
4
4
  {{ text }}
5
5
  </span>
6
6
  <info-text
7
- :text="infoText"
8
7
  v-if="!!infoText"
9
- size="14px"
10
- borderColor="#ccc"
11
- :alignText="alignInfoText"
8
+ :text="infoText"
12
9
  />
13
10
  </subtitle-text>
14
11
  </template>
@@ -55,10 +52,6 @@ export default {
55
52
  required: false,
56
53
  default: null,
57
54
  },
58
- alignInfoText: {
59
- required: false,
60
- default: "left",
61
- },
62
55
  marginBottom: {
63
56
  required: false,
64
57
  default: "30px",
@@ -1,14 +1,14 @@
1
1
  <template>
2
- <flex>
3
- <title-text :color="color" :fontSize="fontSize" :uppercase="uppercase">{{ text }}</title-text>
2
+ <title-wrap :hasInfoText="!!infoText">
3
+ <title-text :color="color" :fontSize="fontSize" :uppercase="uppercase">
4
+ {{ text }}
5
+ </title-text>
4
6
  <info-text
5
- v-if="infoText"
6
- :text="infoText"
7
- borderColor="#ccc"
8
- size="14px"
9
- :alignArrow="infoAlign"
10
- />
11
- </flex>
7
+ v-if="!!infoText"
8
+ :text="infoText"
9
+ :alignArrow="infoAlign"
10
+ />
11
+ </title-wrap>
12
12
  </template>
13
13
 
14
14
  <script>
@@ -19,28 +19,32 @@
19
19
  // color="red"
20
20
  // />
21
21
  import styled from "vue-styled-components"
22
- import InfoText from '../infoText'
23
- const textAttrs = { color: String, fontSize: String, uppercase: Boolean }
24
- const TitleText = styled("div", textAttrs)`
22
+ import InfoText from "../infoText"
23
+
24
+ const wrapAttrs = { hasInfoText: Boolean }
25
+ const TitleWrap = styled("div", wrapAttrs)`
26
+ display: grid;
27
+ align-items: center;
28
+ grid-gap: 12px;
29
+ grid-template-columns: ${(props) =>
30
+ props.hasInfoText ? "auto auto 1fr" : "1fr"};
31
+ margin-bottom: 20px;
32
+ `
33
+
34
+ const titleAttrs = { color: String, fontSize: String, uppercase: Boolean }
35
+ const TitleText = styled('span', titleAttrs)`
25
36
  color: ${(props) => (props.color ? props.color : props.theme.colors.black)};
26
37
  font-weight: bold;
27
38
  font-size: ${(props) => (props.fontSize ? props.fontSize : '16px')};
28
39
  text-transform: ${(props) => (props.uppercase ? 'uppercase' : 'none')};
29
-
30
- `
31
- const flex = styled("div", textAttrs)`
32
- display: flex;
33
- gap:10px;
34
- margin-bottom: 20px;
35
- align-items: center;
36
40
  `
37
41
 
38
42
  export default {
39
43
  name: "page-title",
40
44
  components: {
41
45
  TitleText,
42
- InfoText,
43
- flex
46
+ TitleWrap,
47
+ InfoText
44
48
  },
45
49
  props: {
46
50
  text: {
@@ -59,10 +63,11 @@ export default {
59
63
  },
60
64
  infoText: {
61
65
  required: false,
66
+ default: null,
62
67
  },
63
68
  infoAlign: {
64
69
  required: false,
65
- },
70
+ }
66
71
  },
67
72
  }
68
73
  </script>
@@ -18,6 +18,7 @@ export const stringToNumber = ({
18
18
  selectedLang === 'de-lu' ||
19
19
  selectedLang === 'de-be' ||
20
20
  selectedLang === 'es-es' ||
21
+ selectedLang === 'ca-es' ||
21
22
  selectedLang === 'de' ||
22
23
  selectedLang === 'de-at' ||
23
24
  selectedLang === 'it' ||
@@ -48,6 +48,8 @@ export const translateLang = (lang) => {
48
48
  return 'portuguese'
49
49
  } else if (lang === 'es-es') {
50
50
  return 'spanish'
51
+ } else if (lang === 'ca-es') {
52
+ return 'catalan_es'
51
53
  } else {
52
54
  return lang
53
55
  }
@@ -72,6 +74,8 @@ export const datePickerLang = (lang) => {
72
74
  return 'it'
73
75
  } else if (lang === 'en-us' || lang === 'en-gb') {
74
76
  return 'en'
77
+ } else if (lang === 'es-es' || lang === 'ca-es' || lang === 'pt-pt') {
78
+ return 'es'
75
79
  } else {
76
80
  return lang
77
81
  }
@@ -97,6 +101,8 @@ export const tinyLanguage = (lang) => {
97
101
  return 'fr_FR'
98
102
  } else if (lang === 'it' || lang === 'it-it' || lang === 'it-ch') {
99
103
  return 'it'
104
+ } else if (lang === 'es-es' || lang === 'ca-es') {
105
+ return 'es'
100
106
  } else if (lang === 'en-us') {
101
107
  return null
102
108
  } else {
@@ -114,7 +120,9 @@ export const langForLocaleString = () => {
114
120
  ? 'fr-fr'
115
121
  : localStorage.getItem('lang') === 'fr-ch'
116
122
  ? 'de-ch'
117
- : localStorage.getItem('lang')
123
+ : localStorage.getItem('lang') === 'ca-es'
124
+ ? 'es-es'
125
+ : localStorage.getItem('lang')
118
126
  : 'en-US'
119
127
  return selectedLang !== 'null' ? selectedLang : 'en-US'
120
128
  }