master-components-react-ts 1.0.11 → 1.0.12

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 (129) hide show
  1. package/dist/master-components-react-ts.cjs.js +950 -7
  2. package/dist/master-components-react-ts.es.js +3137 -30
  3. package/package.json +2 -1
  4. package/dist/master-components-react-ts.cjs10.js +0 -30
  5. package/dist/master-components-react-ts.cjs11.js +0 -5
  6. package/dist/master-components-react-ts.cjs12.js +0 -24
  7. package/dist/master-components-react-ts.cjs13.js +0 -65
  8. package/dist/master-components-react-ts.cjs14.js +0 -55
  9. package/dist/master-components-react-ts.cjs15.js +0 -4
  10. package/dist/master-components-react-ts.cjs16.js +0 -30
  11. package/dist/master-components-react-ts.cjs17.js +0 -4
  12. package/dist/master-components-react-ts.cjs18.js +0 -14
  13. package/dist/master-components-react-ts.cjs19.js +0 -13
  14. package/dist/master-components-react-ts.cjs2.js +0 -21
  15. package/dist/master-components-react-ts.cjs20.js +0 -11
  16. package/dist/master-components-react-ts.cjs21.js +0 -17
  17. package/dist/master-components-react-ts.cjs22.js +0 -9
  18. package/dist/master-components-react-ts.cjs23.js +0 -12
  19. package/dist/master-components-react-ts.cjs24.js +0 -9
  20. package/dist/master-components-react-ts.cjs25.js +0 -7
  21. package/dist/master-components-react-ts.cjs26.js +0 -7
  22. package/dist/master-components-react-ts.cjs27.js +0 -9
  23. package/dist/master-components-react-ts.cjs28.js +0 -7
  24. package/dist/master-components-react-ts.cjs29.js +0 -5
  25. package/dist/master-components-react-ts.cjs3.js +0 -40
  26. package/dist/master-components-react-ts.cjs30.js +0 -24
  27. package/dist/master-components-react-ts.cjs31.js +0 -5
  28. package/dist/master-components-react-ts.cjs32.js +0 -13
  29. package/dist/master-components-react-ts.cjs33.js +0 -8
  30. package/dist/master-components-react-ts.cjs34.js +0 -5
  31. package/dist/master-components-react-ts.cjs35.js +0 -14
  32. package/dist/master-components-react-ts.cjs36.js +0 -11
  33. package/dist/master-components-react-ts.cjs37.js +0 -13
  34. package/dist/master-components-react-ts.cjs38.js +0 -11
  35. package/dist/master-components-react-ts.cjs39.js +0 -10
  36. package/dist/master-components-react-ts.cjs4.js +0 -44
  37. package/dist/master-components-react-ts.cjs40.js +0 -12
  38. package/dist/master-components-react-ts.cjs41.js +0 -8
  39. package/dist/master-components-react-ts.cjs42.js +0 -8
  40. package/dist/master-components-react-ts.cjs43.js +0 -8
  41. package/dist/master-components-react-ts.cjs44.js +0 -35
  42. package/dist/master-components-react-ts.cjs45.js +0 -24
  43. package/dist/master-components-react-ts.cjs46.js +0 -19
  44. package/dist/master-components-react-ts.cjs47.js +0 -66
  45. package/dist/master-components-react-ts.cjs48.js +0 -8
  46. package/dist/master-components-react-ts.cjs49.js +0 -183
  47. package/dist/master-components-react-ts.cjs5.js +0 -8
  48. package/dist/master-components-react-ts.cjs50.js +0 -14
  49. package/dist/master-components-react-ts.cjs51.js +0 -7
  50. package/dist/master-components-react-ts.cjs52.js +0 -11
  51. package/dist/master-components-react-ts.cjs53.js +0 -3
  52. package/dist/master-components-react-ts.cjs54.js +0 -12
  53. package/dist/master-components-react-ts.cjs55.js +0 -68
  54. package/dist/master-components-react-ts.cjs56.js +0 -9
  55. package/dist/master-components-react-ts.cjs57.js +0 -9
  56. package/dist/master-components-react-ts.cjs58.js +0 -5
  57. package/dist/master-components-react-ts.cjs59.js +0 -3
  58. package/dist/master-components-react-ts.cjs6.js +0 -11
  59. package/dist/master-components-react-ts.cjs60.js +0 -18
  60. package/dist/master-components-react-ts.cjs61.js +0 -8
  61. package/dist/master-components-react-ts.cjs62.js +0 -8
  62. package/dist/master-components-react-ts.cjs63.js +0 -3
  63. package/dist/master-components-react-ts.cjs64.js +0 -3
  64. package/dist/master-components-react-ts.cjs7.js +0 -112
  65. package/dist/master-components-react-ts.cjs8.js +0 -11
  66. package/dist/master-components-react-ts.cjs9.js +0 -42
  67. package/dist/master-components-react-ts.es10.js +0 -116
  68. package/dist/master-components-react-ts.es11.js +0 -10
  69. package/dist/master-components-react-ts.es12.js +0 -57
  70. package/dist/master-components-react-ts.es13.js +0 -172
  71. package/dist/master-components-react-ts.es14.js +0 -211
  72. package/dist/master-components-react-ts.es15.js +0 -8
  73. package/dist/master-components-react-ts.es16.js +0 -74
  74. package/dist/master-components-react-ts.es17.js +0 -12
  75. package/dist/master-components-react-ts.es18.js +0 -56
  76. package/dist/master-components-react-ts.es19.js +0 -36
  77. package/dist/master-components-react-ts.es2.js +0 -72
  78. package/dist/master-components-react-ts.es20.js +0 -26
  79. package/dist/master-components-react-ts.es21.js +0 -62
  80. package/dist/master-components-react-ts.es22.js +0 -15
  81. package/dist/master-components-react-ts.es23.js +0 -41
  82. package/dist/master-components-react-ts.es24.js +0 -15
  83. package/dist/master-components-react-ts.es25.js +0 -29
  84. package/dist/master-components-react-ts.es26.js +0 -26
  85. package/dist/master-components-react-ts.es27.js +0 -15
  86. package/dist/master-components-react-ts.es28.js +0 -7
  87. package/dist/master-components-react-ts.es29.js +0 -7
  88. package/dist/master-components-react-ts.es3.js +0 -144
  89. package/dist/master-components-react-ts.es30.js +0 -74
  90. package/dist/master-components-react-ts.es31.js +0 -15
  91. package/dist/master-components-react-ts.es32.js +0 -31
  92. package/dist/master-components-react-ts.es33.js +0 -13
  93. package/dist/master-components-react-ts.es34.js +0 -8
  94. package/dist/master-components-react-ts.es35.js +0 -19
  95. package/dist/master-components-react-ts.es36.js +0 -16
  96. package/dist/master-components-react-ts.es37.js +0 -19
  97. package/dist/master-components-react-ts.es38.js +0 -16
  98. package/dist/master-components-react-ts.es39.js +0 -35
  99. package/dist/master-components-react-ts.es4.js +0 -149
  100. package/dist/master-components-react-ts.es40.js +0 -41
  101. package/dist/master-components-react-ts.es41.js +0 -16
  102. package/dist/master-components-react-ts.es42.js +0 -16
  103. package/dist/master-components-react-ts.es43.js +0 -16
  104. package/dist/master-components-react-ts.es44.js +0 -66
  105. package/dist/master-components-react-ts.es45.js +0 -59
  106. package/dist/master-components-react-ts.es46.js +0 -50
  107. package/dist/master-components-react-ts.es47.js +0 -129
  108. package/dist/master-components-react-ts.es48.js +0 -17
  109. package/dist/master-components-react-ts.es49.js +0 -437
  110. package/dist/master-components-react-ts.es5.js +0 -20
  111. package/dist/master-components-react-ts.es50.js +0 -32
  112. package/dist/master-components-react-ts.es51.js +0 -20
  113. package/dist/master-components-react-ts.es52.js +0 -29
  114. package/dist/master-components-react-ts.es53.js +0 -4
  115. package/dist/master-components-react-ts.es54.js +0 -41
  116. package/dist/master-components-react-ts.es55.js +0 -274
  117. package/dist/master-components-react-ts.es56.js +0 -15
  118. package/dist/master-components-react-ts.es57.js +0 -15
  119. package/dist/master-components-react-ts.es58.js +0 -8
  120. package/dist/master-components-react-ts.es59.js +0 -4
  121. package/dist/master-components-react-ts.es6.js +0 -54
  122. package/dist/master-components-react-ts.es60.js +0 -83
  123. package/dist/master-components-react-ts.es61.js +0 -13
  124. package/dist/master-components-react-ts.es62.js +0 -13
  125. package/dist/master-components-react-ts.es63.js +0 -4
  126. package/dist/master-components-react-ts.es64.js +0 -4
  127. package/dist/master-components-react-ts.es7.js +0 -336
  128. package/dist/master-components-react-ts.es8.js +0 -46
  129. package/dist/master-components-react-ts.es9.js +0 -153
@@ -1,336 +0,0 @@
1
- import { j as jsxRuntimeExports } from "./master-components-react-ts.es17.js";
2
- import { useState, useRef, useEffect } from "react";
3
- import style from "./master-components-react-ts.es30.js";
4
- import FormInput from "./master-components-react-ts.es3.js";
5
- import Checkbox from "./master-components-react-ts.es6.js";
6
- import { _filterUnique } from "./master-components-react-ts.es31.js";
7
- import { IconClose } from "./master-components-react-ts.es32.js";
8
- import { IconArrowUp } from "./master-components-react-ts.es33.js";
9
- import { IconCloseCircle } from "./master-components-react-ts.es22.js";
10
- const Dropdown = ({
11
- data,
12
- withFilter = true,
13
- withClose = true,
14
- disableAll = false,
15
- withMultiselect = false,
16
- selectedOptionID,
17
- withInput = false,
18
- dropdownType = "country",
19
- onSelect,
20
- onFocus,
21
- onBlur,
22
- onValueChange,
23
- customInputSlot,
24
- dropdownWrapperStyle,
25
- dropdownInputWrapperStyle,
26
- dropdownInputSlotStyle,
27
- dropdownInputSlotItemStyle,
28
- dropdownInputSlotItemLabelStyle,
29
- dropdownInputSlotItemCloseStyle,
30
- dropdownInputSlotItemMoreStyle,
31
- dropdownItemStyle,
32
- dropdownItemLabelStyle,
33
- itemCheckboxStyle,
34
- dropdownItemLabelTextStyle,
35
- dropdownListStyle,
36
- ...rest
37
- }) => {
38
- const [Flag, setFlag] = useState(false);
39
- const [InputValue, setInputValue] = useState("");
40
- const [SelectAllKey, setSelectAllKey] = useState(false);
41
- const [ClickedSelectAll, setClickedSelectAll] = useState(false);
42
- const [IsFocused, setIsFocused] = useState(false);
43
- const DropdownRef = useRef(null);
44
- const ComponentRef = useRef(null);
45
- const ListRef = useRef(null);
46
- const ListItemRef = useRef(null);
47
- const [Data, setData] = useState([]);
48
- const SelectedData = useRef([]);
49
- const SelectedDataLength = useRef(0);
50
- const [SearchValue, setSearchValue] = useState("");
51
- const [SingleSelectValue, setSingleSelectValue] = useState(null);
52
- const getFlagIconUrl = (code) => {
53
- return `https://flagsapi.com/${code}/flat/64.png`;
54
- };
55
- const SelectItem = (object) => {
56
- object.selected = !object.selected;
57
- if (!withMultiselect) {
58
- onSelect?.(object);
59
- return;
60
- }
61
- SelectedData.current = [...SelectedData.current, ...Data.filter((el) => el.selected == true), ...Data.filter((el) => el.id === object.id)];
62
- SelectedData.current = _filterUnique(SelectedData.current, "id").filter((el) => el.selected).filter((el) => el.id !== "SELECT_ALL");
63
- if (object.id === "SELECT_ALL") {
64
- setSelectAllKey(object.selected);
65
- setClickedSelectAll(true);
66
- } else {
67
- setSelectAllKey(false);
68
- onSelect?.(SelectedData.current);
69
- setClickedSelectAll(false);
70
- }
71
- setFlag((state) => !state);
72
- };
73
- const SingleSelect = (object) => {
74
- setSingleSelectValue(object);
75
- onSelect?.(object);
76
- setIsFocused(false);
77
- };
78
- const Focus = () => {
79
- onFocus?.();
80
- };
81
- const CalculatePos = () => {
82
- const componentEl = ComponentRef.current;
83
- const dropdownEl = DropdownRef.current;
84
- if (!dropdownEl || !componentEl) return;
85
- const componentRect = componentEl.getBoundingClientRect();
86
- const windowHeight = window.innerHeight;
87
- dropdownEl.style.position = "fixed";
88
- dropdownEl.style.width = componentRect.width + "px";
89
- dropdownEl.style.left = `${componentRect.left + window.pageXOffset}px`;
90
- if (componentRect.bottom + dropdownEl.offsetHeight > windowHeight) {
91
- dropdownEl.style.top = `${window.scrollY + componentRect.top - dropdownEl.offsetHeight + 18}px`;
92
- dropdownEl.style.bottom = "unset";
93
- } else {
94
- dropdownEl.style.top = `${window.scrollY + componentRect.bottom + 8}px`;
95
- dropdownEl.style.bottom = "unset";
96
- }
97
- };
98
- useEffect(() => {
99
- CalculatePos();
100
- }, [DropdownRef, IsFocused]);
101
- useEffect(() => {
102
- SelectedData.current = data.filter((el) => el.selected);
103
- if (!withMultiselect) {
104
- setData(data);
105
- return;
106
- }
107
- const hasSelected = data.some((el) => "selected" in el);
108
- const firstItem = { id: "SELECT_ALL", label: "Select All", selected: SelectAllKey };
109
- if (hasSelected) {
110
- setData([firstItem, ...data]);
111
- } else {
112
- data.forEach((el) => {
113
- el.selected = false;
114
- });
115
- setData([firstItem, ...data]);
116
- }
117
- }, [JSON.stringify(data)]);
118
- useEffect(() => {
119
- if (!withMultiselect) return;
120
- if (!data.every((el) => el.selected)) {
121
- setSelectAllKey(false);
122
- }
123
- }, [SelectedData.current.length]);
124
- useEffect(() => {
125
- if (!withMultiselect && selectedOptionID) {
126
- setSingleSelectValue(data.find((el) => el.id === selectedOptionID));
127
- }
128
- }, [selectedOptionID]);
129
- useEffect(() => {
130
- if (!withMultiselect) return;
131
- if (Data.length > 0 && ClickedSelectAll) {
132
- const updated = Data.map((el) => {
133
- if (el.id === "SELECT_ALL") return { ...el, selected: SelectAllKey };
134
- if (el.disabled) return el;
135
- return { ...el, selected: SelectAllKey };
136
- });
137
- setData(updated);
138
- data.forEach((el) => {
139
- if (el.id === "SELECT_ALL") {
140
- el.selected = SelectAllKey;
141
- } else if (!el.disabled) {
142
- el.selected = SelectAllKey;
143
- }
144
- });
145
- SelectedData.current = updated.filter((el) => el.selected && el.id !== "SELECT_ALL");
146
- onSelect?.(SelectedData.current);
147
- }
148
- }, [Flag]);
149
- useEffect(() => {
150
- const ClickHandler = (event) => {
151
- if (!ComponentRef.current) return;
152
- if (event.composedPath().includes(ComponentRef.current)) return;
153
- setIsFocused(false);
154
- };
155
- const ScrollHandler = (event) => {
156
- if (!ComponentRef.current || !ListRef.current) return;
157
- if (ListRef.current.contains(event.target)) return;
158
- setIsFocused(false);
159
- };
160
- document.addEventListener("click", ClickHandler);
161
- document.addEventListener("wheel", ScrollHandler);
162
- return () => {
163
- document.removeEventListener("click", ClickHandler);
164
- document.removeEventListener("wheel", ScrollHandler);
165
- };
166
- }, []);
167
- useEffect(() => {
168
- if (!withMultiselect) return;
169
- const calculateSelectedLength = () => {
170
- const rect = ComponentRef.current?.getBoundingClientRect();
171
- if (!rect) return;
172
- const width = rect.width;
173
- if (width <= 150) SelectedDataLength.current = 0;
174
- else if (width <= 250) SelectedDataLength.current = 1;
175
- else if (width <= 350) SelectedDataLength.current = 2;
176
- else if (width <= 450) SelectedDataLength.current = 3;
177
- else SelectedDataLength.current = 4;
178
- };
179
- calculateSelectedLength();
180
- window.addEventListener("resize", calculateSelectedLength);
181
- return () => window.removeEventListener("resize", calculateSelectedLength);
182
- }, []);
183
- const isInitialRender = useRef(true);
184
- useEffect(() => {
185
- if (isInitialRender.current) {
186
- isInitialRender.current = false;
187
- return;
188
- }
189
- if (!IsFocused) {
190
- onBlur?.();
191
- }
192
- }, [IsFocused]);
193
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: `${style.dropdownWrapper}`, style: dropdownWrapperStyle ?? {}, children: [
194
- /* @__PURE__ */ jsxRuntimeExports.jsx(
195
- "div",
196
- {
197
- ref: ComponentRef,
198
- className: style.dropdownInputWrapper,
199
- style: dropdownInputWrapperStyle ?? {},
200
- onClick: () => (setIsFocused((state) => !state), CalculatePos()),
201
- onFocus: Focus,
202
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(
203
- FormInput,
204
- {
205
- ...rest,
206
- onFocusChange: (value) => setIsFocused(value),
207
- customFocus: IsFocused,
208
- withActive: false,
209
- value: withInput ? InputValue : SingleSelectValue?.label ?? "",
210
- onChange: (value) => {
211
- setInputValue(value);
212
- onValueChange?.(value);
213
- },
214
- toggleFocus: true,
215
- formInputStyle: { cursor: withInput ? "text" : "pointer" },
216
- leftSlot: withInput && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: style.dropdownInputSlot, children: [
217
- dropdownType === "currency" ? /* @__PURE__ */ jsxRuntimeExports.jsx("p", { children: SingleSelectValue?.label }) : /* @__PURE__ */ jsxRuntimeExports.jsx("img", { src: getFlagIconUrl(SingleSelectValue?.code), alt: "flag" }),
218
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `${style.dropdownRightIconArrow} ${IsFocused ? style.focused : ""}`, children: /* @__PURE__ */ jsxRuntimeExports.jsx(IconArrowUp, {}) })
219
- ] }),
220
- rightSlot: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: `${style.dropdownRightIcon} ${IsFocused ? style.focused : ""}`, children: [
221
- (withInput ? InputValue : !withMultiselect && SingleSelectValue) && /* @__PURE__ */ jsxRuntimeExports.jsx(
222
- "div",
223
- {
224
- onClick: (e) => {
225
- e.stopPropagation();
226
- if (withInput) {
227
- setInputValue("");
228
- setIsFocused(false);
229
- } else {
230
- setSingleSelectValue(null);
231
- }
232
- },
233
- className: style.dropdownRightIconClose,
234
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(IconCloseCircle, {})
235
- }
236
- ),
237
- !withInput && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: style.dropdownRightIconArrow, children: /* @__PURE__ */ jsxRuntimeExports.jsx(IconArrowUp, {}) })
238
- ] }),
239
- readOnly: !withInput,
240
- forDropdown: true,
241
- inputSlotStyle: { width: "100%" },
242
- inputSlot: withMultiselect && SelectedData.current.length > 0 ? customInputSlot || /* @__PURE__ */ jsxRuntimeExports.jsxs("ul", { className: style.dropdownInputSlot, style: dropdownInputSlotStyle ?? {}, children: [
243
- SelectedData.current.slice(0, SelectedDataLength.current).map((el, index) => {
244
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(
245
- "li",
246
- {
247
- ref: ListItemRef,
248
- className: style.dropdownInputSlotItem,
249
- style: dropdownInputSlotItemStyle ?? {},
250
- onClick: (e) => e.stopPropagation(),
251
- children: [
252
- /* @__PURE__ */ jsxRuntimeExports.jsx("p", { title: el.label, className: style.dropdownInputSlotItemLabel, style: dropdownInputSlotItemLabelStyle ?? {}, children: el.customLabel ? el.customLabel(el) : el.label }),
253
- /* @__PURE__ */ jsxRuntimeExports.jsx(
254
- "div",
255
- {
256
- style: dropdownInputSlotItemCloseStyle ?? {},
257
- className: style.dropdownInputSlotItemClose,
258
- onClick: (e) => {
259
- e.stopPropagation();
260
- SelectItem(el);
261
- },
262
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(IconClose, { width: "16", height: "16", viewBox: "0 0 16 16", stroke: "#95969C" })
263
- }
264
- )
265
- ]
266
- },
267
- index
268
- );
269
- }),
270
- SelectedData.current.length > SelectedDataLength.current && /* @__PURE__ */ jsxRuntimeExports.jsx("li", { className: `${style.dropdownInputSlotItem} ${style.dropdownInputSlotItemMore}`, style: dropdownInputSlotItemMoreStyle ?? {}, children: /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: style.dropdownInputSlotItemLabel, style: dropdownInputSlotItemLabelStyle ?? {}, children: `+${SelectedData.current.length - SelectedDataLength.current}` }) })
271
- ] }) : null
272
- }
273
- )
274
- }
275
- ),
276
- data && data.length > 0 && IsFocused && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { ref: DropdownRef, onClick: (e) => e.stopPropagation(), className: style.dropdownListContainer, children: [
277
- withFilter && /* @__PURE__ */ jsxRuntimeExports.jsx(
278
- FormInput,
279
- {
280
- placeholder: "Search",
281
- searchComponent: true,
282
- withFocus: false,
283
- withActive: false,
284
- value: SearchValue,
285
- onChange: (value) => setSearchValue(value)
286
- }
287
- ),
288
- /* @__PURE__ */ jsxRuntimeExports.jsx("ul", { onClick: (e) => e.stopPropagation(), className: style.dropdownList, ref: ListRef, style: dropdownListStyle ?? {}, children: Data.filter((item) => item?.label?.toLowerCase().includes(SearchValue.toLowerCase())).map((item, index) => {
289
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(
290
- "li",
291
- {
292
- style: { ...dropdownItemStyle, cursor: !withMultiselect && item?.disabled ? "not-allowed" : "pointer" },
293
- className: `${style.dropdownItem} ${!withMultiselect && SingleSelectValue?.id === item.id ? style.selected : ""} ${!item?.label || item.label === void 0 || disableAll || item?.disabled ? style.disabled : ""} ${!withMultiselect && !item?.disabled ? style.hovered : ""}`,
294
- onClick: (e) => {
295
- e.stopPropagation();
296
- if (!withMultiselect && !item?.disabled) {
297
- SingleSelect(item);
298
- }
299
- },
300
- children: [
301
- withMultiselect && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: style.itemCheckbox, style: itemCheckboxStyle ?? {}, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
302
- Checkbox,
303
- {
304
- multipleChecked: item.id === "SELECT_ALL",
305
- disabled: disableAll || item?.disabled,
306
- checked: item?.selected,
307
- change: () => SelectItem(item)
308
- }
309
- ) }),
310
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: style.dropdownItemLabel, style: dropdownItemLabelStyle ?? {}, children: [
311
- withInput ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: style.dropdownItemLabelInput, children: [
312
- /* @__PURE__ */ jsxRuntimeExports.jsx("img", { src: getFlagIconUrl(item.code), style: { width: "1.375rem", height: "1.375rem", objectFit: "contain" }, alt: item.name }),
313
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { title: item.name, className: style.countryName, children: item.name || item.label }),
314
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: style.countryDialCode, children: dropdownType === "country" ? item.dialCode : item?.label })
315
- ] }) : /* @__PURE__ */ jsxRuntimeExports.jsx(
316
- "p",
317
- {
318
- title: typeof item.label === "string" ? item.label : "",
319
- className: `${item.id === "SELECT_ALL" ? style.selectAll : ""}`,
320
- style: dropdownItemLabelTextStyle ?? {},
321
- children: item.customLabel ? item.customLabel() : item.label
322
- }
323
- ),
324
- withMultiselect && /* @__PURE__ */ jsxRuntimeExports.jsx("p", { children: item.id === "SELECT_ALL" ? `${Data.filter((el) => el.id !== "SELECT_ALL" && el.selected).length}/${data.length}` : "" })
325
- ] })
326
- ]
327
- },
328
- index
329
- );
330
- }) }, Data.length)
331
- ] })
332
- ] });
333
- };
334
- export {
335
- Dropdown as default
336
- };
@@ -1,46 +0,0 @@
1
- import { j as jsxRuntimeExports } from "./master-components-react-ts.es17.js";
2
- import style from "./master-components-react-ts.es34.js";
3
- import { useState } from "react";
4
- import { useNamespace } from "./master-components-react-ts.es29.js";
5
- import { IconRadioChecked } from "./master-components-react-ts.es35.js";
6
- import { IconRadioUnchecked } from "./master-components-react-ts.es36.js";
7
- import { IconRadioCheckedDisabled } from "./master-components-react-ts.es37.js";
8
- import { IconRadioUncheckedDisabled } from "./master-components-react-ts.es38.js";
9
- const Radio = ({ checked, change, disabled, required, withUncheckState = false, radioType = "default" }) => {
10
- useNamespace();
11
- const [IsHovered, setIsHovered] = useState(false);
12
- const onChange = () => {
13
- if (!disabled) {
14
- if (withUncheckState) {
15
- change?.(!checked);
16
- } else {
17
- change?.(true);
18
- }
19
- }
20
- };
21
- const RadioIcon = () => {
22
- let icon = null;
23
- let color = disabled ? "#95969C" : radioType === "error" ? "#E3292F" : "#0058FF";
24
- if (checked) {
25
- if (disabled) {
26
- icon = /* @__PURE__ */ jsxRuntimeExports.jsx(IconRadioCheckedDisabled, { color });
27
- } else {
28
- icon = /* @__PURE__ */ jsxRuntimeExports.jsx(IconRadioChecked, { color });
29
- }
30
- } else {
31
- if (disabled) {
32
- icon = /* @__PURE__ */ jsxRuntimeExports.jsx(IconRadioUncheckedDisabled, { color });
33
- } else {
34
- icon = /* @__PURE__ */ jsxRuntimeExports.jsx(IconRadioUnchecked, { color });
35
- }
36
- }
37
- return icon;
38
- };
39
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: style.radioWrapper, style: { cursor: disabled ? "not-allowed" : "pointer" }, onClick: onChange, children: [
40
- /* @__PURE__ */ jsxRuntimeExports.jsx("input", { type: "radio", checked: true, readOnly: true, hidden: true, disabled: disabled ?? false, required }),
41
- RadioIcon()
42
- ] });
43
- };
44
- export {
45
- Radio as default
46
- };
@@ -1,153 +0,0 @@
1
- import { j as jsxRuntimeExports } from "./master-components-react-ts.es17.js";
2
- import { useRef, useState, useEffect } from "react";
3
- import style from "./master-components-react-ts.es39.js";
4
- const Tooltip = ({
5
- children,
6
- tooltipSlot,
7
- delay = 400,
8
- placement = "top",
9
- trigger = "hover",
10
- title,
11
- text,
12
- customText,
13
- tooltipContentStyle,
14
- tooltipTitlestyle,
15
- tooltipTextStyle,
16
- tooltipContainerStyle,
17
- pointerPosition = "10%",
18
- withPointer = false,
19
- theme,
20
- topCustomOffset = 0,
21
- bottomCustomOffset = 0,
22
- leftCustomOffset = 0,
23
- rightCustomOffset = 0,
24
- forceClose = false,
25
- onClick
26
- }) => {
27
- const ComponentRef = useRef(null);
28
- const TooltipRef = useRef(null);
29
- let timeout;
30
- const [Active, setActive] = useState(false);
31
- const hasContent = tooltipSlot || title || text || customText;
32
- const ShowTip = () => {
33
- if (trigger === "hover" && hasContent) {
34
- timeout = setTimeout(() => {
35
- setActive(true);
36
- }, delay);
37
- }
38
- };
39
- const HideTip = () => {
40
- if (trigger === "hover") {
41
- clearTimeout(timeout);
42
- setTimeout(() => {
43
- setActive(false);
44
- }, delay);
45
- }
46
- };
47
- const HandleActive = () => {
48
- if (trigger === "click") {
49
- onClick?.();
50
- setActive((state) => !state);
51
- }
52
- };
53
- const CalculatePos = () => {
54
- const componentEl = ComponentRef.current;
55
- const tooltipEl = TooltipRef.current;
56
- if (!tooltipEl || !componentEl) return;
57
- const componentRect = componentEl.getBoundingClientRect();
58
- tooltipEl.style.position = "fixed";
59
- switch (placement) {
60
- case "top":
61
- tooltipEl.style.top = `${componentRect.top - tooltipEl.offsetHeight - 8}px`;
62
- tooltipEl.style.left = `${componentRect.left + topCustomOffset}px`;
63
- break;
64
- case "bottom":
65
- tooltipEl.style.top = `${componentRect.bottom + 8}px`;
66
- tooltipEl.style.left = `${componentRect.left + bottomCustomOffset}px`;
67
- break;
68
- case "left":
69
- tooltipEl.style.top = `${componentRect.top + componentRect.height / 2 - tooltipEl.offsetHeight / 2}px`;
70
- tooltipEl.style.left = `${componentRect.left - tooltipEl.offsetWidth - 8 + leftCustomOffset}px`;
71
- break;
72
- case "right":
73
- tooltipEl.style.top = `${componentRect.top + componentRect.height / 2 - tooltipEl.offsetHeight / 2}px`;
74
- tooltipEl.style.left = `${componentRect.right + 8 + rightCustomOffset}px`;
75
- break;
76
- }
77
- };
78
- useEffect(() => {
79
- CalculatePos();
80
- }, [ComponentRef, Active, children, placement, tooltipSlot, customText, title, text]);
81
- useEffect(() => {
82
- const handleScroll = (e) => {
83
- const isInsideTooltip = ComponentRef.current?.contains(e.target);
84
- if (!isInsideTooltip) {
85
- setActive(false);
86
- }
87
- };
88
- const ClickHandler = (event) => {
89
- if (event.composedPath().includes(ComponentRef.current)) return;
90
- setActive(false);
91
- };
92
- document.addEventListener("click", ClickHandler);
93
- document.addEventListener("scroll", handleScroll, true);
94
- return () => {
95
- document.removeEventListener("scroll", handleScroll, true);
96
- document.removeEventListener("click", ClickHandler);
97
- };
98
- }, []);
99
- useEffect(() => {
100
- if (forceClose) {
101
- setActive(false);
102
- }
103
- }, [forceClose]);
104
- useEffect(() => {
105
- const element = TooltipRef.current;
106
- if (element) {
107
- element.style.setProperty("--pointer-position", `${pointerPosition}`);
108
- if (!withPointer) {
109
- element.classList.add(style.withoutPointer);
110
- }
111
- }
112
- }, [Active]);
113
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(
114
- "div",
115
- {
116
- ref: ComponentRef,
117
- className: `${theme === "dark" ? style.dark : ""} ${style.tooltipContainer}`,
118
- onClick: HandleActive,
119
- onMouseEnter: ShowTip,
120
- onMouseLeave: HideTip,
121
- style: tooltipContainerStyle ?? {},
122
- children: [
123
- children,
124
- Active && tooltipSlot ? /* @__PURE__ */ jsxRuntimeExports.jsx(
125
- "div",
126
- {
127
- style: tooltipContentStyle ?? {},
128
- onClick: (e) => e.stopPropagation(),
129
- ref: TooltipRef,
130
- className: `${style.tooltipContent} ${placement ? style[placement] : style.bottom}`,
131
- children: tooltipSlot
132
- }
133
- ) : Active && /* @__PURE__ */ jsxRuntimeExports.jsxs(
134
- "div",
135
- {
136
- style: tooltipContentStyle ?? {},
137
- onClick: (e) => e.stopPropagation(),
138
- ref: TooltipRef,
139
- className: `${style.tooltipContent} ${placement ? style[placement] : style.bottom}`,
140
- children: [
141
- customText && typeof customText === "string" && customText,
142
- title && title.length > 0 && typeof title === "string" && /* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: style.tooltipTitle, style: tooltipTitlestyle ?? {}, children: title }),
143
- text && text.length > 0 && typeof text === "string" && /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: style.tooltipText, style: tooltipTextStyle ?? {}, children: text })
144
- ]
145
- }
146
- )
147
- ]
148
- }
149
- );
150
- };
151
- export {
152
- Tooltip as default
153
- };