@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.
Files changed (108) hide show
  1. package/package.json +1 -1
  2. package/src/assets/icons/collapse_arrow_icon_white.svg +1 -0
  3. package/src/assets/svgIcons/ac_power.svg +4 -0
  4. package/src/assets/svgIcons/arrow_long_left.svg +3 -0
  5. package/src/assets/svgIcons/arrow_long_right.svg +3 -0
  6. package/src/assets/svgIcons/chassis_ground_symbol.svg +27 -0
  7. package/src/assets/svgIcons/dc_power.svg +8 -0
  8. package/src/assets/svgIcons/double_arrow_long.svg +4 -0
  9. package/src/assets/svgIcons/ed_ac.svg +3 -0
  10. package/src/assets/svgIcons/ed_acgrid.svg +4 -0
  11. package/src/assets/svgIcons/ed_arrow_both.svg +7 -0
  12. package/src/assets/svgIcons/ed_arrow_left.svg +7 -0
  13. package/src/assets/svgIcons/ed_arrow_right.svg +7 -0
  14. package/src/assets/svgIcons/ed_battery.svg +10 -0
  15. package/src/assets/svgIcons/ed_batteryacinverter.svg +16 -0
  16. package/src/assets/svgIcons/ed_batteryintegratedinverter.svg +19 -0
  17. package/src/assets/svgIcons/ed_cirquitbreaker.svg +4 -0
  18. package/src/assets/svgIcons/ed_cirquitbreaker_magnetic.svg +6 -0
  19. package/src/assets/svgIcons/ed_cirquitbreaker_thermal.svg +4 -0
  20. package/src/assets/svgIcons/ed_cirquitbreaker_thermal_magnetic.svg +5 -0
  21. package/src/assets/svgIcons/ed_consumption.svg +3 -0
  22. package/src/assets/svgIcons/ed_dc.svg +6 -0
  23. package/src/assets/svgIcons/ed_disconnector.svg +4 -0
  24. package/src/assets/svgIcons/ed_disconnector_fuse.svg +4 -0
  25. package/src/assets/svgIcons/ed_disconnector_fuse_switch.svg +4 -0
  26. package/src/assets/svgIcons/ed_disconnector_loadbreak switch.svg +4 -0
  27. package/src/assets/svgIcons/ed_disconnector_switch.svg +4 -0
  28. package/src/assets/svgIcons/ed_disconnector_switch_auto_release.svg +5 -0
  29. package/src/assets/svgIcons/ed_energymanagement_rectangle.svg +3 -0
  30. package/src/assets/svgIcons/ed_evcharger.svg +19 -0
  31. package/src/assets/svgIcons/ed_flexiblecomponent_circle.svg +3 -0
  32. package/src/assets/svgIcons/ed_flexiblecomponent_square.svg +3 -0
  33. package/src/assets/svgIcons/ed_fuse.svg +3 -0
  34. package/src/assets/svgIcons/ed_ground.svg +5 -0
  35. package/src/assets/svgIcons/ed_heatpump.svg +4 -0
  36. package/src/assets/svgIcons/ed_icon_battery.svg +9 -0
  37. package/src/assets/svgIcons/ed_icon_circle.svg +3 -0
  38. package/src/assets/svgIcons/ed_icon_heatpump.svg +3 -0
  39. package/src/assets/svgIcons/ed_icon_inverter.svg +8 -0
  40. package/src/assets/svgIcons/ed_icon_optimizer.svg +11 -0
  41. package/src/assets/svgIcons/ed_integratedbatteryinverter.svg +10 -0
  42. package/src/assets/svgIcons/ed_inverter-blank.svg +3 -0
  43. package/src/assets/svgIcons/ed_mainsconnection.svg +3 -0
  44. package/src/assets/svgIcons/ed_meter_arrowleft.svg +4 -0
  45. package/src/assets/svgIcons/ed_meter_arrowright.svg +4 -0
  46. package/src/assets/svgIcons/ed_meter_bidirectional.svg +5 -0
  47. package/src/assets/svgIcons/ed_networkandsystemprotection_double.svg +14 -0
  48. package/src/assets/svgIcons/ed_networkandsystemprotection_single.svg +7 -0
  49. package/src/assets/svgIcons/ed_pvpanel.svg +7 -0
  50. package/src/assets/svgIcons/ed_rcd.svg +5 -0
  51. package/src/assets/svgIcons/ed_rcd_simple.svg +3 -0
  52. package/src/assets/svgIcons/ed_spd.svg +6 -0
  53. package/src/assets/svgIcons/ed_stringwithoptimizer.svg +33 -0
  54. package/src/assets/svgIcons/ed_stringwithoutoptimizer.svg +17 -0
  55. package/src/assets/svgIcons/ed_transformer.svg +3 -0
  56. package/src/assets/svgIcons/ground_symbol.svg +28 -0
  57. package/src/assets/svgIcons/house_sun.svg +3 -0
  58. package/src/assets/svgIcons/move_left.svg +3 -0
  59. package/src/assets/svgIcons/move_right.svg +3 -0
  60. package/src/assets/svgIcons/rectangle.svg +3 -0
  61. package/src/assets/svgIcons/refresh.svg +3 -0
  62. package/src/assets/svgIcons/text_icon.svg +3 -0
  63. package/src/assets/theme.js +18 -1
  64. package/src/components/banner/infoBanner/InfoBanner.spec.js +29 -42
  65. package/src/components/barchart/BottomFields.vue +253 -0
  66. package/src/components/barchart/ChartControls.vue +113 -0
  67. package/src/components/barchart/SelectionBox.vue +150 -0
  68. package/src/components/barchart/composables/index.js +5 -0
  69. package/src/components/barchart/composables/useAxisCalculations.js +104 -0
  70. package/src/components/barchart/composables/useChartData.js +114 -0
  71. package/src/components/barchart/composables/useChartScroll.js +61 -0
  72. package/src/components/barchart/composables/useSelection.js +75 -0
  73. package/src/components/barchart/composables/useTooltip.js +100 -0
  74. package/src/components/barchart/index.vue +385 -0
  75. package/src/components/barchart/styles/bottomFields.js +66 -0
  76. package/src/components/barchart/styles/chart.js +272 -0
  77. package/src/components/barchart/styles/chartControls.js +59 -0
  78. package/src/components/buttons/buttonIcon/index.vue +5 -0
  79. package/src/components/buttons/splitButtons/index.vue +86 -0
  80. package/src/components/collapsableInfoText/index.vue +2 -2
  81. package/src/components/draggableCard/defaultProps.js +16 -0
  82. package/src/components/draggableCard/draggableCard.spec.js +99 -0
  83. package/src/components/draggableCard/draggableCard.stories.js +79 -0
  84. package/src/components/draggableCard/index.vue +363 -0
  85. package/src/components/errorMessage/errorMessage.spec.js +34 -0
  86. package/src/components/errorMessage/errorMessage.stories.js +35 -0
  87. package/src/components/filter/filterSettings.vue +2 -0
  88. package/src/components/icon/index.vue +32 -9
  89. package/src/components/infoText/index.vue +2 -2
  90. package/src/components/infoText/infoText.spec.js +6 -1
  91. package/src/components/inputs/checkbox/index.vue +2 -2
  92. package/src/components/inputs/inputNumber/index.vue +14 -2
  93. package/src/components/inputs/searchInput/index.vue +18 -2
  94. package/src/components/inputs/select/index.vue +104 -13
  95. package/src/components/modals/actionModal/actionModal.spec.js +52 -0
  96. package/src/components/modals/actionModal/actionModal.stories.js +53 -0
  97. package/src/components/modals/actionModal/index.vue +6 -6
  98. package/src/components/modals/infoModal/index.vue +49 -19
  99. package/src/components/modals/infoModal/infoModal.spec.js +55 -0
  100. package/src/components/modals/infoModal/infoModal.stories.js +47 -0
  101. package/src/components/modals/modal/index.vue +16 -5
  102. package/src/components/pageSubtitle/PageSubtitle.stories.js +0 -1
  103. package/src/components/spinnerGif/index.vue +3 -3
  104. package/src/components/tabsHeader/index.vue +29 -1
  105. package/src/helpers/dateTimeFormatting.js +51 -0
  106. package/src/helpers/isObjectEqual.js +22 -0
  107. package/src/helpers/toLocaleNumber.js +11 -0
  108. package/src/main.js +1 -0
@@ -16,7 +16,6 @@ export default {
16
16
  description: 'Text for tooltip',
17
17
  },
18
18
  },
19
- tags: ['autodocs'],
20
19
  }
21
20
 
22
21
  // To use:
@@ -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.div`
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
- <div>{{ item.text }}</div>
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
+ }
package/src/main.js CHANGED
@@ -3,5 +3,6 @@ import { createApp } from 'vue'
3
3
  import router from './router/dynamicRoutes'
4
4
 
5
5
  const app = createApp(App)
6
+
6
7
  app.use(router)
7
8
  app.mount('#app')