master-components-react-ts 1.0.9 → 1.0.11

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 (132) hide show
  1. package/dist/index.d.ts +15 -14
  2. package/dist/master-components-react-ts.cjs.js +10 -45
  3. package/dist/master-components-react-ts.cjs10.js +30 -0
  4. package/dist/master-components-react-ts.cjs11.js +5 -0
  5. package/dist/master-components-react-ts.cjs12.js +24 -0
  6. package/dist/master-components-react-ts.cjs13.js +65 -0
  7. package/dist/master-components-react-ts.cjs14.js +55 -0
  8. package/dist/master-components-react-ts.cjs15.js +4 -0
  9. package/dist/master-components-react-ts.cjs16.js +30 -0
  10. package/dist/master-components-react-ts.cjs17.js +4 -0
  11. package/dist/master-components-react-ts.cjs18.js +14 -0
  12. package/dist/master-components-react-ts.cjs19.js +13 -0
  13. package/dist/master-components-react-ts.cjs2.js +21 -0
  14. package/dist/master-components-react-ts.cjs20.js +11 -0
  15. package/dist/master-components-react-ts.cjs21.js +17 -0
  16. package/dist/master-components-react-ts.cjs22.js +9 -0
  17. package/dist/master-components-react-ts.cjs23.js +12 -0
  18. package/dist/master-components-react-ts.cjs24.js +9 -0
  19. package/dist/master-components-react-ts.cjs25.js +7 -0
  20. package/dist/master-components-react-ts.cjs26.js +7 -0
  21. package/dist/master-components-react-ts.cjs27.js +9 -0
  22. package/dist/master-components-react-ts.cjs28.js +7 -0
  23. package/dist/master-components-react-ts.cjs29.js +5 -0
  24. package/dist/master-components-react-ts.cjs3.js +40 -0
  25. package/dist/master-components-react-ts.cjs30.js +24 -0
  26. package/dist/master-components-react-ts.cjs31.js +5 -0
  27. package/dist/master-components-react-ts.cjs32.js +13 -0
  28. package/dist/master-components-react-ts.cjs33.js +8 -0
  29. package/dist/master-components-react-ts.cjs34.js +5 -0
  30. package/dist/master-components-react-ts.cjs35.js +14 -0
  31. package/dist/master-components-react-ts.cjs36.js +11 -0
  32. package/dist/master-components-react-ts.cjs37.js +13 -0
  33. package/dist/master-components-react-ts.cjs38.js +11 -0
  34. package/dist/master-components-react-ts.cjs39.js +10 -0
  35. package/dist/master-components-react-ts.cjs4.js +44 -0
  36. package/dist/master-components-react-ts.cjs40.js +12 -0
  37. package/dist/master-components-react-ts.cjs41.js +8 -0
  38. package/dist/master-components-react-ts.cjs42.js +8 -0
  39. package/dist/master-components-react-ts.cjs43.js +8 -0
  40. package/dist/master-components-react-ts.cjs44.js +35 -0
  41. package/dist/master-components-react-ts.cjs45.js +24 -0
  42. package/dist/master-components-react-ts.cjs46.js +19 -0
  43. package/dist/master-components-react-ts.cjs47.js +66 -0
  44. package/dist/master-components-react-ts.cjs48.js +8 -0
  45. package/dist/master-components-react-ts.cjs49.js +183 -0
  46. package/dist/master-components-react-ts.cjs5.js +8 -0
  47. package/dist/master-components-react-ts.cjs50.js +14 -0
  48. package/dist/master-components-react-ts.cjs51.js +7 -0
  49. package/dist/master-components-react-ts.cjs52.js +11 -0
  50. package/dist/master-components-react-ts.cjs53.js +3 -0
  51. package/dist/master-components-react-ts.cjs54.js +12 -0
  52. package/dist/master-components-react-ts.cjs55.js +68 -0
  53. package/dist/master-components-react-ts.cjs56.js +9 -0
  54. package/dist/master-components-react-ts.cjs57.js +9 -0
  55. package/dist/master-components-react-ts.cjs58.js +5 -0
  56. package/dist/master-components-react-ts.cjs59.js +3 -0
  57. package/dist/master-components-react-ts.cjs6.js +11 -0
  58. package/dist/master-components-react-ts.cjs60.js +18 -0
  59. package/dist/master-components-react-ts.cjs61.js +8 -0
  60. package/dist/master-components-react-ts.cjs62.js +8 -0
  61. package/dist/master-components-react-ts.cjs63.js +3 -0
  62. package/dist/master-components-react-ts.cjs64.js +3 -0
  63. package/dist/master-components-react-ts.cjs7.js +112 -0
  64. package/dist/master-components-react-ts.cjs8.js +11 -0
  65. package/dist/master-components-react-ts.cjs9.js +42 -0
  66. package/dist/master-components-react-ts.es.js +31 -2543
  67. package/dist/master-components-react-ts.es10.js +116 -0
  68. package/dist/master-components-react-ts.es11.js +10 -0
  69. package/dist/master-components-react-ts.es12.js +57 -0
  70. package/dist/master-components-react-ts.es13.js +172 -0
  71. package/dist/master-components-react-ts.es14.js +211 -0
  72. package/dist/master-components-react-ts.es15.js +8 -0
  73. package/dist/master-components-react-ts.es16.js +74 -0
  74. package/dist/master-components-react-ts.es17.js +12 -0
  75. package/dist/master-components-react-ts.es18.js +56 -0
  76. package/dist/master-components-react-ts.es19.js +36 -0
  77. package/dist/master-components-react-ts.es2.js +72 -0
  78. package/dist/master-components-react-ts.es20.js +26 -0
  79. package/dist/master-components-react-ts.es21.js +62 -0
  80. package/dist/master-components-react-ts.es22.js +15 -0
  81. package/dist/master-components-react-ts.es23.js +41 -0
  82. package/dist/master-components-react-ts.es24.js +15 -0
  83. package/dist/master-components-react-ts.es25.js +29 -0
  84. package/dist/master-components-react-ts.es26.js +26 -0
  85. package/dist/master-components-react-ts.es27.js +15 -0
  86. package/dist/master-components-react-ts.es28.js +7 -0
  87. package/dist/master-components-react-ts.es29.js +7 -0
  88. package/dist/master-components-react-ts.es3.js +144 -0
  89. package/dist/master-components-react-ts.es30.js +74 -0
  90. package/dist/master-components-react-ts.es31.js +15 -0
  91. package/dist/master-components-react-ts.es32.js +31 -0
  92. package/dist/master-components-react-ts.es33.js +13 -0
  93. package/dist/master-components-react-ts.es34.js +8 -0
  94. package/dist/master-components-react-ts.es35.js +19 -0
  95. package/dist/master-components-react-ts.es36.js +16 -0
  96. package/dist/master-components-react-ts.es37.js +19 -0
  97. package/dist/master-components-react-ts.es38.js +16 -0
  98. package/dist/master-components-react-ts.es39.js +35 -0
  99. package/dist/master-components-react-ts.es4.js +149 -0
  100. package/dist/master-components-react-ts.es40.js +41 -0
  101. package/dist/master-components-react-ts.es41.js +16 -0
  102. package/dist/master-components-react-ts.es42.js +16 -0
  103. package/dist/master-components-react-ts.es43.js +16 -0
  104. package/dist/master-components-react-ts.es44.js +66 -0
  105. package/dist/master-components-react-ts.es45.js +59 -0
  106. package/dist/master-components-react-ts.es46.js +50 -0
  107. package/dist/master-components-react-ts.es47.js +129 -0
  108. package/dist/master-components-react-ts.es48.js +17 -0
  109. package/dist/master-components-react-ts.es49.js +437 -0
  110. package/dist/master-components-react-ts.es5.js +20 -0
  111. package/dist/master-components-react-ts.es50.js +32 -0
  112. package/dist/master-components-react-ts.es51.js +20 -0
  113. package/dist/master-components-react-ts.es52.js +29 -0
  114. package/dist/master-components-react-ts.es53.js +4 -0
  115. package/dist/master-components-react-ts.es54.js +41 -0
  116. package/dist/master-components-react-ts.es55.js +274 -0
  117. package/dist/master-components-react-ts.es56.js +15 -0
  118. package/dist/master-components-react-ts.es57.js +15 -0
  119. package/dist/master-components-react-ts.es58.js +8 -0
  120. package/dist/master-components-react-ts.es59.js +4 -0
  121. package/dist/master-components-react-ts.es6.js +54 -0
  122. package/dist/master-components-react-ts.es60.js +83 -0
  123. package/dist/master-components-react-ts.es61.js +13 -0
  124. package/dist/master-components-react-ts.es62.js +13 -0
  125. package/dist/master-components-react-ts.es63.js +4 -0
  126. package/dist/master-components-react-ts.es64.js +4 -0
  127. package/dist/master-components-react-ts.es7.js +336 -0
  128. package/dist/master-components-react-ts.es8.js +46 -0
  129. package/dist/master-components-react-ts.es9.js +153 -0
  130. package/package.json +11 -11
  131. package/dist/components/Tag/Tag.d.ts +0 -3
  132. package/dist/components/Tag/Tag.types.d.ts +0 -20
@@ -0,0 +1,116 @@
1
+ import { j as jsxRuntimeExports } from "./master-components-react-ts.es17.js";
2
+ import style from "./master-components-react-ts.es40.js";
3
+ import { IconCheckCircle } from "./master-components-react-ts.es41.js";
4
+ import { IconSave } from "./master-components-react-ts.es42.js";
5
+ import { IconTrash } from "./master-components-react-ts.es43.js";
6
+ import { useRef, useEffect } from "react";
7
+ import { IconCloseBlack } from "./master-components-react-ts.es32.js";
8
+ const Popup = ({
9
+ visible,
10
+ template,
11
+ options,
12
+ children,
13
+ onClickOutside,
14
+ onClose,
15
+ widthType,
16
+ // "horizontal"
17
+ modalOverlayStyle,
18
+ popupContainerStyle,
19
+ templateWrapperStyle,
20
+ popupHeaderStyle,
21
+ popupTitleStyle,
22
+ closeButtonStyle
23
+ }) => {
24
+ const _getType = () => {
25
+ if (!options || !options?.type) return;
26
+ switch (String(options?.type)) {
27
+ case "delete": {
28
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(IconTrash, {});
29
+ }
30
+ case "unsaved": {
31
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(IconSave, {});
32
+ }
33
+ case "success": {
34
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(IconCheckCircle, {});
35
+ }
36
+ }
37
+ };
38
+ const ClickClose = () => {
39
+ if (onClose && typeof onClose === "function") {
40
+ onClose();
41
+ }
42
+ };
43
+ const componentRef = useRef(null);
44
+ const handleClick = (event) => {
45
+ const clickedElement = event.target;
46
+ if (clickedElement === componentRef.current) {
47
+ if (onClickOutside && typeof onClickOutside === "function") {
48
+ onClickOutside();
49
+ }
50
+ }
51
+ };
52
+ useEffect(() => {
53
+ document.addEventListener("click", handleClick);
54
+ return () => {
55
+ document.removeEventListener("click", handleClick);
56
+ };
57
+ }, []);
58
+ return visible && /* @__PURE__ */ jsxRuntimeExports.jsx(
59
+ "div",
60
+ {
61
+ ref: componentRef,
62
+ style: modalOverlayStyle ?? {},
63
+ className: `
64
+ ${style.modalOverlay}
65
+ ${options && options?.mode === "drawer" ? style.popupDrawerMode : ""}
66
+ `,
67
+ children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
68
+ "div",
69
+ {
70
+ style: popupContainerStyle ?? {},
71
+ className: `
72
+ mcPopup_global
73
+ ${style.popupContainer}
74
+ ${options?.type ? style.withOptions : ""}
75
+ ${widthType === "horizontal" ? style.horizontal : ""}
76
+ `,
77
+ children: [
78
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: style.closeButton, style: closeButtonStyle ?? {}, onClick: ClickClose, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
79
+ IconCloseBlack,
80
+ {
81
+ color: "#131314"
82
+ }
83
+ ) }),
84
+ (options?.title || options?.description || options?.type) && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: `${style.popupHeader}`, style: popupHeaderStyle ?? {}, children: [
85
+ _getType() && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: style.typeIcon, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
86
+ "div",
87
+ {
88
+ style: { backgroundColor: options?.type === "success" ? "#DCFAE6" : options?.type === "unsaved" ? "#FEF0C7" : "#FEE4E2" },
89
+ className: style.icon,
90
+ children: _getType()
91
+ }
92
+ ) }),
93
+ options && options?.title && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: style.popupTitle, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("h2", { style: popupTitleStyle ?? {}, children: [
94
+ " ",
95
+ options?.title ?? "",
96
+ " "
97
+ ] }) }),
98
+ options && options?.description && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: style.popupDescription, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { children: [
99
+ " ",
100
+ options?.description ?? "",
101
+ " "
102
+ ] }) })
103
+ ] }),
104
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: style.templateWrapper, style: templateWrapperStyle ?? {}, children: [
105
+ template && template,
106
+ children && children
107
+ ] })
108
+ ]
109
+ }
110
+ )
111
+ }
112
+ );
113
+ };
114
+ export {
115
+ Popup as default
116
+ };
@@ -0,0 +1,10 @@
1
+ import { ToastContext } from "./master-components-react-ts.es12.js";
2
+ import { useContext } from "react";
3
+ const createNotificationToast = () => {
4
+ const context = useContext(ToastContext);
5
+ if (!context) throw new Error("createNotificationToast must be used within ToastProvider");
6
+ return context.showToast;
7
+ };
8
+ export {
9
+ createNotificationToast as default
10
+ };
@@ -0,0 +1,57 @@
1
+ import { j as jsxRuntimeExports } from "./master-components-react-ts.es17.js";
2
+ import { createContext, useState, useCallback } from "react";
3
+ import NotificationToast from "./master-components-react-ts.es44.js";
4
+ import style from "./master-components-react-ts.es45.js";
5
+ const ToastContext = createContext(null);
6
+ let idCounter = 0;
7
+ const ToastProvider = ({ children }) => {
8
+ const [toasts, setToasts] = useState([]);
9
+ const showToast = (props) => {
10
+ setToasts((prev) => {
11
+ const max = props.max ?? Infinity;
12
+ if (prev.length >= max) return prev;
13
+ const id = idCounter++;
14
+ setTimeout(() => {
15
+ setToasts((prev2) => prev2.filter((t) => t.id !== id));
16
+ }, props.timeout || 4e3);
17
+ return [...prev, { id, props }];
18
+ });
19
+ };
20
+ const getPosition = useCallback(() => {
21
+ if (toasts.length > 0) {
22
+ switch (toasts[0]?.props?.position) {
23
+ case "top-left":
24
+ return { top: "20px", left: "20px" };
25
+ case "top-right":
26
+ return { top: "20px", right: "20px" };
27
+ case "bottom-left":
28
+ return { bottom: "20px", left: "20px" };
29
+ case "bottom-right":
30
+ return { bottom: "20px", right: "20px" };
31
+ case "top-center":
32
+ return { top: "20px", left: "50%", transform: "translateX(-50%)" };
33
+ case "bottom-center":
34
+ return { bottom: "20px", left: "50%", transform: "translateX(-50%)" };
35
+ default:
36
+ return {};
37
+ }
38
+ }
39
+ }, [toasts.length]);
40
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(ToastContext.Provider, { value: { showToast }, children: [
41
+ children,
42
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: style.toastContainer, style: getPosition(), children: toasts.map(({ id, props }) => /* @__PURE__ */ jsxRuntimeExports.jsx(
43
+ NotificationToast,
44
+ {
45
+ ...props,
46
+ onClose: () => {
47
+ setToasts((prev) => prev.filter((t) => t.id !== id));
48
+ }
49
+ },
50
+ id
51
+ )) })
52
+ ] });
53
+ };
54
+ export {
55
+ ToastContext,
56
+ ToastProvider as default
57
+ };
@@ -0,0 +1,172 @@
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.es46.js";
4
+ import FormInput from "./master-components-react-ts.es3.js";
5
+ import { IconArrowUp } from "./master-components-react-ts.es33.js";
6
+ import { IconCloseCircle } from "./master-components-react-ts.es22.js";
7
+ import customParseFormat from "./master-components-react-ts.es47.js";
8
+ import dayjs from "dayjs";
9
+ import MainButton from "./master-components-react-ts.es2.js";
10
+ dayjs.extend(customParseFormat);
11
+ const TimePicker = ({
12
+ value,
13
+ defaultTimeType = "24",
14
+ defaultAmPm = "AM",
15
+ withConfirm = true,
16
+ mode = "single",
17
+ onChange,
18
+ onFocus,
19
+ onBlur,
20
+ ...rest
21
+ }) => {
22
+ const ComponentRef = useRef(null);
23
+ const DropdownRef = useRef(null);
24
+ const [IsFocused, setIsFocused] = useState(false);
25
+ const [TimeType, setTimeType] = useState(defaultTimeType);
26
+ const hours12 = Array.from({ length: 12 }, (_, index) => index < 10 ? `0${index}` : `${index}`);
27
+ const hours24 = Array.from({ length: 24 }, (_, index) => index < 10 ? `0${index}` : `${index}`);
28
+ const minutes = Array.from({ length: 60 }, (_, index) => index < 10 ? `0${index}` : `${index}`);
29
+ const [Value, setValue] = useState("");
30
+ const [Minutes, setMinutes] = useState(null);
31
+ const [Hours, setHours] = useState(null);
32
+ const [AmPm, setAmPm] = useState(defaultAmPm);
33
+ const CalculatePos = () => {
34
+ const componentEl = ComponentRef.current;
35
+ const dropdownEl = DropdownRef.current;
36
+ if (!dropdownEl || !componentEl) return;
37
+ const componentRect = componentEl.getBoundingClientRect();
38
+ const windowHeight = window.innerHeight;
39
+ dropdownEl.style.position = "fixed";
40
+ dropdownEl.style.left = `${componentRect.left + window.pageXOffset}px`;
41
+ if (componentRect.bottom + dropdownEl.offsetHeight > windowHeight) {
42
+ dropdownEl.style.top = `${window.scrollY + componentRect.top - dropdownEl.offsetHeight + 18}px`;
43
+ dropdownEl.style.bottom = "unset";
44
+ } else {
45
+ dropdownEl.style.top = `${window.scrollY + componentRect.bottom + 8}px`;
46
+ dropdownEl.style.bottom = "unset";
47
+ }
48
+ };
49
+ const Focus = () => {
50
+ onFocus?.();
51
+ };
52
+ const Clear = () => {
53
+ setValue("");
54
+ setHours(null);
55
+ setMinutes(null);
56
+ setAmPm("AM");
57
+ };
58
+ useEffect(() => {
59
+ if (value && value.length > 0) {
60
+ setValue(value);
61
+ }
62
+ }, [value]);
63
+ useEffect(() => {
64
+ if (!Hours && !Minutes) return;
65
+ const hour = parseInt(Hours ?? "0", 10);
66
+ const minute = parseInt(Minutes ?? "0", 10);
67
+ const adjustedHour = TimeType === "12" ? AmPm === "PM" && hour < 12 ? hour + 12 : AmPm === "AM" && hour === 12 ? 0 : hour : hour;
68
+ const formattedTime = dayjs().hour(adjustedHour).minute(minute).format(TimeType === "12" ? "hh:mm A" : "HH:mm");
69
+ setValue(formattedTime);
70
+ if (!withConfirm) {
71
+ onChange?.(formattedTime);
72
+ }
73
+ }, [Hours, Minutes, AmPm, TimeType]);
74
+ const isInitialRender = useRef(true);
75
+ useEffect(() => {
76
+ if (isInitialRender.current) {
77
+ isInitialRender.current = false;
78
+ return;
79
+ }
80
+ if (!IsFocused) {
81
+ onBlur?.();
82
+ }
83
+ }, [IsFocused]);
84
+ useEffect(() => {
85
+ CalculatePos();
86
+ }, [ComponentRef, IsFocused]);
87
+ useEffect(() => {
88
+ const ClickHandler = (event) => {
89
+ if (!ComponentRef.current || !DropdownRef.current) return;
90
+ if (event.composedPath().includes(ComponentRef.current) || event.composedPath().includes(DropdownRef.current)) return;
91
+ setIsFocused(false);
92
+ };
93
+ const ScrollHandler = (event) => {
94
+ if (!ComponentRef.current || DropdownRef.current) return;
95
+ setIsFocused(false);
96
+ };
97
+ document.addEventListener("click", ClickHandler);
98
+ document.addEventListener("wheel", ScrollHandler);
99
+ return () => {
100
+ document.removeEventListener("click", ClickHandler);
101
+ document.removeEventListener("wheel", ScrollHandler);
102
+ };
103
+ }, []);
104
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: `${style.timepickerWrapper} ${IsFocused ? style.focused : ""}`, children: [
105
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { ref: ComponentRef, className: style.timepickerInputWrapper, onClick: () => (setIsFocused((state) => !state), CalculatePos()), onFocus: Focus, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
106
+ FormInput,
107
+ {
108
+ ...rest,
109
+ onFocusChange: (value2) => setIsFocused(value2),
110
+ customFocus: IsFocused,
111
+ withActive: false,
112
+ value: Value,
113
+ toggleFocus: true,
114
+ formInputStyle: { cursor: "pointer" },
115
+ rightSlot: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: `${style.dropdownRightIcon} ${IsFocused ? style.focused : ""}`, children: [
116
+ Value && /* @__PURE__ */ jsxRuntimeExports.jsx(
117
+ "div",
118
+ {
119
+ onClick: (e) => {
120
+ e.stopPropagation();
121
+ Clear();
122
+ },
123
+ className: style.dropdownRightIconClose,
124
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(IconCloseCircle, {})
125
+ }
126
+ ),
127
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: style.dropdownRightIconArrow, children: /* @__PURE__ */ jsxRuntimeExports.jsx(IconArrowUp, {}) })
128
+ ] }),
129
+ readOnly: true,
130
+ forDropdown: true
131
+ }
132
+ ) }),
133
+ IsFocused && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { ref: DropdownRef, className: style.timepickerDropdownWrapper, children: [
134
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: style.timepickerDropdownHeader, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: style.timepickerDropdownHeaderButtons, children: [
135
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
136
+ "p",
137
+ {
138
+ className: TimeType === "12" ? style.active : "",
139
+ onClick: () => {
140
+ Clear();
141
+ setTimeType("12");
142
+ },
143
+ children: "AM -PM"
144
+ }
145
+ ),
146
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
147
+ "p",
148
+ {
149
+ className: TimeType === "24" ? style.active : "",
150
+ onClick: () => {
151
+ Clear();
152
+ setTimeType("24");
153
+ },
154
+ children: "24 Hours"
155
+ }
156
+ )
157
+ ] }) }),
158
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: style.timepickerDropdownBody, children: [
159
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: style.timepickerDropdownBodyHours, children: (TimeType === "12" ? hours12 : hours24).map((hour) => /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: Hours === hour || Value?.split(":")[0] === hour ? style.active : "", onClick: () => setHours(hour), children: hour }, hour)) }),
160
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: style.timepickerDropdownBodyMinutes, children: minutes.map((minute) => /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: Minutes === minute || Value?.split(":")[1] === minute ? style.active : "", onClick: () => setMinutes(minute), children: minute }, minute)) }),
161
+ TimeType === "12" && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: style.timepickerDropdownBodyAmPm, children: [
162
+ /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: AmPm === "AM" ? style.active : "", onClick: () => setAmPm("AM"), children: "AM" }, "AM"),
163
+ /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: AmPm === "PM" ? style.active : "", onClick: () => setAmPm("PM"), children: "PM" }, "PM")
164
+ ] })
165
+ ] }),
166
+ withConfirm && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: style.timepickerDropdownFooter, children: /* @__PURE__ */ jsxRuntimeExports.jsx(MainButton, { label: "Confirm time", onClick: () => onChange?.(Value) }) })
167
+ ] })
168
+ ] });
169
+ };
170
+ export {
171
+ TimePicker as default
172
+ };
@@ -0,0 +1,211 @@
1
+ import { j as jsxRuntimeExports } from "./master-components-react-ts.es17.js";
2
+ import { useState, useRef, useEffect } from "react";
3
+ import dayjs from "dayjs";
4
+ import style from "./master-components-react-ts.es48.js";
5
+ import Calendar from "./master-components-react-ts.es49.js";
6
+ import { IconCalendar } from "./master-components-react-ts.es50.js";
7
+ import customParseFormat from "./master-components-react-ts.es47.js";
8
+ import { useNamespace } from "./master-components-react-ts.es29.js";
9
+ import FormInput from "./master-components-react-ts.es3.js";
10
+ import { IconCloseCircle } from "./master-components-react-ts.es22.js";
11
+ dayjs.extend(customParseFormat);
12
+ const DatePicker = ({
13
+ defaultValue,
14
+ valueFormat = "DD-MM-YYYY",
15
+ onChange,
16
+ onBlur,
17
+ onFocus,
18
+ customYears,
19
+ fixedDropdown = true,
20
+ disabledDatesFrom,
21
+ disabledDatesTill,
22
+ disabledDatesRange,
23
+ datepickerStyle,
24
+ datepickerLabelStyle,
25
+ requiredStyle,
26
+ datepickerHelperTextStyle,
27
+ selectedStyle,
28
+ endDateStyle,
29
+ startDateStyle,
30
+ inRangeStyle,
31
+ otherMonthStyle,
32
+ todayStyle,
33
+ weekDayStyle,
34
+ quickPickStyle,
35
+ monthStyle,
36
+ quickPick,
37
+ mode = "single",
38
+ pickerType = "single",
39
+ disabled = false,
40
+ ...rest
41
+ }) => {
42
+ const namespace = useNamespace();
43
+ const [IsFocused, setIsFocused] = useState(false);
44
+ const [Value, setValue] = useState("");
45
+ const DefaultValue = useRef({ state: false, value: "" });
46
+ const CalendarRef = useRef(null);
47
+ const [CurrentMonth, setCurrentMonth] = useState(() => {
48
+ const thisYear = dayjs().year().toString();
49
+ if (customYears?.length) {
50
+ return customYears.includes(thisYear) ? dayjs() : dayjs(`${Math.min(...customYears.map(Number))}-01-01`);
51
+ }
52
+ return dayjs();
53
+ });
54
+ useEffect(() => {
55
+ const thisYear = dayjs().year().toString();
56
+ if (customYears?.length) {
57
+ setCurrentMonth(customYears.includes(thisYear) ? dayjs() : dayjs(`${Math.min(...customYears.map(Number))}-01-01`));
58
+ }
59
+ }, [customYears]);
60
+ const [SelectedDate, setSelectedDate] = useState("");
61
+ const [RangeSelection, setRangeSelection] = useState({
62
+ start: null,
63
+ end: null
64
+ });
65
+ const ComponentRef = useRef(null);
66
+ const Change = (value, singleQuickPick, withDefault) => {
67
+ let dateValue = "";
68
+ let objValue = { start: "", end: "" };
69
+ if (mode === "single" || typeof value === "string") {
70
+ dateValue = value;
71
+ setValue(dateValue);
72
+ }
73
+ if (mode !== "single" || typeof value !== "string") {
74
+ dateValue = `${dayjs(value?.start ?? "").format(valueFormat)} / ${value?.end ? dayjs(value?.end).format(valueFormat) : ""}`;
75
+ objValue.start = dayjs(value?.start ?? "").format(valueFormat);
76
+ objValue.end = value?.end ? dayjs(value?.end).format(valueFormat) : "";
77
+ setValue(dateValue);
78
+ }
79
+ if (value?.end) {
80
+ setIsFocused(false);
81
+ }
82
+ if (onChange && typeof onChange === "function" && !withDefault) {
83
+ onChange(objValue.start !== "" ? objValue : dateValue);
84
+ DefaultValue.current.value = objValue.start !== "" ? objValue : dateValue;
85
+ }
86
+ };
87
+ const Clear = (e) => {
88
+ e.stopPropagation();
89
+ setSelectedDate("");
90
+ DefaultValue.current.value = "";
91
+ setValue("");
92
+ setRangeSelection({
93
+ start: null,
94
+ end: null
95
+ });
96
+ if (onChange && typeof onChange === "function") {
97
+ onChange("");
98
+ }
99
+ };
100
+ const ClickHandler = (event) => {
101
+ if (!ComponentRef.current) return;
102
+ if (event.composedPath().includes(ComponentRef.current)) return;
103
+ setIsFocused(false);
104
+ };
105
+ const ScrollHandler = (event) => {
106
+ if (!ComponentRef.current || !CalendarRef.current) return;
107
+ if (event.composedPath().includes(ComponentRef.current) || event.composedPath().includes(CalendarRef.current)) return;
108
+ setIsFocused(false);
109
+ };
110
+ const CalculatePos = () => {
111
+ if (!ComponentRef.current || !CalendarRef.current) return;
112
+ const componentEl = ComponentRef.current;
113
+ const calendarEl = CalendarRef.current;
114
+ if (!calendarEl || !componentEl) return;
115
+ const componentRect = componentEl.getBoundingClientRect();
116
+ const windowHeight = window.innerHeight;
117
+ const windowWidth = window.innerWidth;
118
+ calendarEl.style.position = "fixed";
119
+ if (componentRect.bottom + calendarEl.offsetHeight > windowHeight) {
120
+ calendarEl.style.top = `${window.scrollY + componentRect.top - calendarEl.offsetHeight - 8}px`;
121
+ calendarEl.style.bottom = "unset";
122
+ } else {
123
+ calendarEl.style.top = `${window.scrollY + componentRect.bottom + 8}px`;
124
+ calendarEl.style.bottom = "unset";
125
+ }
126
+ if (componentRect.right + componentRect.width > windowWidth - 120) {
127
+ calendarEl.style.left = `${window.scrollX + componentRect.left + componentRect.width - calendarEl.offsetWidth}px`;
128
+ } else {
129
+ calendarEl.style.left = `${window.scrollX + componentRect.left}px`;
130
+ }
131
+ };
132
+ useEffect(() => {
133
+ if (defaultValue && DefaultValue.current.value === "") {
134
+ let value = Array.isArray(defaultValue) ? {
135
+ start: dayjs(defaultValue[0], valueFormat),
136
+ end: defaultValue.length > 1 ? dayjs(defaultValue[1], valueFormat) : ""
137
+ } : dayjs(defaultValue, valueFormat).format(valueFormat);
138
+ DefaultValue.current.value = defaultValue;
139
+ DefaultValue.current.state = true;
140
+ if (value) {
141
+ Change(value, false, true);
142
+ }
143
+ }
144
+ }, []);
145
+ useEffect(() => {
146
+ if (IsFocused) {
147
+ CalculatePos();
148
+ }
149
+ }, [CalendarRef, IsFocused]);
150
+ useEffect(() => {
151
+ document.addEventListener("click", ClickHandler);
152
+ document.addEventListener("wheel", ScrollHandler);
153
+ return () => {
154
+ document.removeEventListener("click", ClickHandler);
155
+ document.removeEventListener("wheel", ScrollHandler);
156
+ };
157
+ }, []);
158
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: `${namespace === "namespaceHr" ? style.namespaceHr : ""} ${style.datepickerContainer}`, children: [
159
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { ref: ComponentRef, className: style.datepickerInputWrapper, onClick: () => (setIsFocused((state) => !state), CalculatePos()), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
160
+ FormInput,
161
+ {
162
+ ...rest,
163
+ customFocus: IsFocused,
164
+ withActive: false,
165
+ value: Value,
166
+ toggleFocus: true,
167
+ formInputStyle: { cursor: "pointer" },
168
+ leftSlot: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: style.datepickerLeftIcon, children: /* @__PURE__ */ jsxRuntimeExports.jsx(IconCalendar, {}) }),
169
+ rightSlot: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `${style.datepickerRightIcon}`, onClick: Clear, children: Value && /* @__PURE__ */ jsxRuntimeExports.jsx(IconCloseCircle, {}) }),
170
+ readOnly: true
171
+ }
172
+ ) }),
173
+ IsFocused && /* @__PURE__ */ jsxRuntimeExports.jsx(
174
+ Calendar,
175
+ {
176
+ namespace,
177
+ defaultValue: DefaultValue.current,
178
+ CalendarRef,
179
+ disabledDatesFrom,
180
+ disabledDatesTill,
181
+ disabledDatesRange,
182
+ valueFormat,
183
+ onChange: (value) => Change(value, false, false),
184
+ customYears,
185
+ CurrentMonth,
186
+ setCurrentMonth,
187
+ SelectedDate,
188
+ setSelectedDate,
189
+ IsFocused,
190
+ setIsFocused,
191
+ quickPick,
192
+ mode,
193
+ RangeSelection,
194
+ setRangeSelection,
195
+ pickerType,
196
+ selectedStyle,
197
+ endDateStyle,
198
+ startDateStyle,
199
+ inRangeStyle,
200
+ otherMonthStyle,
201
+ todayStyle,
202
+ weekDayStyle,
203
+ quickPickStyle,
204
+ monthStyle
205
+ }
206
+ )
207
+ ] });
208
+ };
209
+ export {
210
+ DatePicker as default
211
+ };
@@ -0,0 +1,8 @@
1
+ import { j as jsxRuntimeExports } from "./master-components-react-ts.es17.js";
2
+ import style from "./master-components-react-ts.es51.js";
3
+ const Skeleton = ({ type = "text", customStyle, children }) => {
4
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: customStyle ?? {}, className: ` ${style.skeleton} ${style[type] || ""}`, children });
5
+ };
6
+ export {
7
+ Skeleton as default
8
+ };
@@ -0,0 +1,74 @@
1
+ import { j as jsxRuntimeExports } from "./master-components-react-ts.es17.js";
2
+ import style from "./master-components-react-ts.es52.js";
3
+ import { IconArrowUp } from "./master-components-react-ts.es33.js";
4
+ import { useState, useRef, useEffect } from "react";
5
+ const ActionDropdown = ({ title, data, onSelect }) => {
6
+ const [Collapsed, setCollapsed] = useState(false);
7
+ const DropdownRef = useRef(null);
8
+ const ListRef = useRef(null);
9
+ const [Selected, setSelected] = useState(null);
10
+ const HandleSelect = (item) => {
11
+ setSelected(item);
12
+ onSelect?.(item);
13
+ setCollapsed(false);
14
+ };
15
+ const CalculatePos = () => {
16
+ const componentEl = DropdownRef.current;
17
+ const dropdownEl = ListRef.current;
18
+ if (!dropdownEl || !componentEl) return;
19
+ const componentRect = componentEl.getBoundingClientRect();
20
+ const windowHeight = window.innerHeight;
21
+ dropdownEl.style.position = "fixed";
22
+ dropdownEl.style.width = componentRect.width + "px";
23
+ dropdownEl.style.left = `${componentRect.left + window.pageXOffset}px`;
24
+ if (componentRect.bottom + dropdownEl.offsetHeight > windowHeight) {
25
+ dropdownEl.style.top = `${window.scrollY + componentRect.top - dropdownEl.offsetHeight - 4}px`;
26
+ dropdownEl.style.bottom = "unset";
27
+ } else {
28
+ dropdownEl.style.top = `${window.scrollY + componentRect.bottom + 8}px`;
29
+ dropdownEl.style.bottom = "unset";
30
+ }
31
+ };
32
+ useEffect(() => {
33
+ CalculatePos();
34
+ }, [DropdownRef, Collapsed]);
35
+ useEffect(() => {
36
+ const ClickHandler = (event) => {
37
+ if (!DropdownRef.current) return;
38
+ if (event.composedPath().includes(DropdownRef.current)) return;
39
+ setCollapsed(false);
40
+ };
41
+ const ScrollHandler = (event) => {
42
+ if (!DropdownRef.current || !ListRef.current) return;
43
+ if (ListRef.current.contains(event.target)) return;
44
+ setCollapsed(false);
45
+ };
46
+ document.addEventListener("click", ClickHandler);
47
+ document.addEventListener("wheel", ScrollHandler);
48
+ return () => {
49
+ document.removeEventListener("click", ClickHandler);
50
+ document.removeEventListener("wheel", ScrollHandler);
51
+ };
52
+ }, []);
53
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: `${style.actionDropdownContainer} ${Collapsed ? style.collapsed : ""}`, children: [
54
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { ref: DropdownRef, className: style.actionDropdownContent, onClick: () => setCollapsed((state) => !state), children: [
55
+ /* @__PURE__ */ jsxRuntimeExports.jsx("p", { title, className: style.actionDropdownTitle, children: Selected?.label || title }),
56
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: style.actionDropdownIcon, children: /* @__PURE__ */ jsxRuntimeExports.jsx(IconArrowUp, { width: "10", height: "6", color: "#131314" }) })
57
+ ] }),
58
+ Collapsed && /* @__PURE__ */ jsxRuntimeExports.jsx("ul", { ref: ListRef, onClick: (e) => e.stopPropagation(), className: style.actionDropdownList, children: data.map((item) => /* @__PURE__ */ jsxRuntimeExports.jsx(
59
+ "li",
60
+ {
61
+ onClick: (e) => {
62
+ e.stopPropagation();
63
+ HandleSelect(item);
64
+ },
65
+ className: `${style.actionDropdownItem} ${Selected?.id === item.id ? style.selected : ""}`,
66
+ children: item.label
67
+ },
68
+ item.id
69
+ )) }, data.length)
70
+ ] });
71
+ };
72
+ export {
73
+ ActionDropdown as default
74
+ };
@@ -0,0 +1,12 @@
1
+ import { __module as jsxRuntime } from "./master-components-react-ts.es53.js";
2
+ import { __require as requireReactJsxRuntime_production } from "./master-components-react-ts.es54.js";
3
+ import { __require as requireReactJsxRuntime_development } from "./master-components-react-ts.es55.js";
4
+ if (process.env.NODE_ENV === "production") {
5
+ jsxRuntime.exports = requireReactJsxRuntime_production();
6
+ } else {
7
+ jsxRuntime.exports = requireReactJsxRuntime_development();
8
+ }
9
+ var jsxRuntimeExports = jsxRuntime.exports;
10
+ export {
11
+ jsxRuntimeExports as j
12
+ };