@datability/8ui 0.1.51 → 0.1.52
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.
|
@@ -13,7 +13,13 @@ var Modal = function (_a) {
|
|
|
13
13
|
var setModalDecress = function () { return setOpenModalCount === null || setOpenModalCount === void 0 ? void 0 : setOpenModalCount(function (prev) { return prev - 1; }); };
|
|
14
14
|
var setModalZero = function () { return setOpenModalCount === null || setOpenModalCount === void 0 ? void 0 : setOpenModalCount(0); };
|
|
15
15
|
var modalRef = useRef(null);
|
|
16
|
-
//
|
|
16
|
+
// whitelist for portal UI
|
|
17
|
+
var WHITELIST_CLASSES = [
|
|
18
|
+
'DBui-wrapperMenuItem',
|
|
19
|
+
'DBui-inputDateWrapperCalendar',
|
|
20
|
+
'DBui-inputDateRangeRowMonthYearSelected',
|
|
21
|
+
'DBui-inputDateTimeWrapperCalendar',
|
|
22
|
+
];
|
|
17
23
|
useEffect(function () {
|
|
18
24
|
// Update the global counter and adjust the overflow style
|
|
19
25
|
if (open) {
|
|
@@ -31,30 +37,45 @@ var Modal = function (_a) {
|
|
|
31
37
|
setModalDecress();
|
|
32
38
|
}
|
|
33
39
|
}
|
|
34
|
-
var handleKeydown = function (event) {
|
|
35
|
-
// Get all elements with the class 'DBui-modalBase'
|
|
36
|
-
var modalElements = document.querySelectorAll('.DBui-modalBase');
|
|
37
|
-
// Convert NodeList to an array to use filter method
|
|
38
|
-
var modalArray = Array.from(modalElements);
|
|
39
|
-
// Filter the array based on data-hidden attribute
|
|
40
|
-
var showModals = modalArray.filter(function (modal) {
|
|
41
|
-
return modal.getAttribute('data-hidden') === 'false';
|
|
42
|
-
});
|
|
43
|
-
var topLayerShowModal = showModals[showModals.length - 1];
|
|
44
|
-
// Check if the pressed key is the Escape key
|
|
45
|
-
if ((event.key === 'Escape' || event.keyCode === 27) && (topLayerShowModal === null || topLayerShowModal === void 0 ? void 0 : topLayerShowModal.getAttribute('id')) === id) {
|
|
46
|
-
onClose();
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
document.addEventListener('keydown', handleKeydown);
|
|
50
40
|
return function () {
|
|
51
|
-
document.removeEventListener('keydown', handleKeydown);
|
|
52
|
-
// Adjust the overflow style based on the global counter
|
|
53
41
|
if (openModalCount === 0 && openMenuCount === 0) {
|
|
54
42
|
document.body.style.overflow = 'visible';
|
|
55
43
|
}
|
|
56
44
|
};
|
|
57
45
|
}, [open]);
|
|
46
|
+
useEffect(function () {
|
|
47
|
+
var modalElements = document.querySelectorAll('.DBui-modalBase');
|
|
48
|
+
var modalArray = Array.from(modalElements);
|
|
49
|
+
var showModals = modalArray.filter(function (modal) { return modal.getAttribute('data-hidden') === 'false'; });
|
|
50
|
+
var topModal = showModals[showModals.length - 1];
|
|
51
|
+
if ((topModal === null || topModal === void 0 ? void 0 : topModal.getAttribute('id')) !== id)
|
|
52
|
+
return;
|
|
53
|
+
// ---------- ESC CLOSE ----------
|
|
54
|
+
function handleKeydown(event) {
|
|
55
|
+
if (event.key === 'Escape' || event.keyCode === 27) {
|
|
56
|
+
onClose();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
// ---------- CLICK OUTSIDE CLOSE ----------
|
|
60
|
+
function handleClickOutside(e) {
|
|
61
|
+
var _a;
|
|
62
|
+
var target = e.target;
|
|
63
|
+
// ถ้า click ใน modal → ไม่ปิด
|
|
64
|
+
if ((_a = modalRef.current) === null || _a === void 0 ? void 0 : _a.contains(target))
|
|
65
|
+
return;
|
|
66
|
+
// ถ้า click ใน whitelist (menu, dropdown, select panel)
|
|
67
|
+
var isInWhitelist = WHITELIST_CLASSES.some(function (cls) { return target.closest('.' + cls); });
|
|
68
|
+
if (isInWhitelist)
|
|
69
|
+
return;
|
|
70
|
+
onClose();
|
|
71
|
+
}
|
|
72
|
+
document.addEventListener('keydown', handleKeydown);
|
|
73
|
+
document.addEventListener('mousedown', handleClickOutside);
|
|
74
|
+
return function () {
|
|
75
|
+
document.removeEventListener('keydown', handleKeydown);
|
|
76
|
+
document.removeEventListener('mousedown', handleClickOutside);
|
|
77
|
+
};
|
|
78
|
+
}, [openModalCount]);
|
|
58
79
|
return (React.createElement(Blackdrop, { open: open },
|
|
59
80
|
React.createElement("div", { className: "DBui-modalBase DBui-modalContent", "data-hidden": !open, ref: modalRef, id: id },
|
|
60
81
|
React.createElement("img", { src: closedSVG, alt: "", className: "DBui-close", onClick: onClose }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Modal/index.tsx"],"names":[],"mappings":"AAAA,MAAM;AACN,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAE5D,QAAQ;AACR,OAAO,SAAS,MAAM,sBAAsB,CAAA;AAE5C,qBAAqB;AACrB,OAAO,cAAc,CAAA;AACrB,OAAO,SAAS,MAAM,cAAc,CAAA;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAGxC,IAAM,KAAK,GAAyB,UAAC,EAA+B;QAA7B,QAAQ,cAAA,EAAE,IAAI,UAAA,EAAE,OAAO,aAAA,EAAE,EAAE,QAAA;IAC1D,IAAA,KAAuD,UAAU,CAAC,WAAW,CAAC,EAA5E,aAAa,mBAAA,EAAE,cAAc,oBAAA,EAAE,iBAAiB,uBAA4B,CAAA;IACpF,IAAM,eAAe,GAAG,cAAM,OAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAG,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,EAAvC,CAAuC,CAAA;IACrE,IAAM,eAAe,GAAG,cAAM,OAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAG,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,EAAvC,CAAuC,CAAA;IACrE,IAAM,YAAY,GAAG,cAAM,OAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAG,CAAC,CAAC,EAAtB,CAAsB,CAAA;IAEjD,IAAM,QAAQ,GAAG,MAAM,CAAM,IAAI,CAAC,CAAA;IAElC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Modal/index.tsx"],"names":[],"mappings":"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"}
|