arengibook 3.1.5-datepicker → 3.1.6-datepicker
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/index.js +47 -43
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -13257,16 +13257,13 @@ var DatePicker = function DatePicker(_ref) {
|
|
|
13257
13257
|
var skipYearReposition = useRef(false);
|
|
13258
13258
|
var inputRef = useRef(null);
|
|
13259
13259
|
var calendarRef = useRef(null);
|
|
13260
|
-
var _useState13 = useState(
|
|
13260
|
+
var _useState13 = useState(false),
|
|
13261
13261
|
_useState14 = _slicedToArray$9(_useState13, 2);
|
|
13262
13262
|
_useState14[0];
|
|
13263
13263
|
_useState14[1];
|
|
13264
|
-
var
|
|
13265
|
-
_useState16 = _slicedToArray$9(_useState15, 2),
|
|
13266
|
-
isScrolling = _useState16[0];
|
|
13267
|
-
_useState16[1];
|
|
13268
|
-
var wheelCooldown = false;
|
|
13264
|
+
var wheelCooldown = useRef(false);
|
|
13269
13265
|
var scrollListenersRef = useRef([]);
|
|
13266
|
+
var panelWheelListenerRef = useRef(null);
|
|
13270
13267
|
var panelVisibleRef = useRef(false);
|
|
13271
13268
|
useEffect(function () {
|
|
13272
13269
|
setStory(datePickerStorie(dateFormat));
|
|
@@ -13400,17 +13397,20 @@ var DatePicker = function DatePicker(_ref) {
|
|
|
13400
13397
|
}
|
|
13401
13398
|
}, [valeur]);
|
|
13402
13399
|
addLocale(localLanguage, LOCALES[localLanguage]);
|
|
13400
|
+
var changeYear = function changeYear(delta) {
|
|
13401
|
+
setViewDate(function (prev) {
|
|
13402
|
+
var base = prev || new Date();
|
|
13403
|
+
var next = new Date(base.getTime());
|
|
13404
|
+
next.setFullYear(next.getFullYear() + delta);
|
|
13405
|
+
return next;
|
|
13406
|
+
});
|
|
13407
|
+
};
|
|
13403
13408
|
var headerTemplate = function headerTemplate() {
|
|
13404
13409
|
var current = viewDate || new Date();
|
|
13405
13410
|
var monthIndex = current.getMonth();
|
|
13406
13411
|
var year = current.getFullYear();
|
|
13407
13412
|
var localeConfig = LOCALES[localLanguage] || {};
|
|
13408
13413
|
var monthNames = localeConfig.monthNames || ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'];
|
|
13409
|
-
Array.from({
|
|
13410
|
-
length: 21
|
|
13411
|
-
}, function (_, i) {
|
|
13412
|
-
return year - 10 + i;
|
|
13413
|
-
});
|
|
13414
13414
|
var changeMonth = function changeMonth(delta) {
|
|
13415
13415
|
setViewDate(function (prev) {
|
|
13416
13416
|
var base = prev || new Date();
|
|
@@ -13419,40 +13419,9 @@ var DatePicker = function DatePicker(_ref) {
|
|
|
13419
13419
|
return next;
|
|
13420
13420
|
});
|
|
13421
13421
|
};
|
|
13422
|
-
var changeYear = function changeYear(delta) {
|
|
13423
|
-
setViewDate(function (prev) {
|
|
13424
|
-
var base = prev || new Date();
|
|
13425
|
-
var next = new Date(base.getTime());
|
|
13426
|
-
next.setFullYear(next.getFullYear() + delta);
|
|
13427
|
-
return next;
|
|
13428
|
-
});
|
|
13429
|
-
};
|
|
13430
13422
|
var handleArrowMouseDown = function handleArrowMouseDown(delta) {
|
|
13431
|
-
changeYear(delta);
|
|
13423
|
+
changeYear(delta);
|
|
13432
13424
|
};
|
|
13433
|
-
useEffect(function () {
|
|
13434
|
-
var yearContainerSingle = document.querySelector('.dp-year-container');
|
|
13435
|
-
var handleWheel = function handleWheel(e) {
|
|
13436
|
-
e.preventDefault();
|
|
13437
|
-
if (wheelCooldown) return;
|
|
13438
|
-
var delta = Math.sign(e.deltaY);
|
|
13439
|
-
changeYear(delta);
|
|
13440
|
-
wheelCooldown = true;
|
|
13441
|
-
setTimeout(function () {
|
|
13442
|
-
wheelCooldown = false;
|
|
13443
|
-
}, 120); // durée idéale après tests
|
|
13444
|
-
};
|
|
13445
|
-
if (yearContainerSingle) {
|
|
13446
|
-
yearContainerSingle.addEventListener('wheel', handleWheel, {
|
|
13447
|
-
passive: false
|
|
13448
|
-
});
|
|
13449
|
-
}
|
|
13450
|
-
return function () {
|
|
13451
|
-
if (yearContainerSingle) {
|
|
13452
|
-
yearContainerSingle.removeEventListener('wheel', handleWheel);
|
|
13453
|
-
}
|
|
13454
|
-
};
|
|
13455
|
-
}, [changeYear, isScrolling]);
|
|
13456
13425
|
var setMonthFromList = function setMonthFromList(index) {
|
|
13457
13426
|
setViewDate(function (prev) {
|
|
13458
13427
|
var base = prev || new Date();
|
|
@@ -13735,6 +13704,34 @@ var DatePicker = function DatePicker(_ref) {
|
|
|
13735
13704
|
var _calendarRef$current2;
|
|
13736
13705
|
var currentOverlay = (_calendarRef$current2 = calendarRef.current) === null || _calendarRef$current2 === void 0 ? void 0 : _calendarRef$current2.getOverlay();
|
|
13737
13706
|
if (!currentOverlay) return;
|
|
13707
|
+
|
|
13708
|
+
// Attache un listener wheel sur tout le panel overlay.
|
|
13709
|
+
// En mode mois/année ou année seule (.dp-monthyear-header présent),
|
|
13710
|
+
// bloque toute propagation du wheel vers les conteneurs parents
|
|
13711
|
+
// (popups, pages) et délègue le scroll d'années si la cible est
|
|
13712
|
+
// dans .dp-year-container.
|
|
13713
|
+
var panelWheelHandler = function panelWheelHandler(e) {
|
|
13714
|
+
var isMonthYearMode = currentOverlay.querySelector('.dp-monthyear-header');
|
|
13715
|
+
if (!isMonthYearMode) return;
|
|
13716
|
+
e.preventDefault();
|
|
13717
|
+
e.stopPropagation();
|
|
13718
|
+
var yearContainer = currentOverlay.querySelector('.dp-year-container');
|
|
13719
|
+
if (yearContainer && yearContainer.contains(e.target)) {
|
|
13720
|
+
if (wheelCooldown.current) return;
|
|
13721
|
+
changeYear(Math.sign(e.deltaY));
|
|
13722
|
+
wheelCooldown.current = true;
|
|
13723
|
+
setTimeout(function () {
|
|
13724
|
+
wheelCooldown.current = false;
|
|
13725
|
+
}, 120);
|
|
13726
|
+
}
|
|
13727
|
+
};
|
|
13728
|
+
currentOverlay.addEventListener('wheel', panelWheelHandler, {
|
|
13729
|
+
passive: false
|
|
13730
|
+
});
|
|
13731
|
+
panelWheelListenerRef.current = {
|
|
13732
|
+
overlay: currentOverlay,
|
|
13733
|
+
handler: panelWheelHandler
|
|
13734
|
+
};
|
|
13738
13735
|
var customContent = currentOverlay.querySelector('.dp-monthyear-header');
|
|
13739
13736
|
if (customContent) {
|
|
13740
13737
|
// Ajout de 80px pour simuler une fenêtre plus haute aux yeux de
|
|
@@ -13763,6 +13760,13 @@ var DatePicker = function DatePicker(_ref) {
|
|
|
13763
13760
|
var _calendarRef$current3;
|
|
13764
13761
|
panelVisibleRef.current = false;
|
|
13765
13762
|
cleanupScrollListeners();
|
|
13763
|
+
if (panelWheelListenerRef.current) {
|
|
13764
|
+
var _panelWheelListenerRe = panelWheelListenerRef.current,
|
|
13765
|
+
_overlay = _panelWheelListenerRe.overlay,
|
|
13766
|
+
handler = _panelWheelListenerRe.handler;
|
|
13767
|
+
_overlay.removeEventListener('wheel', handler);
|
|
13768
|
+
panelWheelListenerRef.current = null;
|
|
13769
|
+
}
|
|
13766
13770
|
var overlay = (_calendarRef$current3 = calendarRef.current) === null || _calendarRef$current3 === void 0 ? void 0 : _calendarRef$current3.getOverlay();
|
|
13767
13771
|
if (overlay) {
|
|
13768
13772
|
overlay.style.minHeight = '';
|