phx-react 1.3.1759 → 1.3.1760
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.
|
@@ -9,7 +9,8 @@ const PHXTabDate = ({ daysOfWeek = defaultDaysOfWeek, hideTodayButton = false, o
|
|
|
9
9
|
var _a;
|
|
10
10
|
const containerRef = (0, react_1.useRef)(null);
|
|
11
11
|
const [isScrollX, setIsScrollX] = (0, react_1.useState)(false);
|
|
12
|
-
//
|
|
12
|
+
// Ref để track lần đầu mount, tránh gọi onChangeTime khi init
|
|
13
|
+
const isFirstMount = (0, react_1.useRef)(true);
|
|
13
14
|
const buildDefaultTimeline = () => {
|
|
14
15
|
function getPreviousDays(baseDate, n) {
|
|
15
16
|
const result = [];
|
|
@@ -18,7 +19,7 @@ const PHXTabDate = ({ daysOfWeek = defaultDaysOfWeek, hideTodayButton = false, o
|
|
|
18
19
|
d.setDate(baseDate.getDate() - i);
|
|
19
20
|
const dayOfWeek = d.getDay();
|
|
20
21
|
result.push({
|
|
21
|
-
title: daysOfWeek[dayOfWeek],
|
|
22
|
+
title: daysOfWeek[dayOfWeek],
|
|
22
23
|
date: `${d.getDate()}/${d.getMonth() + 1}`,
|
|
23
24
|
time: d,
|
|
24
25
|
});
|
|
@@ -27,10 +28,9 @@ const PHXTabDate = ({ daysOfWeek = defaultDaysOfWeek, hideTodayButton = false, o
|
|
|
27
28
|
}
|
|
28
29
|
const today = new Date();
|
|
29
30
|
const past = getPreviousDays(today, 30);
|
|
30
|
-
// hôm nay vẫn giữ thứ
|
|
31
31
|
const todayDayOfWeek = today.getDay();
|
|
32
32
|
past.push({
|
|
33
|
-
title: daysOfWeek[todayDayOfWeek],
|
|
33
|
+
title: daysOfWeek[todayDayOfWeek],
|
|
34
34
|
date: `${today.getDate()}/${today.getMonth() + 1}`,
|
|
35
35
|
time: today,
|
|
36
36
|
});
|
|
@@ -46,14 +46,12 @@ const PHXTabDate = ({ daysOfWeek = defaultDaysOfWeek, hideTodayButton = false, o
|
|
|
46
46
|
function handleCheckActive(newActiveIndex) {
|
|
47
47
|
setActiveIndex(newActiveIndex);
|
|
48
48
|
}
|
|
49
|
-
// nút trái
|
|
50
49
|
const handlePrevClick = () => {
|
|
51
50
|
if (startIndex - 1 >= 0) {
|
|
52
51
|
setStartIndex((pre) => pre - 1);
|
|
53
52
|
}
|
|
54
53
|
handleCheckActive(activeIndex - 1);
|
|
55
54
|
};
|
|
56
|
-
// nút phải
|
|
57
55
|
const handleNextClick = () => {
|
|
58
56
|
if (startIndex + windowSize < timeline.length) {
|
|
59
57
|
setStartIndex((prev) => prev + 1);
|
|
@@ -61,13 +59,12 @@ const PHXTabDate = ({ daysOfWeek = defaultDaysOfWeek, hideTodayButton = false, o
|
|
|
61
59
|
handleCheckActive(activeIndex + 1);
|
|
62
60
|
};
|
|
63
61
|
const handleClickToday = () => {
|
|
64
|
-
// set lại activeIndex về hôm nay
|
|
65
62
|
setActiveIndex(todayIndex);
|
|
66
|
-
// tính lại startIndex
|
|
67
63
|
const newStartIndex = Math.max(todayIndex - (windowSize - 1), 0);
|
|
68
64
|
setStartIndex(newStartIndex);
|
|
69
65
|
onChangeTime === null || onChangeTime === void 0 ? void 0 : onChangeTime(new Date());
|
|
70
66
|
};
|
|
67
|
+
// Sync activeIndex khi selectedDate hoặc timeline thay đổi từ bên ngoài
|
|
71
68
|
(0, react_1.useEffect)(() => {
|
|
72
69
|
if (selectedDate) {
|
|
73
70
|
const selectedIndex = timeline.findIndex((t) => t.date === selectedDate);
|
|
@@ -87,6 +84,16 @@ const PHXTabDate = ({ daysOfWeek = defaultDaysOfWeek, hideTodayButton = false, o
|
|
|
87
84
|
setTodayIndex(newTodayIndex);
|
|
88
85
|
setStartIndex(Math.max(newTodayIndex - (windowSize - 1), 0));
|
|
89
86
|
}, [selectedDate, timeline.length]);
|
|
87
|
+
(0, react_1.useEffect)(() => {
|
|
88
|
+
const activeItem = timeline[activeIndex];
|
|
89
|
+
if (!activeItem || !onChangeTime)
|
|
90
|
+
return;
|
|
91
|
+
if (isFirstMount.current) {
|
|
92
|
+
isFirstMount.current = false;
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
onChangeTime(activeItem.time);
|
|
96
|
+
}, [(_a = timeline[activeIndex]) === null || _a === void 0 ? void 0 : _a.date, onChangeTime]);
|
|
90
97
|
(0, react_1.useEffect)(() => {
|
|
91
98
|
const el = containerRef.current;
|
|
92
99
|
if (!el)
|
|
@@ -101,60 +108,42 @@ const PHXTabDate = ({ daysOfWeek = defaultDaysOfWeek, hideTodayButton = false, o
|
|
|
101
108
|
window.removeEventListener('resize', checkScrollX);
|
|
102
109
|
};
|
|
103
110
|
}, []);
|
|
104
|
-
(0, react_1.useEffect)(() => {
|
|
105
|
-
var _a;
|
|
106
|
-
let timerId = null;
|
|
107
|
-
const time = (_a = timeline[activeIndex]) === null || _a === void 0 ? void 0 : _a.time;
|
|
108
|
-
if (time && onChangeTime) {
|
|
109
|
-
timerId = setTimeout(() => {
|
|
110
|
-
onChangeTime(time);
|
|
111
|
-
}, 200);
|
|
112
|
-
}
|
|
113
|
-
return () => {
|
|
114
|
-
if (timerId) {
|
|
115
|
-
clearTimeout(timerId);
|
|
116
|
-
}
|
|
117
|
-
};
|
|
118
|
-
}, [(_a = timeline[activeIndex]) === null || _a === void 0 ? void 0 : _a.title]);
|
|
119
111
|
return (react_1.default.createElement("div", null,
|
|
120
112
|
!hideTodayButton && (react_1.default.createElement(Button_1.PHXButton, { className: 'mb-3', iconPosition: 'before', onClick: handleClickToday, secondary: true, size: 'extra-micro', typeIcon: 'calendar' }, "H\u00F4m nay")),
|
|
121
113
|
react_1.default.createElement("div", { className: 'flex w-full items-start' },
|
|
122
114
|
!isHaveOnlyOneOption && (react_1.default.createElement("button", { style: {
|
|
123
115
|
height: isScrollX ? '58px' : '50px',
|
|
124
|
-
}, className: '\n
|
|
125
|
-
// chỉ check startIndex === 0 để disable
|
|
126
|
-
disabled: activeIndex === 0, onClick: handlePrevClick },
|
|
116
|
+
}, className: '\n mr-1 flex w-[1.875rem] flex-shrink-0 items-center justify-center \n rounded-lg border border-gray-300 bg-white hover:bg-gray-200\n disabled:cursor-not-allowed disabled:bg-gray-100 disabled:text-gray-400\n ', disabled: activeIndex === 0, onClick: handlePrevClick },
|
|
127
117
|
react_1.default.createElement("svg", { fill: 'none', height: '24', stroke: 'currentColor', viewBox: '0 0 24 24', width: '24', xmlns: 'http://www.w3.org/2000/svg', className: 'w-4 h-4' },
|
|
128
118
|
react_1.default.createElement("path", { d: 'M15 18L9 12L15 6', strokeLinecap: 'round', strokeLinejoin: 'round', strokeWidth: '2' })))),
|
|
129
119
|
react_1.default.createElement("style", null, `
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
`),
|
|
120
|
+
.scrollbar-thin::-webkit-scrollbar {
|
|
121
|
+
width: 8px;
|
|
122
|
+
height: 8px;
|
|
123
|
+
}
|
|
124
|
+
.scrollbar-thin::-webkit-scrollbar-thumb {
|
|
125
|
+
background: rgb(199 199 199);
|
|
126
|
+
border-radius: 16px;
|
|
127
|
+
border: 2px solid transparent;
|
|
128
|
+
background-clip: content-box;
|
|
129
|
+
}
|
|
130
|
+
.shadow-container {
|
|
131
|
+
box-shadow:
|
|
132
|
+
0rem 0.3125rem 0.3125rem -0.15625rem rgba(0, 0, 0, 0.03),
|
|
133
|
+
0rem 0.1875rem 0.1875rem -0.09375rem rgba(0, 0, 0, 0.02),
|
|
134
|
+
0rem 0.125rem 0.125rem -0.0625rem rgba(0, 0, 0, 0.02),
|
|
135
|
+
0rem 0.0625rem 0.0625rem -0.03125rem rgba(0, 0, 0, 0.03),
|
|
136
|
+
0rem 0.03125rem 0.03125rem 0rem rgba(0, 0, 0, 0.04),
|
|
137
|
+
0rem 0rem 0rem 0.0625rem rgba(0, 0, 0, 0.06);
|
|
138
|
+
}
|
|
139
|
+
`),
|
|
151
140
|
react_1.default.createElement("div", { ref: containerRef, className: (0, types_1.classNames)('overflow-x-auto scrollbar-thin rounded-lg shadow-container', isHaveOnlyOneOption ? 'w-[7.5rem]' : ' flex-1') },
|
|
152
141
|
react_1.default.createElement("div", { className: (0, types_1.classNames)('flex h-[3.125rem] overflow-y-hidden', isHaveOnlyOneOption ? 'w-[7.5rem]' : 'min-w-max') }, visibleDays.map((item, index) => {
|
|
153
142
|
const globalIndex = startIndex + index;
|
|
154
143
|
const isActive = activeIndex === globalIndex;
|
|
155
144
|
return (react_1.default.createElement("div", { key: globalIndex, className: 'w-full h-[3.125rem] min-w-[7.5rem]' },
|
|
156
|
-
react_1.default.createElement("button", { className:
|
|
157
|
-
h-full w-full
|
|
145
|
+
react_1.default.createElement("button", { className: `${index === 0 ? '' : 'border-l'}
|
|
146
|
+
h-full w-full border-gray-300 bg-white px-1.5 py-1 hover:bg-gray-100`, onClick: () => {
|
|
158
147
|
setActiveIndex(globalIndex);
|
|
159
148
|
} }, isActive ? (react_1.default.createElement("div", { className: 'flex h-full w-full flex-col items-center justify-center rounded-lg bg-gray-900 text-white' },
|
|
160
149
|
react_1.default.createElement("span", { className: 'text-xxs' }, item.title),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PHXTabDate.js","sourceRoot":"","sources":["../../../../src/components/TabDate/PHXTabDate.tsx"],"names":[],"mappings":";;;AAAA,uDAA0D;AAC1D,sCAAqC;AACrC,oCAAqC;AAkBrC,MAAM,iBAAiB,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;AAE5F,MAAM,UAAU,GAAG,CAAC,EAClB,UAAU,GAAG,iBAAiB,EAC9B,eAAe,GAAG,KAAK,EACvB,YAAY,EACZ,QAAQ,EAAE,YAAY,EACtB,UAAU,GAAG,CAAC,EACd,oBAAoB,GAAG,KAAK,EAC5B,YAAY,GACS,EAAE,EAAE;;IACzB,MAAM,YAAY,GAAG,IAAA,cAAM,EAAiB,IAAI,CAAC,CAAA;IACjD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"PHXTabDate.js","sourceRoot":"","sources":["../../../../src/components/TabDate/PHXTabDate.tsx"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,8 @@ const PHXTabDate = ({ daysOfWeek = defaultDaysOfWeek, hideTodayButton = false, o
|
|
|
6
6
|
var _a;
|
|
7
7
|
const containerRef = useRef(null);
|
|
8
8
|
const [isScrollX, setIsScrollX] = useState(false);
|
|
9
|
-
//
|
|
9
|
+
// Ref để track lần đầu mount, tránh gọi onChangeTime khi init
|
|
10
|
+
const isFirstMount = useRef(true);
|
|
10
11
|
const buildDefaultTimeline = () => {
|
|
11
12
|
function getPreviousDays(baseDate, n) {
|
|
12
13
|
const result = [];
|
|
@@ -15,7 +16,7 @@ const PHXTabDate = ({ daysOfWeek = defaultDaysOfWeek, hideTodayButton = false, o
|
|
|
15
16
|
d.setDate(baseDate.getDate() - i);
|
|
16
17
|
const dayOfWeek = d.getDay();
|
|
17
18
|
result.push({
|
|
18
|
-
title: daysOfWeek[dayOfWeek],
|
|
19
|
+
title: daysOfWeek[dayOfWeek],
|
|
19
20
|
date: `${d.getDate()}/${d.getMonth() + 1}`,
|
|
20
21
|
time: d,
|
|
21
22
|
});
|
|
@@ -24,10 +25,9 @@ const PHXTabDate = ({ daysOfWeek = defaultDaysOfWeek, hideTodayButton = false, o
|
|
|
24
25
|
}
|
|
25
26
|
const today = new Date();
|
|
26
27
|
const past = getPreviousDays(today, 30);
|
|
27
|
-
// hôm nay vẫn giữ thứ
|
|
28
28
|
const todayDayOfWeek = today.getDay();
|
|
29
29
|
past.push({
|
|
30
|
-
title: daysOfWeek[todayDayOfWeek],
|
|
30
|
+
title: daysOfWeek[todayDayOfWeek],
|
|
31
31
|
date: `${today.getDate()}/${today.getMonth() + 1}`,
|
|
32
32
|
time: today,
|
|
33
33
|
});
|
|
@@ -43,14 +43,12 @@ const PHXTabDate = ({ daysOfWeek = defaultDaysOfWeek, hideTodayButton = false, o
|
|
|
43
43
|
function handleCheckActive(newActiveIndex) {
|
|
44
44
|
setActiveIndex(newActiveIndex);
|
|
45
45
|
}
|
|
46
|
-
// nút trái
|
|
47
46
|
const handlePrevClick = () => {
|
|
48
47
|
if (startIndex - 1 >= 0) {
|
|
49
48
|
setStartIndex((pre) => pre - 1);
|
|
50
49
|
}
|
|
51
50
|
handleCheckActive(activeIndex - 1);
|
|
52
51
|
};
|
|
53
|
-
// nút phải
|
|
54
52
|
const handleNextClick = () => {
|
|
55
53
|
if (startIndex + windowSize < timeline.length) {
|
|
56
54
|
setStartIndex((prev) => prev + 1);
|
|
@@ -58,13 +56,12 @@ const PHXTabDate = ({ daysOfWeek = defaultDaysOfWeek, hideTodayButton = false, o
|
|
|
58
56
|
handleCheckActive(activeIndex + 1);
|
|
59
57
|
};
|
|
60
58
|
const handleClickToday = () => {
|
|
61
|
-
// set lại activeIndex về hôm nay
|
|
62
59
|
setActiveIndex(todayIndex);
|
|
63
|
-
// tính lại startIndex
|
|
64
60
|
const newStartIndex = Math.max(todayIndex - (windowSize - 1), 0);
|
|
65
61
|
setStartIndex(newStartIndex);
|
|
66
62
|
onChangeTime === null || onChangeTime === void 0 ? void 0 : onChangeTime(new Date());
|
|
67
63
|
};
|
|
64
|
+
// Sync activeIndex khi selectedDate hoặc timeline thay đổi từ bên ngoài
|
|
68
65
|
useEffect(() => {
|
|
69
66
|
if (selectedDate) {
|
|
70
67
|
const selectedIndex = timeline.findIndex((t) => t.date === selectedDate);
|
|
@@ -84,6 +81,16 @@ const PHXTabDate = ({ daysOfWeek = defaultDaysOfWeek, hideTodayButton = false, o
|
|
|
84
81
|
setTodayIndex(newTodayIndex);
|
|
85
82
|
setStartIndex(Math.max(newTodayIndex - (windowSize - 1), 0));
|
|
86
83
|
}, [selectedDate, timeline.length]);
|
|
84
|
+
useEffect(() => {
|
|
85
|
+
const activeItem = timeline[activeIndex];
|
|
86
|
+
if (!activeItem || !onChangeTime)
|
|
87
|
+
return;
|
|
88
|
+
if (isFirstMount.current) {
|
|
89
|
+
isFirstMount.current = false;
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
onChangeTime(activeItem.time);
|
|
93
|
+
}, [(_a = timeline[activeIndex]) === null || _a === void 0 ? void 0 : _a.date, onChangeTime]);
|
|
87
94
|
useEffect(() => {
|
|
88
95
|
const el = containerRef.current;
|
|
89
96
|
if (!el)
|
|
@@ -98,60 +105,42 @@ const PHXTabDate = ({ daysOfWeek = defaultDaysOfWeek, hideTodayButton = false, o
|
|
|
98
105
|
window.removeEventListener('resize', checkScrollX);
|
|
99
106
|
};
|
|
100
107
|
}, []);
|
|
101
|
-
useEffect(() => {
|
|
102
|
-
var _a;
|
|
103
|
-
let timerId = null;
|
|
104
|
-
const time = (_a = timeline[activeIndex]) === null || _a === void 0 ? void 0 : _a.time;
|
|
105
|
-
if (time && onChangeTime) {
|
|
106
|
-
timerId = setTimeout(() => {
|
|
107
|
-
onChangeTime(time);
|
|
108
|
-
}, 200);
|
|
109
|
-
}
|
|
110
|
-
return () => {
|
|
111
|
-
if (timerId) {
|
|
112
|
-
clearTimeout(timerId);
|
|
113
|
-
}
|
|
114
|
-
};
|
|
115
|
-
}, [(_a = timeline[activeIndex]) === null || _a === void 0 ? void 0 : _a.title]);
|
|
116
108
|
return (React.createElement("div", null,
|
|
117
109
|
!hideTodayButton && (React.createElement(PHXButton, { className: 'mb-3', iconPosition: 'before', onClick: handleClickToday, secondary: true, size: 'extra-micro', typeIcon: 'calendar' }, "H\u00F4m nay")),
|
|
118
110
|
React.createElement("div", { className: 'flex w-full items-start' },
|
|
119
111
|
!isHaveOnlyOneOption && (React.createElement("button", { style: {
|
|
120
112
|
height: isScrollX ? '58px' : '50px',
|
|
121
|
-
}, className: '\n
|
|
122
|
-
// chỉ check startIndex === 0 để disable
|
|
123
|
-
disabled: activeIndex === 0, onClick: handlePrevClick },
|
|
113
|
+
}, className: '\n mr-1 flex w-[1.875rem] flex-shrink-0 items-center justify-center \n rounded-lg border border-gray-300 bg-white hover:bg-gray-200\n disabled:cursor-not-allowed disabled:bg-gray-100 disabled:text-gray-400\n ', disabled: activeIndex === 0, onClick: handlePrevClick },
|
|
124
114
|
React.createElement("svg", { fill: 'none', height: '24', stroke: 'currentColor', viewBox: '0 0 24 24', width: '24', xmlns: 'http://www.w3.org/2000/svg', className: 'w-4 h-4' },
|
|
125
115
|
React.createElement("path", { d: 'M15 18L9 12L15 6', strokeLinecap: 'round', strokeLinejoin: 'round', strokeWidth: '2' })))),
|
|
126
116
|
React.createElement("style", null, `
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
`),
|
|
117
|
+
.scrollbar-thin::-webkit-scrollbar {
|
|
118
|
+
width: 8px;
|
|
119
|
+
height: 8px;
|
|
120
|
+
}
|
|
121
|
+
.scrollbar-thin::-webkit-scrollbar-thumb {
|
|
122
|
+
background: rgb(199 199 199);
|
|
123
|
+
border-radius: 16px;
|
|
124
|
+
border: 2px solid transparent;
|
|
125
|
+
background-clip: content-box;
|
|
126
|
+
}
|
|
127
|
+
.shadow-container {
|
|
128
|
+
box-shadow:
|
|
129
|
+
0rem 0.3125rem 0.3125rem -0.15625rem rgba(0, 0, 0, 0.03),
|
|
130
|
+
0rem 0.1875rem 0.1875rem -0.09375rem rgba(0, 0, 0, 0.02),
|
|
131
|
+
0rem 0.125rem 0.125rem -0.0625rem rgba(0, 0, 0, 0.02),
|
|
132
|
+
0rem 0.0625rem 0.0625rem -0.03125rem rgba(0, 0, 0, 0.03),
|
|
133
|
+
0rem 0.03125rem 0.03125rem 0rem rgba(0, 0, 0, 0.04),
|
|
134
|
+
0rem 0rem 0rem 0.0625rem rgba(0, 0, 0, 0.06);
|
|
135
|
+
}
|
|
136
|
+
`),
|
|
148
137
|
React.createElement("div", { ref: containerRef, className: classNames('overflow-x-auto scrollbar-thin rounded-lg shadow-container', isHaveOnlyOneOption ? 'w-[7.5rem]' : ' flex-1') },
|
|
149
138
|
React.createElement("div", { className: classNames('flex h-[3.125rem] overflow-y-hidden', isHaveOnlyOneOption ? 'w-[7.5rem]' : 'min-w-max') }, visibleDays.map((item, index) => {
|
|
150
139
|
const globalIndex = startIndex + index;
|
|
151
140
|
const isActive = activeIndex === globalIndex;
|
|
152
141
|
return (React.createElement("div", { key: globalIndex, className: 'w-full h-[3.125rem] min-w-[7.5rem]' },
|
|
153
|
-
React.createElement("button", { className:
|
|
154
|
-
h-full w-full
|
|
142
|
+
React.createElement("button", { className: `${index === 0 ? '' : 'border-l'}
|
|
143
|
+
h-full w-full border-gray-300 bg-white px-1.5 py-1 hover:bg-gray-100`, onClick: () => {
|
|
155
144
|
setActiveIndex(globalIndex);
|
|
156
145
|
} }, isActive ? (React.createElement("div", { className: 'flex h-full w-full flex-col items-center justify-center rounded-lg bg-gray-900 text-white' },
|
|
157
146
|
React.createElement("span", { className: 'text-xxs' }, item.title),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PHXTabDate.js","sourceRoot":"","sources":["../../../../src/components/TabDate/PHXTabDate.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAkBrC,MAAM,iBAAiB,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;AAE5F,MAAM,UAAU,GAAG,CAAC,EAClB,UAAU,GAAG,iBAAiB,EAC9B,eAAe,GAAG,KAAK,EACvB,YAAY,EACZ,QAAQ,EAAE,YAAY,EACtB,UAAU,GAAG,CAAC,EACd,oBAAoB,GAAG,KAAK,EAC5B,YAAY,GACS,EAAE,EAAE;;IACzB,MAAM,YAAY,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IACjD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"PHXTabDate.js","sourceRoot":"","sources":["../../../../src/components/TabDate/PHXTabDate.tsx"],"names":[],"mappings":"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"}
|