@eturnity/eturnity_reusable_components 8.7.5-EPIC-8593.2 → 8.7.5-EPIC-8593.4
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 +1 -1
- package/src/assets/icons/collapse_arrow_icon_white.svg +1 -0
- package/src/assets/svgIcons/ac_power.svg +4 -0
- package/src/assets/svgIcons/arrow_long_left.svg +3 -0
- package/src/assets/svgIcons/arrow_long_right.svg +3 -0
- package/src/assets/svgIcons/chassis_ground_symbol.svg +27 -0
- package/src/assets/svgIcons/dc_power.svg +8 -0
- package/src/assets/svgIcons/double_arrow_long.svg +4 -0
- package/src/assets/svgIcons/ed_ac.svg +3 -0
- package/src/assets/svgIcons/ed_acgrid.svg +4 -0
- package/src/assets/svgIcons/ed_arrow_both.svg +7 -0
- package/src/assets/svgIcons/ed_arrow_left.svg +7 -0
- package/src/assets/svgIcons/ed_arrow_right.svg +7 -0
- package/src/assets/svgIcons/ed_battery.svg +10 -0
- package/src/assets/svgIcons/ed_batteryacinverter.svg +16 -0
- package/src/assets/svgIcons/ed_batteryintegratedinverter.svg +19 -0
- package/src/assets/svgIcons/ed_cirquitbreaker.svg +4 -0
- package/src/assets/svgIcons/ed_cirquitbreaker_magnetic.svg +6 -0
- package/src/assets/svgIcons/ed_cirquitbreaker_thermal.svg +4 -0
- package/src/assets/svgIcons/ed_cirquitbreaker_thermal_magnetic.svg +5 -0
- package/src/assets/svgIcons/ed_consumption.svg +3 -0
- package/src/assets/svgIcons/ed_dc.svg +6 -0
- package/src/assets/svgIcons/ed_disconnector.svg +4 -0
- package/src/assets/svgIcons/ed_disconnector_fuse.svg +4 -0
- package/src/assets/svgIcons/ed_disconnector_fuse_switch.svg +4 -0
- package/src/assets/svgIcons/ed_disconnector_loadbreak switch.svg +4 -0
- package/src/assets/svgIcons/ed_disconnector_switch.svg +4 -0
- package/src/assets/svgIcons/ed_disconnector_switch_auto_release.svg +5 -0
- package/src/assets/svgIcons/ed_energymanagement_rectangle.svg +3 -0
- package/src/assets/svgIcons/ed_evcharger.svg +19 -0
- package/src/assets/svgIcons/ed_flexiblecomponent_circle.svg +3 -0
- package/src/assets/svgIcons/ed_flexiblecomponent_square.svg +3 -0
- package/src/assets/svgIcons/ed_fuse.svg +3 -0
- package/src/assets/svgIcons/ed_ground.svg +5 -0
- package/src/assets/svgIcons/ed_heatpump.svg +4 -0
- package/src/assets/svgIcons/ed_icon_battery.svg +9 -0
- package/src/assets/svgIcons/ed_icon_circle.svg +3 -0
- package/src/assets/svgIcons/ed_icon_heatpump.svg +3 -0
- package/src/assets/svgIcons/ed_icon_inverter.svg +8 -0
- package/src/assets/svgIcons/ed_icon_optimizer.svg +11 -0
- package/src/assets/svgIcons/ed_integratedbatteryinverter.svg +10 -0
- package/src/assets/svgIcons/ed_inverter-blank.svg +3 -0
- package/src/assets/svgIcons/ed_mainsconnection.svg +3 -0
- package/src/assets/svgIcons/ed_meter_arrowleft.svg +4 -0
- package/src/assets/svgIcons/ed_meter_arrowright.svg +4 -0
- package/src/assets/svgIcons/ed_meter_bidirectional.svg +5 -0
- package/src/assets/svgIcons/ed_networkandsystemprotection_double.svg +14 -0
- package/src/assets/svgIcons/ed_networkandsystemprotection_single.svg +7 -0
- package/src/assets/svgIcons/ed_pvpanel.svg +7 -0
- package/src/assets/svgIcons/ed_rcd.svg +5 -0
- package/src/assets/svgIcons/ed_rcd_simple.svg +3 -0
- package/src/assets/svgIcons/ed_spd.svg +6 -0
- package/src/assets/svgIcons/ed_stringwithoptimizer.svg +33 -0
- package/src/assets/svgIcons/ed_stringwithoutoptimizer.svg +17 -0
- package/src/assets/svgIcons/ed_transformer.svg +3 -0
- package/src/assets/svgIcons/ground_symbol.svg +28 -0
- package/src/assets/svgIcons/house_sun.svg +3 -0
- package/src/assets/svgIcons/move_left.svg +3 -0
- package/src/assets/svgIcons/move_right.svg +3 -0
- package/src/assets/svgIcons/rectangle.svg +3 -0
- package/src/assets/svgIcons/refresh.svg +3 -0
- package/src/assets/svgIcons/text_icon.svg +3 -0
- package/src/assets/theme.js +18 -1
- package/src/components/banner/infoBanner/InfoBanner.spec.js +29 -42
- package/src/components/barchart/BottomFields.vue +253 -0
- package/src/components/barchart/ChartControls.vue +113 -0
- package/src/components/barchart/SelectionBox.vue +150 -0
- package/src/components/barchart/composables/index.js +5 -0
- package/src/components/barchart/composables/useAxisCalculations.js +104 -0
- package/src/components/barchart/composables/useChartData.js +114 -0
- package/src/components/barchart/composables/useChartScroll.js +61 -0
- package/src/components/barchart/composables/useSelection.js +75 -0
- package/src/components/barchart/composables/useTooltip.js +100 -0
- package/src/components/barchart/index.vue +385 -0
- package/src/components/barchart/styles/bottomFields.js +66 -0
- package/src/components/barchart/styles/chart.js +272 -0
- package/src/components/barchart/styles/chartControls.js +59 -0
- package/src/components/buttons/buttonIcon/index.vue +5 -0
- package/src/components/buttons/splitButtons/index.vue +86 -0
- package/src/components/collapsableInfoText/index.vue +2 -2
- package/src/components/draggableCard/defaultProps.js +16 -0
- package/src/components/draggableCard/draggableCard.spec.js +99 -0
- package/src/components/draggableCard/draggableCard.stories.js +79 -0
- package/src/components/draggableCard/index.vue +363 -0
- package/src/components/errorMessage/errorMessage.spec.js +34 -0
- package/src/components/errorMessage/errorMessage.stories.js +35 -0
- package/src/components/filter/filterSettings.vue +2 -0
- package/src/components/icon/index.vue +32 -9
- package/src/components/infoText/index.vue +2 -2
- package/src/components/infoText/infoText.spec.js +6 -1
- package/src/components/inputs/checkbox/index.vue +2 -2
- package/src/components/inputs/inputNumber/index.vue +14 -2
- package/src/components/inputs/searchInput/index.vue +18 -2
- package/src/components/inputs/select/index.vue +104 -13
- package/src/components/modals/actionModal/actionModal.spec.js +52 -0
- package/src/components/modals/actionModal/actionModal.stories.js +53 -0
- package/src/components/modals/actionModal/index.vue +6 -6
- package/src/components/modals/infoModal/index.vue +49 -19
- package/src/components/modals/infoModal/infoModal.spec.js +55 -0
- package/src/components/modals/infoModal/infoModal.stories.js +47 -0
- package/src/components/modals/modal/index.vue +16 -5
- package/src/components/pageSubtitle/PageSubtitle.stories.js +0 -1
- package/src/components/spinnerGif/index.vue +3 -3
- package/src/components/tabsHeader/index.vue +29 -1
- package/src/helpers/dateTimeFormatting.js +51 -0
- package/src/helpers/isObjectEqual.js +22 -0
- package/src/helpers/toLocaleNumber.js +11 -0
- package/src/main.js +1 -0
@@ -1,7 +1,7 @@
|
|
1
1
|
<template>
|
2
2
|
<SpinnerContainer v-if="fullWidth" data-test-id="spinner_full_container">
|
3
3
|
<Container>
|
4
|
-
<SpinnerWrapper data-test-id="spinner_full_wrapper">
|
4
|
+
<SpinnerWrapper data-test-id="spinner_full_wrapper" :size="size">
|
5
5
|
<img
|
6
6
|
:class="{ white: isWhite }"
|
7
7
|
data-test-id="spinner_full_icon"
|
@@ -16,7 +16,7 @@
|
|
16
16
|
data-test-id="spinner_container"
|
17
17
|
:limited-to-modal="limitedToModal"
|
18
18
|
>
|
19
|
-
<SpinnerWrapper data-test-id="spinner_wrapper">
|
19
|
+
<SpinnerWrapper data-test-id="spinner_wrapper" :size="size">
|
20
20
|
<img
|
21
21
|
:class="{ white: isWhite }"
|
22
22
|
data-test-id="spinner_full_icon"
|
@@ -55,7 +55,7 @@
|
|
55
55
|
width: ${(props) => (props.limitedToModal ? '100%' : 'inherit')};
|
56
56
|
`
|
57
57
|
|
58
|
-
const SpinnerWrapper = styled
|
58
|
+
const SpinnerWrapper = styled('div', { size: String })`
|
59
59
|
width: ${(props) => (props.size ? props.size : '60px')};
|
60
60
|
height: auto;
|
61
61
|
|
@@ -8,7 +8,11 @@
|
|
8
8
|
:is-active="activeTab === item.id"
|
9
9
|
@click="onTabClick({ id: item.id })"
|
10
10
|
>
|
11
|
-
<
|
11
|
+
<NameContainer>
|
12
|
+
<div>{{ item.text }}</div>
|
13
|
+
<DotIcon v-if="item.subText" :is-active="activeTab === item.id" />
|
14
|
+
<SubText v-if="item.subText">{{ item.subText }}</SubText>
|
15
|
+
</NameContainer>
|
12
16
|
<RCIcon v-if="item.hasError" name="warning" size="14px" />
|
13
17
|
</TabItem>
|
14
18
|
</TabsContainer>
|
@@ -36,6 +40,27 @@
|
|
36
40
|
import styled from 'vue3-styled-components'
|
37
41
|
import RCIcon from '../icon'
|
38
42
|
|
43
|
+
const NameContainer = styled.div`
|
44
|
+
display: flex;
|
45
|
+
align-items: center;
|
46
|
+
justify-content: center;
|
47
|
+
gap: 8px;
|
48
|
+
`
|
49
|
+
|
50
|
+
const DotIconAttrs = { isActive: Boolean }
|
51
|
+
const DotIcon = styled('div', DotIconAttrs)`
|
52
|
+
width: 4px;
|
53
|
+
height: 4px;
|
54
|
+
border-radius: 100%;
|
55
|
+
background-color: ${(props) =>
|
56
|
+
props.isActive ? props.theme.colors.purple6 : props.theme.colors.black};
|
57
|
+
`
|
58
|
+
|
59
|
+
const SubText = styled.div`
|
60
|
+
font-size: 12px;
|
61
|
+
color: ${(props) => props.theme.colors.black};
|
62
|
+
`
|
63
|
+
|
39
64
|
const PageContainer = styled.div``
|
40
65
|
|
41
66
|
const TabsContainer = styled.div`
|
@@ -67,7 +92,10 @@
|
|
67
92
|
components: {
|
68
93
|
PageContainer,
|
69
94
|
TabsContainer,
|
95
|
+
NameContainer,
|
70
96
|
TabItem,
|
97
|
+
SubText,
|
98
|
+
DotIcon,
|
71
99
|
RCIcon,
|
72
100
|
},
|
73
101
|
props: {
|
@@ -0,0 +1,51 @@
|
|
1
|
+
// functions for standard date and time formatting
|
2
|
+
|
3
|
+
// e.g. 13.12.2024
|
4
|
+
export const toLocaleDate = ({
|
5
|
+
locale = localStorage.getItem('lang'),
|
6
|
+
value,
|
7
|
+
}) => {
|
8
|
+
const localeLC = locale.toLowerCase()
|
9
|
+
const options = {
|
10
|
+
year: 'numeric',
|
11
|
+
month: 'numeric',
|
12
|
+
day: 'numeric',
|
13
|
+
}
|
14
|
+
|
15
|
+
return new Intl.DateTimeFormat(localeLC, options).format(Date.parse(value))
|
16
|
+
}
|
17
|
+
|
18
|
+
// e.g. 31 December 2024
|
19
|
+
export const toLocaleDateLong = ({
|
20
|
+
locale = localStorage.getItem('lang'),
|
21
|
+
value,
|
22
|
+
}) => {
|
23
|
+
const localeLC = locale.toLowerCase()
|
24
|
+
const options = {
|
25
|
+
year: 'numeric',
|
26
|
+
month: 'long',
|
27
|
+
day: 'numeric',
|
28
|
+
}
|
29
|
+
|
30
|
+
return new Intl.DateTimeFormat(localeLC, options).format(Date.parse(value))
|
31
|
+
}
|
32
|
+
|
33
|
+
// e.g. 08:45
|
34
|
+
export const toLocaleTime = ({
|
35
|
+
locale = localStorage.getItem('lang'),
|
36
|
+
value,
|
37
|
+
}) => {
|
38
|
+
const nonDefaultFormatting = {
|
39
|
+
'es-es': { hour: '2-digit' },
|
40
|
+
'cs-es': { hour: '2-digit' },
|
41
|
+
}
|
42
|
+
|
43
|
+
const localeLC = locale.toLowerCase()
|
44
|
+
const options = {
|
45
|
+
hour: 'numeric',
|
46
|
+
minute: 'numeric',
|
47
|
+
...nonDefaultFormatting[localeLC],
|
48
|
+
}
|
49
|
+
|
50
|
+
return new Intl.DateTimeFormat(localeLC, options).format(Date.parse(value))
|
51
|
+
}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import { toRaw } from 'vue'
|
2
|
+
|
3
|
+
export default function isObjectEqual(obj1, obj2) {
|
4
|
+
obj1 = toRaw(obj1)
|
5
|
+
obj2 = toRaw(obj2)
|
6
|
+
if (obj1 === obj2) return true
|
7
|
+
if (obj1 === null || obj2 === null) return false
|
8
|
+
if (typeof obj1 !== 'object' || typeof obj2 !== 'object') return false
|
9
|
+
|
10
|
+
const isArray1 = Array.isArray(obj1)
|
11
|
+
const isArray2 = Array.isArray(obj2)
|
12
|
+
if (isArray1 !== isArray2) return false
|
13
|
+
|
14
|
+
const keys1 = Object.keys(obj1)
|
15
|
+
if (keys1.length !== Object.keys(obj2).length) return false
|
16
|
+
|
17
|
+
return keys1.every(
|
18
|
+
(key) =>
|
19
|
+
Object.prototype.hasOwnProperty.call(obj2, key) &&
|
20
|
+
isObjectEqual(obj1[key], obj2[key])
|
21
|
+
)
|
22
|
+
}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import { langForLocaleString } from './translateLang'
|
2
|
+
|
3
|
+
export const toLocaleNumber = (value, digit = 0) => {
|
4
|
+
if (isNaN(value)) {
|
5
|
+
return '-'
|
6
|
+
}
|
7
|
+
return new Intl.NumberFormat(langForLocaleString(), {
|
8
|
+
minimumFractionDigits: digit,
|
9
|
+
maximumFractionDigits: digit,
|
10
|
+
}).format(value)
|
11
|
+
}
|