@eturnity/eturnity_reusable_components 8.22.10 → 8.22.13

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/dist/main.es20.js CHANGED
@@ -1,229 +1,543 @@
1
- import styled from "./main.es7.js";
2
1
  import "./main.es3.js";
2
+ import _sfc_main$1 from "./main.es24.js";
3
+ import styled from "./main.es7.js";
4
+ import theme from "./main.es8.js";
3
5
  import _export_sfc from "./main.es11.js";
4
- import { resolveComponent, openBlock, createBlock, withCtx, createVNode, createTextVNode } from "./main.es6.js";
5
- import { toDisplayString } from "./main.es16.js";
6
- const Container = styled.div`
7
- position: relative;
8
- display: flex;
9
- height: 47px;
10
- width: ${(props) => props.width};
11
- `;
12
- const TopValueContainer = styled("div", {
13
- position: String
14
- })`
15
- font-size: 11px;
16
- left: ${(props) => props.position};
17
- position: absolute;
18
- display: flex;
19
- justify-content: center
20
- width: 0px;
21
- color:${(props) => props.theme.colors.black};
22
- item-align: center;
23
-
24
- `;
25
- const BottomValueContainer = styled("div", {
26
- position: String
27
- })`
28
- font-size: 12px;
29
- left: ${(props) => props.position};
30
- width: 0px;
31
- bottom: -2px;
32
- position: absolute;
33
- display: flex;
34
- justify-content: center;
35
- item-align: center;
6
+ import { computed, onMounted, onUnmounted, watch, nextTick, resolveComponent, openBlock, createBlock, withCtx, createElementVNode as createBaseVNode, createVNode, createElementBlock, createTextVNode, createCommentVNode, Fragment, renderSlot, Teleport } from "./main.es6.js";
7
+ import { toDisplayString, normalizeStyle } from "./main.es21.js";
8
+ import { ref } from "./main.es16.js";
9
+ const TextOverlayAttrs = {
10
+ appTheme: String,
11
+ image: Boolean,
12
+ width: Number
13
+ };
14
+ const TextOverlay = styled("div", TextOverlayAttrs)`
15
+ color: ${(props) => props.image ? props.theme.colors.grey1 : props.theme.colors.black};
16
+ font-size: ${(props) => props.image ? "12px" : "13px"};
36
17
  border-radius: 4px;
37
- color: white;
18
+ padding: 10px;
19
+ word-wrap: break-word;
20
+ overflow-wrap: break-word;
21
+ white-space: normal;
22
+ width: ${(props) => props.width ? `${props.width}px` : "100%"};
23
+ box-shadow: ${(props) => props.image ? "0 2px 10px rgba(0, 0, 0, 0.1)" : "none"};
24
+
25
+ a {
26
+ color: ${(props) => props.theme.colors.blue};
27
+ }
28
+
29
+ img + span {
30
+ margin-top: 10px;
31
+ display: block;
32
+ }
38
33
  `;
39
- const TextWrapper = styled("div", {
40
- backgroundColor: String
41
- })`
42
- padding: 2px 6px;
43
- background-color: ${(props) => props.theme.colors[props.backgroundColor] || props.backgroundColor};
44
- border-radius: 4px;
34
+ const PageContainer = styled("div")`
35
+ display: ${(props) => props.type === "dot" ? "unset" : "inline-block"};
36
+ position: relative;
45
37
  `;
46
- const Arrow = styled("div", {
47
- backgroundColor: String
48
- })`
38
+ const TextWrapper = styled("div")`
39
+ z-index: 9999999999;
49
40
  position: absolute;
50
- bottom: -10px;
51
- left: calc(50% - 6px);
52
- width: 0;
53
- height: 0;
54
- border: 6px solid transparent;
55
- border-top-color: ${(props) => props.theme.colors[props.backgroundColor] || props.backgroundColor};
56
- filter: drop-shadow(0 2px 2px rgba(0, 0, 0, 0.1));
57
41
  `;
58
- const MainLine = styled.div`
59
- display: block;
60
- position: absolute;
61
- bottom: 16px;
62
- height: 4px;
42
+ const OverlayImage = styled("img")`
63
43
  width: 100%;
64
- border-radius: 4px;
65
- background-color: ${(props) => props.theme.colors.grey4};
44
+ height: auto;
66
45
  `;
67
- const MainLineHighlight = styled("div", {
68
- minPercent: Number,
69
- maxPercent: Number
70
- })`
71
- display: block;
72
- position: absolute;
73
- left: ${(props) => props.minPercent + "%"};
74
- right: ${(props) => 100 - props.maxPercent + "%"};
75
- bottom: 16px;
76
- height: 4px;
77
- background-color: white;
46
+ const Dot = styled("div")`
47
+ width: 5px;
48
+ height: 5px;
49
+ background-color: ${(props) => props.color};
50
+ border-radius: 50%;
78
51
  `;
79
- const VerticalMarker = styled("div")`
80
- position: absolute;
81
- width: 1px;
82
- height: 8px;
83
- background-color: white;
84
- display: inline-block;
85
- top: -6px;
86
- left: 0px;
52
+ const IconWrapperAttrs = {
53
+ backgroundColor: String,
54
+ borderRadius: String,
55
+ padding: String,
56
+ hoveredIcon: Boolean,
57
+ isActive: Boolean,
58
+ isDisabled: Boolean
59
+ };
60
+ const IconWrapper = styled("div", IconWrapperAttrs)`
61
+ display: flex;
62
+ align-items: center;
63
+ justify-content: center;
64
+ gap: 6px;
65
+ white-space: nowrap;
66
+ background-color: ${(props) => props.backgroundColor};
67
+ border-radius: ${(props) => props.hoveredIcon ? "6px" : props.borderRadius};
68
+ padding: ${(props) => props.padding};
69
+ width: ${(props) => props.hoveredIcon ? "32px" : ""};
70
+ height: ${(props) => props.hoveredIcon ? "32px" : ""};
71
+ cursor: pointer;
72
+ background-color: ${(props) => props.isActive ? props.theme.colors.transparentWhite2 : ""};
73
+ cursor: ${(props) => props.isDisabled ? "not-allowed" : "pointer"};
74
+ &:hover {
75
+ background-color: ${(props) => props.hoveredIcon ? props.theme.colors.transparentWhite2 : ""};
76
+ }
87
77
  `;
88
- const VerticalMarkerArrow = styled("div", {
78
+ const LabelWrapperAttrs = {
79
+ size: String,
89
80
  color: String
90
- })`
91
- position: absolute;
92
- width: 1px;
93
- height: 4px;
94
- background-color: ${(props) => props.color};
95
- display: inline-block;
96
- bottom: -14px;
97
- left: 0px;
81
+ };
82
+ const LabelWrapper = styled("div", LabelWrapperAttrs)`
83
+ font-size: ${(props) => props.size};
84
+ color: ${(props) => props.color};
98
85
  `;
99
86
  const _sfc_main = {
100
- name: "ProgressBar",
87
+ name: "InfoText",
101
88
  components: {
102
- Container,
103
- MainLineHighlight,
104
- Arrow,
105
- TopValueContainer,
106
- BottomValueContainer,
107
- MainLine,
108
- VerticalMarker,
109
- VerticalMarkerArrow,
110
- TextWrapper
89
+ IconComponent: _sfc_main$1,
90
+ TextOverlay,
91
+ // Arrow,
92
+ Dot,
93
+ PageContainer,
94
+ TextWrapper,
95
+ OverlayImage,
96
+ IconWrapper,
97
+ LabelWrapper
111
98
  },
112
99
  props: {
113
- minValue: {
114
- required: true,
115
- type: Number
100
+ text: {
101
+ required: false,
102
+ default: "",
103
+ type: String
116
104
  },
117
- maxValue: {
118
- required: true,
119
- type: Number
105
+ isActive: {
106
+ required: false,
107
+ default: false,
108
+ type: Boolean
120
109
  },
121
- value: {
122
- required: true,
123
- type: Number
110
+ labelText: {
111
+ required: false,
112
+ default: "",
113
+ type: String
114
+ },
115
+ size: {
116
+ type: String,
117
+ default: "14px"
124
118
  },
125
- arrowColor: {
119
+ infoPosition: {
126
120
  required: false,
121
+ default: null,
122
+ type: String
123
+ },
124
+ maxWidth: {
125
+ default: "400px",
126
+ type: String
127
+ },
128
+ openTrigger: {
129
+ type: String,
130
+ default: "onHover",
131
+ validator: (value) => ["onHover", "onClick"].includes(value)
132
+ },
133
+ buttonType: {
134
+ type: String,
135
+ default: "regular",
136
+ validator: (value) => ["regular", "error"].includes(value)
137
+ },
138
+ image: {
139
+ type: String,
140
+ default: ""
141
+ },
142
+ iconName: {
143
+ type: String,
144
+ default: "info"
145
+ },
146
+ iconColor: {
127
147
  type: String,
128
- default: "white"
148
+ default: null,
149
+ required: false
129
150
  },
130
- width: {
151
+ isDisabled: {
152
+ type: Boolean,
153
+ default: false,
154
+ required: false
155
+ },
156
+ dotColor: {
157
+ type: String,
131
158
  required: false,
159
+ default: theme.semanticColors.blue[400]
160
+ },
161
+ type: {
162
+ type: String,
163
+ required: false,
164
+ default: "info"
165
+ // info, dot
166
+ },
167
+ appTheme: {
168
+ type: String,
169
+ default: "light",
170
+ // light or dark
171
+ required: false
172
+ },
173
+ labelAlign: {
132
174
  type: String,
133
- default: null
175
+ default: "right",
176
+ required: false
177
+ },
178
+ backgroundColor: {
179
+ type: String,
180
+ default: "",
181
+ required: false
182
+ },
183
+ contentBackgroundColor: {
184
+ type: String,
185
+ default: "",
186
+ required: false
187
+ },
188
+ borderRadius: {
189
+ type: String,
190
+ default: "",
191
+ required: false
192
+ },
193
+ padding: {
194
+ type: String,
195
+ default: "",
196
+ required: false
197
+ },
198
+ labelSize: {
199
+ type: String,
200
+ default: "12px",
201
+ required: false
202
+ },
203
+ noIcon: {
204
+ type: Boolean,
205
+ default: false,
206
+ required: false
207
+ },
208
+ hoveredIcon: {
209
+ type: Boolean,
210
+ default: false,
211
+ required: false
212
+ },
213
+ hideInfoText: {
214
+ type: Boolean,
215
+ default: false,
216
+ required: false
134
217
  }
135
218
  },
136
- data() {
137
- return {};
138
- },
139
- computed: {
140
- minPercent() {
141
- if (this.maxValue === this.minValue) {
142
- return 50;
143
- } else {
144
- return 30;
219
+ setup(props) {
220
+ const isVisible = ref(false);
221
+ const container = ref(null);
222
+ const icon = ref(null);
223
+ const infoBox = ref(null);
224
+ const textContent = ref(null);
225
+ const infoImage = ref(null);
226
+ const infoBoxWidth = ref(0);
227
+ const infoBoxHeight = ref(0);
228
+ const boxStyle = ref({});
229
+ const arrowStyle = ref({});
230
+ const wrapperStyle = ref({});
231
+ const isMobile = ref(window.innerWidth <= 768);
232
+ const textStyle = computed(() => ({
233
+ fontSize: props.image ? "12px" : "13px",
234
+ color: props.image ? theme.colors.grey1 : props.appTheme === "dark" ? theme.colors.black : theme.colors.white,
235
+ textAlign: props.image ? "right" : "left"
236
+ }));
237
+ const calculatePosition = (width) => {
238
+ if (!icon.value || !width)
239
+ return {};
240
+ const iconRect = icon.value.getBoundingClientRect();
241
+ const windowHeight = window.innerHeight;
242
+ const windowWidth = window.innerWidth;
243
+ const spaceBelow = windowHeight - iconRect.bottom - 10;
244
+ const spaceAbove = iconRect.top - 10;
245
+ const spaceRight = windowWidth - iconRect.right - 10;
246
+ const spaceLeft = iconRect.left - 10;
247
+ const positions = [{
248
+ position: "bottom",
249
+ space: spaceBelow
250
+ }, {
251
+ position: "top",
252
+ space: spaceAbove
253
+ }, {
254
+ position: "right",
255
+ space: spaceRight
256
+ }, {
257
+ position: "left",
258
+ space: spaceLeft
259
+ }].sort((a, b) => b.space - a.space);
260
+ const bestPosition = props.infoPosition ? props.infoPosition : positions[0].position;
261
+ let top, left, arrowPosition;
262
+ switch (bestPosition) {
263
+ case "bottom":
264
+ top = Math.round(iconRect.bottom + 10);
265
+ left = Math.round(Math.min(iconRect.left, windowWidth - width - 10));
266
+ arrowPosition = {
267
+ left: `${Math.round(Math.min(Math.max(iconRect.left - left + iconRect.width / 2 - 8, 2), width - 18))}px`,
268
+ top: "-7px",
269
+ bottom: "auto",
270
+ transform: "rotate(180deg)"
271
+ };
272
+ break;
273
+ case "top":
274
+ top = Math.round(iconRect.top - infoBoxHeight.value - 10);
275
+ left = Math.round(Math.min(iconRect.left, windowWidth - width - 10));
276
+ arrowPosition = {
277
+ left: `${Math.round(Math.min(Math.max(iconRect.left - left + iconRect.width / 2 - 8, 2), width - 18))}px`,
278
+ top: "auto",
279
+ bottom: "-7px",
280
+ transform: "none"
281
+ };
282
+ break;
283
+ case "right":
284
+ top = Math.round(Math.max(Math.min(iconRect.top - (infoBoxHeight.value - iconRect.height) / 2, windowHeight - infoBoxHeight.value - 10), 10));
285
+ left = Math.round(iconRect.right + 10);
286
+ arrowPosition = {
287
+ left: "-7px",
288
+ top: `${Math.round(Math.min(Math.max(iconRect.top - top + iconRect.height / 2 - 8, 2), infoBoxHeight.value - 18))}px`,
289
+ bottom: "auto",
290
+ transform: "rotate(90deg)"
291
+ };
292
+ break;
293
+ case "left":
294
+ top = Math.round(Math.max(Math.min(iconRect.top - (infoBoxHeight.value - iconRect.height) / 2, windowHeight - infoBoxHeight.value - 10), 10));
295
+ left = Math.round(iconRect.left - width - 10);
296
+ arrowPosition = {
297
+ left: "auto",
298
+ right: "-7px",
299
+ top: `${Math.round(Math.min(Math.max(iconRect.top - top + iconRect.height / 2 - 8, 2), infoBoxHeight.value - 18))}px`,
300
+ bottom: "auto",
301
+ transform: "rotate(-90deg)"
302
+ };
303
+ break;
145
304
  }
146
- },
147
- maxPercent() {
148
- if (this.maxValue === this.minValue) {
149
- return 50;
150
- } else {
151
- return 70;
305
+ arrowStyle.value = arrowPosition;
306
+ wrapperStyle.value = {
307
+ position: "fixed",
308
+ top: `${top}px`,
309
+ left: `${left}px`,
310
+ transform: "none",
311
+ width: `${width}px`
312
+ };
313
+ return {
314
+ width: "100%",
315
+ maxWidth: props.maxWidth,
316
+ overflowY: "auto",
317
+ backgroundColor: props.contentBackgroundColor ? props.contentBackgroundColor : props.image ? theme.colors.white : props.appTheme === "light" ? theme.colors.black : theme.colors.grey5
318
+ };
319
+ };
320
+ const showInfo = async () => {
321
+ isVisible.value = true;
322
+ await nextTick();
323
+ await nextTick();
324
+ await updatePosition();
325
+ };
326
+ const hideInfo = () => {
327
+ isVisible.value = false;
328
+ infoBoxWidth.value = 0;
329
+ };
330
+ const toggleInfo = () => {
331
+ isVisible.value ? hideInfo() : showInfo();
332
+ };
333
+ const handleScroll = () => {
334
+ if (isVisible.value) {
335
+ hideInfo();
152
336
  }
153
- },
154
- valuePercent() {
155
- let percent;
156
- if (this.maxValue === this.minValue) {
157
- percent = this.minPercent + 10 * (this.value - this.minValue);
158
- } else {
159
- percent = this.minPercent + (this.maxPercent - this.minPercent) / (this.maxValue - this.minValue) * (this.value - this.minValue);
337
+ updatePosition();
338
+ };
339
+ const isIconInView = () => {
340
+ if (!icon.value)
341
+ return false;
342
+ const rect = icon.value.getBoundingClientRect();
343
+ return rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth);
344
+ };
345
+ const updatePosition = async () => {
346
+ if (!infoBox.value || !textContent.value)
347
+ return;
348
+ if (infoBox.value.$el) {
349
+ infoBox.value.$el.style.visibility = "hidden";
350
+ infoBox.value.$el.style.display = "block";
160
351
  }
161
- return Math.max(0, Math.min(100, percent));
162
- },
163
- colorVerticalMarkerArrow() {
164
- if (this.value < this.maxValue && this.value > this.minValue) {
165
- return "black";
166
- } else {
167
- return "white";
352
+ await nextTick();
353
+ if (!isIconInView()) {
354
+ if (isVisible.value)
355
+ hideInfo();
356
+ return;
357
+ }
358
+ const clone = textContent.value.cloneNode(true);
359
+ clone.style.position = "absolute";
360
+ clone.style.visibility = "hidden";
361
+ clone.style.width = "auto";
362
+ clone.style.maxWidth = "none";
363
+ clone.style.whiteSpace = "nowrap";
364
+ document.body.appendChild(clone);
365
+ const contentWidth = clone.offsetWidth;
366
+ document.body.removeChild(clone);
367
+ const calculatedWidth = Math.min(Math.max(contentWidth, 230), parseInt(props.maxWidth, 10));
368
+ infoBoxWidth.value = calculatedWidth;
369
+ await nextTick();
370
+ infoBoxHeight.value = infoBox.value.$el.offsetHeight;
371
+ boxStyle.value = calculatePosition(calculatedWidth);
372
+ if (isVisible.value && infoBox.value.$el) {
373
+ infoBox.value.$el.style.visibility = "visible";
168
374
  }
375
+ };
376
+ const onImageLoad = () => {
377
+ if (infoImage.value) {
378
+ infoBoxHeight.value = infoBox.value.$el.offsetHeight;
379
+ updatePosition();
380
+ }
381
+ };
382
+ const handleClickOutside = (event) => {
383
+ if ((props.openTrigger === "onClick" || isMobile.value) && isVisible.value) {
384
+ const clickedElement = event.target;
385
+ if (infoBox.value && !infoBox.value.$el.contains(clickedElement) && !icon.value.contains(clickedElement)) {
386
+ hideInfo();
387
+ }
388
+ }
389
+ };
390
+ const handleResize = () => {
391
+ isMobile.value = window.innerWidth <= 768;
392
+ updatePosition();
393
+ };
394
+ onMounted(() => {
395
+ window.addEventListener("scroll", handleScroll, {
396
+ passive: true
397
+ });
398
+ window.addEventListener("resize", handleResize);
399
+ document.addEventListener("scroll", handleScroll, {
400
+ passive: true,
401
+ capture: true
402
+ });
403
+ document.addEventListener("click", handleClickOutside);
404
+ });
405
+ onUnmounted(() => {
406
+ window.removeEventListener("scroll", handleScroll);
407
+ window.removeEventListener("resize", handleResize);
408
+ document.removeEventListener("scroll", handleScroll, {
409
+ capture: true
410
+ });
411
+ document.removeEventListener("click", handleClickOutside);
412
+ });
413
+ watch(isVisible, (newValue) => {
414
+ if (newValue) {
415
+ updatePosition();
416
+ }
417
+ });
418
+ return {
419
+ isVisible,
420
+ boxStyle,
421
+ arrowStyle,
422
+ showInfo,
423
+ hideInfo,
424
+ toggleInfo,
425
+ container,
426
+ icon,
427
+ infoBox,
428
+ textContent,
429
+ infoImage,
430
+ infoBoxWidth,
431
+ infoBoxHeight,
432
+ wrapperStyle,
433
+ textStyle,
434
+ onImageLoad,
435
+ isMobile
436
+ };
437
+ },
438
+ computed: {
439
+ computedIconColor() {
440
+ return this.buttonType === "error" ? theme.colors.red : theme.colors.mediumGray;
169
441
  }
170
442
  }
171
443
  };
444
+ const _hoisted_1 = {
445
+ ref: "icon",
446
+ "data-test-id": "infoText_trigger"
447
+ };
448
+ const _hoisted_2 = ["innerHTML"];
172
449
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
173
- const _component_MainLine = resolveComponent("MainLine");
174
- const _component_MainLineHighlight = resolveComponent("MainLineHighlight");
450
+ const _component_LabelWrapper = resolveComponent("LabelWrapper");
451
+ const _component_Dot = resolveComponent("Dot");
452
+ const _component_IconComponent = resolveComponent("IconComponent");
453
+ const _component_IconWrapper = resolveComponent("IconWrapper");
454
+ const _component_OverlayImage = resolveComponent("OverlayImage");
455
+ const _component_TextOverlay = resolveComponent("TextOverlay");
175
456
  const _component_TextWrapper = resolveComponent("TextWrapper");
176
- const _component_Arrow = resolveComponent("Arrow");
177
- const _component_VerticalMarkerArrow = resolveComponent("VerticalMarkerArrow");
178
- const _component_TopValueContainer = resolveComponent("TopValueContainer");
179
- const _component_VerticalMarker = resolveComponent("VerticalMarker");
180
- const _component_BottomValueContainer = resolveComponent("BottomValueContainer");
181
- const _component_Container = resolveComponent("Container");
182
- return openBlock(), createBlock(_component_Container, {
183
- width: $props.width
457
+ const _component_PageContainer = resolveComponent("PageContainer");
458
+ return openBlock(), createBlock(_component_PageContainer, {
459
+ ref: "container",
460
+ "data-test-id": "infoText_container",
461
+ type: $props.type,
462
+ onClick: _cache[0] || (_cache[0] = ($event) => {
463
+ ($setup.isMobile || $props.openTrigger === "onClick") && $setup.toggleInfo();
464
+ }),
465
+ onMouseenter: _cache[1] || (_cache[1] = ($event) => !$setup.isMobile && $props.openTrigger === "onHover" && $setup.showInfo()),
466
+ onMouseleave: _cache[2] || (_cache[2] = ($event) => !$setup.isMobile && $props.openTrigger === "onHover" && $setup.hideInfo())
184
467
  }, {
185
- default: withCtx(() => [createVNode(_component_MainLine), createTextVNode(), createVNode(_component_MainLineHighlight, {
186
- "max-percent": $options.maxPercent,
187
- "min-percent": $options.minPercent
188
- }, null, 8, ["max-percent", "min-percent"]), createTextVNode(), createVNode(_component_TopValueContainer, {
189
- position: $options.valuePercent + "%"
468
+ default: withCtx(() => [createBaseVNode("div", _hoisted_1, [createVNode(_component_IconWrapper, {
469
+ "background-color": $props.backgroundColor,
470
+ "border-radius": $props.borderRadius,
471
+ "hovered-icon": $props.hoveredIcon,
472
+ "is-active": $props.isActive,
473
+ "is-disabled": $props.isDisabled,
474
+ padding: $props.padding
190
475
  }, {
191
- default: withCtx(() => [createVNode(_component_TextWrapper, {
192
- "background-color": $props.arrowColor
476
+ default: withCtx(() => [!_ctx.$slots.trigger ? (openBlock(), createElementBlock(Fragment, {
477
+ key: 0
478
+ }, [$props.labelText && $props.labelAlign === "left" ? (openBlock(), createBlock(_component_LabelWrapper, {
479
+ key: 0,
480
+ color: $props.iconColor || $options.computedIconColor,
481
+ size: $props.labelSize
193
482
  }, {
194
- default: withCtx(() => [createTextVNode(toDisplayString($props.value), 1)]),
483
+ default: withCtx(() => [createTextVNode(toDisplayString($props.labelText), 1)]),
195
484
  _: 1
196
- }, 8, ["background-color"]), createTextVNode(), createVNode(_component_Arrow, {
197
- "background-color": $props.arrowColor
198
- }, null, 8, ["background-color"]), createTextVNode(), createVNode(_component_VerticalMarkerArrow, {
199
- color: $options.colorVerticalMarkerArrow
200
- }, null, 8, ["color"])]),
201
- _: 1
202
- }, 8, ["position"]), createTextVNode(), createVNode(_component_BottomValueContainer, {
203
- position: $options.minPercent + "%"
204
- }, {
205
- default: withCtx(() => [createVNode(_component_TextWrapper, null, {
206
- default: withCtx(() => [createTextVNode(toDisplayString($props.minValue), 1)]),
485
+ }, 8, ["color", "size"])) : createCommentVNode("", true), createTextVNode(), $props.type === "dot" ? (openBlock(), createBlock(_component_Dot, {
486
+ key: 1,
487
+ color: $props.dotColor,
488
+ "data-test-id": "infoText_dot"
489
+ }, null, 8, ["color"])) : !$props.noIcon ? (openBlock(), createBlock(_component_IconComponent, {
490
+ key: 2,
491
+ color: $props.iconColor || $options.computedIconColor,
492
+ cursor: $props.isDisabled ? "not-allowed" : "pointer",
493
+ disabled: $props.isDisabled,
494
+ "hovered-color": $props.iconColor || $options.computedIconColor,
495
+ name: $props.iconName,
496
+ size: $props.size
497
+ }, null, 8, ["color", "cursor", "disabled", "hovered-color", "name", "size"])) : createCommentVNode("", true), createTextVNode(), $props.labelText && $props.labelAlign === "right" ? (openBlock(), createBlock(_component_LabelWrapper, {
498
+ key: 3,
499
+ color: $props.iconColor || $options.computedIconColor,
500
+ size: $props.labelSize
501
+ }, {
502
+ default: withCtx(() => [createTextVNode(toDisplayString($props.labelText), 1)]),
207
503
  _: 1
208
- }), createTextVNode(), createVNode(_component_VerticalMarker, {
209
- side: "bottom"
210
- })]),
211
- _: 1
212
- }, 8, ["position"]), createTextVNode(), createVNode(_component_BottomValueContainer, {
213
- position: $options.maxPercent + "%"
504
+ }, 8, ["color", "size"])) : createCommentVNode("", true)], 64)) : createCommentVNode("", true), createTextVNode(), renderSlot(_ctx.$slots, "trigger")]),
505
+ _: 3
506
+ }, 8, ["background-color", "border-radius", "hovered-icon", "is-active", "is-disabled", "padding"])], 512), createTextVNode(), $setup.isVisible && !!$props.text ? (openBlock(), createBlock(Teleport, {
507
+ key: 0,
508
+ to: "body"
509
+ }, [createVNode(_component_TextWrapper, {
510
+ "data-test-id": "info_text_wrapper",
511
+ style: normalizeStyle($setup.wrapperStyle)
214
512
  }, {
215
- default: withCtx(() => [createVNode(_component_TextWrapper, null, {
216
- default: withCtx(() => [createTextVNode(toDisplayString($props.maxValue), 1)]),
217
- _: 1
218
- }), createTextVNode(), createVNode(_component_VerticalMarker, {
219
- side: "bottom"
220
- })]),
221
- _: 1
222
- }, 8, ["position"])]),
223
- _: 1
224
- }, 8, ["width"]);
513
+ default: withCtx(() => [createVNode(_component_TextOverlay, {
514
+ ref: "infoBox",
515
+ "app-theme": $props.appTheme,
516
+ image: $props.image,
517
+ style: normalizeStyle($setup.boxStyle),
518
+ width: $setup.infoBoxWidth
519
+ }, {
520
+ default: withCtx(() => [$props.image ? (openBlock(), createBlock(_component_OverlayImage, {
521
+ key: 0,
522
+ ref: "infoImage",
523
+ alt: "Info Image",
524
+ src: $props.image,
525
+ onLoad: $setup.onImageLoad
526
+ }, null, 8, ["src", "onLoad"])) : createCommentVNode("", true), createTextVNode(), !$props.hideInfoText ? (openBlock(), createElementBlock("span", {
527
+ key: 1,
528
+ ref: "textContent",
529
+ style: normalizeStyle($setup.textStyle)
530
+ }, [renderSlot(_ctx.$slots, "default", {}, () => [createBaseVNode("span", {
531
+ innerHTML: $props.text
532
+ }, null, 8, _hoisted_2)])], 4)) : createCommentVNode("", true)]),
533
+ _: 3
534
+ }, 8, ["app-theme", "image", "style", "width"]), createTextVNode()]),
535
+ _: 3
536
+ }, 8, ["style"])])) : createCommentVNode("", true)]),
537
+ _: 3
538
+ }, 8, ["type"]);
225
539
  }
226
- const PanelRangeInfo = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
540
+ const InfoText = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
227
541
  export {
228
- PanelRangeInfo as default
542
+ InfoText as default
229
543
  };