@eturnity/eturnity_reusable_components 8.26.4--EPDM-15979.3 → 8.26.4--EPDM-15979.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/dist/main.es23.js CHANGED
@@ -1,543 +1,252 @@
1
1
  import "./main.es3.js";
2
- import _sfc_main$1 from "./main.es15.js";
3
2
  import styled from "./main.es7.js";
4
- import theme from "./main.es8.js";
5
- import _export_sfc from "./main.es11.js";
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.es16.js";
8
- import { ref } from "./main.es19.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"};
17
- border-radius: 4px;
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
- }
33
- `;
34
- const PageContainer = styled("div")`
35
- display: ${(props) => props.type === "dot" ? "unset" : "inline-block"};
36
- position: relative;
37
- `;
38
- const TextWrapper = styled("div")`
39
- z-index: 9999999999;
40
- position: absolute;
41
- `;
42
- const OverlayImage = styled("img")`
43
- width: 100%;
44
- height: auto;
45
- `;
46
- const Dot = styled("div")`
47
- width: 5px;
48
- height: 5px;
49
- background-color: ${(props) => props.color};
50
- border-radius: 50%;
51
- `;
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
- }
77
- `;
78
- const LabelWrapperAttrs = {
79
- size: String,
80
- color: String
81
- };
82
- const LabelWrapper = styled("div", LabelWrapperAttrs)`
83
- font-size: ${(props) => props.size};
84
- color: ${(props) => props.color};
85
- `;
3
+ import { fetchIcon } from "./main.es24.js";
4
+ import { reactive } from "./main.es18.js";
5
+ import { computed, onMounted, watch, openBlock, createBlock, withCtx, createVNode, createElementVNode as createBaseVNode, createTextVNode, createCommentVNode } from "./main.es6.js";
6
+ import { toDisplayString } from "./main.es16.js";
7
+ const _hoisted_1 = ["innerHTML"];
86
8
  const _sfc_main = {
87
- name: "InfoText",
88
- components: {
89
- IconComponent: _sfc_main$1,
90
- TextOverlay,
91
- // Arrow,
92
- Dot,
93
- PageContainer,
94
- TextWrapper,
95
- OverlayImage,
96
- IconWrapper,
97
- LabelWrapper
98
- },
9
+ __name: "index",
99
10
  props: {
100
- text: {
101
- required: false,
102
- default: "",
103
- type: String
104
- },
105
- isActive: {
11
+ disabled: {
106
12
  required: false,
107
13
  default: false,
108
14
  type: Boolean
109
15
  },
110
- labelText: {
111
- required: false,
112
- default: "",
16
+ name: {
17
+ required: true,
113
18
  type: String
114
19
  },
115
- size: {
116
- type: String,
117
- default: "14px"
118
- },
119
- infoPosition: {
20
+ color: {
120
21
  required: false,
121
22
  default: null,
122
23
  type: String
123
24
  },
124
- maxWidth: {
125
- default: "400px",
25
+ hoveredColor: {
26
+ required: false,
27
+ default: null,
126
28
  type: String
127
29
  },
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)
30
+ size: {
31
+ required: false,
32
+ default: "30px",
33
+ type: String
137
34
  },
138
- image: {
35
+ width: {
139
36
  type: String,
37
+ required: false,
140
38
  default: ""
141
39
  },
142
- iconName: {
40
+ height: {
143
41
  type: String,
144
- default: "info"
42
+ required: false,
43
+ default: ""
145
44
  },
146
- iconColor: {
147
- type: String,
45
+ cursor: {
46
+ required: false,
148
47
  default: null,
149
- required: false
48
+ type: String
150
49
  },
151
- isDisabled: {
152
- type: Boolean,
50
+ isStriked: {
51
+ required: false,
153
52
  default: false,
154
- required: false
53
+ type: Boolean
155
54
  },
156
- dotColor: {
157
- type: String,
55
+ backgroundColor: {
158
56
  required: false,
159
- default: theme.semanticColors.blue[400]
57
+ default: null,
58
+ type: String
160
59
  },
161
- type: {
162
- type: String,
60
+ count: {
163
61
  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: {
174
- type: String,
175
- default: "right",
176
- required: false
177
- },
178
- backgroundColor: {
179
- type: String,
180
- default: "",
181
- required: false
62
+ default: 0,
63
+ type: Number
182
64
  },
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
65
+ animation: {
66
+ required: false,
67
+ default: "none",
68
+ type: String
202
69
  },
203
- noIcon: {
204
- type: Boolean,
205
- default: false,
206
- required: false
70
+ fillType: {
71
+ required: false,
72
+ default: "fill",
73
+ type: String
207
74
  },
208
- hoveredIcon: {
75
+ disableHover: {
209
76
  type: Boolean,
210
- default: false,
211
- required: false
77
+ default: false
212
78
  },
213
- hideInfoText: {
79
+ showCount: {
214
80
  type: Boolean,
215
- default: false,
216
- required: false
81
+ default: false
217
82
  }
218
83
  },
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;
304
- }
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 = !props.hideInfoText;
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();
336
- }
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";
351
- }
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";
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();
84
+ setup(__props) {
85
+ const props = __props;
86
+ const Wrapper = styled("div", {
87
+ height: String,
88
+ width: String,
89
+ disabled: Boolean,
90
+ cursor: String
91
+ })`
92
+ display: flex;
93
+ position: relative;
94
+ align-content: center;
95
+ justify-content: center;
96
+ width: ${(props2) => props2.width};
97
+ height: ${(props2) => props2.height};
98
+ min-width: ${(props2) => props2.width};
99
+ min-height: ${(props2) => props2.height};
100
+ cursor: ${(props2) => props2.disabled ? "not-allowed" : props2.cursor};
101
+ line-height: 0;
102
+ `;
103
+ const CountWrapper = styled("div")`
104
+ position: absolute;
105
+ top: -7px;
106
+ right: -7px;
107
+ background-color: ${({
108
+ theme
109
+ }) => theme.colors.red};
110
+ color: ${({
111
+ theme
112
+ }) => theme.colors.white};
113
+ border-radius: 100%;
114
+ width: 15px;
115
+ height: 15px;
116
+ display: flex;
117
+ justify-content: center;
118
+ align-items: center;
119
+ font-size: 10px;
120
+ `;
121
+ const StrikedLine = styled("div", {
122
+ color: String
123
+ })`
124
+ display: flex;
125
+ position: absolute;
126
+ bottom: 0;
127
+ left: 0;
128
+ align-content: center;
129
+ justify-content: center;
130
+ width: 143%;
131
+ height: 8%;
132
+ background-color: ${({
133
+ theme,
134
+ color
135
+ }) => theme.colors[color] || color};
136
+ min-height: 0;
137
+ line-height: 0;
138
+ transform-origin: 0% 100%;
139
+ transform: rotate(-45deg);
140
+ `;
141
+ const IconImageAttrs = {
142
+ color: String,
143
+ backgroundColor: String,
144
+ hoveredColor: String,
145
+ animation: String,
146
+ fillType: String,
147
+ disableHover: Boolean,
148
+ showCount: Boolean
393
149
  };
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();
150
+ const IconImage = styled("div", IconImageAttrs)`
151
+ animation: ${(props2) => props2.animation};
152
+ width: 100%;
153
+ svg {
154
+ width: 100%;
155
+ height: 100%;
156
+ background-color: ${(props2) => props2.backgroundColor ? props2.backgroundColor : "transparent"};
157
+ padding: ${(props2) => props2.backgroundColor ? "3px" : "0"};
158
+ border-radius: ${(props2) => props2.showCount ? "8px 0 0 8px" : props2.backgroundColor ? "8px" : "0"};
159
+ }
160
+ svg path:not(.fix, .isStrokePath) {
161
+ ${({
162
+ theme,
163
+ color,
164
+ fillType
165
+ }) => color && `${fillType}: ${theme.colors[color] || color};`}
166
+ }
167
+ svg .isStroke {
168
+ ${({
169
+ theme,
170
+ color
171
+ }) => color && `stroke: ${theme.colors[color] || color};`}
172
+ }
173
+ svg .isFill {
174
+ ${({
175
+ theme,
176
+ color
177
+ }) => color && `fill: ${theme.colors[color] || color};`}
178
+ }
179
+ svg .isStrokePath:not(.fix) {
180
+ ${({
181
+ theme,
182
+ color
183
+ }) => color && `stroke: ${theme.colors[color] || color};`}
184
+ }
185
+ ${(props2) => !props2.disableHover && `
186
+ &:hover svg path:not(.fix, .isStrokePath) {
187
+ ${`${props2.fillType}: ${props2.theme.colors[props2.hoveredColor] || props2.color};`}
188
+ &:hover svg isStrokePath:not(.fix) {
189
+ ${`stroke: ${props2.theme.colors[props2.hoveredColor] || props2.color};`}
190
+ }
191
+ &:hover + div {
192
+ background-color: ${props2.hoveredColor};
193
+ }
194
+ `}
195
+
196
+ @keyframes fade {
197
+ 50% {
198
+ opacity: 0.3;
416
199
  }
200
+ }
201
+ `;
202
+ const icon = reactive({
203
+ html: ""
417
204
  });
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
205
+ const loadSvg = async () => {
206
+ icon.html = await fetchIcon(props.name.toLowerCase());
436
207
  };
437
- },
438
- computed: {
439
- computedIconColor() {
440
- return this.buttonType === "error" ? theme.colors.red : theme.colors.mediumGray;
441
- }
442
- }
443
- };
444
- const _hoisted_1 = {
445
- ref: "icon",
446
- "data-test-id": "infoText_trigger"
447
- };
448
- const _hoisted_2 = ["innerHTML"];
449
- function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
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");
456
- const _component_TextWrapper = resolveComponent("TextWrapper");
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())
467
- }, {
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
475
- }, {
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
208
+ const counter = computed(() => props.count > 9 ? "9+" : props.count.toString());
209
+ onMounted(() => loadSvg());
210
+ watch(() => props.name, loadSvg);
211
+ return (_ctx, _cache) => {
212
+ return openBlock(), createBlock(Wrapper, {
213
+ cursor: __props.cursor,
214
+ "data-test-id": "icon_wrapper",
215
+ disabled: __props.disabled,
216
+ height: __props.height ? __props.height : __props.size,
217
+ width: __props.width ? __props.width : __props.size
482
218
  }, {
483
- default: withCtx(() => [createTextVNode(toDisplayString($props.labelText), 1)]),
484
- _: 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)]),
503
- _: 1
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(), !$props.hideInfoText && $setup.isVisible && (!!$props.text || _ctx.$slots.default) ? (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)
512
- }, {
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, {
219
+ default: withCtx(() => [createVNode(IconImage, {
220
+ animation: __props.animation,
221
+ "background-color": __props.backgroundColor,
222
+ color: __props.color,
223
+ "data-test-id": "icon_image",
224
+ "disable-hover": __props.disableHover,
225
+ "fill-type": __props.fillType,
226
+ "hovered-color": __props.hoveredColor,
227
+ "show-count": __props.showCount
228
+ }, {
229
+ default: withCtx(() => [createBaseVNode("i", {
230
+ "data-test-id": "icon_svg",
231
+ innerHTML: icon.html
232
+ }, null, 8, _hoisted_1)]),
233
+ _: 1
234
+ }, 8, ["animation", "background-color", "color", "disable-hover", "fill-type", "hovered-color", "show-count"]), createTextVNode(), __props.isStriked ? (openBlock(), createBlock(StrikedLine, {
521
235
  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", {
236
+ color: __props.color,
237
+ "data-test-id": "icon_striked_line"
238
+ }, null, 8, ["color"])) : createCommentVNode("", true), createTextVNode(), __props.count > 0 ? (openBlock(), createBlock(CountWrapper, {
527
239
  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"]);
539
- }
540
- const InfoText = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
240
+ "data-test-id": "icon_count"
241
+ }, {
242
+ default: withCtx(() => [createTextVNode(toDisplayString(counter.value), 1)]),
243
+ _: 1
244
+ })) : createCommentVNode("", true)]),
245
+ _: 1
246
+ }, 8, ["cursor", "disabled", "height", "width"]);
247
+ };
248
+ }
249
+ };
541
250
  export {
542
- InfoText as default
251
+ _sfc_main as default
543
252
  };