webdlh-net/wwwroot/assets/dflip/js/dflip.min.js

6802 lines
208 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/**
* @preserve
* Plugin Name: dflip
* Description: dflip - 3D & 2D FlipBook
*
* Author: Deepak Ghimire
* Author URI: http://codecanyon.net/user/dearhive?ref=dearhive
*/
"use strict";
var DFLIP = DFLIP || {};
var PRESENTATION = DFLIP;
(function e(t, i) {
t.version = "1.7.3.5";
t.PAGE_MODE = { SINGLE: 1, DOUBLE: 2, AUTO: null };
t.SINGLE_PAGE_MODE = { ZOOM: 1, BOOKLET: 2, AUTO: null };
t.CONTROLSPOSITION = { HIDDEN: "hide", TOP: "top", BOTTOM: "bottom" };
t.DIRECTION = { LTR: 1, RTL: 2 };
t.LINK_TARGET = { NONE: 0, SELF: 1, BLANK: 2, PARENT: 3, TOP: 4 };
t.CORNERS = {
TL: "tl",
TR: "tr",
BL: "bl",
BR: "br",
L: "l",
R: "r",
NONE: null,
};
t.SOURCE_TYPE = { IMAGE: "image", PDF: "pdf", HTML: "html" };
t.DISPLAY_TYPE = { WEBGL: "3D", HTML: "2D" };
t.PAGE_SIZE = { AUTO: 0, SINGLE: 1, DOUBLEINTERNAL: 2 };
var n = (t.defaults = {
webgl: true,
webglShadow: true,
soundEnable: true,
search: false,
height: "auto",
autoEnableOutline: false,
autoEnableThumbnail: false,
overwritePDFOutline: false,
enableDownload: true,
duration: 800,
direction: t.DIRECTION.LTR,
pageMode: t.PAGE_MODE.AUTO,
singlePageMode: t.SINGLE_PAGE_MODE.AUTO,
backgroundColor: "#00000000",
forceFit: true,
transparent: false,
hard: "none",
openPage: 1,
annotationClass: "",
autoPlay: false,
autoPlayDuration: 5e3,
autoPlayStart: false,
maxTextureSize: 1600,
minTextureSize: 256,
rangeChunkSize: 524288,
icons: {
altnext: "ti-angle-right",
altprev: "ti-angle-left",
next: "ti-angle-right",
prev: "ti-angle-left",
end: "ti-angle-double-right",
start: "ti-angle-double-left",
share: "ti-sharethis",
help: "ti-help-alt",
more: "ti-more-alt",
download: "ti-download",
zoomin: "ti-zoom-in",
zoomout: "ti-zoom-out",
fullscreen: "ti-fullscreen",
fitscreen: "ti-arrows-corner",
thumbnail: "ti-layout-grid2",
outline: "ti-menu-alt",
close: "ti-close",
search: "ti-search",
doublepage: "ti-book",
singlepage: "ti-file",
sound: "ti-volume",
facebook: "ti-facebook",
google: "ti-google",
twitter: "ti-twitter-alt",
mail: "ti-email",
play: "ti-control-play",
pause: "ti-control-pause",
},
text: {
toggleSound: "Turn on/off Sound",
toggleThumbnails: "Toggle Thumbnails",
toggleOutline: "Toggle Outline/Bookmark",
previousPage: "Previous Page",
nextPage: "Next Page",
toggleFullscreen: "Toggle Fullscreen",
zoomIn: "Zoom In",
zoomOut: "Zoom Out",
toggleHelp: "Toggle Help",
singlePageMode: "Single Page Mode",
doublePageMode: "Double Page Mode",
downloadPDFFile: "Download PDF File",
gotoFirstPage: "Goto First Page",
gotoLastPage: "Goto Last Page",
play: "Start AutoPlay",
pause: "Pause AutoPlay",
share: "Share",
mailSubject: "I wanted you to see this FlipBook",
mailBody: "Check out this site {{url}}",
loading: "Loading",
},
allControls:
"altPrev,pageNumber,altNext,play,outline,thumbnail,zoomIn,zoomOut,fullScreen,share,download,search,more,pageMode,startPage,endPage,sound",
moreControls: "download,pageMode,startPage,endPage,sound",
hideControls: "",
controlsPosition: t.CONTROLSPOSITION.BOTTOM,
paddingTop: 30,
paddingLeft: 20,
paddingRight: 20,
paddingBottom: 30,
enableAnalytics: false,
scrollWheel: true,
onCreate: function (e) {},
onCreateUI: function (e) {},
onFlip: function (e) {},
beforeFlip: function (e) {},
onReady: function (e) {},
zoomRatio: 1.5,
pageSize: t.PAGE_SIZE.AUTO,
pdfjsSrc: "js/libs/pdf.min.js",
pdfjsCompatibilitySrc: "js/libs/compatibility.js",
pdfjsWorkerSrc: "js/libs/pdf.worker.min.js",
threejsSrc: "js/libs/three.min.js",
mockupjsSrc: "js/libs/mockup.min.js",
soundFile: "sound/turn2.mp3",
imagesLocation: "images",
imageResourcesPath: "images/pdfjs/",
cMapUrl: "cmaps/",
enableDebugLog: false,
canvasToBlob: false,
enableAnnotation: true,
pdfRenderQuality: 0.9,
textureLoadFallback: "blank",
stiffness: 3,
backgroundImage: "",
pageRatio: null,
pixelRatio: window.devicePixelRatio || 1,
thumbElement: "div",
spotLightIntensity: 0.22,
ambientLightColor: "#fff",
ambientLightIntensity: 0.8,
shadowOpacity: 0.15,
linkTarget: t.LINK_TARGET.BLANK,
sharePrefix: "flipbook-",
});
var a =
"WebKitCSSMatrix" in window ||
(document.body && "MozPerspective" in document.body.style),
o = "onmousedown" in window,
r = "ontouchstart" in window;
var s = navigator.userAgent;
var l = (t.utils = {
drag: { left: 0, right: 1, none: -1 },
mouseEvents: o
? { type: "mouse", start: "mousedown", move: "mousemove", end: "mouseup" }
: {
type: "touch",
start: "touchstart",
move: "touchmove",
end: "touchend",
},
html: {
div: "<div/>",
img: "<img/>",
a: "<a>",
input: "<input type='text'/>",
},
getSharePrefix: function () {
var e = l.getSharePrefixes();
return e[0];
},
getSharePrefixes: function () {
var e = (t.defaults.sharePrefix + ",dflip-,flipbook-,dearflip-")
.split(",")
.filter(function (e) {
return e;
});
return e;
},
toRad: function (e) {
return (e * Math.PI) / 180;
},
isset: function (e, t) {
return e == null ? t : e;
},
isnull: function (e) {
return e == null || e == null;
},
toDeg: function (e) {
return (e * 180) / Math.PI;
},
transition: function (e, t) {
return e ? t / 1e3 + "s ease-out" : "0s none";
},
hasCompatibility: function () {
var e = false;
if (window.dFlipLocation != null) {
if (window.dFlipLocation.indexOf("lip-lit") > 0) e = true;
}
return e;
},
scrollIntoView: function (e, t, i) {
t = t || e.parentNode;
t.scrollTop =
e.offsetTop -
t.offsetTop +
(i === false ? e.offsetHeight - t.offsetHeight : 0);
t.scrollLeft = e.offsetLeft - t.offsetLeft;
},
display: function (e) {
return e ? "block" : "none";
},
resetTranslate: function () {
return w(0, 0);
},
translateStr: function (e, t) {
return a
? " translate3d(" + e + "px," + t + "px, 0px) "
: " translate(" + e + "px, " + t + "px) ";
},
httpsCorrection: function (e) {
var t = window.location;
if (t.href.indexOf("https://") > -1 && e.indexOf(t.hostname) > -1) {
e = e.replace("http://", "https://");
}
if (t.href.indexOf("http://") > -1 && e.indexOf(t.hostname) > -1) {
e = e.replace("https://", "http://");
}
return e;
},
resetBoxShadow: function () {
return "rgba(0, 0, 0, 0) 0px 0px 20px";
},
rotateStr: function (e) {
return " rotateZ(" + e + "deg) ";
},
bg: function (e) {
return "#fff" + C(e);
},
bgImage: function (e) {
return e == null || e == "blank" ? "" : " url(" + e + ")";
},
src: function (e) {
return e != null ? "" + e + "" : "";
},
limitAt: function (e, t, i) {
return e < t ? t : e > i ? i : e;
},
distOrigin: function (e, t) {
return Math.sqrt(Math.pow(e, 2) + Math.pow(t, 2));
},
distPoints: function (e, t, i, n) {
return Math.sqrt(Math.pow(i - e, 2) + Math.pow(n - t, 2));
},
calculateScale: function (e, t) {
var i = I(e[0].x, e[0].y, e[1].x, e[1].y),
n = I(t[0].x, t[0].y, t[1].x, t[1].y);
return n / i;
},
getVectorAvg: function (e) {
return {
x:
e
.map(function (e) {
return e.x;
})
.reduce(l.sum) / e.length,
y:
e
.map(function (e) {
return e.y;
})
.reduce(l.sum) / e.length,
};
},
sum: function (e, t) {
return e + t;
},
getTouches: function (e, t) {
t = t || { left: 0, top: 0 };
return Array.prototype.slice.call(e.touches).map(function (e) {
return { x: e.pageX - t.left, y: e.pageY - t.top };
});
},
angleByDistance: function (e, t) {
var i = t / 2;
var n = S(e, 0, t);
return n < i ? m(Math.asin(n / i)) : 90 + m(Math.asin((n - i) / i));
},
log: function (e) {
if (n.enableDebugLog == true && window.console) console.log(e);
},
lowerPowerOfTwo: function (e) {
return Math.pow(2, Math.floor(Math.log(e) / Math.LN2));
},
nearestPowerOfTwo: function (e, t) {
return Math.min(
t || 2048,
Math.pow(2, Math.ceil(Math.log(e) / Math.LN2))
);
},
zoomStops: function (e, t, i, n, a) {
if (n == null) n = 256;
if (a == null) a = 2048;
var o = Math.log(e / n) / Math.log(t);
return (
n *
Math.pow(
t,
i == null ? Math.round(o) : i == true ? Math.ceil(o) : Math.floor(o)
)
);
},
extendOptions: function (e, t) {
return i.extend(true, {}, e, t);
},
getFullscreenElement: function () {
return (
document.fullscreenElement ||
document.mozFullScreenElement ||
document.webkitFullscreenElement ||
document.msFullscreenElement
);
},
hasFullscreenEnabled: function () {
return (
document.fullscreenEnabled ||
document.mozFullScreenEnabled ||
document.webkitFullscreenEnabled ||
document.msFullscreenEnabled
);
},
getBasePage: function (e) {
return Math.floor(e / 2) * 2;
},
loadResources: function e(t, i, n) {
var a = document,
o = a.createElement(t),
r = a.getElementsByTagName(t)[0];
o.async = true;
if (n) {
o.addEventListener(
"load",
function (e) {
n(null, e);
},
false
);
}
o.src = i;
r.parentNode.insertBefore(o, r);
},
getScriptCallbacks: [],
getScript: function (e, t, n) {
var a = l.getScriptCallbacks[e],
o;
function r(e, t) {
if (o != null) {
if (t || !o.readyState || /loaded|complete/.test(o.readyState)) {
o.onload = o.onreadystatechange = null;
o = null;
o = null;
if (!t) {
for (var i = 0; i < a.length; i++) {
if (a[i]) a[i]();
a[i] = null;
}
n = null;
}
}
}
}
if (i("script[src='" + e + "']").length === 0) {
a = l.getScriptCallbacks[e] = [];
a.push(t);
o = document.createElement("script");
var s = document.body.getElementsByTagName("script")[0];
o.async = 1;
o.setAttribute("data-cfasync", false);
if (s != null) {
s.parentNode.insertBefore(o, s);
s = null;
} else {
document.body.appendChild(o);
}
o.addEventListener("load", r, false);
o.addEventListener("readystatechange", r, false);
o.addEventListener("complete", r, false);
if (n) {
o.addEventListener("error", n, false);
}
o.src = e + (N.dom == "MS" ? "?" + Math.random(1) : "");
} else {
a.push(t);
}
},
isHardPage: function (e, t, i, n) {
if (e != null) {
if (e == "cover") {
return (
t == 0 ||
(n && t == 1) ||
t == Math.ceil(i / (n ? 1 : 2)) - (n ? 0 : 1)
);
} else if (e == "all") {
return true;
} else {
var a = ("," + e + ",").indexOf("," + (t * 2 + 1) + ",") > -1;
var o = ("," + e + ",").indexOf("," + (t * 2 + 2) + ",") > -1;
return a || o;
}
}
return false;
},
fixMouseEvent: function (e) {
if (e) {
var t = e.originalEvent || e;
if (t.changedTouches && t.changedTouches.length > 0) {
var n = i.event.fix(e);
var a = t.changedTouches[0];
n.clientX = a.clientX;
n.clientY = a.clientY;
n.pageX = a.pageX;
n.touches = t.touches;
n.pageY = a.pageY;
n.movementX = a.movementX;
n.movementY = a.movementY;
return n;
} else {
return e;
}
} else {
return e;
}
},
hasWebgl: (function () {
try {
var e = document.createElement("canvas");
return !!(
window.WebGLRenderingContext &&
(e.getContext("webgl") || e.getContext("experimental-webgl"))
);
} catch (e) {
return false;
}
})(),
isBookletMode: function (e) {
return (
e.pageMode == t.PAGE_MODE.SINGLE &&
e.singlePageMode == t.SINGLE_PAGE_MODE.BOOKLET
);
},
isRTLMode: function (e) {
return e.direction == t.DIRECTION.RTL;
},
isMobile: (function () {
var e = false;
(function (t) {
if (
/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(
t
) ||
/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(
t.substr(0, 4)
)
)
e = true;
})(s || navigator.vendor || window.opera);
return e;
})(),
isIOS: /(iPad|iPhone|iPod)/g.test(s),
isSafari:
/constructor/i.test(window.HTMLElement) ||
(function (e) {
return e.toString() === "[object SafariRemoteNotification]";
})(!window["safari"] || safari.pushNotification),
prefix: (function () {
var e = window.getComputedStyle(document.documentElement, ""),
t = Array.prototype.slice
.call(e)
.join("")
.match(/-(moz|webkit|ms)-/)[1],
i = "WebKit|Moz|MS".match(new RegExp("(" + t + ")", "i"))[1];
return {
dom: i,
lowercase: t,
css: "-" + t + "-",
js: t[0].toUpperCase() + t.substr(1),
};
})(),
__extends: function (e, t) {
for (var i in t) if (t.hasOwnProperty(i)) e[i] = t[i];
function n() {
this.constructor = e;
}
n.prototype = t.prototype;
e.prototype = new n();
e.__super = t.prototype;
return e;
},
});
var c = t.SOURCE_TYPE,
u = t.DISPLAY_TYPE,
d = l.drag,
f = l.mouseEvents,
h = l.html,
p = l.isset,
g = l.isnull,
v = l.toRad,
m = l.toDeg,
b = l.transition,
w = l.translateStr,
x = l.resetBoxShadow,
P = l.rotateStr,
y = l.bg,
C = l.bgImage,
L = l.src,
S = l.limitAt,
E = l.distOrigin,
I = l.distPoints,
T = l.angleByDistance,
k = l.log,
O = l.nearestPowerOfTwo,
R = l.extendOptions,
F = l.getBasePage,
M = l.getScript,
D = l.fixMouseEvent,
N = l.prefix,
A = l.isBookletMode,
z = l.isRTLMode,
B = l.isMobile,
j = l.hasWebgl,
_ = l.isSafari,
U = l.isIOS,
H = l.__extends;
(function e() {
if (window.CanvasPixelArray) {
if (typeof window.CanvasPixelArray.prototype.set !== "function") {
window.CanvasPixelArray.prototype.set = function (e) {
for (var t = 0, i = this.length; t < i; t++) {
this[t] = e[t];
}
};
}
} else {
var t = false,
i;
if (_) {
i = s.match(/Version\/([0-9]+)\.([0-9]+)\.([0-9]+) Safari\//);
t = i && parseInt(i[1]) < 6;
}
if (t) {
var n = window.CanvasRenderingContext2D.prototype;
var a = n.createImageData;
n.createImageData = function (e, t) {
var i = a.call(this, e, t);
i.data.set = function (e) {
for (var t = 0, i = this.length; t < i; t++) {
this[t] = e[t];
}
};
return i;
};
n = null;
}
}
})();
(function e() {
function t(e) {
window.setTimeout(e, 20);
}
if ("requestAnimationFrame" in window) {
return;
}
window.requestAnimationFrame =
window.mozRequestAnimationFrame ||
window.webkitRequestAnimationFrame ||
t;
})();
(function e() {
if (typeof Uint8Array !== "undefined") {
if (typeof Uint8Array.prototype.subarray === "undefined") {
Uint8Array.prototype.subarray = function e(t, i) {
return new Uint8Array(this.slice(t, i));
};
Float32Array.prototype.subarray = function e(t, i) {
return new Float32Array(this.slice(t, i));
};
}
if (typeof Float64Array === "undefined") {
window.Float64Array = Float32Array;
}
return;
}
function t(e, t) {
return new n(this.slice(e, t));
}
function i(e, t) {
if (arguments.length < 2) {
t = 0;
}
for (var i = 0, n = e.length; i < n; ++i, ++t) {
this[t] = e[i] & 255;
}
}
function n(e) {
var n, a, o;
if (typeof e === "number") {
n = [];
for (a = 0; a < e; ++a) {
n[a] = 0;
}
} else if ("slice" in e) {
n = e.slice(0);
} else {
n = [];
for (a = 0, o = e.length; a < o; ++a) {
n[a] = e[a];
}
}
n.subarray = t;
n.buffer = n;
n.byteLength = n.length;
n.set = i;
if (typeof e === "object" && e.buffer) {
n.buffer = e.buffer;
}
return n;
}
window.Uint8Array = n;
window.Int8Array = n;
window.Uint32Array = n;
window.Int32Array = n;
window.Uint16Array = n;
window.Float32Array = n;
window.Float64Array = n;
})();
var W = function (e) {
return i.extend(true, {}, n, e);
};
var V = function (e, n) {
var a = "df-ui";
var o = "df-ui-wrapper";
var r = a + "-" + "btn";
var s = z(n.target);
var c = (n.ui = i(h.div, { class: a }));
var u = n.options;
c.dispose = function () {
e.find("." + r).each(function () {
i(this).off();
});
P.off();
f.off();
p.off();
g.off();
v.off();
m.off();
b.off();
w.off();
y.off();
E.off();
M.off();
D.off();
j.off();
_.off();
H.off();
W.off();
V.off();
G.off();
q.off();
Z.off();
N.remove();
x.remove();
p.remove();
f.remove();
v.remove();
if (c.shareBox) {
if (c.shareBox.dispose) c.shareBox.dispose();
c.shareBox = null;
}
document.removeEventListener("keyup", be, false);
window.removeEventListener("click", I, false);
c.update = null;
n = null;
};
var d = function (e) {
if (isNaN(e)) e = n.target._activePage;
else if (e < 1) e = 1;
else if (e > n.target.pageCount) e = n.target.pageCount;
return e;
};
var f = (c.next = i(h.div, {
class: r + " " + a + "-next " + u.icons["next"],
title: s ? u.text.previousPage : u.text.nextPage,
html: "<span>" + u.text.nextPage + "</span>",
}).on("click", function () {
n.next();
}));
var p = (c.prev = i(h.div, {
class: r + " " + a + "-prev " + u.icons["prev"],
title: s ? u.text.nextPage : u.text.previousPage,
html: "<span>" + u.text.previousPage + "</span>",
}).on("click", function () {
n.prev();
}));
var g = i(h.div, {
class: r + " " + a + "-play " + u.icons["play"],
title: u.text.play,
html: "<span>" + u.text.play + "</span>",
}).on("click", function () {
var e = i(this);
n.setAutoPlay(!e.hasClass(u.icons["pause"]));
});
if (u.autoPlay == true) {
c.play = g;
n.setAutoPlay(u.autoPlayStart);
}
var v = i(h.div, { class: o + " " + a + "-zoom" });
var m = (c.zoomIn = i(h.div, {
class: r + " " + a + "-zoomin " + u.icons["zoomin"],
title: u.text.zoomIn,
html: "<span>" + u.text.zoomIn + "</span>",
}).on("click", function () {
n.zoom(1);
c.update();
if (n.target.startPoint && n.target.pan)
n.target.pan(n.target.startPoint);
}));
var b = (c.zoomOut = i(h.div, {
class: r + " " + a + "-zoomout " + u.icons["zoomout"],
title: u.text.zoomOut,
html: "<span>" + u.text.zoomOut + "</span>",
}).on("click", function () {
n.zoom(-1);
c.update();
if (n.target.startPoint && n.target.pan)
n.target.pan(n.target.startPoint);
}));
v.append(m).append(b);
var w = (c.pageNumber = i(h.div, { class: r + " " + a + "-page" })
.on("change", function () {
var e = parseInt(c.pageInput.val(), 10);
e = d(e);
n.gotoPage(e);
})
.on("keyup", function (e) {
if (e.keyCode == 13) {
var t = parseInt(c.pageInput.val(), 10);
t = d(t);
if (t !== d(n.target._activePage || n._activePage)) n.gotoPage(t);
}
}));
c.pageInput = i('<input id="df_book_page_number" type="text"/>').appendTo(
w
);
c.pageLabel = i('<label for="df_book_page_number"/>').appendTo(w);
var x = i(h.div, { class: o + " " + a + "-size" });
var P = i(h.div, {
class: r + " " + a + "-help " + u.icons["help"],
title: u.text.toggleHelp,
html: "<span>" + u.text.toggleHelp + "</span>",
}).on("click", function () {});
var y = (c.sound = i(h.div, {
class: r + " " + a + "-sound " + u.icons["sound"],
title: u.text.toggleSound,
html: "<span>" + u.text.toggleSound + "</span>",
}).on("click", function () {
u.soundEnable = !u.soundEnable;
c.updateSound();
}));
c.updateSound = function () {
if (u.soundEnable == false || u.soundEnable == "false")
y.addClass("disabled");
else y.removeClass("disabled");
};
c.updateSound();
function C(e) {
c.search.removeClass("df-active");
}
if (typeof u.source == "string" && u.search == true) {
var L = (c.search = i(h.div, {
class: r + " " + a + "-search " + u.icons["search"],
}).on("click", function (e) {
if (!L.hasClass("df-active")) {
i(this).addClass("df-active");
e.stopPropagation();
}
}));
window.addEventListener("click", C, false);
var S = i(h.div, { class: "search-container" });
L.append(S);
}
var E = (c.more = i(h.div, {
class: r + " " + a + "-more " + u.icons["more"],
}).on("click", function (e) {
if (!E.hasClass("df-active")) {
i(this).addClass("df-active");
e.stopPropagation();
}
}));
function I(e) {
E.removeClass("df-active");
}
window.addEventListener("click", I, false);
var T = i(h.div, { class: "more-container" });
E.append(T);
if (typeof u.source == "string" && u.enableDownload == true) {
var O = r + " " + a + "-download " + u.icons["download"];
var R = (c.download = i(
'<a download target="_blank" class="' +
O +
'"><span>' +
u.text.downloadPDFFile +
"</span></a>"
));
R.attr("href", u.source).attr("title", u.text.downloadPDFFile);
}
var F = l.hasFullscreenEnabled();
if (!F) {
e.addClass("df-custom-fullscreen");
}
c.switchFullscreen = function () {
var e = l.getFullscreenElement();
var t = n.container[0];
if (c.isFullscreen != true) {
n.container.addClass("df-fullscreen");
if (t.requestFullscreen) {
t.requestFullscreen();
} else if (t.msRequestFullscreen) {
t.msRequestFullscreen();
} else if (t.mozRequestFullScreen) {
t.mozRequestFullScreen();
} else if (t.webkitRequestFullscreen) {
t.webkitRequestFullscreen();
}
c.isFullscreen = true;
} else {
n.container.removeClass("df-fullscreen");
c.isFullscreen = false;
if (document.exitFullscreen) {
if (document.fullscreenElement) document.exitFullscreen();
} else if (document.msExitFullscreen) {
document.msExitFullscreen();
} else if (document.mozCancelFullScreen) {
if (document.fullscreenElement) document.mozCancelFullScreen();
} else if (document.webkitExitFullscreen) {
document.webkitExitFullscreen();
}
}
if (!l.hasFullscreenEnabled()) {
setTimeout(function () {
n.resize();
}, 50);
}
};
var M = (c.fullScreen = i(h.div, {
class: r + " " + a + "-fullscreen " + u.icons["fullscreen"],
title: u.text.toggleFullscreen,
html: "<span>" + u.text.toggleFullscreen + "</span>",
}).on("click", c.switchFullscreen));
var D = (c.fit = i(h.div, {
class: r + " " + a + "-fit " + u.icons["fitscreen"],
}).on("click", function () {
i(this).toggleClass("df-button-fit-active");
}));
x.append(M);
var N = i(h.div, { class: o + " " + a + "-controls" });
var A = (c.shareBox = new t.Share(e, u));
var j = (c.share = i(h.div, {
class: r + " " + a + "-share " + u.icons["share"],
title: u.text.share,
html: "<span>" + u.text.share + "</span>",
}).on("click", function (e) {
if (c.shareBox.isOpen == true) c.shareBox.close();
else {
c.shareBox.update(n.getURLHash());
c.shareBox.show();
}
}));
var _ = (c.startPage = i(h.div, {
class: r + " " + a + "-start " + (s ? u.icons["end"] : u.icons["start"]),
title: u.text.gotoFirstPage,
html: "<span>" + u.text.gotoFirstPage + "</span>",
}).on("click", function () {
n.start();
}));
var H = (c.endPage = i(h.div, {
class: r + " " + a + "-end " + (s ? u.icons["start"] : u.icons["end"]),
title: u.text.gotoLastPage,
html: "<span>" + u.text.gotoLastPage + "</span>",
}).on("click", function () {
n.end();
}));
var W = (c.pageMode = i(h.div, {
class: r + " " + a + "-pagemode " + u.icons["singlepage"],
html: "<span>" + u.text.singlePageMode + "</span>",
}).on("click", function () {
var e = i(this);
n.setPageMode(!e.hasClass(u.icons["doublepage"]));
}));
n.setPageMode(n.target.pageMode == t.PAGE_MODE.SINGLE);
var V = (c.altPrev = i(h.div, {
class: r + " " + a + "-prev" + " " + a + "-alt " + u.icons["prev"],
title: s ? u.text.nextPage : u.text.previousPage,
html: "<span>" + u.text.previousPage + "</span>",
}).on("click", function () {
n.prev();
}));
var G = (c.altNext = i(h.div, {
class: r + " " + a + "-next" + " " + a + "-alt " + u.icons["next"],
title: s ? u.text.previousPage : u.text.nextPage,
html: "<span>" + u.text.nextPage + "</span>",
}).on("click", function () {
n.next();
}));
var q = (c.thumbnail = i(h.div, {
class: r + " " + a + "-thumbnail " + u.icons["thumbnail"],
title: u.text.toggleThumbnails,
html: "<span>" + u.text.toggleThumbnails + "</span>",
}).on("click", function () {
var e = i(this);
if (n.target.thumbContainer) {
var t = n.target.thumbContainer;
t.toggleClass("df-sidemenu-visible");
e.toggleClass("df-active");
} else {
n.contentProvider.initThumbs();
e.toggleClass("df-active");
}
if (e.hasClass("df-active")) {
e.siblings(".df-active").trigger("click");
}
c.update(true);
}));
var Z = (c.outline = i(h.div, {
class: r + " " + a + "-outline " + u.icons["outline"],
title: u.text.toggleOutline,
html: "<span>" + u.text.toggleOutline + "</span>",
}).on("click", function () {
var e = i(this);
if (n.target.outlineContainer) {
var t = n.target.outlineContainer;
e.toggleClass("df-active");
t.toggleClass("df-sidemenu-visible");
if (e.hasClass("df-active")) {
e.siblings(".df-active").trigger("click");
}
c.update(true);
}
}));
var Y = u.allControls.replace(/ /g, "").split(","),
K = "," + u.moreControls.replace(/ /g, "") + ",",
X = "," + u.hideControls.replace(/ /g, "") + ",";
if (U && B) {
X += ",fullScreen,";
}
var Q = K.split(",");
for (var $ = 0; $ < Y.length; $++) {
var J = Y[$];
if (X.indexOf("," + J + ",") < 0) {
var ee = c[J];
if (ee != null && typeof ee == "object") {
if (
K.indexOf("," + J + ",") > -1 &&
J !== "more" &&
J !== "pageNumber"
) {
T.append(ee);
} else {
N.append(ee);
}
}
}
}
e.append(N).append(p).append(f).append(v);
var te = false,
ie = false,
ne = false;
var ae = 16,
oe = 17,
re = 18,
se = 83,
le = 86,
ce = 67,
ue = 69,
de = 71,
fe = 78,
he = 79,
pe = 46,
ge = 39,
ve = 37,
me = 27;
document.addEventListener("keyup", be, false);
function be(e) {
switch (e.keyCode) {
case me:
if (c.isFullscreen == true) {
c.fullScreen.trigger("click");
} else if (window.dfLightBox && window.dfActiveLightBoxBook) {
window.dfLightBox.closeButton.trigger("click");
}
break;
case ae:
ie = false;
break;
case oe:
te = false;
break;
case re:
ne = false;
break;
case ve:
n.prev();
break;
case ge:
n.next();
break;
default:
break;
}
}
c.update = function (i) {
k("ui update");
var a = n.target;
var o = d(a._activePage || n._activePage);
var r = a.pageCount || n.pageCount;
var s = a.direction == t.DIRECTION.RTL,
l = o == 1 || o == 0,
u = o == r;
c.next.show();
c.prev.show();
c.altNext.removeClass("disabled");
c.altPrev.removeClass("disabled");
if ((l && !s) || (u && s)) {
c.prev.hide();
c.altPrev.addClass("disabled");
}
if ((u && !s) || (l && s)) {
c.next.hide();
c.altNext.addClass("disabled");
}
c.pageInput.val(o);
c.pageLabel.html(o + "/" + r);
if (e.find(".df-sidemenu-visible").length > 0) {
e.addClass("df-sidemenu-open");
} else {
e.removeClass("df-sidemenu-open");
}
if (i == true) n.resize();
if (a.contentProvider.zoomScale == a.contentProvider.maxZoom) {
c.zoomIn.addClass("disabled");
} else {
c.zoomIn.removeClass("disabled");
}
if (a.contentProvider.zoomScale == 1) {
c.zoomOut.addClass("disabled");
} else {
c.zoomOut.removeClass("disabled");
}
};
if (n.target != null) {
n.target.ui = c;
}
if (u.onCreateUI != null) u.onCreateUI(n);
};
var G = null;
function q() {
G = (function (e) {
H(t, e);
function t(t) {
t = t || {};
var a = this;
e.call(this, t);
a.options = t;
a.canvas = i(a.renderer.domElement).addClass("df-3dcanvas");
a.container = t.container;
a.container.append(a.canvas);
a.type = "PreviewStage";
a.mouse = new THREE.Vector2();
a.raycaster = new THREE.Raycaster();
a.camera.position.set(0, 20, 600);
a.camera.lookAt(new THREE.Vector3(0, 0, 0));
a.spotLight.position.set(-220, 330, 550);
a.spotLight.castShadow = B ? false : t.webglShadow;
if (a.spotLight.shadow) {
a.spotLight.shadow.bias = -8e-4;
}
a.spotLight.intensity = p(t.spotLightIntensity, n.spotLightIntensity);
a.ambientLight.color = new THREE.Color(
p(t.ambientLightColor, n.ambientLightColor)
);
a.ambientLight.intensity = p(
t.ambientLightIntensity,
n.ambientLightIntensity
);
var o = new THREE.ShadowMaterial();
o.opacity = p(t.shadowOpacity, n.shadowOpacity);
a.ground.material = o;
a.ground.position.z = -2;
a.orbitControl.maxAzimuthAngle = 0;
a.orbitControl.minAzimuthAngle = 0;
a.orbitControl.minPolarAngle = Math.PI / 2;
a.orbitControl.maxPolarAngle = 2.2;
a.orbitControl.mouseButtons.ORBIT = THREE.MOUSE.RIGHT;
a.orbitControl.mouseButtons.PAN = -1;
a.orbitControl.maxDistance = 5e3;
a.orbitControl.minDistance = 50;
a.orbitControl.noZoom = true;
a.selectiveRendering = true;
a.orbitControl.zoomSpeed = 5;
a.orbitControl.keyPanSpeed = 0;
a.orbitControl.center.set(0, 0, 0);
a.orbitControl.update();
a.swipe_threshold = B ? 15 : 20;
var r = (a.cssRenderer = new THREE.CSS3DRenderer());
i(r.domElement)
.css({ position: "absolute", top: 0, pointerEvents: "none" })
.addClass("df-3dcanvas df-csscanvas");
a.container[0].appendChild(r.domElement);
var s = (a.cssScene = new THREE.Scene());
var c = document.createElement("div");
c.className = "df-page-content df-page-content-left";
var u = document.createElement("div");
u.className = "df-page-content df-page-content-right";
var d = (s.divLeft = new THREE.CSS3DObject(c));
var h = (s.divRight = new THREE.CSS3DObject(u));
s.add(d);
s.add(h);
a.resizeCallback = function () {
r.setSize(a.canvas.width(), a.canvas.height());
};
function g() {
a.renderRequestPending = true;
}
window.addEventListener(f.move, g, false);
window.addEventListener("keyup", g, false);
a.dispose = function () {
-a.clearChild();
a.render();
window.removeEventListener(f.move, g, false);
if (a.options.scrollWheel == true) {
a.container[0].removeEventListener("mousewheel", v, false);
a.container[0].removeEventListener("DOMMouseScroll", v, false);
}
window.removeEventListener("keyup", g, false);
a.renderer.domElement.removeEventListener("mousemove", m, false);
a.renderer.domElement.removeEventListener("touchmove", m, false);
a.renderer.domElement.removeEventListener("mousedown", b, false);
a.renderer.domElement.removeEventListener("touchstart", b, false);
a.renderer.domElement.removeEventListener("mouseup", x, false);
a.renderer.domElement.removeEventListener("touchend", x, false);
a.canvas.remove();
r.domElement.parentNode.removeChild(r.domElement);
r = null;
a.renderCallback = null;
a.renderCallback = null;
a.orbitControl.dispose();
a.orbitControl = null;
a.renderer.dispose();
a.cancelRAF();
};
a.renderCallback = function () {
if (TWEEN.getAll().length > 0) a.renderRequestPending = true;
TWEEN.update();
r.render(s, a.camera);
};
var v = function (e) {
var t = 0;
if (e.wheelDelta != null) {
t = e.wheelDelta;
} else if (e.detail != null) {
t = -e.detail;
}
if (t) {
var i = a.previewObject.contentProvider.zoomScale;
if ((t > 0 && i == 1) || (t < 0 && i > 1)) {
e.preventDefault();
}
a.previewObject.zoom(t > 0 ? 1 : -1);
}
g();
};
var m = function (e) {
a.renderRequestPending = true;
e = D(e);
if (a.isMouseDown && e.movementX != 0 && e.movementY != 0) {
a.isMouseMoving = true;
}
if (
e.touches != null &&
e.touches.length == 2 &&
a.startTouches != null
) {
a.zoomDirty = true;
var t = l.getVectorAvg(l.getTouches(e, a.container.offset())),
i = l.calculateScale(a.startTouches, l.getTouches(e)),
n = i / a.lastScale;
var o = a.previewObject.contentProvider.zoomScale,
r = t.x,
s = t.y;
a.camera.position.z = a.originalZ / i;
a.lastScale = i;
a.lastZoomCenter = t;
e.preventDefault();
return;
}
if (
a.isMouseDown == true &&
a.previewObject.contentProvider.zoomScale == 1
) {
var c = e.pageX - a.lastPos,
u = performance.now() - a.lastTime;
if (Math.abs(c) > a.swipe_threshold) {
if (c < 0) {
a.target.next();
} else {
a.target.prev();
}
e.preventDefault();
a.isMouseDown = false;
}
a.lastPos = e.pageX;
a.lastTime = performance.now();
}
};
var b = function (e) {
e = D(e);
if (
e.touches != null &&
e.touches.length == 2 &&
a.startTouches == null
) {
a.startTouches = l.getTouches(e);
a.lastScale = 1;
a.originalZ = a.camera.position.z * 1;
}
document.activeElement.blur();
a.mouseValue = e.pageX + "," + e.pageY;
a.isMouseMoving = false;
a.isMouseDown = true;
a.lastPos = e.pageX;
a.lastTime = performance.now();
};
var w = function (e) {
a.isMouseDown = false;
if (e.button !== 0) return this;
var t = e.pageX + "," + e.pageY;
if (a.isMouseMoving) {
} else if (t == a.mouseValue) {
e = e || window.event;
e = i.event.fix(e);
var n = a.mouse,
o = a.raycaster;
n.x = (e.offsetX / a.canvas.innerWidth()) * 2 - 1;
n.y = 1 - (e.offsetY / a.canvas.innerHeight()) * 2;
o.setFromCamera(n, a.camera);
var r = o.intersectObjects(
a.target instanceof MOCKUP.Bundle
? a.target.children
: [a.target],
true
);
if (r.length > 0) {
var s,
l = 0;
do {
s = r[l] != null ? r[l].object : null;
l++;
} while (
(s instanceof THREE.BoxHelper ||
!(s instanceof MOCKUP.Paper) ||
s.isFlipping == true) &&
l < r.length
);
if (s.userData.object != null) {
} else {
if (s.angles[1] > 90) {
if (s.isEdge != true) a.target.next();
} else {
if (s.isEdge != true) a.target.prev();
}
}
} else {
}
}
};
var x = function (e) {
e = D(e);
if (e.touches != null && e.touches.length == 0) {
var t = a.previewObject.contentProvider.zoomScale;
if (a.zoomDirty == true) {
a.previewObject.contentProvider.zoomScale = l.limitAt(
a.previewObject.contentProvider.zoomScale * a.lastScale,
1,
a.previewObject.contentProvider.maxZoom
);
a.previewObject.zoomValue =
a.previewObject.contentProvider.zoomScale * 1;
a.previewObject.resize();
a.zoomDirty = false;
}
a.lastScale = null;
a.startTouches = null;
}
if (e.touches != null && e.touches.length > 1) return;
w(e);
};
a.renderer.domElement.addEventListener("mousemove", m, false);
a.renderer.domElement.addEventListener("touchmove", m, false);
a.renderer.domElement.addEventListener("mousedown", b, false);
a.renderer.domElement.addEventListener("touchstart", b, false);
a.renderer.domElement.addEventListener("mouseup", x, false);
a.renderer.domElement.addEventListener("touchend", x, false);
if (a.options.scrollWheel == true) {
a.container[0].addEventListener("mousewheel", v, false);
a.container[0].addEventListener("DOMMouseScroll", v, false);
}
i(a.renderer.domElement).css({ display: "block" });
i(window).trigger("resize");
return this;
}
t.prototype.width = function () {
return this.container.width();
};
t.prototype.height = function () {
return this.container.height();
};
return t;
})(MOCKUP.Stage);
MOCKUP.PreviewStage = G;
var e = (function (e) {
H(i, e);
function i(t, i) {
t = t || {};
t.folds = 1;
e.call(this, t, i);
this.angle = 0;
this.isFlipping = false;
this.material.materials[5].transparent = true;
this.material.materials[4].transparent = true;
this.type = "BookPaper";
}
i.prototype.tween = function (e, i) {
var n = this;
var a = 1e-5;
n.originalStiff = n.stiffness;
var o = n.newStiffness;
var r = A(n.parent);
var s = i - e;
var l = e > 90;
var c = n.parent.direction == t.DIRECTION.RTL;
n.init = {
angle: e,
angle2: e < 90 ? 0 : 180,
stiff: n.originalStiff,
index: (l && !c) || (!l && c) ? 1 : 0,
};
n.first = {
angle: e + s / 4,
angle2: e < 90 ? 90 : 90,
stiff: n.originalStiff,
index: (l && !c) || (!l && c) ? 1 : 0.25,
};
n.mid = {
angle: e + (s * 2) / 4,
angle2: e < 90 ? 135 : 45,
stiff: n.newStiffness,
index: (l && !c) || (!l && c) ? 0.5 : 0.5,
};
n.mid2 = {
angle: e + (s * 3) / 4,
angle2: e < 90 ? 180 : 0,
stiff: n.newStiffness,
index: (l && !c) || (!l && c) ? 0.25 : 1,
};
n.end = {
angle: i,
angle2: e < 90 ? 180 : 0,
stiff: n.newStiffness,
index: (l && !c) || (!l && c) ? 0 : 1,
};
n.isFlipping = true;
var u = function (e, t) {
n.angles[1] = e.angle;
n.angles[4] = n.isHard ? e.angle : e.angle2;
if (n.isHard == true) {
n.stiffness = 0;
} else {
n.stiffness = (e.stiff / (o + a)) * (n.newStiffness + a);
n.stiffness = isNaN(n.stiffness) ? 0 : e.stiff;
}
if (r) {
n.material.materials[5].opacity = n.material.materials[4].opacity =
e.index;
n.castShadow =
(l && !c) || (!l && c) ? e.index > 0.5 : e.index > 0.5;
}
n.updateAngle(true);
};
if (r && ((!l && !c) || (l && c))) {
n.material.materials[5].opacity = n.material.materials[4].opacity = 0;
n.castShadow = false;
}
n.currentTween = new TWEEN.Tween(n.init)
.to(
{
angle: [n.first.angle, n.mid.angle, n.mid2.angle, n.end.angle],
angle2: [
n.first.angle2,
n.mid.angle2,
n.mid2.angle2,
n.end.angle2,
],
stiff: [n.first.stiff, n.mid.stiff, n.mid2.stiff, n.end.stiff],
index: [n.first.index, n.mid.index, n.mid2.index, n.end.index],
},
n.parent.duration
)
.onUpdate(function (e) {
u(this, e);
})
.easing(TWEEN.Easing.Sinusoidal.Out)
.onComplete(function (e) {
n.stiffness = n.newStiffness;
n.updateAngle();
n.material.materials[5].opacity =
n.material.materials[4].opacity = 1;
n.castShadow = true;
n.isFlipping = false;
if (n.parent && n.parent.refresh) n.parent.refresh();
})
.start();
};
return i;
})(MOCKUP.FlexBoxPaper);
MOCKUP.BookPaper = e;
var a = (function (e) {
H(i, e);
function i(i, n) {
i = i || {};
i.segments = i.segments || 50;
this.pageCount = i.pageCount;
this.height = i.height;
this.width = i.width;
this.direction = i.direction || t.DIRECTION.LTR;
this.startPage = 1;
this.endPage = this.pageCount;
this.stackCount = i.stackCount || 6;
this.materials = [];
e.call(this, i, n);
this.angles = [0, 0, 0, 0, 0, 0];
this.stiffness = i.stiffness == null ? 1.5 : i.stiffness;
this.hardConfig = i.hard;
this._activePage = i.openPage || this.startPage;
this.createStack(i);
this.pageMode =
i.pageMode ||
(B || this.pageCount <= 2 ? t.PAGE_MODE.SINGLE : t.PAGE_MODE.DOUBLE);
this.singlePageMode =
i.singlePageMode ||
(B ? t.SINGLE_PAGE_MODE.BOOKLET : t.SINGLE_PAGE_MODE.ZOOM);
this.type = "Book";
}
i.prototype.getPageByNumber = function (e) {
var t = A(this) ? (z(this) ? e + 1 : e) : Math.floor((e - 1) / 2);
return this.getObjectByName(t.toString());
};
i.prototype.isPageHard = function (e) {
return l.isHardPage(this.hardConfig, e, this.pageCount);
};
i.prototype.activePage = function (e) {
if (e == null) return this._activePage;
this.gotoPage(e);
};
i.prototype.gotoPage = function (e) {
e = parseInt(e, 10);
this._activePage = e;
if (this.autoPlay == true) {
this.previewObject.setAutoPlay(this.autoPlay);
}
this.updatePage(e);
if (this && this.thumblist && this.thumblist.review)
this.thumblist.review();
};
i.prototype.moveBy = function (e) {
var t = this._activePage + e;
t = S(t, this.startPage, this.endPage);
if (this.firstFlipped != true) {
this.previewObject.analytics({
eventAction: "First Page Flip",
options: this.previewObject.options,
});
this.firstFlipped = true;
}
this.gotoPage(t);
};
i.prototype.next = function (e) {
if (e == null)
e =
this.direction == t.DIRECTION.RTL ? -this.pageMode : this.pageMode;
this.moveBy(e);
};
i.prototype.prev = function (e) {
if (e == null)
e =
this.direction == t.DIRECTION.RTL ? this.pageMode : -this.pageMode;
this.moveBy(e);
};
i.prototype.updateAngle = function () {
var e = this.angles[1];
var t = this.angles[4];
var i = t - e;
var n = this.stackCount;
for (var a = 0; a < n; a++) {
var o = this.children[a];
o.angles[1] = e + (a * i) / (n * 100);
o.stiffness = this.stiffness;
o.updateAngle();
}
};
i.prototype.refresh = function () {
this.updatePage(this._activePage);
if (this.flipCallback != null) this.flipCallback();
};
i.prototype.updatePage = function (e) {
var i = this.direction == t.DIRECTION.RTL,
a = A(this),
o = F(e);
var r = a ? 1 : 2;
e = Math.floor(e / r);
if (i) e = Math.ceil(this.pageCount / r) - e;
var s = this.oldBaseNumber || 0;
var l = this.pageCount / r;
var c = this.stackCount;
var u = 0.02;
var d = 0.4;
var f = a ? 0 : (0.5 - Math.abs(l / 2 - e) / l) / this.stiffness;
var h = 1;
var p = Math.floor(c / 2);
var g = false;
if (s > e) {
g = true;
this.children[c - 1].skipFlip = true;
this.children.unshift(this.children.pop());
} else if (s < e) {
this.children[0].skipFlip = true;
this.children.push(this.children.shift());
}
var v = l - e;
var m = 5 / l;
var b = (m * e) / 2;
var w = (m * v) / 2;
var x = b < w ? w : b;
for (var P = 0; P < c; P++) {
var y = this.children[P];
var C = y.color;
var L = y.angles[1];
var S;
var E = e - p + P;
if (i)
E = a ? this.pageCount - E : Math.ceil(this.pageCount / 2) - E - 1;
var I = (y.isHard = this.isPageHard(E));
var T = y.name;
y.isEdge = false;
if (P == 0) {
y.depth = b < d ? d : b;
} else if (P == c - 1) {
y.depth = w < d ? d : w;
} else {
y.depth = d;
y.isEdge = false;
}
if (y.isFlipping == true) {
y.depth = d;
}
y.position.x = 0;
var k = u * P,
O = 180 - u * (P - p) + u * P;
if (P < p) {
y.newStiffness = I || this.stiffness == 0 ? 0 : f / (e / l) / 4;
S = k;
y.position.z = x - (-P + p) * d;
if (g == true) y.position.z -= d;
} else {
S = O;
y.newStiffness =
I || this.stiffness == 0 ? 0 : f / (Math.abs(l - e) / l) / 4;
y.position.z = x - (-c + P + p + 1) * d - y.depth;
}
if (y.isFlipping == false) {
if (Math.abs(L - S) > 20 && y.skipFlip == false) {
y.depth = d;
var R = y.stiffness;
if (L > S) {
R = f / (Math.abs(l - e) / l) / 4;
} else {
R = f / (e / l) / 4;
}
y.position.z += d;
y.stiffness = isNaN(R) ? y.stiffness : R;
y.updateAngle(true);
y.targetStiffness = I
? 0
: P < e
? f / (Math.abs(l - e) / l) / 4
: f / (e / l) / 4;
y.targetStiffness = I
? 0
: isNaN(y.targetStiffness)
? y.stiffness
: y.targetStiffness;
y.isFlipping = true;
y.tween(L, S);
if (this.preFlipCallback != null) this.preFlipCallback();
} else {
y.skipFlip = false;
y.newStiffness = isNaN(y.newStiffness) ? 0 : y.newStiffness;
if (
y.angles[1] != S ||
y.stiffness != y.newStiffness ||
y.depth != y.oldDepth
) {
y.angles[1] = y.angles[4] = S;
y.stiffness = y.newStiffness;
y.updateAngle(true);
} else {
}
}
}
y.visible = a
? i
? P < p || y.isFlipping
: P >= p || y.isFlipping
: (E >= 0 && E < l) || (a && E == l);
if (this.requestPage != null) {
y.name = E.toString();
if (y.name != T) {
y.textureLoaded = false;
y.frontImage(n.textureLoadFallback);
y.frontPageStamp = "-1";
y.frontTextureLoaded = false;
y.thumbLoaded = false;
y.backImage(n.textureLoadFallback);
y.backPageStamp = "-1";
y.backTextureLoaded = false;
this.requestPage();
}
}
y.oldDepth = y.depth;
var M =
Math.abs(y.geometry.boundingBox.max.x) <
Math.abs(y.geometry.boundingBox.min.x)
? y.geometry.boundingBox.max.x
: y.geometry.boundingBox.min.x;
y.position.x =
y.isEdge == true && y.isFlipping == false ? (P < p ? M : -M) : 0;
}
this.oldBaseNumber = e;
if (this.updatePageCallback != null) this.updatePageCallback();
};
i.prototype.createCover = function (e) {
e.width = e.width * 2;
this.cover = new MOCKUP.BiFold(e);
this.add(this.cover);
};
i.prototype.createStack = function (e) {
var t = "red,green,blue,yellow,orange,black".split(",");
for (var i = 0; i < this.stackCount; i++) {
e.angles = [, this.stackCount - i];
e.stiffness = (this.stackCount - i) / 100;
var n = new MOCKUP.BookPaper(e);
n.angles[1] = 180;
n.index = i;
n.updateAngle();
n.textureReady = false;
n.textureRequested = false;
this.add(n);
n.color = t[i];
n.position.z = -1 * i;
}
};
i.prototype.shininess = function (e) {
if (e == null) {
return this.mainObject.shininess();
} else {
this.mainObject.shininess(e);
}
};
i.prototype.bumpScale = function (e) {
if (e == null) {
return this.mainObject.bumpScale();
} else {
this.mainObject.bumpScale(e);
}
};
i.prototype.frontImage = function (e) {
if (e == null) {
return this.mainObject.frontImage();
} else {
this.mainObject.frontImage(e);
}
};
i.prototype.backImage = function (e) {
if (e == null) {
return this.mainObject.backImage();
} else {
this.mainObject.backImage(e);
}
};
return i;
})(MOCKUP.Bundle);
MOCKUP.Book = a;
}
var Z = (function (e) {
function n(e) {
e = e || {};
this.type = "PreviewObject";
var i = this;
i.zoomValue = 1;
function n() {
setTimeout(function () {
i.resize();
}, 50);
}
window.addEventListener("resize", n, false);
this.sound = document.createElement("audio");
this.sound.setAttribute("src", e.soundFile + "?ver=" + t.version);
this.sound.setAttribute("type", "audio/mpeg");
this.autoPlayFunction = function () {
if (i && i.target.autoPlay) {
if (i.target.direction == t.DIRECTION.RTL) i.target.prev();
else i.target.next();
}
};
this.dispose = function () {
clearInterval(this.autoPlayTimer);
this.autoPlayTimer = null;
this.autoPlayFunction = null;
if (this.target && this.target.children) {
for (var e = 0; e < this.target.children.length; e++) {
var t = this.target.children[e];
if (t && t.currentTween) t.currentTween.stop();
}
}
if (this.zoomTween) {
if (this.zoomTween.stop) this.zoomTween.stop();
this.zoomTween = null;
}
if (this.container && this.container.info && this.container.info.remove)
this.container.info.remove();
if (this.target && this.target.dispose) this.target.dispose();
this.target = null;
if (this.stage && this.stage.dispose) this.stage.dispose();
this.stage = null;
if (this.ui && this.ui.dispose) this.ui.dispose();
this.ui = null;
if (this.contentProvider && this.contentProvider.dispose)
this.contentProvider.dispose();
this.contentProvider = null;
window.removeEventListener("resize", n);
};
}
n.prototype = {
start: function () {
this.target.gotoPage(this.target.startPage);
},
end: function () {
this.target.gotoPage(this.target.endPage);
},
next: function () {},
prev: function () {},
getPageTextContent: function (e) {
return this.contentProvider.pdfDocument
.getPage(e + 1)
.then(function (e) {
return e.getTextContent({ normalizeWhitespace: true });
});
},
calculateSize: function (e, t, i, n, a, o, r, s) {
var l = e;
var c = t - a;
var u = l - n;
var d = Math.ceil(s ? c : c / 2);
var f = d / r;
var h = null;
if (o) {
h = Math.min(f, i - n);
l = h;
} else {
h = Math.min(u, i - n);
}
var p = f > h;
var g, v;
if (p) {
v = h;
g = Math.floor(v * r);
} else {
g = d;
v = Math.ceil(d / r);
}
if (o) {
l = Math.max(v + n, 320);
}
return { stageHeight: l, isWide: p, height: v, width: g };
},
zoom: function (e) {
this.pendingZoom = true;
this.zoomDelta = e;
this.resize();
if (this.ui) this.ui.update();
},
resize: function () {
var e = this;
if (
e.target == null ||
e.target.ui == null ||
e.target.contentProvider == null ||
e.target.contentProvider.viewport == null ||
e.target.stage == null
)
return;
if (
this.ui &&
this.ui.isFullscreen == true &&
l.hasFullscreenEnabled() == true &&
l.getFullscreenElement() == null
) {
this.ui.switchFullscreen();
}
var n = e.target,
a = e.container,
o = e.options,
r = n.stage,
s = n.contentProvider,
u = s.pageRatio,
d = s.zoomViewport,
f = z(n),
h = n.mode !== "css",
p = s.pageRatio > 1,
g = this.ui.isFullscreen == true ? false : o.height === "auto",
v,
m,
b,
w,
x,
P,
y,
C = a.hasClass("df-sidemenu-open") ? 220 : 0,
L = this.target.pageMode == t.PAGE_MODE.SINGLE;
var I = a.width();
if (I < 400) {
e.container.addClass("df-xs");
} else {
e.container.removeClass("df-xs");
}
var T = a.find(".df-ui-controls").height();
var k =
o.paddingTop +
(o.controlsPosition == t.CONTROLSPOSITION.TOP ? T : 0),
O = o.paddingRight,
R =
o.paddingBottom +
(o.controlsPosition == t.CONTROLSPOSITION.BOTTOM ? T : 0),
F = o.paddingLeft;
(k = isNaN(k) ? 0 : S(k, 0, k)),
(R = isNaN(R) ? 0 : S(R, 0, R)),
(F = isNaN(F) ? 0 : S(F, 0, F)),
(O = isNaN(O) ? 0 : S(O, 0, O));
var M = k + R,
D = F + O;
var N = I - C;
a.height(o.height);
var A = i(window).height();
var B = Math.min(a.height(), A);
var j = e.calculateSize(B, N, A, M, D, g, u, L);
if (g) {
B = _ = e.calculateSize(B, N + C, A, M, D, g, u, L).stageHeight;
} else {
B = _ = j.stageHeight;
}
a.height(B);
var _ = B;
var U = N - D,
H = _ - M;
b = Math.floor(L ? U : U / 2);
m = Math.floor(b / u);
v = m > H;
if (v) {
m = H;
b = m * u;
}
y = s.maxZoom = s.zoomViewport.height / m;
if (e.zoomValue == null) e.zoomValue = 1;
if (s.zoomScale == null) s.zoomScale = 1;
if (e.pendingZoom == true && e.zoomDelta != null) {
var W = e.zoomDelta,
V,
G = Math.max(m, b);
e.zoomValue =
e.zoomDelta > 0
? e.zoomValue * e.options.zoomRatio
: e.zoomValue / e.options.zoomRatio;
e.zoomValue = S(e.zoomValue, 1, y);
if (e.zoomValue == 1) {
s.zoomScale = 1;
} else {
s.zoomScale = S(e.zoomValue, 1, y);
}
}
P = s.zoomScale;
s.checkViewportSize(b, m, P);
if (s.contentSourceType == c.PDF) {
b = s.imageViewport.width / P;
m = s.imageViewport.height / P;
}
if (s.zoomScale != 1) {
this.target.container.addClass("df-zoom-enabled");
}
var q = (n.zoomWidth = Math.floor(b * P)),
Z = (n.zoomHeight = Math.floor(m * P));
var Y = q * 2;
if (h) {
var K = Z / n.height,
X = N / _;
var Q = (P * (m + M)) / K,
$ = (P * (b * (L ? 1 : 2) + D)) / K;
var J = v ? Q : $ / X;
r.resizeCanvas(N, _);
w =
1 /
((2 * Math.tan((Math.PI * r.camera.fov * 0.5) / 180)) / (J / P)) +
2.2;
r.camera.updateProjectionMatrix();
r.renderRequestPending = true;
var ee = ((k - R) * (n.height / m)) / P / 2;
var te = s.zoomScale == 1;
if (r.camera.position.z !== w && e.pendingZoom == true) {
if (e.zoomTween != null) e.zoomTween.stop();
e.zoomTween = new TWEEN.Tween({
campos: r.camera.position.z,
otx: r.orbitControl.target.x,
oty: r.orbitControl.target.y,
otz: r.orbitControl.target.z,
})
.delay(0)
.to({ campos: w, otx: 0, oty: ee, otz: 0 }, 100)
.onUpdate(function () {
r.camera.position.z = this.campos;
if (te) {
r.camera.position.y = this.oty;
r.orbitControl.target = new THREE.Vector3(
this.otx,
this.oty,
this.otz
);
}
r.orbitControl.update();
})
.easing(TWEEN.Easing.Linear.None)
.onComplete(function () {
r.camera.position.z = w;
if (s.zoomScale == 1) {
r.camera.position.set(0, ee, w);
r.orbitControl.target = new THREE.Vector3(0, ee, 0);
}
r.orbitControl.update();
})
.start();
} else {
if (s.zoomScale == 1) {
r.camera.position.set(0, ee, w);
r.orbitControl.target = new THREE.Vector3(0, ee, 0);
}
r.orbitControl.update();
}
r.orbitControl.update();
r.orbitControl.mouseButtons.ORBIT = P != 1 ? -1 : THREE.MOUSE.RIGHT;
r.orbitControl.mouseButtons.PAN = P != 1 ? THREE.MOUSE.LEFT : -1;
} else {
n.pageWidth = Math.round(b);
n.fullWidth = n.pageWidth * 2;
n.height = Math.round(m);
var ie = (n.shiftHeight = Math.round(S((Z - _ + M) / 2, 0, Z))),
ne = (n.shiftWidth = Math.round(S((Y - N + D) / 2, 0, Y)));
if (P == 1) {
n.left = 0;
n.top = 0;
}
n.stage.css({
top: -ie,
bottom: -ie,
right: -ne + (f ? C : 0),
left: -ne + (f ? 0 : C),
paddingTop: k,
paddingRight: O,
paddingBottom: R,
paddingLeft: F,
transform: "translate3d(" + n.left + "px," + n.top + "px,0)",
});
n.stageHeight = r.height();
n.wrapper.css({
width: Y,
height: Z,
marginTop: B - Z - M > 0 ? (B - M - Z) / 2 : 0,
});
var ae = Math.floor(E(b, m) * P);
n.stage.find(".df-page-wrapper").width(ae).height(ae);
n.stage
.find(
".df-book-page, .df-page-front , .df-page-back, .df-page-fold-inner-shadow"
)
.height(Z)
.width(q);
}
e.checkCenter({ type: "resize" });
if (s.zoomScale == 1) {
this.target.container.removeClass("df-zoom-enabled");
}
if (n.thumblist) {
n.thumblist.reset(i(n.thumblist.container).height());
}
e.pendingZoom = false;
},
playSound: function () {
try {
if (this.options && this.options.soundEnable == true) {
this.sound.currentTime = 0;
this.sound.play();
}
} catch (e) {}
},
setPageMode: function (e) {
if (e == true) {
this.ui.pageMode.addClass(this.options.icons["doublepage"]);
this.ui.pageMode.html(
"<span>" + this.options.text.doublePageMode + "</span>"
);
this.ui.pageMode.attr("title", this.options.text.doublePageMode);
this.target.pageMode = t.PAGE_MODE.SINGLE;
} else {
this.ui.pageMode.removeClass(this.options.icons["doublepage"]);
this.ui.pageMode.html(
"<span>" + this.options.text.singlePageMode + "</span>"
);
this.ui.pageMode.attr("title", this.options.text.singlePageMode);
this.target.pageMode = t.PAGE_MODE.DOUBLE;
}
if (
this.target &&
this.target.singlePageMode == t.SINGLE_PAGE_MODE.BOOKLET
) {
this.target.reset();
}
this.resize();
},
setAutoPlay: function (e) {
if (this.options.autoPlay) {
e = e == true;
var t = e ? this.options.text.pause : this.options.text.play;
this.ui.play.toggleClass(this.options.icons["pause"], e);
this.ui.play.html("<span>" + t + "</span>");
this.ui.play.attr("title", t);
clearInterval(this.autoPlayTimer);
if (e) {
this.autoPlayTimer = setInterval(
this.autoPlayFunction,
this.options.autoPlayDuration
);
}
this.target.autoPlay = e;
}
},
height: function (e) {
if (e == null) {
return this.container.height();
} else {
this.options.height = e;
this.container.height(e);
this.resize();
}
},
checkCenter: function (e) {
e = e == null ? {} : e;
this.centerType = this.centerType || "start";
var i = this.target;
var n = 0,
a = 0,
o = 0;
var r = l.getBasePage(i._activePage);
var s = i._activePage % 2 == 0;
var c = i.direction == t.DIRECTION.RTL;
var u = i.pageMode == t.PAGE_MODE.SINGLE,
d = u && i.singlePageMode == t.SINGLE_PAGE_MODE.BOOKLET;
var f = i.stage.width(),
h;
if (i.mode == "css") {
h = i.wrapper.width();
n = Math.max((h - f) / 2, 0);
a = -h / 4;
o = h / 4;
if (r == 0 || d) {
i.wrapper.css({ left: u ? (c ? o - n : a - n) : c ? o : a });
i.shadow.css({
width: "50%",
left: c ? 0 : "50%",
transitionDelay: "",
});
} else if (r == i.pageCount) {
i.wrapper.css({ left: u ? (c ? a - n : o - n) : c ? a : o });
i.shadow.css({
width: "50%",
left: c ? "50%" : 0,
transitionDelay: "",
});
} else {
i.wrapper.css({
left: u ? (c ? (s ? a - n : o - n) : s ? o - n : a - n) : 0,
});
i.shadow.css({
width: "100%",
left: 0,
transitionDelay: parseInt(i.duration, 10) + 50 + "ms",
});
}
i.wrapper.css({ transition: e.type == "resize" ? "none" : "" });
} else if (i.stage != null) {
var p = i.position.x,
g;
n = i.width / 4;
h = i.width;
a = -h / 2;
o = h / 2;
if (r == 0 || d) {
g = c ? o : a;
} else if (r == i.pageCount) {
g = c ? a : o;
} else {
g = u ? (c ? (s ? a : o) : s ? o : a) : 0;
}
if (g !== this.centerEnd) {
this.centerTween = new TWEEN.Tween({ x: p })
.delay(0)
.to({ x: g }, i.duration)
.onUpdate(function () {
i.position.x = this.x;
i.stage.cssScene.position.x = this.x;
})
.easing(i.ease)
.start();
this.centerEnd = g;
}
}
},
width: function (e) {
if (e == null) {
return this.container.width();
} else {
this.options.width = e;
this.container.width(e);
this.resize();
}
},
};
return n;
})({});
t.PreviewObject = Z;
var Y = (function (e) {
H(a, e);
function a(e, a, o, r) {
o = o || {};
var s = this;
s.contentRawSource = e || [n.textureLoadFallback];
s.contentSource = s.contentRawSource;
s.contentSourceType = null;
s.minDimension = o.minTextureSize || 256;
s.maxDimension = o.maxTextureSize || 2048;
s.pdfRenderQuality = o.pdfRenderQuality || t.defaults.pdfRenderQuality;
s.flipbook = r;
s.waitPeriod = 50;
s.maxLength = 297;
s.enableDebug = false;
s.zoomScale = 1;
s.maxZoom = 2;
s.options = o;
s.outline = o.outline;
s.links = o.links;
s.html = o.html;
s.isCrossOrigin = o.isCrossOrigin;
s.normalViewport = { height: 297, width: 210, scale: 1 };
s.viewport = { height: 297, width: 210, scale: 1 };
s.imageViewport = { height: 297, width: 210, scale: 1 };
s.bookSize = { height: 297, width: 210 };
s.zoomViewport = { height: 297, width: 210 };
s.thumbsize = 128;
s.cacheIndex = 256;
s.cache = [];
s.pageRatio = o.pageRatio || s.viewport.width / s.viewport.height;
s.textureLoadTimeOut = null;
s.type = "TextureLibrary";
if (
Array === s.contentSource.constructor ||
Array.isArray(s.contentSource) ||
s.contentSource instanceof Array
) {
s.contentSourceType = c.IMAGE;
s.pageCount = s.contentSource.length;
for (var u = 0; u < s.contentSource.length; u++) {
s.contentSource[u] = l.httpsCorrection(s.contentSource[u].toString());
}
i("<img/>")
.attr("src", s.contentSource[0])
.on("load", function () {
s.viewport.height = this.height;
s.viewport.width = this.width;
s.pageRatio = s.viewport.width / s.viewport.height;
s.bookSize = {
width: (s.pageRatio > 1 ? 1 : s.pageRatio) * s.maxLength,
height: s.maxLength / (s.pageRatio < 1 ? 1 : s.pageRatio),
};
s.zoomViewport = {
width: (s.pageRatio > 1 ? 1 : s.pageRatio) * s.maxDimension,
height: s.maxDimension / (s.pageRatio < 1 ? 1 : s.pageRatio),
};
s.linkService = new PDFLinkService();
i(this).off();
if (s.options.pageSize == t.PAGE_SIZE.DOUBLEINTERNAL) {
s.pageCount = s.contentSource.length * 2 - 2;
if (s.options.webgl == true) s.requiresImageTextureScaling = true;
}
if (a != null) {
a(s);
a = null;
}
k(this.height + ":" + this.width);
});
} else if (
typeof s.contentSource == "string" ||
s.contentSource instanceof String
) {
var d = function () {
if (s.contentSource.indexOf(".base64") > 1) {
i.ajax({
url: s.contentSource,
xhrFields: {
onprogress: function (e) {
if (e.lengthComputable) {
var t = (100 * e.loaded) / e.total;
s.updateInfo(
s.options.text.loading +
" PDF " +
t.toString().split(".")[0] +
"% ..."
);
}
},
},
success: function (e) {
s.options.docParameters = { data: atob(e) };
f();
},
});
} else {
f();
}
};
var f = function () {
if (s) {
pdfjsLib.GlobalWorkerOptions.workerSrc = n.pdfjsWorkerSrc;
s.contentSourceType = c.PDF;
var i = s.options.disableFontFace;
if (_ || U || s.options.disableFontFace == true) {
}
var o = (s.loading = pdfjsLib.getDocument(
s.options.docParameters
? s.options.docParameters
: {
url: l.httpsCorrection(e),
rangeChunkSize: isNaN(s.options.rangeChunkSize)
? 524288
: s.options.rangeChunkSize,
cMapUrl: n.cMapUrl,
cMapPacked: true,
imageResourcesPath: n.imageResourcesPath,
disableAutoFetch: true,
disableStream: true,
disableFontFace: i,
}
));
o.promise.then(
function e(i) {
s.pdfDocument = i;
i.getPage(1).then(function (e) {
s.normalViewport = e.getViewport({ scale: 1 });
s.viewport = e.getViewport({ scale: 1 });
s.viewport.height = s.viewport.height / 10;
s.viewport.width = s.viewport.width / 10;
s.pageRatio = s.viewport.width / s.viewport.height;
s.bookSize = {
width: (s.pageRatio > 1 ? 1 : s.pageRatio) * s.maxLength,
height: s.maxLength / (s.pageRatio < 1 ? 1 : s.pageRatio),
};
s.zoomViewport = {
width: (s.pageRatio > 1 ? 1 : s.pageRatio) * s.maxDimension,
height:
s.maxDimension / (s.pageRatio < 1 ? 1 : s.pageRatio),
};
s.refPage = e;
if (i.numPages > 1) {
i.getPage(2).then(function (e) {
if (s.options.pageSize == t.PAGE_SIZE.AUTO) {
var n = e.getViewport({ scale: 1 });
var o = n.width / n.height;
if (o > s.pageRatio * 1.5) {
s.options.pageSize = t.PAGE_SIZE.DOUBLEINTERNAL;
s.pageCount = i.numPages * 2 - 2;
} else {
s.options.pageSize = t.PAGE_SIZE.SINGLE;
}
}
if (a != null) {
a(s);
a = null;
}
});
} else {
if (a != null) {
a(s);
a = null;
}
}
});
s.linkService = new PDFLinkService();
s.linkService.setDocument(i, null);
s.pageCount = i.numPages;
s.contentSource = i;
},
function e(t) {
if (s) {
var i = "",
n = document.createElement("a");
n.href = s.contentSource;
if (n.hostname !== window.location.hostname)
i = "CROSS ORIGIN!! ";
s.updateInfo(i + "Cannot access file! " + s.contentSource);
}
}
);
o.onProgress = function e(t) {
if (s) {
var i = (100 * t.loaded) / t.total;
if (isNaN(i)) {
if (t && t.loaded) {
s.updateInfo(
s.options.text.loading +
" PDF " +
(Math.ceil(t.loaded / 1e4) / 100).toString() +
"MB ..."
);
} else {
s.updateInfo(s.options.text.loading + " PDF ...");
}
} else {
s.updateInfo(
s.options.text.loading +
" PDF " +
i.toString().split(".")[0] +
"% ..."
);
}
}
};
}
};
var h = function () {
if (s) {
if (n.pdfjsWorkerSrc.indexOf("?ver") < 0)
n.pdfjsWorkerSrc += "?ver=" + t.version;
s.updateInfo(s.options.text.loading + " PDF Worker ...");
var e = document.createElement("a");
e.href = n.pdfjsWorkerSrc;
if (e.hostname !== window.location.hostname) {
s.updateInfo(s.options.text.loading + " PDF Worker CORS ...");
i.ajax({
url: n.pdfjsWorkerSrc,
cache: true,
success: function (e) {
n.pdfjsWorkerSrc = t.createObjectURL(e, "text/javascript");
d();
},
});
} else {
d();
}
}
};
if (window.pdfjsLib == null) {
if (s) {
s.updateInfo(s.options.text.loading + " PDF Service ...");
M(
n.pdfjsSrc + "?ver=" + t.version,
function () {
if (
typeof define === "function" &&
define.amd &&
window.requirejs
) {
s.updateInfo(
s.options.text.loading + " PDF Service (require) ..."
);
require.config({
paths: {
"pdfjs-dist/build/pdf.worker": n.pdfjsWorkerSrc.replace(
".js",
""
),
},
});
require(["pdfjs-dist/build/pdf"], function (e) {
window.pdfjsLib = e;
h();
});
} else if (
typeof exports === "object" &&
exports["pdfjs-dist/build/pdf"] != null
) {
window.pdfjsLib = exports["pdfjs-dist/build/pdf"];
h();
} else {
h();
}
},
function () {
s.updateInfo("Unable to load PDF service..");
}
);
}
} else {
d();
}
} else {
console.error(
"Unknown source type. Please check documentation for help"
);
}
this.dispose = function () {
if (s.loading && s.loading.destroy) {
s.loading.destroy();
}
s.loading = null;
if (s.textureLoadTimeOut) {
clearTimeout(s.textureLoadTimeOut);
s.textureLoadTimeOut = null;
}
if (this.targetObject) {
if (
this.targetObject.thumbContainer &&
this.targetObject.thumbContainer.remove
)
this.targetObject.thumbContainer.remove();
if (
this.targetObject.outlineContainer &&
this.targetObject.outlineContainer.remove
)
this.targetObject.outlineContainer.remove();
if (this.targetObject.dispose) this.targetObject.dispose();
this.targetObject.processPage = null;
this.targetObject.requestPage = null;
if (this.targetObject.container && this.targetObject.container.off)
this.targetObject.container.off();
}
if (this.pdfDocument && this.pdfDocument.destroy)
this.pdfDocument.destroy();
if (this.linkService && this.linkService.dispose)
this.linkService.dispose();
if (this.outlineViewer && this.outlineViewer.dispose)
this.outlineViewer.dispose();
if (this.thumblist && this.thumblist.dispose) {
this.thumblist.review = null;
this.thumblist.dispose();
}
this.activeThumb = null;
this.targetObject = null;
this.pdfDocument = null;
this.linkService = null;
this.outlineViewer = null;
this.thumblist = null;
s = null;
};
return this;
}
a.prototype.updateInfo = function (e) {
if (this.flipbook && this.flipbook.updateInfo) {
this.flipbook.updateInfo(e);
}
};
a.prototype.initThumbs = function () {
var e = this;
if (e.cache[e.thumbsize] == null) e.cache[e.thumbsize] = [];
var t;
var n = function () {
clearTimeout(t);
t = setTimeout(function () {
t = setTimeout(a, e.waitPeriod / 2);
}, e.waitPeriod);
};
var a = function () {
var a = 0;
if (Date.now() - e.thumblist.lastScrolled < 100) {
a = 1;
} else {
e.targetObject.container
.find(".df-thumb-container .df-vrow")
.each(function () {
var t = i(this);
if (!t.hasClass("df-thumb-loaded")) {
a++;
var o = i(this).attr("id").replace("df-thumb", "");
e.getPage(o, n, true);
t.addClass("df-thumb-loaded");
return false;
}
});
if (a == 0) {
clearTimeout(t);
}
}
if (a > 0) {
n();
}
if (e.activeThumb != e.targetObject._activePage) {
var o =
e.targetObject.thumbContainer != null &&
e.targetObject.thumbContainer.hasClass("df-sidemenu-visible");
if (o) {
var r = e.thumblist.container;
var s = r.scrollTop,
c = r.getBoundingClientRect().height;
var u = e.targetObject.thumbContainer.find(
"#df-thumb" + e.targetObject._activePage
);
if (u.length > 0) {
e.targetObject.thumbContainer
.find(".df-selected")
.removeClass("df-selected");
u.addClass("df-selected");
u = u[0];
if (s + c < u.offsetTop + u.scrollHeight)
l.scrollIntoView(u, null, false);
else if (s > u.offsetTop) l.scrollIntoView(u);
e.activeThumb = e.targetObject._activePage;
} else {
i(r).scrollTop(e.targetObject._activePage * 124);
n();
}
}
}
};
e.thumblist = e.targetObject.thumblist = new ThumbList({
h: 500,
addFn: function (e) {},
scrollFn: n,
itemHeight: 128,
totalRows: e.pageCount,
generatorFn: function (e) {
var t = document.createElement("div");
var i = e + 1;
t.id = "df-thumb" + i;
var n = document.createElement("div");
n.innerHTML = i;
t.appendChild(n);
return t;
},
});
e.thumblist.lastScrolled = Date.now();
e.thumblist.review = n;
n();
var o = i("<div>").addClass(
"df-thumb-container df-sidemenu-visible df-sidemenu"
);
o.append(i(e.thumblist.container).addClass("df-thumb-wrapper"));
e.targetObject.thumbContainer = o;
e.targetObject.container.append(o);
var r = i(h.div, { class: "df-ui-btn df-ui-sidemenu-close ti-close" });
o.append(r);
e.thumblist.reset(i(e.thumblist.container).height());
e.targetObject.container.on(
"click",
".df-thumb-container .df-vrow",
function (t) {
t.stopPropagation();
var n = i(this).attr("id").replace("df-thumb", "");
e.targetObject.gotoPage(parseInt(n, 10));
}
);
};
a.prototype.initOutline = function () {
var e = this;
var t = i("<div>").addClass("df-outline-container df-sidemenu");
var n = i("<div>").addClass("df-outline-wrapper");
var a = i(h.div, { class: "df-ui-btn df-ui-sidemenu-close ti-close" });
t.append(a).append(n);
e.targetObject.container.append(t);
e.targetObject.outlineContainer = t;
e.outlineViewer = new BookMarkViewer({
container: n[0],
linkService: e.linkService,
outlineItemClass: "df-outline-item",
outlineToggleClass: "df-outline-toggle",
outlineToggleHiddenClass: "df-outlines-hidden",
});
function o(t) {
if (e.options.overwritePDFOutline == true) {
t = [];
}
t = t || [];
if (e.outline) {
for (var i = 0; i < e.outline.length; i++) {
e.outline[i].custom = true;
if (t) t.push(e.outline[i]);
}
}
if (t.length === 0 && e.targetObject.ui.outline != null) {
e.targetObject.ui.outline.hide();
}
e.outlineViewer.render({ outline: t });
}
if (e.pdfDocument) {
e.pdfDocument.getOutline().then(function (e) {
o(e);
});
} else {
o([]);
}
if (e.options.autoEnableOutline == true) {
e.targetObject.ui.outline.trigger("click");
}
if (e.options.autoEnableThumbnail == true) {
e.targetObject.ui.thumbnail.trigger("click");
}
};
a.prototype.checkViewportSize = function (e, t, i) {
var a = this;
var o = a.targetObject;
var r = e * i,
s = t * i;
var l = a.cacheIndex;
if (a.contentSourceType == c.PDF) {
a.cacheIndex = Math.ceil(Math.max(r, s));
a.cacheIndex = Math.floor(Math.max(r, s));
a.cacheIndex = S(
a.cacheIndex * n.pixelRatio,
a.minDimension,
a.maxDimension
);
if (a.cache[a.cacheIndex] == null) a.cache[a.cacheIndex] = [];
if (l !== a.cacheIndex) {
for (var u = 0; u < o.children.length; u++) {
var d = o.children[u];
}
o.refresh();
}
a.imageViewport = a.refPage.getViewport({
scale: s / a.normalViewport.height,
});
a.viewport =
o.mode == "css"
? a.imageViewport
: a.refPage.getViewport({
scale: a.bookSize.height / a.normalViewport.height,
});
k(a.cacheIndex);
a.annotedPage = undefined;
a.review();
} else {
if (a.cache[a.cacheIndex] == null) a.cache[a.cacheIndex] = [];
}
};
a.prototype.getCache = function (e, t) {
return t == true
? this.cache[this.thumbsize] == null
? null
: this.cache[this.thumbsize][e]
: this.cache[this.cacheIndex] == null
? null
: this.cache[this.cacheIndex][e];
};
a.prototype.setCache = function (e, t, i, n) {
if (i == true) {
if (this.cache[this.thumbsize] != null)
this.cache[this.thumbsize][e] = t;
} else {
var a = n == null ? this.cacheIndex : n;
if (this.cache[a] != null) this.cache[a][e] = t;
}
};
a.prototype.setTarget = function (e) {
var t = this;
if (e == null) {
return this.targetObject;
} else {
this.targetObject = e;
e.contentProvider = this;
e.container.removeClass("df-loading df-init");
if (t.linkService != null) {
t.linkService.setViewer(e);
t.initOutline();
}
e.processPage = function (e, i) {
if (e > 0 && e <= t.pageCount) {
t.getPage(e, i);
} else {
t.setPage(e, n.textureLoadFallback, i);
}
};
e.requestPage = function () {
t.review("Request");
};
if (e.resize != null) e.resize();
}
};
a.prototype.review = function (e) {
var t = this;
e = e || "timer review";
clearTimeout(t.textureLoadTimeOut);
t.textureLoadTimeOut = setTimeout(function () {
t.textureLoadTimeOut = setTimeout(
t.reviewPages,
t.waitPeriod / 2,
t,
e
);
}, t.waitPeriod);
};
a.prototype.reviewPages = function (e, t) {
e = e || this;
var n = e.targetObject;
if (n == null) return;
var a = A(n);
if (t != null) k(t);
var o = false;
var r, s;
for (r = 0; r < e.targetObject.children.length; r++) {
s = n.children[r];
if (s.isFlipping == true) {
o = true;
break;
}
}
if (o == false) {
var l = n.children.length > 3 ? 3 : n.children.length;
var c = l / 2;
var u = a ? n._activePage : F(n._activePage);
e.baseNumber = u;
if (e.zoomScale > 1) {
l = 1;
}
for (r = 0; r < l; r++) {
var d = Math.floor(r / 2);
var f =
r % 2 == 0 ? -d * (a ? 1 : 2) : (d == 0 ? 1 : d) * (a ? 1 : 2);
var h = u + f,
p = u + f + 1;
var g = n.getPageByNumber(h),
v = n.getPageByNumber(p),
m = h + "|" + e.cacheIndex,
b = p + "|" + e.cacheIndex;
var w = 0;
if (g != null && g.frontPageStamp != m && g.visible == true) {
g.frontTextureLoaded = false;
n.processPage(h, function () {
e.review("Batch Call");
});
g.frontPageStamp = m;
w++;
}
if (v != null && v.backPageStamp != b && v.visible == true && !a) {
v.backTextureLoaded = false;
n.processPage(p, function () {
e.review("Batch Call");
});
v.backPageStamp = b;
w++;
}
if (f == 0 && e.annotedPage !== u) {
e.getAnnotations(h);
if (!a) e.getAnnotations(p);
e.annotedPage = u;
}
if (w > 0) {
break;
}
}
if (w == 0) {
if (n.mode !== "css") {
e.setLoading(u);
} else {
}
}
} else {
e.review("Revisit request");
if (e.annotedPage != null && n.mode !== "css") {
var x = F(n._activePage);
i(n.getContentLayer(x)).html("");
i(n.getContentLayer(x + 1)).html("");
e.annotedPage = null;
}
}
};
a.prototype.getPage = function (e, a, o) {
var r = this;
e = parseInt(e, 10);
var s = e;
var l = r.contentSource;
if (e <= 0 && e >= r.pageCount) {
r.setPage(e, n.textureLoadFallback, a, o);
} else {
if (r.contentSourceType == c.PDF) {
if (r.getCache(e, o) != null) {
r.setPage(e, r.getCache(e, o), a, o);
k("Page " + e + " loaded from cache");
} else {
if (o !== true) r.setLoading(e, true);
if (r.options.pageSize == t.PAGE_SIZE.DOUBLEINTERNAL && e > 2) {
s = Math.ceil((e - 1) / 2) + 1;
}
l.getPage(s, o).then(function (t) {
f(t, e, a, o);
});
}
} else if (
r.contentSourceType == c.IMAGE ||
r.contentSourceType == c.HTML
) {
if (r.getCache(e, o) != null) {
r.setPage(e, r.getCache(e, o), a, o);
k("Page " + e + " loaded from cache");
} else {
if (o !== true) r.setLoading(e, true);
if (r.options.pageSize == t.PAGE_SIZE.DOUBLEINTERNAL && e > 2) {
s = Math.ceil((e - 1) / 2) + 1;
}
d(
l[s - 1],
function (t) {
r.setCache(e, t, o, r.cacheIndex);
r.setPage(e, t, a, o);
if (a != null) a();
},
r.isCrossOrigin
);
}
}
}
function u(e, i, a) {
var o = new Image();
o.crossOrigin = "Anonymous";
o.onload = function () {
if (a == true) {
var r = document.createElement("canvas"),
s = r.getContext("2d");
r.width = o.width;
r.height = o.height;
s.drawImage(o, 0, 0);
if (n.canvasToBlob == true) {
r.toBlob(
function (e) {
var n = t.createObjectURL(e, "image/jpeg");
if (i != null) i(n);
},
"image/jpeg",
0.85
);
} else {
if (i != null) i(r);
}
} else {
if (i != null) i(e);
}
o.onload = null;
o = null;
};
o.src = e;
if (o.complete || o.complete === undefined) {
o.src =
"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==";
o.src = e;
}
}
function d(e, t, n) {
i("<img/>")
.attr("src", e)
.on("load", function () {
i(this).off();
if (t != null) {
t(e);
}
k(this.height + ":" + this.width);
});
}
function f(e, i, n, a) {
var o = r.options.forceFit;
var s =
r.options.pageSize == t.PAGE_SIZE.DOUBLEINTERNAL &&
i > 1 &&
i < r.pageCount;
var l = s && o ? 2 : 1;
var c = o ? e.getViewport({ scale: 1 }) : r.normalViewport;
var u = r.cacheIndex / Math.max(c.width / l, c.height);
if (r.webgl == true) {
u = O(r.cacheIndex) / (r.pageRatio > 1 ? c.width / l : c.height);
}
var d = document.createElement("canvas");
var f = performance.now();
var h = r.cacheIndex;
var p = d.getContext("2d");
if (a == true) {
u = r.thumbsize / r.normalViewport.height;
}
d.height = Math.round(c.height * u);
d.width = Math.round((c.width / l) * u);
if (
r.targetObject.mode == "css" &&
Math.abs(r.targetObject.zoomHeight - d.height) < 2
) {
d.height = r.targetObject.zoomHeight + 0;
d.width = r.targetObject.zoomWidth + 0;
}
c = e.getViewport({ scale: u });
k("rendering " + i + " at " + d.width + "x" + d.height);
if (s) {
if (z(r.targetObject)) {
if (i % 2 == 0) {
c.transform[4] = -d.width;
}
} else {
if (i % 2 == 1) {
c.transform[4] = -d.width;
}
}
}
var g = { canvasContext: p, viewport: c };
e.cleanupAfterRender = true;
var v = e.render(g);
v.promise.then(function () {
k(performance.now() - f);
f = performance.now();
if (
a == true ||
(r.options.canvasToBlob == true && r.webgl !== true)
) {
d.toBlob(
function (e) {
var o = t.createObjectURL(e, "image/jpeg");
k(performance.now() - f);
r.setCache(i, o, a, h);
r.setPage(i, o, n, a);
},
"image/jpeg",
r.pdfRenderQuality
);
} else {
k("Setting Page " + i);
r.setPage(i, d, n, a);
}
g = null;
});
}
};
a.prototype.getTargetPage = function (e) {};
a.prototype.setLoading = function (e, t) {
if (this.targetObject != null) {
if (this.webgl == true) {
var n = this.targetObject.container;
if (t == true) {
if (n.isLoading !== true) {
n.addClass("df-loading");
n.isLoading = true;
k("Loading icon at " + e + " as " + t);
}
} else {
if (n.isLoading != null) {
n.removeClass("df-loading");
n.isLoading = null;
k("Loading icon at " + e + " as " + t);
}
}
} else {
var a = i(this.targetObject.getContentLayer(e));
if (a != null) {
if (t == true) a.addClass("df-page-loading");
else a.removeClass("df-page-loading");
k("Loading icon at " + e + " as " + t);
}
}
}
};
a.prototype.getAnnotations = function (e) {
var n = this;
if (n.options.enableAnnotation == false) return;
var a = n.targetObject;
e = parseInt(e, 10);
var o = n.contentSource;
var r = i(a.getContentLayer(e));
r.empty();
if (e > 0 && e <= n.pageCount) {
if (n.contentSourceType == c.PDF) {
var s = F(e);
var l = e;
if (n.options.pageSize == t.PAGE_SIZE.DOUBLEINTERNAL && e > 2) {
l = Math.ceil((e - 1) / 2) + 1;
}
o.getPage(l).then(function (t) {
if (r != null && r.length > 0) {
var i = t.getViewport({ scale: 1 });
i = t.getViewport({ scale: n.viewport.height / i.height });
n.setupAnnotations(t, i, r, e);
}
});
}
if (n.links != null && n.links[e] != null) {
var u = n.links[e];
for (var d = 0; d < u.length; d++) {
var f = u[d];
var h;
if (f.dest && f.dest.indexOf && f.dest.indexOf("[html]") == 0) {
h = document.createElement("div");
h.innerHTML = f.dest.substr(6);
h.className = "customHtmlAnnotation";
} else {
h = document.createElement("a");
h.setAttribute("dest", f.dest);
h.className = "customLinkAnnotation";
h.href = "#" + f.dest;
h.onclick = function () {
var e = this.getAttribute("dest");
if (e) {
n.linkService.customNavigateTo(e);
}
return false;
};
}
h.style.left = f.x + "%";
h.style.top = f.y + "%";
h.style.width = f.w + "%";
h.style.height = f.h + "%";
r[0].appendChild(h);
}
}
if (n.html != null && n.html[e] != null) {
var p = n.html[e];
r.append(i("<div class='customHTMLAnnotation'>").html(p));
}
}
};
a.prototype.setPage = function (e, t, i, a) {
var o = this;
var r = o.targetObject;
var s = z(r);
var l = A(r);
if (a == true) {
var c = o.targetObject.container.find("#df-thumb" + e);
c.css({ backgroundImage: C(t) });
} else {
if (t == n.textureLoadFallback) {
k("Fallback on " + e);
}
var u = r.getPageByNumber(e);
if (u != null) {
if ((e % 2 != 0 && !s) || (e % 2 != 1 && s && !l) || (l && !s)) {
k(e + "rendered to back of " + u.color);
u.backImage(t, function (t, n) {
u.backTextureLoaded = true;
o.setLoading(e);
if (
o.requiresImageTextureScaling &&
n &&
e != 1 &&
e != o.pageCount
) {
n.repeat.x = 0.5;
n.offset.x = 0.5;
}
if (i != null) i();
});
} else {
k(e + "rendered to front of " + u.color);
u.frontImage(t, function (t, n) {
u.frontTextureLoaded = true;
o.setLoading(e);
if (
o.requiresImageTextureScaling &&
n &&
e != 1 &&
e != o.pageCount
) {
n.repeat.x = 0.5;
}
if (i != null) i();
});
}
} else {
k("Invalid set request on Page " + e);
}
}
};
a.prototype.setupAnnotations = function (e, a, o, r) {
if (o == null || i(o).length == 0) return;
var s = this;
return e.getAnnotations().then(function (l) {
a = a.clone({ dontFlip: true });
if (
s.options.pageSize == t.PAGE_SIZE.DOUBLEINTERNAL &&
r > 2 &&
r % 2 == 1
) {
} else if (r == 1) {
}
if (o == null) {
return;
}
o = i(o);
if (o.find(".annotationDiv").length == 0) {
o.append(i("<div class='annotationDiv'>"));
}
var c = o.find(".annotationDiv");
c.empty();
if (
s.options.pageSize == t.PAGE_SIZE.DOUBLEINTERNAL &&
r > 2 &&
r % 2 == 1
) {
c.css({ left: "-100%" });
} else if (r == 1) {
c.css({ left: "" });
}
pdfjsLib.AnnotationLayer.render({
annotations: l,
div: c[0],
page: e,
viewport: a,
imageResourcesPath: n.imageResourcesPath,
linkService: s.linkService,
});
if (s.options.annotationClass && s.options.annotationClass !== "") {
c.find(" > section").addClass(s.options.annotationClass);
}
if (s.options.search == true) {
if (o.find(".textLayerDiv").length == 0) {
o.append(i("<div class='textLayerDiv'>"));
}
var u = o.find(".textLayerDiv");
e.getTextContent().then(function (e) {
var i = new t.TextLayerBuilder({
textLayerDiv: u[0],
pageIndex: null,
viewport: a.clone({ dontFlip: false }),
});
i.setTextContent(e);
i.render();
});
}
});
};
return a;
})({});
var K = (function () {
function e(e) {
this.angles = e.angles || [0, 0, 0, 0, 0, 0];
this.stiffness = e.angles || 0.1;
this.segments = e.segments || 1;
this.canvasMode =
e.contentSourceType !== c.IMAGE && e.canvasToBlob == false;
this.initDOM();
}
function a(e) {
var t = (e.contentLayer = i(h.div, { class: "df-page-content" }));
e.append(t);
}
e.prototype = {
initDOM: function () {
var e = (this.element = i(h.div, { class: "df-book-page" }));
var t = (this.wrapper = i(h.div, { class: "df-page-wrapper" }));
var n = (this.front = i(h.div, { class: "df-page-front" }));
var o = (this.back = i(h.div, { class: "df-page-back" }));
var r = (this.foldInnerShadow = i(h.div, {
class: "df-page-fold-inner-shadow",
}));
var s = (this.foldOuterShadow = i(h.div, {
class: "df-page-fold-outer-shadow",
}));
this.frontIMG = new Image();
this.backIMG = new Image();
a(n, this.segments, true);
a(o, this.segments, false);
e.append(t).append(s);
t.append(n).append(o).append(r);
},
updatePoint: function (e) {
if (e == null) return;
var i =
this.parent.dragPage != null
? this.parent.dragPage
: e.page != null
? e.page
: this;
var n = i.element.width(),
a = i.element.height();
var o = this.parent.corner != null ? this.parent.corner : e.corner,
r = t.CORNERS;
var s = i.side == d.right,
l = o == r.BL || o == r.BR;
e.rx = s == true ? n * 2 - e.x : e.x;
e.ry = l == true ? a - e.y : e.y;
var c = Math.atan2(e.ry, e.rx);
c = Math.PI / 2 - S(c, 0, v(90));
var u = s ? e.x / 2 : n - e.x / 2,
f = e.ry / 2,
h = Math.max(0, Math.sin(c - Math.atan2(f, u)) * E(u, f)),
p = 0.5 * E(e.rx, e.ry);
var g = Math.round(n - h * Math.sin(c)),
b = Math.round(h * Math.cos(c)),
x = m(c);
var y = l ? (s ? 180 + (90 - x) : 180 + x) : s ? x : 90 - x;
var C = l ? (s ? 180 + (90 - x) : x) : s ? x + 180 : y,
L = l ? (s ? 90 - x : x + 90) : s ? y - 90 : y + 180,
I = s ? n - g : g,
T = l ? a + b : -b,
k = s ? -g : g - n,
O = l ? -a - b : b;
var R = S((e.distance * 0.5) / n, 0, 0.5);
var F = S(((n * 2 - e.rx) * 0.5) / n, 0.05, 0.3);
i.element.addClass("df-folding");
var M = s ? i.back : i.front;
var D = s ? i.front : i.back;
var A = i.foldOuterShadow;
var z = i.foldInnerShadow;
i.wrapper.css({ transform: w(I, T) + P(y) });
M.css({ transform: P(-y) + w(-I, -T) });
D.css({
transform: P(C) + w(k, O),
boxShadow: "rgba(0, 0, 0, " + R + ") 0px 0px 20px",
});
z.css({
transform: P(C) + w(k, O),
opacity: F / 2,
backgroundImage:
N.css +
"linear-gradient( " +
L +
"deg, rgba(0, 0, 0, 0.25) , rgb(0, 0, 0) " +
p * 0.7 +
"px, rgb(255, 255, 255) " +
p +
"px)",
});
A.css({
opacity: F / 2,
left: s ? "auto" : 0,
right: s ? 0 : "auto",
backgroundImage:
N.css +
"linear-gradient( " +
(-L + 180) +
"deg, rgba(0, 0, 0,0) " +
p / 3 +
"px, rgb(0, 0, 0) " +
p +
"px)",
});
},
updateAngle: function (e, t) {
var i = this.element.width() * 5;
this.wrapper.css({
perspective: i,
perspectiveOrigin: t == true ? "0% 50%" : "100% 50%",
});
this.front.css({
display:
t == true
? e <= -90
? "block"
: "none"
: e < 90
? "block"
: "none",
transform:
(N.dom !== "MfS" ? "" : "perspective(" + i + "px) ") +
(t == true ? "translateX(-100%) " : "") +
"rotateY(" +
((t == true ? 180 : 0) + e) +
"deg)",
});
this.back.css({
display:
t == true
? e > -90
? "block"
: "none"
: e >= 90
? "block"
: "none",
transform:
(N.dom !== "MSd" ? "" : "perspective(" + i + "px) ") +
(t == false ? "translateX(100%) " : "") +
"rotateY(" +
((t == false ? -180 : 0) + e) +
"deg)",
});
return;
},
tween: function (e) {
var i = this;
if (i == null || i.parent == null) return;
var n = A(i.parent);
var a = i.side == d.right;
var o = i.parent.direction == t.DIRECTION.RTL;
var r =
i.parent.corner == t.CORNERS.BL || i.parent.corner == t.CORNERS.BR;
var s = i.magnetic == true;
var l = r ? i.parent.height : 0;
var c,
u,
f,
h = 0;
var p = (i.end =
i && i.animateToReset == true
? { x: a ? i.parent.fullWidth : 0, y: l }
: { x: a ? 0 : i.parent.fullWidth, y: l });
i.ease = i.isHard
? TWEEN.Easing.Quadratic.InOut
: TWEEN.Easing.Linear.None;
var g = i.parent.duration;
if (i.isHard == true) {
if (e != null) {
h = T(e.distance, e.fullWidth);
}
c = i.init = { angle: h * (a ? -1 : 1) };
p = i.end =
i && i.animateToReset == true
? { angle: a ? 0 : -0 }
: { angle: a ? -180 : 180 };
} else {
if (e == null) {
c = i.init =
i && i.animateToReset == true
? { x: a ? 0 : i.parent.fullWidth, y: 0 }
: { x: a ? i.parent.fullWidth : 0, y: 0 };
u = i.first = { x: ((a ? 3 : 1) * i.parent.fullWidth) / 4, y: 0 };
f = i.mid = { x: ((a ? 1 : 3) * i.parent.fullWidth) / 4, y: 0 };
} else {
c = i.init = { x: e.x, y: e.y, opacity: 1 };
u = i.first = { x: (e.x * 3) / 4, y: (e.y * 3) / 4, opacity: 1 };
f = i.mid = { x: e.x / 4, y: e.y / 4, opacity: 1 };
g =
(i.parent.duration * I(c.x, c.y, p.x, p.y)) / i.parent.fullWidth;
g = S(g, i.parent.duration / 3, i.parent.duration);
}
}
c.index = 0;
p.index = 1;
i.isFlipping = true;
var v = function (e) {
if (i.isHard == true) {
i.updateAngle(e.angle, a);
i.angle = e.angle;
} else {
i.updatePoint({ x: e.x, y: e.y });
i.x = e.x;
i.y = e.y;
}
if (n && !s)
i.element[0].style.opacity =
(a && !o) || (!a && o)
? e.index > 0.5
? 2 * (1 - e.index)
: 1
: e.index < 0.5
? 2 * e.index
: 1;
};
if (n && ((!a && !o) || (a && o))) i.element[0].style.opacity = 0;
var m = (i.completeTween =
i.completeTween ||
function (e) {
i.isFlipping = false;
if (i.isHard == true) {
i.updateAngle(i.end.angle);
i.back.css({ display: "block" });
i.front.css({ display: "block" });
} else {
i.updatePoint({ x: i.end.x, y: i.end.y });
}
i.element[0].style.opacity = 1;
if (i.animateToReset !== true) {
i.side = i.side == d.right ? d.left : d.right;
} else i.animateToReset = null;
i.currentTween = null;
i.pendingPoint = null;
i.magnetic = false;
i.parent.dragPage = null;
i.parent.corner = t.CORNERS.NONE;
if (e != true) i.parent.refresh();
});
if (i.isHard == true) {
i.currentTween = new TWEEN.Tween(c)
.delay(0)
.to(p, i.parent.duration)
.onUpdate(function () {
v(this);
})
.easing(i.ease)
.onComplete(i.completeTween)
.start();
} else {
if (e == null) {
i.currentTween = new TWEEN.Tween(c)
.delay(0)
.to(p, i.parent.duration)
.onUpdate(function () {
v(this);
})
.easing(TWEEN.Easing.Sinusoidal.Out)
.onComplete(i.completeTween)
.start();
} else {
i.currentTween = new TWEEN.Tween(c)
.delay(0)
.to(p, g)
.onUpdate(function () {
v(this);
})
.easing(TWEEN.Easing.Sinusoidal.Out)
.onComplete(i.completeTween);
i.currentTween.start();
}
}
},
frontImage: function (e, t) {
var a = this;
function o() {
a.front.css({ backgroundImage: C(e) });
if (t != null) t();
}
if (a.canvasMode == true) {
a.front.find(">canvas").remove();
if (e !== n.textureLoadFallback) {
a.front.append(i(e));
}
if (t != null) t();
} else {
if (e == n.textureLoadFallback) {
o();
} else {
a.frontIMG.onload = o;
a.frontIMG.src = e;
}
}
},
backImage: function (e, t) {
var a = this;
function o() {
a.back.css({ backgroundImage: C(e) });
if (t != null) t();
}
if (a.canvasMode == true) {
a.back.find(">canvas").remove();
if (e !== n.textureLoadFallback) {
a.back.append(i(e));
}
if (t != null) t();
} else {
if (e == n.textureLoadFallback) {
o();
} else {
a.backIMG.onload = o;
a.backIMG.src = e;
}
}
},
updateCSS: function (e) {
this.element.css(e);
},
resetCSS: function () {
this.wrapper.css({ transform: "" });
this.front.css({ transform: "", boxShadow: "" });
this.back.css({ transform: "", boxShadow: "" });
},
clearTween: function (e) {
this.currentTween.stop();
this.completeTween(e == true);
this.resetCSS();
},
};
return e;
})();
var X = (function (e) {
H(s, e);
function o(e) {
e.parent.container.find(".df-folding").removeClass("df-folding");
e.element.addClass("df-folding");
}
function r(e) {
var t = false;
for (var i = 0; i < e.pages.length; i++) {
var n = e.pages[i];
if (n.isFlipping == true) {
t = true;
break;
}
}
return t;
}
function s(e, n) {
var s = this;
s.type = "BookCSS";
s.images = e.images || [];
s.pageCount = e.pageCount || 1;
s.foldSense = 50;
s.stackCount = 4;
s.mode = "css";
s.pages = [];
s.duration = e.duration;
s.container = i(n);
s.options = e;
s.drag = d.none;
s.pageMode =
e.pageMode ||
(B || s.pageCount <= 2 ? t.PAGE_MODE.SINGLE : t.PAGE_MODE.DOUBLE);
s.singlePageMode =
e.singlePageMode ||
(B ? t.SINGLE_PAGE_MODE.BOOKLET : t.SINGLE_PAGE_MODE.ZOOM);
s.swipe_threshold = B ? 15 : 50;
s.direction = e.direction || t.DIRECTION.LTR;
s.startPage = 1;
s.endPage = s.pageCount;
s._activePage = e.openPage || s.startPage;
s.hardConfig = e.hard;
a =
"WebKitCSSMatrix" in window ||
(document.body && "MozPerspective" in document.body.style);
s.animateF = function () {
if (TWEEN.getAll().length > 0) TWEEN.update();
else clearInterval(s.animate);
};
s.init(e);
s.skipDrag = false;
function c(e) {
if (s.dragPage != e.page && e.page.visible == true) {
s.dragPage.clearTween(true);
s.dragPage = e.page;
s.corner = e.corner;
s.dragPage.pendingPoint = e;
}
}
var u = function (e) {
var i = s.eventToPoint(e);
if (
e.touches != null &&
e.touches.length == 2 &&
s.startTouches != null
) {
s.zoomDirty = true;
var n = l.getVectorAvg(l.getTouches(e, s.container.offset())),
a = l.calculateScale(s.startTouches, l.getTouches(e)),
o = a / s.lastScale;
var c = s.contentProvider.zoomScale,
u = n.x,
f = n.y;
s.stage.css({
transform:
"translate3d(" +
s.left +
"px," +
s.top +
"px,0) scale3d(" +
a +
"," +
a +
",1)",
});
s.lastScale = a;
s.lastZoomCenter = n;
e.preventDefault();
}
if (
(e.touches != null && e.touches.length > 1) ||
s.startPoint == null ||
s.startTouches != null
)
return;
var h = s.dragPage || i.page;
if (s.contentProvider.zoomScale !== 1) {
if (e.touches != null || s.isPanning == true) {
s.pan(i);
e.preventDefault();
}
} else {
if (s.skipDrag !== true) {
var p = i.distance;
if (!r(s)) {
if (s.dragPage != null || i.isInside == true) {
if (s.dragPage != null) {
k("set mouse down move");
} else {
i.y = S(i.y, 1, s.height - 1);
i.x = S(i.x, 1, i.fullWidth - 1);
}
var g = s.corner || i.corner;
if (h.isHard) {
var v = g == t.CORNERS.BR || g == t.CORNERS.TR;
var m = T(i.distance, i.fullWidth);
h.updateAngle(m * (v ? -1 : 1), v);
} else {
h.updatePoint(i, s);
}
h.magnetic = true;
h.magneticCorner = i.corner;
e.preventDefault();
}
if (
s.dragPage == null &&
h != null &&
i.isInside == false &&
h.magnetic == true
) {
h.pendingPoint = i;
h.animateToReset = true;
s.corner = h.magneticCorner;
s.animatePage(h);
h.pendingPoint = null;
h.magnetic = false;
h.magneticCorner = null;
}
if (
s.isPanning == true &&
s.dragPage == null &&
s.contentProvider.zoomScale == 1
) {
var b = i.x - s.lastPos,
w = performance.now() - s.lastTime;
if (Math.abs(b) > s.swipe_threshold) {
if (b < 0) {
s.next();
} else {
s.prev();
}
s.drag = d.none;
s.isPanning = false;
e.preventDefault();
}
s.lastPos = i.x;
s.lastTime = performance.now();
}
}
}
}
},
f = function (e) {
if (e.touches != null && e.touches.length == 0) {
var i = s.contentProvider.zoomScale;
if (s.zoomDirty == true) {
s.previewObject.contentProvider.zoomScale = l.limitAt(
s.previewObject.contentProvider.zoomScale * s.lastScale,
1,
s.previewObject.contentProvider.maxZoom
);
s.previewObject.zoomValue =
s.previewObject.contentProvider.zoomScale * 1;
s.previewObject.resize();
s.zoomDirty = false;
}
s.wrapper.css({ transform: "" });
s.lastScale = null;
s.startTouches = null;
}
s.isPanning = false;
if (e.touches != null && e.touches.length > 1) return;
if (s.skipDrag !== true) {
var n = s.eventToPoint(e);
if (s.dragPage) {
e.preventDefault();
s.dragPage.pendingPoint = n;
if (
n.x == s.startPoint.x &&
n.y == s.startPoint.y &&
n.isInside == true
) {
if (s.corner == t.CORNERS.BR || s.corner == t.CORNERS.TR) {
c(n);
if (s.dragPage.isFlipping !== true) s.next();
} else if (
s.corner == t.CORNERS.BL ||
s.corner == t.CORNERS.TL
) {
c(n);
if (s.dragPage.isFlipping !== true) s.prev();
}
} else if (s.dragPage.isFlipping !== true) {
if (n.distance > n.fullWidth / 2) {
if (n.x > n.fullWidth / 2) s.prev();
else s.next();
} else {
s.dragPage.animateToReset = true;
s.animatePage(s.dragPage);
}
}
if (s.dragPage) {
s.dragPage.pendingPoint = null;
s.dragPage.magnetic = false;
}
} else {
}
s.drag = d.none;
}
},
h = function (e) {
var i = s.eventToPoint(e);
var n = e.srcElement || e.originalTarget;
if (s.dragPage && s.dragPage.magnetic) return;
if (
s.wrapper[0].contains(e.target) &&
s.contentProvider.zoomScale == 1 &&
i.x == s.startPoint.x &&
i.y == s.startPoint.y &&
i.isInsidePage &&
s.startPoint.page == i.page &&
!i.page.isFlipping &&
n.nodeName !== "A"
) {
if (s.startPoint.page.side == 0) {
s.corner = t.CORNERS.TL;
s.prev();
s.startPoint.page = null;
} else {
s.corner = t.CORNERS.TR;
s.next();
s.startPoint.page = null;
}
s.isPanning = false;
}
},
p = function (e) {
if (
e.touches != null &&
e.touches.length == 2 &&
s.startTouches == null
) {
s.startTouches = l.getTouches(e);
s.lastScale = 1;
}
if (
(e.touches != null && e.touches.length > 1) ||
(e.touches == null && e.button !== 0)
)
return;
var i = s.eventToPoint(e);
s.startPoint = i;
s.left = s.left || 0;
s.top = s.top || 0;
s.isPanning = true;
s.lastPos = i.x;
s.lastTime = performance.now();
if (s.skipDrag !== true) {
if (i.isInside == true && !r(s)) {
s.startPoint = i;
s.drag = i.drag;
s.dragPage = i.page;
s.corner = i.corner;
k(s.corner);
o(s.dragPage);
if (i.page.isHard) {
} else {
i.page.updatePoint(i, s);
}
if (i.page.name == "0") {
s.shadow.css({
width: "50%",
left: s.direction == t.DIRECTION.RTL ? 0 : "50%",
transitionDelay: "",
});
} else if (i.page.name == Math.ceil(s.pageCount / 2) - 1) {
s.shadow.css({
width: "50%",
left: s.direction == t.DIRECTION.RTL ? "50%" : 0,
transitionDelay: "",
});
}
}
}
},
g = function (e) {
var t = 0;
if (e.wheelDelta != null) {
t = e.wheelDelta / 120;
} else if (e.detail != null) {
t = -e.detail / 3;
}
var i = s.contentProvider.zoomScale,
n = s.contentProvider.maxZoom;
if (t) {
if ((t > 0 && i < n) || (t < 0 && i > 1)) {
e.stopPropagation();
e.preventDefault();
var a = s.eventToPoint(e);
var o = s.eventToPoint(e);
var r = {
x: s.container.width() / 2,
y: -23 + s.container.height() / 2,
};
s.previewObject.zoom(t);
var l = s.contentProvider.zoomScale;
if (i !== l) {
var c = l / i;
if (l == 1) {
s.left = 0;
s.top = 0;
} else {
s.left *= c;
s.top *= c;
}
var u = (a.raw.x - r.x) * c,
d = (a.raw.y - r.y) * c;
o.raw.x = r.x + u;
o.raw.y = r.y + d;
s.startPoint = o;
s.pan(a);
var f = s.dragPage || a.page;
if (
s.dragPage == null &&
f != null &&
a.isInside == true &&
f.magnetic == true
) {
f.pendingPoint = a;
f.animateToReset = true;
s.corner = f.magneticCorner;
s.animatePage(f);
f.pendingPoint = null;
f.magnetic = false;
f.magneticCorner = null;
}
}
}
}
};
var v = s.container[0];
var m = s.stage[0];
if (v) {
m.addEventListener("mousemove", u, false);
m.addEventListener("touchmove", u, false);
m.addEventListener("mousedown", p, false);
m.addEventListener("click", h, false);
m.addEventListener("mouseup", f, false);
m.addEventListener("touchend", f, false);
m.addEventListener("touchstart", p, false);
if (s.options.scrollWheel == true) {
m.addEventListener("mousewheel", g, false);
m.addEventListener("DOMMouseScroll", g, false);
}
}
this.dispose = function () {
m.removeEventListener("mousemove", u, false);
m.removeEventListener("touchmove", u, false);
m.removeEventListener("mousedown", p, false);
m.removeEventListener("click", h, false);
m.removeEventListener("mouseup", f, false);
m.removeEventListener("touchend", f, false);
m.removeEventListener("touchstart", p, false);
if (s.options.scrollWheel == true) {
m.removeEventListener("mousewheel", g, false);
m.removeEventListener("DOMMouseScroll", g, false);
}
s.updatePageCallback = null;
s.flipCallback = null;
s.animateF = null;
s.stage.remove();
};
}
s.prototype = {
add: function (e) {
if (e instanceof K) this.container.append(i(e.element));
else this.container.append(i(e));
},
pan: function (e) {
var t = this.startPoint;
var i = this.contentProvider.zoomScale;
var n = this.left + (e.raw.x - t.raw.x),
a = this.top + (e.raw.y - t.raw.y);
this.left = Math.round(S(n, -this.shiftWidth, this.shiftWidth));
this.top = Math.round(S(a, -this.shiftHeight, this.shiftHeight));
if (i == 1) {
this.left = 0;
this.top = 0;
}
this.startPoint = e;
this.stage.css({
transform: "translate3d(" + this.left + "px," + this.top + "px,0)",
});
},
getPageByNumber: function (e) {
var t = A(this) ? (z(this) ? e + 1 : e) : Math.floor((e - 1) / 2);
var i;
for (var n = 0; n < this.pages.length; n++) {
if (t == parseInt(this.pages[n].name, 10)) i = this.pages[n];
}
return i;
},
getPageSide: function (e) {
var i = this.direction == t.DIRECTION.RTL;
var n = this.getPageByNumber(e);
if (n == null) return;
if (A(this)) return i ? n.front : n.back;
if (e % 2 == 0) return i ? n.back : n.front;
else return i ? n.front : n.back;
},
getContentLayer: function (e) {
var t = this.getPageSide(e);
return t == null ? null : t.contentLayer;
},
};
s.prototype.init = function (e) {
var t = this;
t.stage = i(h.div, { class: "df-book-stage" });
t.wrapper = i(h.div, { class: "df-book-wrapper" });
t.shadow = i(h.div, { class: "df-book-shadow" });
t.container.append(t.stage);
t.stage.append(t.wrapper);
t.wrapper.append(t.shadow);
t.createStack(e);
};
s.prototype.createStack = function (e) {
var t = "red,green,blue,yellow,orange,black".split(",");
for (var i = 0; i < this.stackCount; i++) {
e.angles = [, this.stackCount - i];
e.stiffness = (this.stackCount - i) / 100;
var n = new K(e);
n.angles[1] = 180;
n.index = i;
n.parent = this;
n.textureReady = false;
n.textureRequested = false;
this.wrapper.append(n.element);
n.isFlipping = false;
this.pages.push(n);
n.color = t[i];
}
this.children = this.pages;
};
s.prototype.isPageHard = function (e) {
return l.isHardPage(this.hardConfig, e, this.pageCount, A(this));
};
s.prototype.setDuration = function (e) {
this.duration = e;
};
s.prototype.moveBy = function (e) {
var t = this._activePage + e;
t = S(t, this.startPage, this.endPage);
if (this.firstFlipped != true) {
this.previewObject.analytics({
eventAction: "First Page Flip",
options: this.previewObject.options,
});
this.firstFlipped = true;
}
this.gotoPage(t);
};
s.prototype.next = function (e) {
if (e == null)
e = this.direction == t.DIRECTION.RTL ? -this.pageMode : this.pageMode;
this.moveBy(e);
};
s.prototype.prev = function (e) {
if (e == null)
e = this.direction == t.DIRECTION.RTL ? this.pageMode : -this.pageMode;
this.moveBy(e);
};
s.prototype.eventToPoint = function (e) {
e = D(e);
var n = this.wrapper,
a = this.pages,
o = this.pageWidth,
r = this.fullWidth,
s = this.height,
l = i(window),
c = { x: e.clientX, y: e.clientY };
var u = c.x - n[0].getBoundingClientRect().left;
var f = c.y - n[0].getBoundingClientRect().top;
c.x = c.x - this.container[0].getBoundingClientRect().left;
c.y = c.y - this.container[0].getBoundingClientRect().top;
var h =
this.drag == d.none
? u < o
? u
: r - u
: this.drag == d.left
? u
: r - u;
var p = u < o ? a[this.stackCount / 2 - 1] : a[this.stackCount / 2];
var g =
u < this.foldSense ? d.left : u > r - this.foldSense ? d.right : d.none;
var v = u,
m = f,
b = s,
w = r,
x = this.foldSense,
P = t.CORNERS,
y;
if (v >= 0 && v < x) {
if (m >= 0 && m <= x) y = P.TL;
else if (m >= b - x && m <= b) y = P.BL;
else if (m > x && m < b - x) y = P.L;
else y = P.NONE;
} else if (v >= w - x && v <= w) {
if (m >= 0 && m <= x) y = P.TR;
else if (m >= b - x && m <= b) y = P.BR;
else if (m > x && m < b - x) y = P.R;
else y = P.NONE;
} else y = P.NONE;
return {
isInsidePage: v >= 0 && v <= w && m >= 0 && m <= b,
isInside: y !== P.NONE && y !== P.L && y !== P.R,
x: u,
y: f,
fullWidth: r,
rawDistance: r - u,
distance: h,
page: p,
drag: g,
foldSense: this.foldSense,
event: e,
raw: c,
corner: y,
};
};
s.prototype.gotoPage = function (e) {
e = parseInt(e, 10);
this._activePage = e;
if (this.autoPlay == true) {
this.previewObject.setAutoPlay(this.autoPlay);
}
this.updatePage(e);
if (this && this.thumblist && this.thumblist.review)
this.thumblist.review();
};
s.prototype.refresh = function () {
this.updatePage(this._activePage);
if (this.flipCallback != null) this.flipCallback();
};
s.prototype.updatePage = function (e) {
var a = this.direction == t.DIRECTION.RTL,
o = A(this),
r = F(e);
var s = o ? 1 : 2;
e = Math.floor(e / s);
if (a) e = Math.ceil(this.pageCount / s) - e;
var l = this.oldBaseNumber || 0;
var c = this.pageCount / s;
var u = this.stackCount;
var f = Math.floor(u / 2);
if (l > e) {
this.children[u - 1].skipFlip = true;
this.children.unshift(this.children.pop());
} else if (l < e) {
this.children[0].skipFlip = true;
this.children.push(this.children.shift());
}
for (var h = 0; h < u; h++) {
var p = this.children[h];
if (l !== e) {
if (p.currentTween != null) {
p.clearTween(true);
}
}
var g = p.side;
var v;
var m = e - f + h;
if (a)
m = o ? this.pageCount - m : Math.ceil(this.pageCount / 2) - m - 1;
var b = p.name;
p.isHard = this.isPageHard(m);
if (p.isHard) {
p.element.addClass("df-hard-page");
} else {
p.element.removeClass("df-hard-page");
p.front.css({ display: "block" });
p.back.css({ display: "block" });
}
if (m == 0 || m == c) {
p.element.addClass("df-cover-page");
} else {
p.element.removeClass("df-cover-page");
}
var w = i(p.element).attr("pageNumber");
if (w != m) {
p.front.contentLayer.empty();
p.back.contentLayer.empty();
}
i(p.element).attr("pageNumber", m);
p.isEdge = false;
if (h == 0) {
} else if (h == u - 1) {
} else {
p.isEdge = false;
}
if (h < f) {
v = d.left;
} else {
v = d.right;
}
if (p.isFlipping == false) {
if (v !== g && p.skipFlip == false) {
this.animatePage(p);
if (this.preFlipCallback != null) this.preFlipCallback();
} else {
p.skipFlip = false;
p.element.removeClass(
"df-flipping df-quick-turn df-folding df-left-side df-right-side"
);
p.element.addClass(h < f ? "df-left-side" : "df-right-side");
p.side = v;
}
}
p.visible = o
? a
? h < f || p.isFlipping
: h >= f || p.isFlipping
: (m >= 0 && m < c) || (o && m == c);
if (this.requestPage != null && p.visible == true) {
p.name = m.toString();
if (p.name != b) {
p.backTextureLoaded = false;
p.frontTextureLoaded = false;
p.backPageStamp = "-1";
p.frontPageStamp = "-1";
p.thumbLoaded = false;
p.front.contentLayer.html("");
p.back.contentLayer.html("");
p.frontImage(n.textureLoadFallback);
p.backImage(n.textureLoadFallback);
this.requestPage();
}
}
p.oldDepth = p.depth;
p.updateCSS({
display: p.visible == true ? "block" : "none",
zIndex: 6 + (h < f ? h - f : f - h),
transform: "",
});
if (p.pendingPoint == null && p.isFlipping == false) {
p.resetCSS();
}
}
if (TWEEN.getAll().length == 0) {
clearInterval(this.animate);
}
i(".quick-hint").html(e);
this.oldBaseNumber = e;
if (this.updatePageCallback) this.updatePageCallback();
};
s.prototype.animatePage = function (e) {
e.element.addClass("df-flipping");
e.isFlipping = true;
if (this.animate != null) {
clearInterval(this.animate);
}
this.animate = setInterval(this.animateF, 30);
e.tween(e.pendingPoint);
};
return s;
})({});
var Q = (function (e) {
H(a, e);
function a(n, a, o) {
e.call(this, o);
var r = this;
r.type = "FlipBook";
r.container = n;
r.options = o;
r.options.source = a;
r.contentSource = a;
if (o.height != null && o.height.toString().indexOf("%") < 0) {
r.container.height(Math.min(o.height, i(window).height()));
} else {
r.container.height(o.height);
}
if (r.options.isLightBox) {
window.dfLightBox.closeButton.addClass(r.options.icons["close"]);
}
if (r.options.pageSize == t.PAGE_SIZE.DOUBLEINTERNAL) {
if (
Array === r.contentSource.constructor ||
Array.isArray(r.contentSource) ||
r.contentSource instanceof Array
) {
r.options.singlePageMode = t.SINGLE_PAGE_MODE.ZOOM;
}
r.container.addClass("df-double-internal");
}
if (!r.options.isLightBox && r.container.attr("id") != null) {
r.options.id = r.container.attr("id");
}
if (r.options.parsed !== true && r.options.links != null) {
t.parseLinks(r.options.links);
}
var l = (r.webgl = o.webgl == true && j == true);
n.addClass(
"df-container df-loading df-init df-floating" +
" df-controls-" +
r.options.controlsPosition
);
if (r.options.transparent == true) {
n.addClass("df-transparent");
}
if (r.options.direction == t.DIRECTION.RTL) {
n.addClass("df-rtl");
}
r.container.info = i(h.div, { class: "loading-info" })
.appendTo(r.container)
.html(r.options.text.loading + "...");
if (
s.indexOf("MSIE") !== -1 ||
navigator.appVersion.indexOf("Trident/") > 0 ||
(_ && !U)
) {
r.options.webgl = false;
}
if (!!s.match(/msie\s[5-9]/i)) {
r.container.info
.html(
"Your browser (Internet Explorer) is out of date to run DFlip Flipbook Plugin. <br><a href='http://browsehappy.com/'>Upgrade to a new one</a>"
)
.addClass("df-old-browser");
n.removeClass("df-loading");
return r;
}
var c =
o.backgroundImage == null || o.backgroundImage == ""
? ""
: "url('" + o.backgroundImage + "')";
r.container.css({
position: "relative",
overflow: "hidden",
backgroundColor: o.backgroundColor,
backgroundImage: c,
});
if (r.options.isLightBox == true) {
r.analytics({ eventAction: "Open Book", options: r.options });
}
r.init(l, a);
if (r.options.onCreate != null) r.options.onCreate(r);
return r;
}
a.prototype.init = function (e) {
var a = this;
var o = a.target;
var r = a.options;
if (e == true) {
var s = function (e) {
var i = function () {
MOCKUP.defaults.anisotropy = 0;
MOCKUP.defaults.groundTexture = "blank";
THREE.skipPowerOfTwo = true;
q();
if (e != null) e();
};
if (window.MOCKUP == null) {
a.updateInfo(r.text.loading + " WEBGL 3D ...");
if (
typeof define === "function" &&
define.amd &&
window.requirejs
) {
requirejs.config({
paths: { three: n.threejsSrc.replace(".js", "") },
shim: { three: { exports: "THREE" } },
});
require(["three"], function (e) {
window.THREE = e;
M(n.mockupjsSrc + "?ver=" + t.version, function () {
i();
});
return e;
});
} else if (typeof define === "function" && define.amd) {
require(["three", n.threejsSrc.replace(".js", "")], function (
e,
t
) {
e(function () {});
});
} else {
M(n.threejsSrc + "?ver=" + t.version, function () {
M(n.mockupjsSrc + "?ver=" + t.version, function () {
i();
});
});
}
} else {
i();
}
};
s(function () {
a.container.css({ minHeight: 300, minWidth: 300 });
a.stage = new G(R(a.options, { container: a.container }));
a.stage.previewObject = a;
a.contentProvider = new Y(
a.contentSource,
function (n) {
var r = {
pageCount: n.pageCount,
stackCount: 6,
segments: 20,
width: n.bookSize.width,
height: n.bookSize.height,
};
a.target =
o =
a.stage.target =
new MOCKUP.Book(R(a.options, r), a.stage);
a.extendtarget();
V(a.container, a);
o.ui = a.ui;
o.container = a.container;
n.webgl = e;
n.setTarget(a.target);
o.getContentLayer = function (e) {
var i = o.direction == t.DIRECTION.RTL,
n = a.stage.cssScene.divLeft.element,
r = a.stage.cssScene.divRight.element;
var s = F(o._activePage);
if (A(o)) return i ? n : r;
if (e % 2 == 0) return i ? r : n;
else return i ? n : r;
};
o.stage = a.stage;
o.flipCallback = function () {
if (a.contentProvider) {
a.contentProvider.review("flipCallback");
var e = F(o._activePage);
var n, r;
var s = o.getPageByNumber(e),
l = o.getPageByNumber(e + 1);
var c = o.parent.cssScene.divLeft,
u = o.parent.cssScene.divRight;
var d = o.pageMode == t.PAGE_MODE.SINGLE;
var f = o.direction == t.DIRECTION.RTL;
if (s != null && c != null) {
n = Math.abs(
s.geometry.boundingBox.max.x -
s.geometry.boundingBox.min.x
);
r = Math.abs(
s.geometry.boundingBox.max.z -
s.geometry.boundingBox.min.z
);
c.rotation.y = -Math.atan2(r, n) * 0.9;
c.position.z = r * 0.8;
c.position.x = r / 2.5;
i(c.element).css({ width: n, left: -n / 2 });
}
if (l != null && u != null) {
n = Math.abs(
l.geometry.boundingBox.max.x -
l.geometry.boundingBox.min.x
);
r = Math.abs(
l.geometry.boundingBox.max.z -
l.geometry.boundingBox.min.z
);
u.rotation.y = Math.atan2(r, n) * 0.9;
u.position.z = r * 0.8;
u.position.x = -r / 2.5;
i(u.element).css({ width: n, left: n / 2 });
}
if (a.options.onFlip != null) a.options.onFlip(a);
}
};
o.resize = (function () {
a.resize();
})();
o.updatePageCallback = function () {
a.ui.update();
a.checkCenter();
a.stage.renderRequestPending = true;
};
var s = i(a.stage.cssScene.divLeft.element);
var l = i(a.stage.cssScene.divRight.element);
o.preFlipCallback = function () {
s.empty();
l.empty();
if (a.options.beforeFlip != null) a.options.beforeFlip(a);
a.playSound();
};
i(window).trigger("resize");
s.css({
width: n.bookSize.width,
height: n.bookSize.height,
left: -n.bookSize.width / 2,
});
l.css({
width: n.bookSize.width,
height: n.bookSize.height,
left: n.bookSize.width / 2,
});
o.ease = TWEEN.Easing.Cubic.InOut;
o.contentProvider = n;
o.duration = a.options.duration;
o.gotoPage(o._activePage);
o.flipCallback();
if (a.options.isLightBox == true) {
a.analytics({ eventAction: "Book Ready", options: a.options });
}
if (a.options.onReady != null) a.options.onReady(a);
},
r,
a
);
});
} else {
a.contentProvider = new Y(
a.contentSource,
function (t) {
var n = {
pageCount: t.pageCount,
contentSourceType: t.contentSourceType,
};
a.target = o = new X(R(a.options, n), a.container);
a.target.previewObject = a;
a.extendtarget();
V(a.container, a);
t.webgl = e;
t.setTarget(a.target);
t.waitPeriod = 2;
o.ease = TWEEN.Easing.Quadratic.InOut;
o.duration = a.options.duration;
o.container = a.container;
o.updatePageCallback = function () {
a.ui.update();
a.checkCenter();
};
o.resize = (function () {
a.resize();
})();
i(window).trigger("resize");
o.flipCallback = function () {
if (a.contentProvider) {
a.contentProvider.review("flipCallback");
if (a.options.onFlip != null) a.options.onFlip(a);
}
};
o.preFlipCallback = function () {
if (a.options.beforeFlip != null) a.options.beforeFlip(a);
a.playSound();
};
o.gotoPage(o._activePage);
o.flipCallback();
if (a.options.onReady != null) a.options.onReady(a);
a.analytics({ eventAction: "Book Ready", options: a.options });
},
r,
a
);
}
};
a.prototype.extendtarget = function () {
var e = this;
e.target.previewObject = e;
e.target.reset = function () {
for (var t = 0; t < e.target.children.length; t++) {
var i = e.target.children[t];
i.skipFlip = true;
i.name = "-2";
}
e.contentProvider.annotedPage = "-2";
e.target.refresh();
};
};
a.prototype.getURLHash = function () {
if (this.options.id != null) {
var e =
l.getSharePrefix() +
(this.options.slug != null ? this.options.slug : this.options.id) +
"/";
if (this.target != null && this.target._activePage != null) {
e += this.target._activePage + "/";
}
window.location.hash = e;
}
return window.location.href;
};
a.prototype.end = function () {
this.target.gotoPage(this.target.endPage);
};
a.prototype.gotoPage = function (e) {
this.target.gotoPage(e);
if (this.ui != null) this.ui.update();
};
a.prototype.prev = function () {
this.target.prev();
};
a.prototype.next = function () {
this.target.next();
};
a.prototype.updateInfo = function (e) {
if (this.container && this.container.info && this.container.info.html)
this.container.info.html(e);
};
a.prototype.analytics = function (e) {
if (this.options.enableAnalytics == true) {
try {
var t = e.options,
i = undefined;
if (t) {
i = t.bookTitle || t.slug || t.id;
}
var n = window.gtag;
if (n) {
n("event", e.eventAction, {
event_category: "Flipbook",
event_label: i,
});
} else {
var a = window.ga || window.__gaTracker;
a("send", {
hitType: "event",
eventCategory: "Flipbook",
eventAction: e.eventAction,
eventLabel: i,
});
}
} catch (e) {}
}
};
return a;
})(Z);
i.fn.extend({
shelf: function () {},
flipBook: function (e, t) {
return new Q(i(this), e, W(t));
},
});
})(DFLIP, jQuery);
(function (e) {
"use strict";
e.URL = e.URL || e.webkitURL;
if (e.Blob && e.URL) {
try {
new Blob();
return;
} catch (e) {}
}
var t =
e.BlobBuilder ||
e.WebKitBlobBuilder ||
e.MozBlobBuilder ||
(function (e) {
var t = function (e) {
return Object.prototype.toString
.call(e)
.match(/^\[object\s(.*)\]$/)[1];
},
i = function e() {
this.data = [];
},
n = function e(t, i, n) {
this.data = t;
this.size = t.length;
this.type = i;
this.encoding = n;
},
a = i.prototype,
o = n.prototype,
r = e.FileReaderSync,
s = function (e) {
this.code = this[(this.name = e)];
},
l = (
"NOT_FOUND_ERR SECURITY_ERR ABORT_ERR NOT_READABLE_ERR ENCODING_ERR " +
"NO_MODIFICATION_ALLOWED_ERR INVALID_STATE_ERR SYNTAX_ERR"
).split(" "),
c = l.length,
u = e.URL || e.webkitURL || e,
d = u.createObjectURL,
f = u.revokeObjectURL,
h = u,
p = e.btoa,
g = e.atob,
v = e.ArrayBuffer,
m = e.Uint8Array,
b = /^[\w-]+:\/*\[?[\w\.:-]+\]?(?::[0-9]+)?/;
n.fake = o.fake = true;
while (c--) {
s.prototype[l[c]] = c + 1;
}
if (!u.createObjectURL) {
h = e.URL = function (e) {
var t = document.createElementNS("http://www.w3.org/1999/xhtml", "a"),
i;
t.href = e;
if (!("origin" in t)) {
if (t.protocol.toLowerCase() === "data:") {
t.origin = null;
} else {
i = e.match(b);
t.origin = i && i[1];
}
}
return t;
};
}
h.createObjectURL = function (e) {
var t = e.type,
i;
if (t === null) {
t = "application/octet-stream";
}
if (e instanceof n) {
i = "data:" + t;
if (e.encoding === "base64") {
return i + ";base64," + e.data;
} else if (e.encoding === "URI") {
return i + "," + decodeURIComponent(e.data);
}
if (p) {
return i + ";base64," + p(e.data);
} else {
return i + "," + encodeURIComponent(e.data);
}
} else if (d) {
return d.call(u, e);
}
};
h.revokeObjectURL = function (e) {
if (e.substring(0, 5) !== "data:" && f) {
f.call(u, e);
}
};
a.append = function (e) {
var i = this.data;
if (m && (e instanceof v || e instanceof m)) {
var a = "",
o = new m(e),
l = 0,
c = o.length;
for (; l < c; l++) {
a += String.fromCharCode(o[l]);
}
i.push(a);
} else if (t(e) === "Blob" || t(e) === "File") {
if (r) {
var u = new r();
i.push(u.readAsBinaryString(e));
} else {
throw new s("NOT_READABLE_ERR");
}
} else if (e instanceof n) {
if (e.encoding === "base64" && g) {
i.push(g(e.data));
} else if (e.encoding === "URI") {
i.push(decodeURIComponent(e.data));
} else if (e.encoding === "raw") {
i.push(e.data);
}
} else {
if (typeof e !== "string") {
e += "";
}
i.push(unescape(encodeURIComponent(e)));
}
};
a.getBlob = function (e) {
if (!arguments.length) {
e = null;
}
return new n(this.data.join(""), e, "raw");
};
a.toString = function () {
return "[object BlobBuilder]";
};
o.slice = function (e, t, i) {
var a = arguments.length;
if (a < 3) {
i = null;
}
return new n(
this.data.slice(e, a > 1 ? t : this.data.length),
i,
this.encoding
);
};
o.toString = function () {
return "[object Blob]";
};
o.close = function () {
this.size = 0;
delete this.data;
};
return i;
})(e);
e.Blob = function (e, i) {
var n = i ? i.type || "" : "";
var a = new t();
if (e) {
for (var o = 0, r = e.length; o < r; o++) {
if (Uint8Array && e[o] instanceof Uint8Array) {
a.append(e[o].buffer);
} else {
a.append(e[o]);
}
}
}
var s = a.getBlob(n);
if (!s.slice && s.webkitSlice) {
s.slice = s.webkitSlice;
}
return s;
};
var i =
Object.getPrototypeOf ||
function (e) {
return e.__proto__;
};
e.Blob.prototype = i(new e.Blob());
})(window);
(function (e) {
"use strict";
var t = e.Uint8Array,
i = e.HTMLCanvasElement,
n = i && i.prototype,
a = /\s*;\s*base64\s*(?:;|$)/i,
o = "toDataURL",
r,
s = function (e) {
var i = e.length,
n = new t(((i / 4) * 3) | 0),
a = 0,
o = 0,
s = [0, 0],
l = 0,
c = 0,
u,
d;
while (i--) {
d = e.charCodeAt(a++);
u = r[d - 43];
if (u !== 255 && u != null) {
s[1] = s[0];
s[0] = d;
c = (c << 6) | u;
l++;
if (l === 4) {
n[o++] = c >>> 16;
if (s[1] !== 61) {
n[o++] = c >>> 8;
}
if (s[0] !== 61) {
n[o++] = c;
}
l = 0;
}
}
}
return n;
};
if (t) {
r = new t([
62, -1, -1, -1, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, 0,
-1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29,
30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51,
]);
}
if (i && !n.toBlob) {
n.toBlob = function (e, i) {
if (!i) {
i = "image/png";
}
if (this.mozGetAsFile) {
e(this.mozGetAsFile("canvas", i));
return;
}
if (this.msToBlob && /^\s*image\/png\s*(?:$|;)/i.test(i)) {
e(this.msToBlob());
return;
}
var n = Array.prototype.slice.call(arguments, 1),
r = this[o].apply(this, n),
l = r.indexOf(","),
c = r.substring(l + 1),
u = a.test(r.substring(0, l)),
d;
if (Blob.fake) {
d = new Blob();
if (u) {
d.encoding = "base64";
} else {
d.encoding = "URI";
}
d.data = c;
d.size = c.length;
} else if (t) {
if (u) {
d = new Blob([s(c)], { type: i });
} else {
d = new Blob([decodeURIComponent(c)], { type: i });
}
}
e(d);
};
if (n.toDataURLHD) {
n.toBlobHD = function () {
o = "toDataURLHD";
var e = this.toBlob();
o = "toDataURL";
return e;
};
} else {
n.toBlobHD = n.toBlob;
}
}
})(window);
(function e() {
if ("performance" in window === false) {
window.performance = {};
}
Date.now =
Date.now ||
function () {
return new Date().getTime();
};
if ("now" in window.performance === false) {
var t =
window.performance.timing && window.performance.timing.navigationStart
? window.performance.timing.navigationStart
: Date.now();
window.performance.now = function () {
return Date.now() - t;
};
}
})();
(function e() {
var t =
t ||
(function () {
var e = [];
return {
getAll: function () {
return e;
},
removeAll: function () {
e = [];
},
add: function (t) {
e.push(t);
},
remove: function (t) {
var i = e.indexOf(t);
if (i !== -1) {
e.splice(i, 1);
}
},
update: function (t) {
if (e.length === 0) {
return false;
}
var i = 0;
t = t != null ? t : window.performance.now();
while (i < e.length) {
if (e[i].update(t)) {
i++;
} else {
e.splice(i, 1);
}
}
return true;
},
};
})();
t.Tween = function (e) {
var i = e;
var n = {};
var a = {};
var o = {};
var r = 1e3;
var s = 0;
var l = false;
var c = false;
var u = false;
var d = 0;
var f = null;
var h = t.Easing.Linear.None;
var p = t.Interpolation.Linear;
var g = [];
var v = null;
var m = false;
var b = null;
var w = null;
var x = null;
for (var P in e) {
n[P] = parseFloat(e[P], 10);
}
this.to = function (e, t) {
if (t != null) {
r = t;
}
a = e;
return this;
};
this.start = function (e) {
t.add(this);
c = true;
m = false;
f = e != null ? e : window.performance.now();
f += d;
for (var r in a) {
if (a[r] instanceof Array) {
if (a[r].length === 0) {
continue;
}
a[r] = [i[r]].concat(a[r]);
}
if (n[r] === null) {
continue;
}
n[r] = i[r];
if (n[r] instanceof Array === false) {
n[r] *= 1;
}
o[r] = n[r] || 0;
}
return this;
};
this.stop = function () {
if (!c) {
return this;
}
t.remove(this);
c = false;
if (x !== null) {
x.call(i);
}
this.stopChainedTweens();
return this;
};
this.stopChainedTweens = function () {
for (var e = 0, t = g.length; e < t; e++) {
g[e].stop();
}
};
this.complete = function () {
if (!c) {
return this;
}
t.remove(this);
c = false;
if (w !== null) {
w.call(i);
}
this.completeChainedTweens();
return this;
};
this.completeChainedTweens = function () {
for (var e = 0, t = g.length; e < t; e++) {
g[e].complete();
}
};
this.delay = function (e) {
d = e;
return this;
};
this.repeat = function (e) {
s = e;
return this;
};
this.yoyo = function (e) {
l = e;
return this;
};
this.easing = function (e) {
h = e == null ? h : e;
return this;
};
this.interpolation = function (e) {
p = e;
return this;
};
this.chain = function () {
g = arguments;
return this;
};
this.onStart = function (e) {
v = e;
return this;
};
this.onUpdate = function (e) {
b = e;
return this;
};
this.onComplete = function (e) {
w = e;
return this;
};
this.onStop = function (e) {
x = e;
return this;
};
this.update = function (e) {
var t;
var c;
var x;
if (e < f) {
return true;
}
if (m === false) {
if (v !== null) {
v.call(i);
}
m = true;
}
c = (e - f) / r;
c = c > 1 ? 1 : c;
x = h(c);
for (t in a) {
if (n[t] === null) {
continue;
}
var P = n[t] || 0;
var y = a[t];
if (y instanceof Array) {
i[t] = p(y, x);
} else {
if (typeof y === "string") {
if (y.startsWith("+") || y.startsWith("-")) {
y = P + parseFloat(y, 10);
} else {
y = parseFloat(y, 10);
}
}
if (typeof y === "number") {
i[t] = P + (y - P) * x;
}
}
}
if (b !== null) {
b.call(i, x);
}
if (c === 1) {
if (s > 0) {
if (isFinite(s)) {
s--;
}
for (t in o) {
if (typeof a[t] === "string") {
o[t] = o[t] + parseFloat(a[t], 10);
}
if (l) {
var C = o[t];
o[t] = a[t];
a[t] = C;
}
n[t] = o[t];
}
if (l) {
u = !u;
}
f = e + d;
return true;
} else {
if (w !== null) {
w.call(i);
}
for (var L = 0, S = g.length; L < S; L++) {
g[L].start(f + r);
}
return false;
}
}
return true;
};
};
t.Easing = {
Linear: {
None: function (e) {
return e;
},
},
Quadratic: {
In: function (e) {
return e * e;
},
Out: function (e) {
return e * (2 - e);
},
InOut: function (e) {
if ((e *= 2) < 1) {
return 0.5 * e * e;
}
return -0.5 * (--e * (e - 2) - 1);
},
},
Quartic: {
In: function (e) {
return e * e * e * e;
},
Out: function (e) {
return 1 - --e * e * e * e;
},
InOut: function (e) {
if ((e *= 2) < 1) {
return 0.5 * e * e * e * e;
}
return -0.5 * ((e -= 2) * e * e * e - 2);
},
},
Sinusoidal: {
In: function (e) {
return 1 - Math.cos((e * Math.PI) / 2);
},
Out: function (e) {
return Math.sin((e * Math.PI) / 2);
},
InOut: function (e) {
return 0.5 * (1 - Math.cos(Math.PI * e));
},
},
Cubic: {
In: function (e) {
return e * e * e;
},
Out: function (e) {
return --e * e * e + 1;
},
InOut: function (e) {
if ((e *= 2) < 1) {
return 0.5 * e * e * e;
}
return 0.5 * ((e -= 2) * e * e + 2);
},
},
};
t.Interpolation = {
Linear: function (e, i) {
var n = e.length - 1;
var a = n * i;
var o = Math.floor(a);
var r = t.Interpolation.Utils.Linear;
if (i < 0) {
return r(e[0], e[1], a);
}
if (i > 1) {
return r(e[n], e[n - 1], n - a);
}
return r(e[o], e[o + 1 > n ? n : o + 1], a - o);
},
Bezier: function (e, i) {
var n = 0;
var a = e.length - 1;
var o = Math.pow;
var r = t.Interpolation.Utils.Bernstein;
for (var s = 0; s <= a; s++) {
n += o(1 - i, a - s) * o(i, s) * e[s] * r(a, s);
}
return n;
},
Utils: {
Linear: function (e, t, i) {
return (t - e) * i + e;
},
Bernstein: function (e, i) {
var n = t.Interpolation.Utils.Factorial;
return n(e) / n(i) / n(e - i);
},
Factorial: (function () {
var e = [1];
return function (t) {
var i = 1;
if (e[t]) {
return e[t];
}
for (var n = t; n > 1; n--) {
i *= n;
}
e[t] = i;
return i;
};
})(),
CatmullRom: function (e, t, i, n, a) {
var o = (i - e) * 0.5;
var r = (n - t) * 0.5;
var s = a * a;
var l = a * s;
return (
(2 * t - 2 * i + o + r) * l +
(-3 * t + 3 * i - 2 * o - r) * s +
o * a +
t
);
},
},
};
window.TWEEN = t;
})();
DFLIP.createBlob = function e(t, i) {
if (typeof Blob !== "undefined") {
return new Blob([t], { type: i });
}
var n = new MozBlobBuilder();
n.append(t);
return n.getBlob(i);
};
DFLIP.createObjectURL = (function e() {
var t = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
return function e(i, n) {
if (typeof URL !== "undefined" && URL.createObjectURL) {
var a = DFLIP.createBlob(i, n);
return URL.createObjectURL(a);
}
var o = "data:" + n + ";base64,";
for (var r = 0, s = i.length; r < s; r += 3) {
var l = i[r] & 255;
var c = i[r + 1] & 255;
var u = i[r + 2] & 255;
var d = l >> 2,
f = ((l & 3) << 4) | (c >> 4);
var h = r + 1 < s ? ((c & 15) << 2) | (u >> 6) : 64;
var p = r + 2 < s ? u & 63 : 64;
o += t[d] + t[f] + t[h] + t[p];
}
return o;
};
})();
var ThumbList = (function e() {
function t(e) {
var i = (e && e.w + "px") || "100%";
var n = (e && e.h + "px") || "100%";
var a = (this.itemHeight = e.itemHeight);
this.items = e.items;
this.generatorFn = e.generatorFn;
this.totalRows = e.totalRows || (e.items && e.items.length);
this.addFn = e.addFn;
this.scrollFn = e.scrollFn;
var o = t.createScroller(a * this.totalRows);
this.container = t.createContainer(i, n);
this.container.appendChild(o);
this.screenItemsLen = Math.ceil(e.h / a);
this.offsetItems = this.screenItemsLen;
this.cachedItemsLen = this.screenItemsLen + this.offsetItems * 2;
this._renderChunk(this.container, 0);
var r = this;
r.lastRepaintY = 0;
var s = this.screenItemsLen * a;
var l = 0;
var c;
function u(e) {
var t = e.target.scrollTop;
if (
!r.lastRepaintY ||
Math.abs(t - r.lastRepaintY) >= r.offsetItems * r.itemHeight
) {
var i = parseInt(t / a, 10) - r.offsetItems;
r._renderChunk(r.container, i < 0 ? 0 : i);
r.lastRepaintY = t;
}
r.lastScrolled = l = Date.now();
if (r.scrollFn != null) {
r.scrollFn();
}
e.preventDefault && e.preventDefault();
}
r.dispose = function () {
if (r.container) {
if (r.container.parentNode) {
r.container.parentNode.removeChild(r.container);
}
}
r.container.removeEventListener("scroll", u);
};
r.container.addEventListener("scroll", u);
}
t.prototype.reset = function (e) {
this.screenItemsLen = Math.ceil(e / this.itemHeight);
this.cachedItemsLen = this.screenItemsLen + this.offsetItems * 2;
var t =
parseInt(this.lastRepaintY / this.itemHeight, 10) - this.offsetItems;
this.needReset = true;
this._renderChunk(this.container, Math.max(t, 0));
};
t.prototype.createRow = function (e) {
var t;
if (this.generatorFn) {
t = this.generatorFn(e);
t.classList.add("df-vrow");
t.style.position = "absolute";
t.style.top = e * this.itemHeight + "px";
t.setAttribute("index", e);
}
return t;
};
t.prototype._renderChunk = function (e, t) {
var i = this.range == null;
this.range = this.range || { min: 0, max: this.cachedItemsLen };
var n = this.range;
var a = n.min,
o = n.max;
var r = i ? true : t >= a;
if (!i && t == a && this.needReset == false) return;
var s;
var l = i ? a : r ? o : t;
l = l > this.totalRows ? this.totalRows : l < 0 ? 0 : l;
var c = t + this.cachedItemsLen;
c = c > this.totalRows ? this.totalRows : c;
for (s = l; s < c; s++) {
if (r) e.appendChild(this.createRow(s));
else e.insertBefore(this.createRow(s), e.childNodes[1 + s - l]);
if (this.addFn != null) {
this.addFn(s);
}
}
var u = Math.abs(t - a);
this.needReset = false;
if (!i && e.childNodes.length > this.cachedItemsLen + 1) {
var d = r ? 1 : 1 + this.cachedItemsLen,
f = d + (c - l);
for (var h = f; h > d; h--) {
if (e.childNodes[d]) this.container.removeChild(e.childNodes[d]);
}
}
this.range.min = t;
this.range.max = c;
};
t.createContainer = function (e, t) {
var i = document.createElement("div");
i.style.width = e;
i.style.height = t;
i.style.overflow = "auto";
i.style.position = "relative";
i.style.padding = 0;
return i;
};
t.createScroller = function (e) {
var t = document.createElement("div");
t.style.opacity = 0;
t.style.position = "absolute";
t.style.top = 0;
t.style.left = 0;
t.style.width = "1px";
t.style.height = e + "px";
return t;
};
return t;
})();
var BookMarkViewer = (function e() {
function t(e) {
this.outline = null;
this.lastToggleIsShow = true;
this.container = e.container;
this.linkService = e.linkService;
this.outlineItemClass = e.outlineItemClass || "outlineItem";
this.outlineToggleClass = e.outlineToggleClass || "outlineItemToggler";
this.outlineToggleHiddenClass =
e.outlineToggleHiddenClass || "outlineItemsHidden";
}
t.prototype = {
dispose: function () {
if (this.container) {
if (this.container.parentNode) {
this.container.parentNode.removeChild(this.container);
}
}
this.linkService = null;
},
reset: function e() {
this.outline = null;
this.lastToggleIsShow = true;
var t = this.container;
while (t.firstChild) {
t.removeChild(t.firstChild);
}
},
_dispatchEvent: function e(t) {
var i = document.createEvent("CustomEvent");
i.initCustomEvent("outlineloaded", true, true, { outlineCount: t });
this.container.dispatchEvent(i);
},
_bindLink: function e(t, i) {
var n = this.linkService;
if (i.custom == true) {
t.href = n.getCustomDestinationHash(i.dest);
t.onclick = function e(t) {
n.customNavigateTo(i.dest);
return false;
};
} else {
if (i.url) {
pdfjsLib.addLinkAttributes(t, { url: i.url });
return;
}
t.href = n.getDestinationHash(i.dest);
t.onclick = function e(t) {
n.navigateTo(i.dest);
return false;
};
}
},
_addToggleButton: function e(t) {
var i = document.createElement("div");
i.className =
this.outlineToggleClass + " " + this.outlineToggleHiddenClass;
i.onclick = function (e) {
e.stopPropagation();
i.classList.toggle(this.outlineToggleHiddenClass);
if (e.shiftKey) {
var n = !i.classList.contains(this.outlineToggleHiddenClass);
this._toggleOutlineItem(t, n);
}
}.bind(this);
t.insertBefore(i, t.firstChild);
},
_toggleOutlineItem: function e(t, i) {
this.lastToggleIsShow = i;
var n = t.querySelectorAll("." + this.outlineToggleClass);
for (var a = 0, o = n.length; a < o; ++a) {
n[a].classList[i ? "remove" : "add"](this.outlineToggleHiddenClass);
}
},
toggleOutlineTree: function e() {
if (!this.outline) {
return;
}
this._toggleOutlineItem(this.container, !this.lastToggleIsShow);
},
render: function e(t) {
var i = (t && t.outline) || null;
var n = 0;
if (this.outline) {
this.reset();
}
this.outline = i;
if (!i) {
return;
}
var a = document.createDocumentFragment();
var o = [{ parent: a, items: this.outline }];
var r = false;
while (o.length > 0) {
var s = o.shift();
var l = s.custom;
for (var c = 0, u = s.items.length; c < u; c++) {
var d = s.items[c];
var f = document.createElement("div");
f.className = this.outlineItemClass;
var h = document.createElement("a");
if (d.custom == null && l != null) d.custom = l;
this._bindLink(h, d);
h.textContent = d.title.replace(/\x00/g, "");
f.appendChild(h);
if (d.items && d.items.length > 0) {
r = true;
this._addToggleButton(f);
var p = document.createElement("div");
p.className = this.outlineItemClass + "s";
f.appendChild(p);
o.push({ parent: p, custom: d.custom, items: d.items });
}
s.parent.appendChild(f);
n++;
}
}
if (r) {
if (this.container.classList != null) {
this.container.classList.add(this.outlineItemClass + "s");
} else if (this.container.className != null) {
this.container.className += " picWindow";
}
}
this.container.appendChild(a);
this._dispatchEvent(n);
},
};
return t;
})();
var DFLightBox = (function e(t) {
function i(e, i) {
this.duration = 300;
var n = this;
n.lightboxWrapper = t("<div>").addClass("df-lightbox-wrapper");
n.container = t("<div>")
.addClass("df-container")
.appendTo(n.lightboxWrapper);
n.controls = t("<div>")
.addClass("df-lightbox-controls")
.appendTo(n.lightboxWrapper);
n.closeButton = t("<div>")
.addClass("df-lightbox-close df-ui-btn")
.on("click", function () {
n.close(e);
})
.appendTo(n.controls);
n.lightboxWrapper.append(n.container);
return n;
}
i.prototype.show = function (e) {
if (this.lightboxWrapper.parent().length == 0)
t("body").append(this.lightboxWrapper);
t("html,body").addClass("df-lightbox-open");
this.lightboxWrapper.fadeIn(this.duration, e);
return this;
};
i.prototype.close = function (e) {
this.lightboxWrapper.fadeOut(this.duration);
setTimeout(e, this.duration);
t("html,body").removeClass("df-lightbox-open");
return this;
};
return i;
})(jQuery);
DFLIP.Share = (function e(t) {
function i(e, i) {
var n = this;
var a = "<div>";
var o = "df-share-button";
var r = "width=500,height=400";
n.isOpen = false;
n.shareUrl = "";
n.wrapper = t('<div class="df-share-wrapper" style="display: none;">').on(
"click",
function (e) {
n.close();
}
);
n.box = t('<div class="df-share-box">')
.on("click", function (e) {
e.preventDefault();
e.stopPropagation();
})
.appendTo(n.wrapper)
.html('<span class="df-share-title">' + i.text.share + "</span>");
n.urlInput = t('<textarea class="df-share-url">').on("click", function () {
t(this).select();
});
n.facebook = t(a, {
class: o + " df-share-facebook " + i.icons["facebook"],
}).on("click", function (e) {
window.open(
"https://www.facebook.com/sharer/sharer.php?u=" +
encodeURIComponent(n.shareUrl),
"Sharer",
r
);
});
n.google = t(a, { class: o + " df-share-google " + i.icons["google"] }).on(
"click",
function (e) {
window.open(
"https://plus.google.com/share?url=" + encodeURIComponent(n.shareUrl),
"Sharer",
r
);
}
);
n.twitter = t(a, {
class: o + " df-share-twitter " + i.icons["twitter"],
}).on("click", function (e) {
window.open(
"http://twitter.com/share?url=" + encodeURIComponent(n.shareUrl),
"Sharer",
r
);
});
n.mail = t("<a>", {
class: o + " df-share-mail " + i.icons["mail"],
href:
"mailto:?subject=" +
i.text["mailSubject"] +
"&body=" +
i.text["mailBody"].replace("{{url}}", encodeURIComponent(n.shareUrl)),
target: "_blank",
}).on("click", function (e) {
t(this).attr(
"href",
"mailto:?subject=" +
i.text["mailSubject"] +
"&body=" +
i.text["mailBody"].replace("{{url}}", encodeURIComponent(n.shareUrl))
);
e.stopPropagation();
});
n.box
.append(n.urlInput)
.append(n.facebook)
.append(n.twitter)
.append(n.mail);
t(e).append(n.wrapper);
}
i.prototype.show = function () {
this.wrapper.fadeIn(300);
this.urlInput.val(this.shareUrl);
this.urlInput.trigger("click");
this.isOpen = true;
};
i.prototype.dispose = function () {
var e = this;
e.box.off();
e.google.off();
e.twitter.off();
e.facebook.off();
e.mail.off();
e.urlInput.off();
e.wrapper.off().remove();
};
i.prototype.close = function () {
this.wrapper.fadeOut(300);
this.isOpen = false;
};
i.prototype.update = function (e) {
this.shareUrl = e;
};
return i;
})(jQuery);
DFLIP.Popup = (function e(t) {
function i(e, i) {
var n = this;
var a = "<div>";
var o = "width=500,height=400";
n.isOpen = false;
n.wrapper = t('<div class="df-popup-wrapper" style="display: none;">').on(
"click",
function (e) {
n.close();
}
);
n.box = t('<div class="df-popup-box">')
.on("click", function (e) {
e.preventDefault();
e.stopPropagation();
})
.appendTo(n.wrapper);
t(e).append(n.wrapper);
}
i.prototype.show = function () {
this.wrapper.fadeIn(300);
this.isOpen = true;
};
i.prototype.dispose = function () {
var e = this;
e.box.off();
e.wrapper.off().remove();
};
i.prototype.close = function () {
this.wrapper.fadeOut(300);
this.isOpen = false;
};
return i;
})(jQuery);
var PDFLinkService = (function () {
function e() {
this.baseUrl = null;
this.pdfDocument = null;
this.pdfViewer = null;
this.pdfHistory = null;
this._pagesRefCache = null;
}
e.prototype = {
dispose: function () {
this.baseUrl = null;
this.pdfDocument = null;
this.pdfViewer = null;
this.pdfHistory = null;
this._pagesRefCache = null;
},
setDocument: function e(t, i) {
this.baseUrl = i;
this.pdfDocument = t;
this._pagesRefCache = Object.create(null);
},
setViewer: function e(t) {
this.pdfViewer = t;
this.externalLinkTarget = t.previewObject.options.linkTarget;
},
setHistory: function e(t) {
this.pdfHistory = t;
},
get pagesCount() {
return this.pdfDocument.numPages;
},
get page() {
return this.pdfViewer.currentPageNumber;
},
set page(e) {
this.pdfViewer.currentPageNumber = e;
},
navigateTo: function e(t) {
var i = "";
var n = this;
var a = function (e) {
var o =
e instanceof Object
? n._pagesRefCache[e.num + " " + e.gen + " R"]
: e + 1;
if (o) {
if (
n.pdfViewer.contentProvider.options.pageSize ==
DFLIP.PAGE_SIZE.DOUBLEINTERNAL &&
o > 2
) {
o = o * 2 - 1;
}
if (o > n.pdfViewer.pageCount) {
o = n.pdfViewer.pageCount;
}
n.pdfViewer.gotoPage(o);
if (n.pdfHistory) {
n.pdfHistory.push({ dest: t, hash: i, page: o });
}
} else {
n.pdfDocument.getPageIndex(e).then(function (t) {
var i = t + 1;
var o = e.num + " " + e.gen + " R";
n._pagesRefCache[o] = i;
a(e);
});
}
};
var o;
if (typeof t === "string") {
i = t;
o = this.pdfDocument.getDestination(t);
} else {
o = Promise.resolve(t);
}
o.then(function (e) {
t = e;
if (!(e instanceof Array)) {
return;
}
a(e[0]);
});
},
customNavigateTo: function e(t) {
if (t == "" || t == null || t == "null") return;
var i = null;
if (!isNaN(Math.round(t))) {
i = t;
} else if (typeof t === "string") {
i = parseInt(t.replace("#", ""), 10);
if (isNaN(i)) {
window.open(
t,
DFLIP.defaults.linkTarget == DFLIP.LINK_TARGET.SELF
? "_self"
: "_blank"
);
return;
}
}
if (i != null) this.pdfViewer.gotoPage(i);
},
getDestinationHash: function e(t) {
if (typeof t === "string") {
return this.getAnchorUrl("#" + escape(t));
}
if (t instanceof Array) {
var i = t[0];
var n =
i instanceof Object
? this._pagesRefCache[i.num + " " + i.gen + " R"]
: i + 1;
if (n) {
var a = this.getAnchorUrl("#page=" + n);
var o = t[1];
if (typeof o === "object" && "name" in o && o.name === "XYZ") {
var r = t[4] || this.pdfViewer.currentScaleValue;
var s = parseFloat(r);
if (s) {
r = s * 100;
}
a += "&zoom=" + r;
if (t[2] || t[3]) {
a += "," + (t[2] || 0) + "," + (t[3] || 0);
}
}
return a;
}
}
return this.getAnchorUrl("");
},
getCustomDestinationHash: function e(t) {
return "#" + escape(t);
},
getAnchorUrl: function e(t) {
return (this.baseUrl || "") + t;
},
setHash: function e(t) {
if (t.indexOf("=") >= 0) {
var i = parseQueryString(t);
if ("nameddest" in i) {
if (this.pdfHistory) {
this.pdfHistory.updateNextHashParam(i.nameddest);
}
this.navigateTo(i.nameddest);
return;
}
var n, a;
if ("page" in i) {
n = i.page | 0 || 1;
}
if ("zoom" in i) {
var o = i.zoom.split(",");
var r = o[0];
var s = parseFloat(r);
if (r.indexOf("Fit") === -1) {
a = [
null,
{ name: "XYZ" },
o.length > 1 ? o[1] | 0 : null,
o.length > 2 ? o[2] | 0 : null,
s ? s / 100 : r,
];
} else {
if (r === "Fit" || r === "FitB") {
a = [null, { name: r }];
} else if (
r === "FitH" ||
r === "FitBH" ||
r === "FitV" ||
r === "FitBV"
) {
a = [null, { name: r }, o.length > 1 ? o[1] | 0 : null];
} else if (r === "FitR") {
if (o.length !== 5) {
console.error(
"PDFLinkService_setHash: " +
"Not enough parameters for 'FitR'."
);
} else {
a = [null, { name: r }, o[1] | 0, o[2] | 0, o[3] | 0, o[4] | 0];
}
} else {
console.error(
"PDFLinkService_setHash: '" + r + "' is not a valid zoom value."
);
}
}
}
if (a) {
this.pdfViewer.scrollPageIntoView(n || this.page, a);
} else if (n) {
this.page = n;
}
if ("pagemode" in i) {
var l = document.createEvent("CustomEvent");
l.initCustomEvent("pagemode", true, true, { mode: i.pagemode });
this.pdfViewer.container.dispatchEvent(l);
}
} else if (/^\d+$/.test(t)) {
this.page = t;
} else {
if (this.pdfHistory) {
this.pdfHistory.updateNextHashParam(unescape(t));
}
this.navigateTo(unescape(t));
}
},
executeNamedAction: function e(t) {
switch (t) {
case "GoBack":
if (this.pdfHistory) {
this.pdfHistory.back();
}
break;
case "GoForward":
if (this.pdfHistory) {
this.pdfHistory.forward();
}
break;
case "NextPage":
this.page++;
break;
case "PrevPage":
this.page--;
break;
case "LastPage":
this.page = this.pagesCount;
break;
case "FirstPage":
this.page = 1;
break;
default:
break;
}
var i = document.createEvent("CustomEvent");
i.initCustomEvent("namedaction", true, true, { action: t });
this.pdfViewer.container.dispatchEvent(i);
},
cachePageRef: function e(t, i) {
var n = i.num + " " + i.gen + " R";
this._pagesRefCache[n] = t;
},
};
return e;
})();
var FindStates = {
FIND_FOUND: 0,
FIND_NOTFOUND: 1,
FIND_WRAPPED: 2,
FIND_PENDING: 3,
};
var FIND_SCROLL_OFFSET_TOP = -50;
var FIND_SCROLL_OFFSET_LEFT = -400;
var CHARACTERS_TO_NORMALIZE = {
"": "'",
"": "'",
"": "'",
"": "'",
"“": '"',
"”": '"',
"„": '"',
"‟": '"',
"¼": "1/4",
"½": "1/2",
"¾": "3/4",
};
DFLIP.PDFFindController = (function e() {
function t(e) {
this.pdfViewer = e.pdfViewer || null;
this.onUpdateResultsCount = null;
this.onUpdateState = null;
this.reset();
var t = Object.keys(CHARACTERS_TO_NORMALIZE).join("");
this.normalizationRegex = new RegExp("[" + t + "]", "g");
}
t.prototype = {
reset: function e() {
this.startedTextExtraction = false;
this.extractTextPromises = [];
this.pendingFindMatches = Object.create(null);
this.active = false;
this.pageContents = [];
this.pageMatches = [];
this.pageMatchesLength = null;
this.matchCount = 0;
this.selected = { pageIdx: -1, matchIdx: -1 };
this.offset = { pageIdx: null, matchIdx: null };
this.pagesToSearch = null;
this.resumePageIdx = null;
this.state = null;
this.dirtyMatch = false;
this.findTimeout = null;
this.firstPagePromise = new Promise(
function (e) {
this.resolveFirstPage = e;
}.bind(this)
);
},
normalize: function e(t) {
return t.replace(this.normalizationRegex, function (e) {
return CHARACTERS_TO_NORMALIZE[e];
});
},
_prepareMatches: function e(t, i, n) {
function a(e, t) {
var i, n, a;
i = e[t];
a = e[t + 1];
if (t < e.length - 1 && i.match === a.match) {
i.skipped = true;
return true;
}
for (var o = t - 1; o >= 0; o--) {
n = e[o];
if (n.skipped) {
continue;
}
if (n.match + n.matchLength < i.match) {
break;
}
if (n.match + n.matchLength >= i.match + i.matchLength) {
i.skipped = true;
return true;
}
}
return false;
}
var o, r;
t.sort(function (e, t) {
return e.match === t.match
? e.matchLength - t.matchLength
: e.match - t.match;
});
for (o = 0, r = t.length; o < r; o++) {
if (a(t, o)) {
continue;
}
i.push(t[o].match);
n.push(t[o].matchLength);
}
},
calcFindPhraseMatch: function e(t, i, n) {
var a = [];
var o = t.length;
var r = -o;
while (true) {
r = n.indexOf(t, r + o);
if (r === -1) {
break;
}
a.push(r);
}
this.pageMatches[i] = a;
},
calcFindWordMatch: function e(t, i, n) {
var a = [];
var o = t.match(/\S+/g);
var r, s, l;
for (var c = 0, u = o.length; c < u; c++) {
r = o[c];
s = r.length;
l = -s;
while (true) {
l = n.indexOf(r, l + s);
if (l === -1) {
break;
}
a.push({ match: l, matchLength: s, skipped: false });
}
}
if (!this.pageMatchesLength) {
this.pageMatchesLength = [];
}
this.pageMatchesLength[i] = [];
this.pageMatches[i] = [];
this._prepareMatches(a, this.pageMatches[i], this.pageMatchesLength[i]);
},
calcFindMatch: function e(t) {
var i = this.normalize(this.pageContents[t]);
var n = this.normalize(this.state.query);
var a = this.state.caseSensitive;
var o = this.state.phraseSearch;
var r = n.length;
if (r === 0) {
return;
}
if (!a) {
i = i.toLowerCase();
n = n.toLowerCase();
}
if (o) {
this.calcFindPhraseMatch(n, t, i);
} else {
this.calcFindWordMatch(n, t, i);
}
this.updatePage(t);
if (this.resumePageIdx === t) {
this.resumePageIdx = null;
this.nextPageMatch();
}
if (this.pageMatches[t].length > 0) {
this.matchCount += this.pageMatches[t].length;
this.updateUIResultsCount();
}
},
extractText: function e() {
if (this.startedTextExtraction) {
return;
}
this.startedTextExtraction = true;
this.pageContents = [];
var t = [];
var i = this.pdfViewer.contentProvider.pdfDocument.numPages;
for (var n = 0; n < i; n++) {
this.extractTextPromises.push(
new Promise(function (e) {
t.push(e);
})
);
}
var a = this;
function o(e) {
a.pdfViewer.getPageTextContent(e).then(function i(n) {
var r = n.items;
var s = [];
for (var l = 0, c = r.length; l < c; l++) {
s.push(r[l].str);
}
a.pageContents.push(s.join(""));
t[e](e);
console.log("extracting Page" + e);
if (e + 1 < a.pdfViewer.contentProvider.pdfDocument.numPages) {
o(e + 1);
}
});
}
o(0);
},
executeCommand: function e(t, i) {
if (this.state === null || t !== "findagain") {
this.dirtyMatch = true;
}
this.state = i;
this.updateUIState(FindStates.FIND_PENDING);
this.firstPagePromise.then(
function () {
this.extractText();
clearTimeout(this.findTimeout);
if (t === "find") {
this.findTimeout = setTimeout(this.nextMatch.bind(this), 250);
} else {
this.nextMatch();
}
}.bind(this)
);
},
updatePage: function e(t) {
if (this.selected.pageIdx === t) {
this.pdfViewer.currentPageNumber = t + 1;
}
var i = this.pdfViewer.getPageView(t);
if (i.textLayer) {
i.textLayer.updateMatches();
}
},
nextMatch: function e() {
var t = this.state.findPrevious;
var i = this.pdfViewer.currentPageNumber - 1;
var n = this.pdfViewer.contentProvider.pageCount;
this.active = true;
if (this.dirtyMatch) {
this.dirtyMatch = false;
this.selected.pageIdx = this.selected.matchIdx = -1;
this.offset.pageIdx = i;
this.offset.matchIdx = null;
this.hadMatch = false;
this.resumePageIdx = null;
this.pageMatches = [];
this.matchCount = 0;
this.pageMatchesLength = null;
var a = this;
for (var o = 0; o < n; o++) {
this.updatePage(o);
if (!(o in this.pendingFindMatches)) {
this.pendingFindMatches[o] = true;
this.extractTextPromises[o].then(function (e) {
delete a.pendingFindMatches[e];
a.calcFindMatch(e);
});
}
}
}
if (this.state.query === "") {
this.updateUIState(FindStates.FIND_FOUND);
return;
}
if (this.resumePageIdx) {
return;
}
var r = this.offset;
this.pagesToSearch = n;
if (r.matchIdx !== null) {
var s = this.pageMatches[r.pageIdx].length;
if ((!t && r.matchIdx + 1 < s) || (t && r.matchIdx > 0)) {
this.hadMatch = true;
r.matchIdx = t ? r.matchIdx - 1 : r.matchIdx + 1;
this.updateMatch(true);
return;
}
this.advanceOffsetPage(t);
}
this.nextPageMatch();
},
matchesReady: function e(t) {
var i = this.offset;
var n = t.length;
var a = this.state.findPrevious;
if (n) {
this.hadMatch = true;
i.matchIdx = a ? n - 1 : 0;
this.updateMatch(true);
return true;
}
this.advanceOffsetPage(a);
if (i.wrapped) {
i.matchIdx = null;
if (this.pagesToSearch < 0) {
this.updateMatch(false);
return true;
}
}
return false;
},
updateMatchPosition: function e(t, i, n, a) {
if (this.selected.matchIdx === i && this.selected.pageIdx === t) {
var o = { top: FIND_SCROLL_OFFSET_TOP, left: FIND_SCROLL_OFFSET_LEFT };
scrollIntoView(n[a], o, true);
}
},
nextPageMatch: function e() {
if (this.resumePageIdx !== null) {
console.error("There can only be one pending page.");
}
do {
var t = this.offset.pageIdx;
var i = this.pageMatches[t];
if (!i) {
this.resumePageIdx = t;
break;
}
} while (!this.matchesReady(i));
},
advanceOffsetPage: function e(t) {
var i = this.offset;
var n = this.extractTextPromises.length;
i.pageIdx = t ? i.pageIdx - 1 : i.pageIdx + 1;
i.matchIdx = null;
this.pagesToSearch--;
if (i.pageIdx >= n || i.pageIdx < 0) {
i.pageIdx = t ? n - 1 : 0;
i.wrapped = true;
}
},
updateMatch: function e(t) {
var i = FindStates.FIND_NOTFOUND;
var n = this.offset.wrapped;
this.offset.wrapped = false;
if (t) {
var a = this.selected.pageIdx;
this.selected.pageIdx = this.offset.pageIdx;
this.selected.matchIdx = this.offset.matchIdx;
i = n ? FindStates.FIND_WRAPPED : FindStates.FIND_FOUND;
if (a !== -1 && a !== this.selected.pageIdx) {
this.updatePage(a);
}
}
this.updateUIState(i, this.state.findPrevious);
if (this.selected.pageIdx !== -1) {
this.updatePage(this.selected.pageIdx);
}
},
updateUIResultsCount: function e() {
if (this.onUpdateResultsCount) {
this.onUpdateResultsCount(this.matchCount);
}
},
updateUIState: function e(t, i) {
if (this.onUpdateState) {
this.onUpdateState(t, i, this.matchCount);
}
},
};
return t;
})();
DFLIP.TextLayerBuilder = (function e() {
function t(e) {
this.textLayerDiv = e.textLayerDiv;
this.renderingDone = false;
this.divContentDone = false;
this.pageIdx = e.pageIndex;
this.pageNumber = this.pageIdx + 1;
this.matches = [];
this.viewport = e.viewport;
this.textDivs = [];
this.findController = e.findController || null;
this.textLayerRenderTask = null;
this.enhanceTextSelection = e.enhanceTextSelection;
this._bindMouse();
}
t.prototype = {
_finishRendering: function e() {
this.renderingDone = true;
if (!this.enhanceTextSelection) {
var t = document.createElement("div");
t.className = "endOfContent";
this.textLayerDiv.appendChild(t);
}
},
render: function e(t) {
if (!this.divContentDone || this.renderingDone) {
return;
}
if (this.textLayerRenderTask) {
this.textLayerRenderTask.cancel();
this.textLayerRenderTask = null;
}
this.textDivs = [];
var i = document.createDocumentFragment();
this.textLayerRenderTask = pdfjsLib.renderTextLayer({
textContent: this.textContent,
container: i,
viewport: this.viewport,
textDivs: this.textDivs,
timeout: t,
enhanceTextSelection: this.enhanceTextSelection,
});
this.textLayerRenderTask.promise.then(
function () {
this.textLayerDiv.appendChild(i);
this._finishRendering();
this.updateMatches();
}.bind(this),
function (e) {}
);
},
setTextContent: function e(t) {
if (this.textLayerRenderTask) {
this.textLayerRenderTask.cancel();
this.textLayerRenderTask = null;
}
this.textContent = t;
this.divContentDone = true;
},
convertMatches: function e(t, i) {
var n = 0;
var a = 0;
var o = this.textContent.items;
var r = o.length - 1;
var s =
this.findController === null
? 0
: this.findController.state.query.length;
var l = [];
if (!t) {
return l;
}
for (var c = 0, u = t.length; c < u; c++) {
var d = t[c];
while (n !== r && d >= a + o[n].str.length) {
a += o[n].str.length;
n++;
}
if (n === o.length) {
console.error("Could not find a matching mapping");
}
var f = { begin: { divIdx: n, offset: d - a } };
if (i) {
d += i[c];
} else {
d += s;
}
while (n !== r && d > a + o[n].str.length) {
a += o[n].str.length;
n++;
}
f.end = { divIdx: n, offset: d - a };
l.push(f);
}
return l;
},
renderMatches: function e(t) {
if (t.length === 0) {
return;
}
var i = this.textContent.items;
var n = this.textDivs;
var a = null;
var o = this.pageIdx;
var r =
this.findController === null
? false
: o === this.findController.selected.pageIdx;
var s =
this.findController === null
? -1
: this.findController.selected.matchIdx;
var l =
this.findController === null
? false
: this.findController.state.highlightAll;
var c = { divIdx: -1, offset: undefined };
function u(e, t) {
var i = e.divIdx;
n[i].textContent = "";
d(i, 0, e.offset, t);
}
function d(e, t, a, o) {
var r = n[e];
var s = i[e].str.substring(t, a);
var l = document.createTextNode(s);
if (o) {
var c = document.createElement("span");
c.className = o;
c.appendChild(l);
r.appendChild(c);
return;
}
r.appendChild(l);
}
var f = s,
h = f + 1;
if (l) {
f = 0;
h = t.length;
} else if (!r) {
return;
}
for (var p = f; p < h; p++) {
var g = t[p];
var v = g.begin;
var m = g.end;
var b = r && p === s;
var w = b ? " selected" : "";
if (this.findController) {
this.findController.updateMatchPosition(o, p, n, v.divIdx);
}
if (!a || v.divIdx !== a.divIdx) {
if (a !== null) {
d(a.divIdx, a.offset, c.offset);
}
u(v);
} else {
d(a.divIdx, a.offset, v.offset);
}
if (v.divIdx === m.divIdx) {
d(v.divIdx, v.offset, m.offset, "highlight" + w);
} else {
d(v.divIdx, v.offset, c.offset, "highlight begin" + w);
for (var x = v.divIdx + 1, P = m.divIdx; x < P; x++) {
n[x].className = "highlight middle" + w;
}
u(m, "highlight end" + w);
}
a = m;
}
if (a) {
d(a.divIdx, a.offset, c.offset);
}
},
updateMatches: function e() {
if (!this.renderingDone) {
return;
}
var t = this.matches;
var i = this.textDivs;
var n = this.textContent.items;
var a = -1;
for (var o = 0, r = t.length; o < r; o++) {
var s = t[o];
var l = Math.max(a, s.begin.divIdx);
for (var c = l, u = s.end.divIdx; c <= u; c++) {
var d = i[c];
d.textContent = n[c].str;
d.className = "";
}
a = s.end.divIdx + 1;
}
if (this.findController === null || !this.findController.active) {
return;
}
var f, h;
if (this.findController !== null) {
f = this.findController.pageMatches[this.pageIdx] || null;
h = this.findController.pageMatchesLength
? this.findController.pageMatchesLength[this.pageIdx] || null
: null;
}
this.matches = this.convertMatches(f, h);
this.renderMatches(this.matches);
},
_bindMouse: function e() {
var t = this.textLayerDiv;
var i = this;
t.addEventListener("mousedown", function (e) {
if (i.enhanceTextSelection && i.textLayerRenderTask) {
i.textLayerRenderTask.expandTextDivs(true);
return;
}
var n = t.querySelector(".endOfContent");
if (!n) {
return;
}
var a = e.target !== t;
a =
a &&
window.getComputedStyle(n).getPropertyValue("-moz-user-select") !==
"none";
if (a) {
var o = t.getBoundingClientRect();
var r = Math.max(0, (e.pageY - o.top) / o.height);
n.style.top = (r * 100).toFixed(2) + "%";
}
n.classList.add("active");
});
t.addEventListener("mouseup", function (e) {
if (i.enhanceTextSelection && i.textLayerRenderTask) {
i.textLayerRenderTask.expandTextDivs(false);
return;
}
var n = t.querySelector(".endOfContent");
if (!n) {
return;
}
n.style.top = "";
n.classList.remove("active");
});
},
};
return t;
})();
DFLIP.ConvertPageLinks = function () {
var e = arguments[0] / 100,
t = arguments[1] / 100;
var i = function (i, n, a, o, r) {
return { x: i / e, y: n / t, w: a / e, h: o / t, dest: r };
};
var n = [];
var a;
for (var o = 2; o < arguments.length; o++) {
a = arguments[o];
n[o - 2] = i.apply(this, a);
}
return n;
};
DFLIP.parseLinks = function (e) {
var t;
if (e != null && e.length > 0) {
for (var i = 0; i < e.length; i++) {
t = e[i];
if (t != null && t[0] != null && t[0].dest == null) {
t = DFLIP.ConvertPageLinks.apply(this, t);
e[i] = t;
}
}
}
return e;
};
(function (e) {
function t(e) {
return e == "true" || e == true;
}
function i(e) {
if (e.webgl != null) e.webgl = t(e.webgl);
if (e.enableDownload != null) e.enableDownload = t(e.enableDownload);
if (e.search != null) e.search = t(e.search);
if (e.enableAnalytics != null) e.enableAnalytics = t(e.enableAnalytics);
if (e.scrollWheel != null) e.scrollWheel = t(e.scrollWheel);
if (e.autoEnableOutline != null)
e.autoEnableOutline = t(e.autoEnableOutline);
if (e.autoEnableThumbnail != null)
e.autoEnableThumbnail = t(e.autoEnableThumbnail);
if (e.transparent != null) e.transparent = t(e.transparent);
if (e.overwritePDFOutline != null)
e.overwritePDFOutline = t(e.overwritePDFOutline);
if (e.soundEnable != null) e.soundEnable = t(e.soundEnable);
if (e.forceFit != null) e.forceFit = t(e.forceFit);
if (e.enableAnnotation != null) e.enableAnnotation = t(e.enableAnnotation);
if (e.webglShadow != null) e.webglShadow = t(e.webglShadow);
if (e.autoPlay != null) e.autoPlay = t(e.autoPlay);
if (e.autoPlayStart != null) e.autoPlayStart = t(e.autoPlayStart);
if (e.paddingTop != null) e.paddingTop = parseInt(e.paddingTop, 10);
if (e.paddingRight != null) e.paddingRight = parseInt(e.paddingRight, 10);
if (e.paddingBottom != null)
e.paddingBottom = parseInt(e.paddingBottom, 10);
if (e.paddingLeft != null) e.paddingLeft = parseInt(e.paddingLeft, 10);
if (e.zoomRatio != null) e.zoomRatio = parseFloat(e.zoomRatio, 10);
if (e.stiffness != null) e.stiffness = parseFloat(e.stiffness, 10);
if (e.autoPlayDuration != null)
e.autoPlayDuration = parseInt(e.autoPlayDuration, 10);
if (e.linkTarget != null) e.linkTarget = parseInt(e.linkTarget, 10);
if (e.pageMode == 0 || e.pageMode == "0") e.pageMode = null;
if (e.singlePageMode == 0 || e.singlePageMode == "0")
e.singlePageMode = null;
}
function n(e) {
if (e.parsed == true) return;
e.parsed = true;
var t = [];
i(e);
if (typeof dFlipWPGlobal !== "undefined" && e.wpOptions == "true") {
try {
for (var n in e.links) {
var a = e.links[n];
var o = [100, 100];
for (var r = 0; r < a.length; r++) {
var s = a[r];
var l = s.substr(1).slice(0, -1).split(",");
var c = [];
for (var u = 0; u < 5; u++) {
c[u] = l[u];
}
o.push(c);
}
t[parseInt(n, 10) + 1] = o;
}
} catch (e) {
console.error(e.stack);
}
e.links = DFLIP.parseLinks(t);
} else {
e.links = DFLIP.parseLinks(e.links);
}
}
DFLIP.getOptions = function (t) {
t = e(t);
var i = t.attr("id");
var a = "option_" + i,
o = t.attr("source") || t.attr("df-source");
a = a == null || a == "" || window[a] == null ? {} : window[a];
a.source = o == null || o == "" ? a.source : o;
var r = {
webgl: t.attr("webgl"),
height: t.attr("height"),
soundEnable: t.attr("sound"),
bookTitle: t.data("title"),
transparent: t.attr("transparent"),
enableDownload: t.attr("download"),
search: t.attr("search"),
duration: t.attr("duration"),
hard: t.attr("hard"),
openPage: t.data("page"),
pageMode: t.attr("pagemode"),
direction: t.attr("direction"),
backgroundColor: t.attr("backgroundcolor"),
scrollWheel: t.attr("scrollwheel"),
backgroundImage: t.attr("backgroundimage"),
paddingTop: t.attr("paddingtop"),
paddingRight: t.attr("paddingright"),
paddingBottom: t.attr("paddingbottom"),
paddingLeft: t.attr("paddingleft"),
wpOptions: t.attr("wpoptions"),
};
a = e.extend(true, {}, a, r);
n(a);
return a;
};
DFLIP.parseBooks = function () {
e("._df_button, ._df_thumb, ._df_custom, ._df_book").each(function () {
var t = e(this);
var i = t.attr("parsed") || t.attr("df-parsed");
if (i !== "true") {
t.attr("df-parsed", "true");
if (t.hasClass("_df_book")) {
var n = t.attr("id"),
a = t.attr("slug");
var o = DFLIP.getOptions(t);
o.id = n;
if (a != null) o.slug = a;
if (n) {
window[n.toString()] = e(t).flipBook(o.source, o);
} else {
e(t).flipBook(o.source, o);
}
} else {
if (t.hasClass("_df_thumb")) {
var r = e("<div class='_df_book-cover'>");
var s = t.html().trim();
t.html("");
var l = e("<span class='_df_book-title'>").html(s).appendTo(r);
var c = t.attr("thumb") || t.attr("df-thumb"),
u = t.attr("thumbtype") || DFLIP.defaults.thumbElement || "div",
d = t.attr("tags") || t.attr("df-tags");
if (d) {
d = d.split(",");
if (d.length > 0) {
for (var f = 0; f < d.length; f++) {
t.append("<span class='_df_book-tag'>" + d[f] + "</span>");
}
}
}
if (c != null && c.toString().trim() != "") {
if (u == "img") {
r.append('<img src="' + c + '" alt="' + s + '"/>');
t.attr("thumb-type", "img");
} else {
r.css({ backgroundImage: "url('" + c + "')" });
}
} else {
r.addClass("_df_thumb-not-found");
}
t.append(r);
}
}
}
});
};
e(document).ready(function () {
if (
typeof dFlipLocation == "undefined" &&
DFLIP.autoDetectLocation != false
) {
e("script").each(function () {
var t = e(this)[0].src;
if (
(t.indexOf("/dflip.js") > -1 || t.indexOf("/dflip.min.js") > -1) &&
(t.indexOf("https://") > -1 || t.indexOf("http://") > -1) &&
t.indexOf("js/dflip.") > -1
) {
var i = t.split("/");
window.dFlipLocation = i.slice(0, -2).join("/");
}
});
}
if (typeof dFlipLocation !== "undefined") {
if (dFlipLocation.length > 2 && dFlipLocation.slice(-1) !== "/") {
window.dFlipLocation += "/";
}
DFLIP.defaults.mockupjsSrc = dFlipLocation + "js/libs/mockup.min.js";
DFLIP.defaults.pdfjsSrc = dFlipLocation + "js/libs/pdf.min.js";
DFLIP.defaults.pdfjsCompatibilitySrc =
dFlipLocation + "js/libs/compatibility.js";
DFLIP.defaults.threejsSrc = dFlipLocation + "js/libs/three.min.js";
DFLIP.defaults.pdfjsWorkerSrc =
dFlipLocation + "js/libs/pdf.worker.min.js";
DFLIP.defaults.soundFile = dFlipLocation + "sound/turn2.mp3";
DFLIP.defaults.imagesLocation = dFlipLocation + "images";
DFLIP.defaults.imageResourcesPath = dFlipLocation + "images/pdfjs/";
DFLIP.defaults.cMapUrl = dFlipLocation + "js/libs/cmaps/";
if (typeof dFlipWPGlobal !== "undefined") {
i(dFlipWPGlobal);
e.extend(true, DFLIP.defaults, dFlipWPGlobal);
}
}
DFLIP.preParseHash = window.location.hash;
e("body").on("click", "._df_button, ._df_thumb, ._df_custom", function (t) {
t.preventDefault();
var i = e(this);
if (!window.dfLightBox) {
window.dfLightBox = new DFLightBox(function () {
Array.prototype.forEach.call(
DFLIP.utils.getSharePrefixes(),
function (e) {
if (window.location.hash.indexOf("#" + e) == 0)
window.location.hash = "#_";
}
);
window.dfActiveLightBoxBook.analytics({
eventAction: "Book Closed",
options: window.dfActiveLightBoxBook.options,
});
window.dfActiveLightBoxBook.dispose();
window.dfActiveLightBoxBook = null;
});
}
window.dfLightBox.duration = 500;
if (window.dfActiveLightBoxBook && window.dfActiveLightBoxBook.dispose) {
window.dfActiveLightBoxBook.dispose();
} else {
window.dfLightBox.show(function () {
var t = DFLIP.getOptions(i);
t.transparent = false;
t.height = "100%";
t.id = i.attr("id");
var n = i.attr("slug");
if (n != null) t.slug = n;
t.isLightBox = true;
window.dfActiveLightBoxBook = e(window.dfLightBox.container).flipBook(
t.source,
t
);
});
}
});
if (DFLIP.utils.isSafari || DFLIP.utils.isIOS) {
e("body").addClass("df-webkit");
}
var t = false;
Array.prototype.forEach.call(DFLIP.utils.getSharePrefixes(), function (i) {
if (
DFLIP.preParseHash &&
DFLIP.preParseHash.indexOf(i) >= 0 &&
t === false
) {
var n = DFLIP.preParseHash.split(i)[1].split("/")[0];
var a = DFLIP.preParseHash.split(i)[1].split("/")[1];
if (a != null) {
a = a.split("/")[0];
}
var o;
o = e("[slug=" + n + "]");
if (o.length == 0) o = e("#" + n);
if (o.length == 0) o = e("[_slug=" + n + "]");
if (o.length > 0) {
if (a != null) {
o.data("page", a);
}
if (o.is("._df_button, ._df_thumb, ._df_custom")) {
o.trigger("click");
t = true;
}
}
}
});
DFLIP.parseBooks();
if (e("body").hasClass("attachment-pdf")) {
var n = e("[attachment_pdf_flipbook_lightbox]");
if (n.length > 0) {
e(n[0]).trigger("click");
}
}
e("body").on("click", ".df-ui-sidemenu-close", function () {
var t = e(this);
t.closest(".df-container")
.find(".df-ui-outline.df-active , .df-ui-thumbnail.df-active")
.trigger("click");
});
});
})(jQuery);