rails_modal_manager 1.0.57 → 1.0.58
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.
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 5f3bda3fceb3ec2f9da136b27717da49aed99df46788a63e4226d2f0f3343d52
|
|
4
|
+
data.tar.gz: 841fde35ec774a95205118be3ab10e0a056726ed13a7fda522ea75292d0aef48
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 34a119a6b414cae88c8419a4dd134fd7646fe3e0681f49b3915b0f678630a018073704a6046537ac9673e9c676aba42a90e48401c412ad56d416bf55fedcf5d4
|
|
7
|
+
data.tar.gz: de106691b2138dbb254e5730d34e51e7370a7f56501da8d1041a7a0ae7173eff7e7f67722283b6618a8a8014d14b70fdb8805ffe8243001a7d2acdfb0b876b3d
|
|
@@ -133,11 +133,16 @@
|
|
|
133
133
|
--rmm-animation-timing: cubic-bezier(0.4, 0, 0.2, 1);
|
|
134
134
|
|
|
135
135
|
/* Z-index */
|
|
136
|
-
/* v1.0.
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
136
|
+
/* v1.0.58 — taskbar 가 항상 최상위. v1.0.57 의 modal > taskbar 배치가
|
|
137
|
+
모달이 taskbar 영역을 가려 최소화 항목 클릭 불가 문제를 만들었음.
|
|
138
|
+
계층 (낮음→높음):
|
|
139
|
+
overlay : 1400
|
|
140
|
+
modal : 1500 ~ 8000 (modal_store 가 동적 증가, MAX_Z_INDEX 도달 시 reset)
|
|
141
|
+
taskbar : 9000 (항상 모달 위 — 최소화 클릭 가능 보장)
|
|
142
|
+
confirm : 10000 (모든 위) */
|
|
143
|
+
--rmm-z-overlay: 1400;
|
|
144
|
+
--rmm-z-modal: 1500;
|
|
145
|
+
--rmm-z-taskbar: 9000;
|
|
141
146
|
}
|
|
142
147
|
|
|
143
148
|
/* ============================================
|
|
@@ -319,8 +319,8 @@ export default class extends Controller {
|
|
|
319
319
|
|
|
320
320
|
// Create confirm modal HTML
|
|
321
321
|
const confirmHtml = `
|
|
322
|
-
<div class="rmm-overlay rmm-active" id="${confirmId}-overlay" style="z-index:
|
|
323
|
-
<div id="${confirmId}" class="rmm-modal rmm-size-xs rmm-position-center rmm-active" style="z-index:
|
|
322
|
+
<div class="rmm-overlay rmm-active" id="${confirmId}-overlay" style="z-index: 10000;"></div>
|
|
323
|
+
<div id="${confirmId}" class="rmm-modal rmm-size-xs rmm-position-center rmm-active" style="z-index: 10001; min-width: 320px;" role="dialog" aria-modal="true">
|
|
324
324
|
<div class="rmm-header" style="background: var(--rmm-btn-warning-bg); border-bottom: none;">
|
|
325
325
|
<div class="rmm-header-left">
|
|
326
326
|
<h2 class="rmm-header-title" style="color: white;">확인</h2>
|
|
@@ -11,8 +11,15 @@
|
|
|
11
11
|
// ============================================
|
|
12
12
|
|
|
13
13
|
export const MODAL_CONSTANTS = {
|
|
14
|
-
// v1.0.
|
|
15
|
-
|
|
14
|
+
// v1.0.58 — 최소화 태스크바(9000) 가 항상 모달 위에 위치해 클릭 가능하도록
|
|
15
|
+
// 모달 z-index 시작값 1500 + 최대 cap 8000 (taskbar 9000 보다 낮게 유지).
|
|
16
|
+
// overlay/confirm 도 함께 재배치:
|
|
17
|
+
// overlay : 1400
|
|
18
|
+
// modal : 1500 ~ 8000 (동적 증가, 8000 도달 시 reset)
|
|
19
|
+
// taskbar : 9000 (항상 모달 위 — 최소화 항목 클릭 가능)
|
|
20
|
+
// confirm 모달 : 10000 (모든 것 위)
|
|
21
|
+
DEFAULT_Z_INDEX: 1500,
|
|
22
|
+
MAX_Z_INDEX: 8000,
|
|
16
23
|
ANIMATION_DURATION: 200,
|
|
17
24
|
HEADER_HEIGHT: 56,
|
|
18
25
|
FOOTER_HEIGHT: 64,
|
|
@@ -101,6 +108,15 @@ class ModalStore {
|
|
|
101
108
|
return;
|
|
102
109
|
}
|
|
103
110
|
|
|
111
|
+
// z-index cap — taskbar(9000) 보다 높지 못하도록 8000 도달 시 default 로 reset.
|
|
112
|
+
if (this.topZIndex >= MODAL_CONSTANTS.MAX_Z_INDEX) {
|
|
113
|
+
this.topZIndex = MODAL_CONSTANTS.DEFAULT_Z_INDEX;
|
|
114
|
+
// 기존 모달들 z-index 도 정렬 순서대로 재할당
|
|
115
|
+
this.modalOrder.forEach((id, idx) => {
|
|
116
|
+
if (this.activeModals[id]) this.activeModals[id].zIndex = MODAL_CONSTANTS.DEFAULT_Z_INDEX + idx * 10;
|
|
117
|
+
});
|
|
118
|
+
this.topZIndex = MODAL_CONSTANTS.DEFAULT_Z_INDEX + this.modalOrder.length * 10;
|
|
119
|
+
}
|
|
104
120
|
const newZIndex = this.topZIndex + 10;
|
|
105
121
|
|
|
106
122
|
this.activeModals[modalId] = { ...config, zIndex: newZIndex };
|
|
@@ -159,6 +175,18 @@ class ModalStore {
|
|
|
159
175
|
if (!this.activeModals[modalId]) return;
|
|
160
176
|
if (this.modalOrder[this.modalOrder.length - 1] === modalId) return;
|
|
161
177
|
|
|
178
|
+
// z-index cap — 8000 도달 시 정렬 순서로 재할당.
|
|
179
|
+
if (this.topZIndex >= MODAL_CONSTANTS.MAX_Z_INDEX) {
|
|
180
|
+
const reordered = [...this.modalOrder.filter(id => id !== modalId), modalId];
|
|
181
|
+
reordered.forEach((id, idx) => {
|
|
182
|
+
if (this.activeModals[id]) this.activeModals[id].zIndex = MODAL_CONSTANTS.DEFAULT_Z_INDEX + idx * 10;
|
|
183
|
+
});
|
|
184
|
+
this.modalOrder = reordered;
|
|
185
|
+
this.topZIndex = MODAL_CONSTANTS.DEFAULT_Z_INDEX + reordered.length * 10;
|
|
186
|
+
this.notify();
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
|
|
162
190
|
const newZIndex = this.topZIndex + 10;
|
|
163
191
|
|
|
164
192
|
this.activeModals[modalId].zIndex = newZIndex;
|