Initial commit
This commit is contained in:
108
SIG.Web/Scripts/SigPdfDrawer.js
Normal file
108
SIG.Web/Scripts/SigPdfDrawer.js
Normal file
@@ -0,0 +1,108 @@
|
||||
(function (window, document) {
|
||||
"use strict";
|
||||
|
||||
function byId(id) {
|
||||
return document.getElementById(id);
|
||||
}
|
||||
|
||||
function open(drawerId) {
|
||||
var drawer = byId(drawerId);
|
||||
var backdrop = byId(drawerId + "_backdrop");
|
||||
if (!drawer) { return; }
|
||||
drawer.classList.add("is-open");
|
||||
drawer.setAttribute("aria-hidden", "false");
|
||||
if (backdrop) { backdrop.classList.add("is-open"); }
|
||||
document.body.classList.add("sig-pdf-drawer-open");
|
||||
}
|
||||
|
||||
function close(drawerId) {
|
||||
var drawer = byId(drawerId);
|
||||
var backdrop = byId(drawerId + "_backdrop");
|
||||
if (!drawer) { return; }
|
||||
drawer.classList.remove("is-open");
|
||||
drawer.setAttribute("aria-hidden", "true");
|
||||
if (backdrop) { backdrop.classList.remove("is-open"); }
|
||||
document.body.classList.remove("sig-pdf-drawer-open");
|
||||
}
|
||||
|
||||
document.addEventListener("click", function (event) {
|
||||
var target = event.target;
|
||||
while (target && target !== document) {
|
||||
if (target.getAttribute && target.getAttribute("data-sig-pdf-drawer-close")) {
|
||||
close(target.getAttribute("data-sig-pdf-drawer-close"));
|
||||
return;
|
||||
}
|
||||
target = target.parentNode;
|
||||
}
|
||||
});
|
||||
|
||||
document.addEventListener("keydown", function (event) {
|
||||
if (event.keyCode !== 27) { return; }
|
||||
var drawer = document.querySelector(".sig-pdf-drawer.is-open");
|
||||
if (drawer) { close(drawer.id); }
|
||||
});
|
||||
|
||||
|
||||
var drawersOpenBeforeRequest = [];
|
||||
|
||||
function captureOpenDrawers() {
|
||||
drawersOpenBeforeRequest = [];
|
||||
|
||||
var drawers = document.querySelectorAll(
|
||||
".sig-pdf-drawer.is-open"
|
||||
);
|
||||
|
||||
for (var index = 0; index < drawers.length; index += 1) {
|
||||
if (drawers[index].id) {
|
||||
drawersOpenBeforeRequest.push(drawers[index].id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function restoreOpenDrawers() {
|
||||
for (var index = 0; index < drawersOpenBeforeRequest.length; index += 1) {
|
||||
open(drawersOpenBeforeRequest[index]);
|
||||
}
|
||||
|
||||
drawersOpenBeforeRequest = [];
|
||||
}
|
||||
|
||||
function bindPartialPostbackPersistence() {
|
||||
if (!window.Sys ||
|
||||
!window.Sys.WebForms ||
|
||||
!window.Sys.WebForms.PageRequestManager) {
|
||||
return;
|
||||
}
|
||||
|
||||
var manager =
|
||||
window.Sys.WebForms.PageRequestManager.getInstance();
|
||||
|
||||
if (!manager || manager.__sigPdfDrawerBound) {
|
||||
return;
|
||||
}
|
||||
|
||||
manager.__sigPdfDrawerBound = true;
|
||||
manager.add_beginRequest(captureOpenDrawers);
|
||||
manager.add_endRequest(restoreOpenDrawers);
|
||||
}
|
||||
|
||||
window.SIGPdfDrawer = {
|
||||
open: open,
|
||||
close: close
|
||||
};
|
||||
|
||||
if (window.Sys &&
|
||||
window.Sys.Application &&
|
||||
typeof window.Sys.Application.add_load === "function") {
|
||||
window.Sys.Application.add_load(
|
||||
bindPartialPostbackPersistence
|
||||
);
|
||||
} else if (document.readyState === "loading") {
|
||||
document.addEventListener(
|
||||
"DOMContentLoaded",
|
||||
bindPartialPostbackPersistence
|
||||
);
|
||||
} else {
|
||||
bindPartialPostbackPersistence();
|
||||
}
|
||||
}(window, document));
|
||||
Reference in New Issue
Block a user