Added Pop() to close top-most modal
Fixed stacking modal causes scrolling and focus failure
This commit is contained in:
parent
7e30e99c81
commit
ecd6dd156d
50
bsdialog4.js
50
bsdialog4.js
@ -1,6 +1,6 @@
|
||||
/**
|
||||
* BSDialog4
|
||||
* @version v0.1.5.038 (2023/11/18 19:40)
|
||||
* @version v0.1.6.015 (2023/12/08 22:04)
|
||||
*/
|
||||
class BSDialog4 {
|
||||
constructor() {
|
||||
@ -102,15 +102,15 @@ class BSDialog4 {
|
||||
}
|
||||
}
|
||||
|
||||
Clear() {
|
||||
async Clear() {
|
||||
const a = this;
|
||||
|
||||
document.querySelectorAll('.modal').forEach(function(e) {
|
||||
$(e).modal('hide');
|
||||
document.querySelectorAll('.modal').forEach(async function(e) {
|
||||
await a.Close(e.getAttribute("id"));
|
||||
});
|
||||
}
|
||||
|
||||
Close(id) {
|
||||
async Close(id) {
|
||||
const a = this;
|
||||
|
||||
if (id.toString().startsWith(a.#prefix)) {
|
||||
@ -120,10 +120,28 @@ class BSDialog4 {
|
||||
const node = document.getElementById(a.#prefix + id);
|
||||
|
||||
if (node) {
|
||||
$(node).modal('hide');
|
||||
await $(node).modal('hide');
|
||||
|
||||
node.parentNode.removeChild(node);
|
||||
}
|
||||
|
||||
if (document.querySelectorAll('.modal').length > 0) {
|
||||
if (!a.#body.classList.contains("modal-open")) {
|
||||
a.#body.classList.add("modal-open");
|
||||
|
||||
a.#body.style.paddingRight = "17px";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
async Pop() {
|
||||
const a = this;
|
||||
|
||||
if (document.querySelectorAll('.modal').length > 0) {
|
||||
const id = document.querySelectorAll('.modal')[0].getAttribute("id");
|
||||
|
||||
await a.Close(id);
|
||||
}
|
||||
}
|
||||
|
||||
async Update(options) {
|
||||
@ -419,26 +437,6 @@ class BSDialog4 {
|
||||
return (e.trim().length <= 0);
|
||||
}
|
||||
|
||||
#removeBackdrop() {
|
||||
const a = this;
|
||||
|
||||
if (a.#body.querySelectorAll(".modal-backdrop").length <= 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (a.#body.querySelectorAll(".modal").length > 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
a.#body.querySelectorAll(".modal-backdrop").forEach(function(e){
|
||||
e.parentNode.removeChild(e);
|
||||
});
|
||||
|
||||
// unlock background
|
||||
a.#body.classList.remove("modal-open");
|
||||
a.#body.style.overflow = null;
|
||||
}
|
||||
|
||||
async #retrieveURL(url) {
|
||||
return await new Promise(async (resolve) => {
|
||||
await fetch(url, {
|
||||
|
4
bsdialog4.min.js
vendored
4
bsdialog4.min.js
vendored
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user