@eturnity/eturnity_reusable_components 8.31.6-dev-03-elisee-8.37.0 → 8.31.6-dev-03-elisee-8.37.1

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.es17.js CHANGED
@@ -1,229 +1,252 @@
1
- import styled from "./main.es7.js";
2
1
  import "./main.es3.js";
3
- import _export_sfc from "./main.es11.js";
4
- import { resolveComponent, openBlock, createBlock, withCtx, createVNode, createTextVNode } from "./main.es6.js";
5
- import { toDisplayString } from "./main.es24.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;
36
- border-radius: 4px;
37
- color: white;
38
- `;
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;
45
- `;
46
- const Arrow = styled("div", {
47
- backgroundColor: String
48
- })`
49
- 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
- `;
58
- const MainLine = styled.div`
59
- display: block;
60
- position: absolute;
61
- bottom: 16px;
62
- height: 4px;
63
- width: 100%;
64
- border-radius: 4px;
65
- background-color: ${(props) => props.theme.colors.grey4};
66
- `;
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;
78
- `;
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;
87
- `;
88
- const VerticalMarkerArrow = styled("div", {
89
- 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;
98
- `;
2
+ import styled from "./main.es7.js";
3
+ import { fetchIcon } from "./main.es27.js";
4
+ import { reactive } from "./main.es19.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"];
99
8
  const _sfc_main = {
100
- name: "ProgressBar",
101
- components: {
102
- Container,
103
- MainLineHighlight,
104
- Arrow,
105
- TopValueContainer,
106
- BottomValueContainer,
107
- MainLine,
108
- VerticalMarker,
109
- VerticalMarkerArrow,
110
- TextWrapper
111
- },
9
+ __name: "index",
112
10
  props: {
113
- minValue: {
114
- required: true,
115
- type: Number
11
+ disabled: {
12
+ required: false,
13
+ default: false,
14
+ type: Boolean
116
15
  },
117
- maxValue: {
16
+ name: {
118
17
  required: true,
119
- type: Number
18
+ type: String
120
19
  },
121
- value: {
122
- required: true,
123
- type: Number
20
+ color: {
21
+ required: false,
22
+ default: null,
23
+ type: String
124
24
  },
125
- arrowColor: {
25
+ hoveredColor: {
126
26
  required: false,
127
- type: String,
128
- default: "white"
27
+ default: null,
28
+ type: String
29
+ },
30
+ size: {
31
+ required: false,
32
+ default: "30px",
33
+ type: String
129
34
  },
130
35
  width: {
36
+ type: String,
131
37
  required: false,
38
+ default: ""
39
+ },
40
+ height: {
132
41
  type: String,
133
- default: null
134
- }
135
- },
136
- data() {
137
- return {};
138
- },
139
- computed: {
140
- minPercent() {
141
- if (this.maxValue === this.minValue) {
142
- return 50;
143
- } else {
144
- return 30;
145
- }
42
+ required: false,
43
+ default: ""
146
44
  },
147
- maxPercent() {
148
- if (this.maxValue === this.minValue) {
149
- return 50;
150
- } else {
151
- return 70;
152
- }
45
+ cursor: {
46
+ required: false,
47
+ default: null,
48
+ type: String
153
49
  },
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);
160
- }
161
- return Math.max(0, Math.min(100, percent));
50
+ isStriked: {
51
+ required: false,
52
+ default: false,
53
+ type: Boolean
54
+ },
55
+ backgroundColor: {
56
+ required: false,
57
+ default: null,
58
+ type: String
59
+ },
60
+ count: {
61
+ required: false,
62
+ default: 0,
63
+ type: Number
64
+ },
65
+ animation: {
66
+ required: false,
67
+ default: "none",
68
+ type: String
69
+ },
70
+ fillType: {
71
+ required: false,
72
+ default: "fill",
73
+ type: String
74
+ },
75
+ disableHover: {
76
+ type: Boolean,
77
+ default: false
162
78
  },
163
- colorVerticalMarkerArrow() {
164
- if (this.value < this.maxValue && this.value > this.minValue) {
165
- return "black";
166
- } else {
167
- return "white";
79
+ showCount: {
80
+ type: Boolean,
81
+ default: false
82
+ }
83
+ },
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
149
+ };
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;
168
199
  }
169
200
  }
170
- }
171
- };
172
- function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
173
- const _component_MainLine = resolveComponent("MainLine");
174
- const _component_MainLineHighlight = resolveComponent("MainLineHighlight");
175
- 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
184
- }, {
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 + "%"
190
- }, {
191
- default: withCtx(() => [createVNode(_component_TextWrapper, {
192
- "background-color": $props.arrowColor
201
+ `;
202
+ const icon = reactive({
203
+ html: ""
204
+ });
205
+ const loadSvg = async () => {
206
+ icon.html = await fetchIcon(props.name.toLowerCase());
207
+ };
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
193
218
  }, {
194
- default: withCtx(() => [createTextVNode(toDisplayString($props.value), 1)]),
195
- _: 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)]),
207
- _: 1
208
- }), createTextVNode(), createVNode(_component_VerticalMarker, {
209
- side: "bottom"
210
- })]),
211
- _: 1
212
- }, 8, ["position"]), createTextVNode(), createVNode(_component_BottomValueContainer, {
213
- position: $options.maxPercent + "%"
214
- }, {
215
- default: withCtx(() => [createVNode(_component_TextWrapper, null, {
216
- default: withCtx(() => [createTextVNode(toDisplayString($props.maxValue), 1)]),
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, {
235
+ key: 0,
236
+ color: __props.color,
237
+ "data-test-id": "icon_striked_line"
238
+ }, null, 8, ["color"])) : createCommentVNode("", true), createTextVNode(), __props.count > 0 ? (openBlock(), createBlock(CountWrapper, {
239
+ key: 1,
240
+ "data-test-id": "icon_count"
241
+ }, {
242
+ default: withCtx(() => [createTextVNode(toDisplayString(counter.value), 1)]),
243
+ _: 1
244
+ })) : createCommentVNode("", true)]),
217
245
  _: 1
218
- }), createTextVNode(), createVNode(_component_VerticalMarker, {
219
- side: "bottom"
220
- })]),
221
- _: 1
222
- }, 8, ["position"])]),
223
- _: 1
224
- }, 8, ["width"]);
225
- }
226
- const PanelRangeInfo = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
246
+ }, 8, ["cursor", "disabled", "height", "width"]);
247
+ };
248
+ }
249
+ };
227
250
  export {
228
- PanelRangeInfo as default
251
+ _sfc_main as default
229
252
  };