UNPKG

@dbp-topics/sublibrary

Version:

[GitLab Repository](https://github.com/digital-blueprint/sublibrary-app) | [npmjs package](https://www.npmjs.com/package/@dbp-topics/sublibrary) | [Unpkg CDN](https://unpkg.com/browse/@dbp-topics/sublibrary/) | [Sublibrary Bundle](https://gitlab.tugraz.at

1,236 lines 265 kB
let _2 = t => t, _t2, _t3; function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } /*! * License: LGPL-2.1-or-later * Dependencies: * * @dbp-toolkit/common: LGPL-2.1-or-later * jquery: MIT * select2: MIT * @dbp-toolkit/resource-select: LGPL-2.1-or-later */ import { f as e, h as t, s as n, A as r, j as i, m as o, g as s, a, b as l, c as u, i as c, d, y as p } from "./_commonjsHelpers.01af1198.es.js"; var h = { "book-list": { "book-author": "Autor", "book-availability-date": "Inventarisierungsdatum", "book-barcode": "Barcode", "book-description": "Beschreibung", "book-inventory-year": "Inventarisierungsjahr", "book-isbn": "ISBN/ISSN", "book-location-identifier": "Aufstellung", "book-publication-year": "Erscheinungsjahr", "book-publisher": "Verlag", "book-title": "Titel", books: "Bücher", "current-state": "Stand", "error-load-books": "Liste der Bücher konnte nicht geladen werden", "export-name": "Buchliste {{organizationCode}}", "inventory-year-select-placeholder": "Bitte wählen Sie ein Inventarisierungsjahr aus um die Büchsterliste einzuschränken", "location-identifier-select-placeholder": "Bitte wählen Sie eine Aufstellung aus um die Büchsterliste einzuschränken", "mini-spinner-text": "Bücher werden geladen...", "no-books": "Es sind keine Bücher vorhanden." }, budget: { "budget-key-values": "Budgetzahlen", "load-error": "Fehler beim Laden der Budgetwerte", "mini-spinner-text": "Budgetzahlen werden geladen...", "no-budget": "Für dieses Institut existieren keine Budgetzahlen!", taa: "Zugewiesenes Guthaben (inkl. Übertrag vom Vorjahr)", "taa-tcb": "Summe Rechnungsbelastungen", tab: "Verfügbares Guthaben", tcb: "Aktuelles Guthaben", "tcb-tab": "Belastetes Guthaben (offene Bestellungen)" }, "create-loan": { "button-refresh-title": "Entlehnungen von {{name}} erneut überprüfen", "error-existing-loans-body": "Es wurde eine bestehende Entlehnung gefunden, das Buch kann nicht entlehnt werden!", "error-existing-loans-summary": "Bestehende Entlehnung!", "info-no-existing-loans-body": "Es wurden keine bestehenden Entlehnungen gefunden, das Buch kann entlehnt werden.", "info-no-existing-loans-summary": "Keine bestehenden Entlehnungen", "mini-spinner-text": "Entlehnungen werden geladen...", submit: "Buch entlehnen", "success-body": "Das Buch wurde erfolgreich entlehnt.", "success-summary": "Buchentlehnung erfolgreich" }, "error-login-message": "Sie müssen eingeloggt sein um diese Funktion nutzen zu können!", "error-permission-message": "Sie müssen Bibliotheksbeauftragte/r sein um diese Funktion nutzen zu können!", "error-summary": "Ein Fehler ist aufgetreten", "library-book-offer-select": { headline: "Bibliothek Buch", placeholder: "Bitte geben Sie einen Barcode ein" }, "loan-list": { "book-author": "Autor/Herausgeber", "borrower-name": "Entlehner", "current-state": "Stand", "due-date": "Fällig am", "error-load-loan": "Entlehnung konnte nicht geladen werden", "error-load-loans": "Liste der Entlehnungen konnte nicht geladen werden", "export-name": "Entlehnungen {{organizationCode}}", loans: "Entlehnungen", "mini-spinner-text": "Entlehnungen werden geladen...", "no-loans": "Es sind keine Entlehnungen vorhanden.", "open-only": "Nur offene Entlehnungen anzeigen", "overdue-only": "Nur überfällige Entlehnungen anzeigen", "return-date": "Rückgegeben am", "start-date": "Entlehndatum" }, "location-identifier": { headline: "Identifikator zur Aufstellung", placeholder: "Bitte geben Sie den Identifikator um das Buch aufzustellen ein", submit: "Abschicken" }, "order-list": { "book-price": "Preis", "current-state": "Stand", "error-load-orders": "Liste der Bestellungen konnte nicht geladen werden", "export-name": "Buchbestellungen {{organizationCode}}", "mini-spinner-text": "Bestellungen werden geladen...", "open-only": "Nur offene Bestellungen anzeigen", "order-date": "Bestelldatum", "order-number": "Bestellnummer", "order-status": "Status", "receiving -note": "Information", "status-name-active": "offen", "status-name-cancelled": "storniert", "status-name-closed": "abgeschlossen" }, "organization-select": { label: "Institut" }, "person-select": { headline: "Person" }, "renew-loan": { book: "Buch", "button-refresh-title": "Entlehnungen von {{personName}} erneut laden", "contact-subject": "Entlehnung von: {{bookName}}", "contact-title": "Per EMail Kontakt mit {{personName}} aufnehmen", "contact-value": "EMail", "end-date": "Rückgabedatum", "error-load-loans-summary": "Fehler beim Laden der Entlehnungen", "error-renew-loan-date-in-past": "Enddatum darf nicht in der Vergangenheit liegen!", "error-renew-loan-summary": "Fehler beim Verlängern", "info-renew-loan-success-body": "Das Verlängern der Entlehnung war erfolgreich.", "info-renew-loan-success-summary": "Verlängern erfolgreich", loans: "Entlehnungen", "mini-spinner-text": "Entlehnungen werden geladen...", "no-loans": "Es wurden keine bestehenden Entlehnungen gefunden!", "renew-loan": "Entlehnung verlängern" }, "return-book": { borrower: "Entlehner", "button-refresh-title": "Entlehnung von {{name}} erneut laden", "error-no-existing-loans-body": "Es wurden keine bestehenden Entlehnungen gefunden!", "error-no-existing-loans-summary": "Keine bestehenden Entlehnungen", "info-existing-loans-body": "Es wurden eine bestehende Entlehnung gefunden, das Buch kann zurückgegeben werden!", "info-existing-loans-summary": "Bestehende Entlehnung!", "mini-spinner-text": "Entlehnungen werden geladen...", submit: "Buch zurückgeben", "success-body": "Das Buch von {{personName}} wurde erfolgreich zurückgegeben.", "success-summary": "Buchrückgabe erfolgreich", "user-name-unknown": "Unbekannt" }, shelving: { "button-refresh-title": "Aufstellung von {{name}} erneut laden" }, "success-body": 'Das Buch "{{name}}" wurde erfolgreich aufgestellt.', "success-summary": "Buchaufstellung erfolgreich" }, f = { "book-list": { "book-author": "Author", "book-availability-date": "Availability date", "book-barcode": "Barcode", "book-description": "Description", "book-inventory-year": "Availability year", "book-isbn": "ISBN/ISSN", "book-location-identifier": "Location", "book-publication-year": "Publication year", "book-publisher": "Publisher", "book-title": "Title", books: "Books", "current-state": "State", "error-load-books": "List of books could not be loaded", "export-name": "Books {{organizationCode}}", "inventory-year-select-placeholder": "Please select a availability year to restrict the book list", "location-identifier-select-placeholder": "Please select a location to restrict the book list", "mini-spinner-text": "Loading books...", "no-books": "There are no books." }, budget: { "budget-key-values": "Budget", "load-error": "Failed to load budget values", "mini-spinner-text": "Budget will be loaded...", "no-budget": "There are no budget values for this institute!", taa: "Allocated credit (including carryover from previous year)", "taa-tcb": "Sum of billing charges", tab: "Available balance", tcb: "Current balances", "tcb-tab": "Debited credit (open orders)" }, "create-loan": { "button-refresh-title": "Check loans of {{name}} again", "error-existing-loans-body": "Existing loan was found, a new one cannot be created!", "error-existing-loans-summary": "Existing loan was found!", "info-no-existing-loans-body": "No existing loans were found, a new one can be created.", "info-no-existing-loans-summary": "No existing loans", "mini-spinner-text": "Loading loans...", submit: "Loan book", "success-body": "The book loan creation successful.", "success-summary": "Book loan creation successful" }, "error-login-message": "You need to be logged in to use this function!", "error-permission-message": "You need to be a library officer to use this function!", "error-summary": "An error occurred", "library-book-offer-select": { headline: "Library book", placeholder: "Please enter a barcode" }, "loan-list": { "book-author": "Author/Publisher", "borrower-name": "Borrower", "current-state": "State", "due-date": "Due date", "error-load-loan": "Loan could not be loaded", "error-load-loans": "List of loans could not be loaded", "export-name": "Loans {{organizationCode}}", loans: "Loans", "mini-spinner-text": "Loading loans...", "no-loans": "There are no books.", "open-only": "Show open loans only", "overdue-only": "Show overdue loans only", "return-date": "Return date", "start-date": "Start date" }, "location-identifier": { headline: "Identifier for book placement", placeholder: "Please enter the identifier to place the book", submit: "Send" }, "order-list": { "book-price": "Price", "current-state": "State", "error-load-orders": "List of orders could not be loaded", "export-name": "Orders {{organizationCode}}", "mini-spinner-text": "Loading order...", "open-only": "Show open orders only", "order-date": "Order date", "order-number": "Order number", "order-status": "Status", "receiving -note": "Information", "status-name-active": "active", "status-name-cancelled": "cancelled", "status-name-closed": "closed" }, "organization-select": { label: "Institute" }, "person-select": { headline: "Person" }, "renew-loan": { book: "Book", "button-refresh-title": "Load loans from {{personName}} again", "contact-subject": "Loaning of: {{bookName}}", "contact-title": "Contact {{personName}} via email", "contact-value": "EMail", "end-date": "Return date", "error-load-loans-summary": "Error on loading loans", "error-renew-loan-date-in-past": "End time may not be in the past!", "error-renew-loan-summary": "Renewal failed", "info-renew-loan-success-body": "The renewal of the loan was successful.", "info-renew-loan-success-summary": "Renewal successfull", loans: "Loans", "mini-spinner-text": "Loading loans...", "no-loans": "No existing loans were found!", "renew-loan": "Renew loan" }, "return-book": { borrower: "Borrower", "button-refresh-title": "Load loans of {{name}} again", "error-no-existing-loans-body": "No existing loans were found!", "error-no-existing-loans-summary": "No existing loans", "info-existing-loans-body": "Existing loan was found, it can be returned!", "info-existing-loans-summary": "Existing loan was found!", "mini-spinner-text": "Loading loans...", submit: "Return book", "success-body": "The book from {{personName}} was successfully returned.", "success-summary": "Book returned successfully", "user-name-unknown": "Unknown" }, shelving: { "button-refresh-title": "Load shelving from {{name}} again" }, "success-body": 'The book lineup for "{{name}}" was successful.', "success-summary": "Book lineup successful" }; function g() { return e({ en: f, de: h }, "de", "en"); } function m(e) { return e; } const v = e => { const t = document.createElement("pre"), n = document.createTextNode(e); return t.appendChild(n), t.innerHTML; }, y = e => { var t = document.createElement("div"); return t.innerHTML = e, t.textContent || t.innerText || ""; }, b = { handleXhrError(e, r, i, o = "sad", s = "de") { if ("abort" === r) return; let a; const l = t(); l.changeLanguage(s), void 0 !== e.responseJSON && void 0 !== e.responseJSON["hydra:description"] ? a = e.responseJSON["hydra:description"] : void 0 !== e.responseJSON && void 0 !== e.responseJSON.detail ? a = e.responseJSON.detail : (a = r, i && (a += " - " + i)), 0 === e.status && (a = l.t("error.connection-to-server-refused")), n({ summary: l.t("error.summary"), body: v(y(a)), icon: o, type: "danger" }), void 0 !== this.sendSetPropertyEvent && this.sendSetPropertyEvent("analytics-event", { category: "XhrError", action: a }); }, handleFetchError: async function (e, r = "", i = "sad", o = "de") { if ("AbortError" === e.name) return; let s; const a = t(); a.changeLanguage(o); try { await e.json().then(t => { s = void 0 !== t["hydra:description"] ? t["hydra:description"] : void 0 !== t.detail ? t.detail : e.statusText; }).catch(() => { s = void 0 !== e.statusText ? e.statusText : e; }); } catch (t) { "TypeError" === e.name && (s = "" !== e.message ? e.message : a.t("error.connection-to-server-refused")); } n({ summary: "" === r ? a.t("error.summary") : r, body: v(y(s)), icon: i, type: "danger" }), void 0 !== this.sendSetPropertyEvent && this.sendSetPropertyEvent("analytics-event", { category: "FetchError", action: "" === r ? s : r + ": " + s }); } }; class x extends r { constructor() { super(), Object.assign(x.prototype, b); } _(e) { return null === this.shadowRoot ? this.querySelector(e) : this.shadowRoot.querySelector(e); } hasLibraryPermissions() { if (!this.auth.person || !Array.isArray(this.auth.person.roles)) return !1; let e = this.auth.person.roles; return -1 !== e.indexOf("ROLE_F_BIB_F") || -1 !== e.indexOf("ROLE_LIBRARY_MANAGER"); } _updateAuth() { this._loginStatus = this.auth["login-status"]; let e = [this.isLoggedIn(), this.isLoading()]; this._loginState.toString() !== e.toString() && this.requestUpdate(), this._loginState = e, this.isLoggedIn() && !this._loginCalled && (this._loginCalled = !0, this.loginCallback()); } update(e) { e.forEach((e, t) => { if ("auth" === t) this._updateAuth(); }), super.update(e); } connectedCallback() { super.connectedCallback(), this._loginStatus = "", this._loginState = [], this._loginCalled = !1; } isLoggedIn() { return void 0 !== this.auth.person && null !== this.auth.person; } isLoading() { return "logged-out" !== this._loginStatus && !this.isLoggedIn() && void 0 !== this.auth.token; } loginCallback() {} getOrganization() { const e = this._(this.getScopedTagName("dbp-library-select")); if (e) { const t = e.getAttribute("data-object"); if (null !== t) return JSON.parse(t); } return null; } getOrganizationCode() { const e = this.getOrganization(); return null !== e ? e.name : ""; } } var w, _, S = {}; w = "undefined" != typeof window ? window : i, _ = function (e, t) { var n = [], r = Object.getPrototypeOf, i = n.slice, o = n.flat ? function (e) { return n.flat.call(e); } : function (e) { return n.concat.apply([], e); }, s = n.push, a = n.indexOf, l = {}, u = l.toString, c = l.hasOwnProperty, d = c.toString, p = d.call(Object), h = {}, f = function f(e) { return "function" == typeof e && "number" != typeof e.nodeType && "function" != typeof e.item; }, g = function g(e) { return null != e && e === e.window; }, m = e.document, v = { type: !0, src: !0, nonce: !0, noModule: !0 }; function y(e, t, n) { var r, i, o = (n = n || m).createElement("script"); if (o.text = e, t) for (r in v) (i = t[r] || t.getAttribute && t.getAttribute(r)) && o.setAttribute(r, i); n.head.appendChild(o).parentNode.removeChild(o); } function b(e) { return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? l[u.call(e)] || "object" : typeof e; } var x = "3.6.3", w = function w(e, t) { return new w.fn.init(e, t); }; function _(e) { var t = !!e && "length" in e && e.length, n = b(e); return !f(e) && !g(e) && ("array" === n || 0 === t || "number" == typeof t && t > 0 && t - 1 in e); } w.fn = w.prototype = { jquery: x, constructor: w, length: 0, toArray: function () { return i.call(this); }, get: function (e) { return null == e ? i.call(this) : e < 0 ? this[e + this.length] : this[e]; }, pushStack: function (e) { var t = w.merge(this.constructor(), e); return t.prevObject = this, t; }, each: function (e) { return w.each(this, e); }, map: function (e) { return this.pushStack(w.map(this, function (t, n) { return e.call(t, n, t); })); }, slice: function () { return this.pushStack(i.apply(this, arguments)); }, first: function () { return this.eq(0); }, last: function () { return this.eq(-1); }, even: function () { return this.pushStack(w.grep(this, function (e, t) { return (t + 1) % 2; })); }, odd: function () { return this.pushStack(w.grep(this, function (e, t) { return t % 2; })); }, eq: function (e) { var t = this.length, n = +e + (e < 0 ? t : 0); return this.pushStack(n >= 0 && n < t ? [this[n]] : []); }, end: function () { return this.prevObject || this.constructor(); }, push: s, sort: n.sort, splice: n.splice }, w.extend = w.fn.extend = function () { var e, t, n, r, i, o, s = arguments[0] || {}, a = 1, l = arguments.length, u = !1; for ("boolean" == typeof s && (u = s, s = arguments[a] || {}, a++), "object" == typeof s || f(s) || (s = {}), a === l && (s = this, a--); a < l; a++) if (null != (e = arguments[a])) for (t in e) r = e[t], "__proto__" !== t && s !== r && (u && r && (w.isPlainObject(r) || (i = Array.isArray(r))) ? (n = s[t], o = i && !Array.isArray(n) ? [] : i || w.isPlainObject(n) ? n : {}, i = !1, s[t] = w.extend(u, o, r)) : void 0 !== r && (s[t] = r)); return s; }, w.extend({ expando: "jQuery" + (x + Math.random()).replace(/\D/g, ""), isReady: !0, error: function (e) { throw new Error(e); }, noop: function () {}, isPlainObject: function (e) { var t, n; return !(!e || "[object Object]" !== u.call(e) || (t = r(e)) && ("function" != typeof (n = c.call(t, "constructor") && t.constructor) || d.call(n) !== p)); }, isEmptyObject: function (e) { var t; for (t in e) return !1; return !0; }, globalEval: function (e, t, n) { y(e, { nonce: t && t.nonce }, n); }, each: function (e, t) { var n, r = 0; if (_(e)) for (n = e.length; r < n && !1 !== t.call(e[r], r, e[r]); r++);else for (r in e) if (!1 === t.call(e[r], r, e[r])) break; return e; }, makeArray: function (e, t) { var n = t || []; return null != e && (_(Object(e)) ? w.merge(n, "string" == typeof e ? [e] : e) : s.call(n, e)), n; }, inArray: function (e, t, n) { return null == t ? -1 : a.call(t, e, n); }, merge: function (e, t) { for (var n = +t.length, r = 0, i = e.length; r < n; r++) e[i++] = t[r]; return e.length = i, e; }, grep: function (e, t, n) { for (var r = [], i = 0, o = e.length, s = !n; i < o; i++) !t(e[i], i) !== s && r.push(e[i]); return r; }, map: function (e, t, n) { var r, i, s = 0, a = []; if (_(e)) for (r = e.length; s < r; s++) null != (i = t(e[s], s, n)) && a.push(i);else for (s in e) null != (i = t(e[s], s, n)) && a.push(i); return o(a); }, guid: 1, support: h }), "function" == typeof Symbol && (w.fn[Symbol.iterator] = n[Symbol.iterator]), w.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function (e, t) { l["[object " + t + "]"] = t.toLowerCase(); }); var S = /*! * Sizzle CSS Selector Engine v2.3.9 * https://sizzlejs.com/ * * Copyright JS Foundation and other contributors * Released under the MIT license * https://js.foundation/ * * Date: 2022-12-19 */ function (e) { var t, n, r, i, o, s, a, l, u, c, d, p, h, f, g, m, v, y, b, x = "sizzle" + 1 * new Date(), w = e.document, _ = 0, S = 0, E = le(), C = le(), A = le(), T = le(), _k = function k(e, t) { return e === t && (d = !0), 0; }, $ = {}.hasOwnProperty, D = [], L = D.pop, j = D.push, N = D.push, O = D.slice, q = function q(e, t) { for (var n = 0, r = e.length; n < r; n++) if (e[n] === t) return n; return -1; }, P = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", I = "[\\x20\\t\\r\\n\\f]", R = "(?:\\\\[\\da-fA-F]{1,6}[\\x20\\t\\r\\n\\f]?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", H = "\\[[\\x20\\t\\r\\n\\f]*(" + R + ")(?:" + I + "*([*^$|!~]?=)" + I + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + R + "))|)" + I + "*\\]", M = ":(" + R + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + H + ")*)|.*)\\)|)", B = new RegExp(I + "+", "g"), z = new RegExp("^[\\x20\\t\\r\\n\\f]+|((?:^|[^\\\\])(?:\\\\.)*)[\\x20\\t\\r\\n\\f]+$", "g"), U = new RegExp("^[\\x20\\t\\r\\n\\f]*,[\\x20\\t\\r\\n\\f]*"), F = new RegExp("^[\\x20\\t\\r\\n\\f]*([>+~]|[\\x20\\t\\r\\n\\f])[\\x20\\t\\r\\n\\f]*"), W = new RegExp(I + "|>"), G = new RegExp(M), V = new RegExp("^" + R + "$"), Y = { ID: new RegExp("^#(" + R + ")"), CLASS: new RegExp("^\\.(" + R + ")"), TAG: new RegExp("^(" + R + "|[*])"), ATTR: new RegExp("^" + H), PSEUDO: new RegExp("^" + M), CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\([\\x20\\t\\r\\n\\f]*(even|odd|(([+-]|)(\\d*)n|)[\\x20\\t\\r\\n\\f]*(?:([+-]|)[\\x20\\t\\r\\n\\f]*(\\d+)|))[\\x20\\t\\r\\n\\f]*\\)|)", "i"), bool: new RegExp("^(?:" + P + ")$", "i"), needsContext: new RegExp("^[\\x20\\t\\r\\n\\f]*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\([\\x20\\t\\r\\n\\f]*((?:-\\d)?\\d*)[\\x20\\t\\r\\n\\f]*\\)|)(?=[^-]|$)", "i") }, K = /HTML$/i, X = /^(?:input|select|textarea|button)$/i, Z = /^h\d$/i, J = /^[^{]+\{\s*\[native \w/, Q = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, ee = /[+~]/, te = new RegExp("\\\\[\\da-fA-F]{1,6}[\\x20\\t\\r\\n\\f]?|\\\\([^\\r\\n\\f])", "g"), ne = function ne(e, t) { var n = "0x" + e.slice(1) - 65536; return t || (n < 0 ? String.fromCharCode(n + 65536) : String.fromCharCode(n >> 10 | 55296, 1023 & n | 56320)); }, re = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, ie = function ie(e, t) { return t ? "\0" === e ? "�" : e.slice(0, -1) + "\\" + e.charCodeAt(e.length - 1).toString(16) + " " : "\\" + e; }, oe = function oe() { p(); }, se = xe(function (e) { return !0 === e.disabled && "fieldset" === e.nodeName.toLowerCase(); }, { dir: "parentNode", next: "legend" }); try { N.apply(D = O.call(w.childNodes), w.childNodes), D[w.childNodes.length].nodeType; } catch (e) { N = { apply: D.length ? function (e, t) { j.apply(e, O.call(t)); } : function (e, t) { for (var n = e.length, r = 0; e[n++] = t[r++];); e.length = n - 1; } }; } function ae(e, t, r, i) { var o, a, u, c, d, f, v, y = t && t.ownerDocument, w = t ? t.nodeType : 9; if (r = r || [], "string" != typeof e || !e || 1 !== w && 9 !== w && 11 !== w) return r; if (!i && (p(t), t = t || h, g)) { if (11 !== w && (d = Q.exec(e))) if (o = d[1]) { if (9 === w) { if (!(u = t.getElementById(o))) return r; if (u.id === o) return r.push(u), r; } else if (y && (u = y.getElementById(o)) && b(t, u) && u.id === o) return r.push(u), r; } else { if (d[2]) return N.apply(r, t.getElementsByTagName(e)), r; if ((o = d[3]) && n.getElementsByClassName && t.getElementsByClassName) return N.apply(r, t.getElementsByClassName(o)), r; } if (n.qsa && !T[e + " "] && (!m || !m.test(e)) && (1 !== w || "object" !== t.nodeName.toLowerCase())) { if (v = e, y = t, 1 === w && (W.test(e) || F.test(e))) { for ((y = ee.test(e) && ve(t.parentNode) || t) === t && n.scope || ((c = t.getAttribute("id")) ? c = c.replace(re, ie) : t.setAttribute("id", c = x)), a = (f = s(e)).length; a--;) f[a] = (c ? "#" + c : ":scope") + " " + be(f[a]); v = f.join(","); } try { if (n.cssSupportsSelector && !CSS.supports("selector(:is(" + v + "))")) throw new Error(); return N.apply(r, y.querySelectorAll(v)), r; } catch (t) { T(e, !0); } finally { c === x && t.removeAttribute("id"); } } } return l(e.replace(z, "$1"), t, r, i); } function le() { var e = []; return function t(n, i) { return e.push(n + " ") > r.cacheLength && delete t[e.shift()], t[n + " "] = i; }; } function ue(e) { return e[x] = !0, e; } function ce(e) { var t = h.createElement("fieldset"); try { return !!e(t); } catch (e) { return !1; } finally { t.parentNode && t.parentNode.removeChild(t), t = null; } } function de(e, t) { for (var n = e.split("|"), i = n.length; i--;) r.attrHandle[n[i]] = t; } function pe(e, t) { var n = t && e, r = n && 1 === e.nodeType && 1 === t.nodeType && e.sourceIndex - t.sourceIndex; if (r) return r; if (n) for (; n = n.nextSibling;) if (n === t) return -1; return e ? 1 : -1; } function he(e) { return function (t) { return "input" === t.nodeName.toLowerCase() && t.type === e; }; } function fe(e) { return function (t) { var n = t.nodeName.toLowerCase(); return ("input" === n || "button" === n) && t.type === e; }; } function ge(e) { return function (t) { return "form" in t ? t.parentNode && !1 === t.disabled ? "label" in t ? "label" in t.parentNode ? t.parentNode.disabled === e : t.disabled === e : t.isDisabled === e || t.isDisabled !== !e && se(t) === e : t.disabled === e : "label" in t && t.disabled === e; }; } function me(e) { return ue(function (t) { return t = +t, ue(function (n, r) { for (var i, o = e([], n.length, t), s = o.length; s--;) n[i = o[s]] && (n[i] = !(r[i] = n[i])); }); }); } function ve(e) { return e && void 0 !== e.getElementsByTagName && e; } for (t in n = ae.support = {}, o = ae.isXML = function (e) { var t = e && e.namespaceURI, n = e && (e.ownerDocument || e).documentElement; return !K.test(t || n && n.nodeName || "HTML"); }, p = ae.setDocument = function (e) { var t, i, s = e ? e.ownerDocument || e : w; return s != h && 9 === s.nodeType && s.documentElement ? (f = (h = s).documentElement, g = !o(h), w != h && (i = h.defaultView) && i.top !== i && (i.addEventListener ? i.addEventListener("unload", oe, !1) : i.attachEvent && i.attachEvent("onunload", oe)), n.scope = ce(function (e) { return f.appendChild(e).appendChild(h.createElement("div")), void 0 !== e.querySelectorAll && !e.querySelectorAll(":scope fieldset div").length; }), n.cssSupportsSelector = ce(function () { return CSS.supports("selector(*)") && h.querySelectorAll(":is(:jqfake)") && !CSS.supports("selector(:is(*,:jqfake))"); }), n.attributes = ce(function (e) { return e.className = "i", !e.getAttribute("className"); }), n.getElementsByTagName = ce(function (e) { return e.appendChild(h.createComment("")), !e.getElementsByTagName("*").length; }), n.getElementsByClassName = J.test(h.getElementsByClassName), n.getById = ce(function (e) { return f.appendChild(e).id = x, !h.getElementsByName || !h.getElementsByName(x).length; }), n.getById ? (r.filter.ID = function (e) { var t = e.replace(te, ne); return function (e) { return e.getAttribute("id") === t; }; }, r.find.ID = function (e, t) { if (void 0 !== t.getElementById && g) { var n = t.getElementById(e); return n ? [n] : []; } }) : (r.filter.ID = function (e) { var t = e.replace(te, ne); return function (e) { var n = void 0 !== e.getAttributeNode && e.getAttributeNode("id"); return n && n.value === t; }; }, r.find.ID = function (e, t) { if (void 0 !== t.getElementById && g) { var n, r, i, o = t.getElementById(e); if (o) { if ((n = o.getAttributeNode("id")) && n.value === e) return [o]; for (i = t.getElementsByName(e), r = 0; o = i[r++];) if ((n = o.getAttributeNode("id")) && n.value === e) return [o]; } return []; } }), r.find.TAG = n.getElementsByTagName ? function (e, t) { return void 0 !== t.getElementsByTagName ? t.getElementsByTagName(e) : n.qsa ? t.querySelectorAll(e) : void 0; } : function (e, t) { var n, r = [], i = 0, o = t.getElementsByTagName(e); if ("*" === e) { for (; n = o[i++];) 1 === n.nodeType && r.push(n); return r; } return o; }, r.find.CLASS = n.getElementsByClassName && function (e, t) { if (void 0 !== t.getElementsByClassName && g) return t.getElementsByClassName(e); }, v = [], m = [], (n.qsa = J.test(h.querySelectorAll)) && (ce(function (e) { var t; f.appendChild(e).innerHTML = "<a id='" + x + "'></a><select id='" + x + "-\r\\' msallowcapture=''><option selected=''></option></select>", e.querySelectorAll("[msallowcapture^='']").length && m.push("[*^$]=[\\x20\\t\\r\\n\\f]*(?:''|\"\")"), e.querySelectorAll("[selected]").length || m.push("\\[[\\x20\\t\\r\\n\\f]*(?:value|" + P + ")"), e.querySelectorAll("[id~=" + x + "-]").length || m.push("~="), (t = h.createElement("input")).setAttribute("name", ""), e.appendChild(t), e.querySelectorAll("[name='']").length || m.push("\\[[\\x20\\t\\r\\n\\f]*name[\\x20\\t\\r\\n\\f]*=[\\x20\\t\\r\\n\\f]*(?:''|\"\")"), e.querySelectorAll(":checked").length || m.push(":checked"), e.querySelectorAll("a#" + x + "+*").length || m.push(".#.+[+~]"), e.querySelectorAll("\\\f"), m.push("[\\r\\n\\f]"); }), ce(function (e) { e.innerHTML = "<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>"; var t = h.createElement("input"); t.setAttribute("type", "hidden"), e.appendChild(t).setAttribute("name", "D"), e.querySelectorAll("[name=d]").length && m.push("name[\\x20\\t\\r\\n\\f]*[*^$|!~]?="), 2 !== e.querySelectorAll(":enabled").length && m.push(":enabled", ":disabled"), f.appendChild(e).disabled = !0, 2 !== e.querySelectorAll(":disabled").length && m.push(":enabled", ":disabled"), e.querySelectorAll("*,:x"), m.push(",.*:"); })), (n.matchesSelector = J.test(y = f.matches || f.webkitMatchesSelector || f.mozMatchesSelector || f.oMatchesSelector || f.msMatchesSelector)) && ce(function (e) { n.disconnectedMatch = y.call(e, "*"), y.call(e, "[s!='']:x"), v.push("!=", M); }), n.cssSupportsSelector || m.push(":has"), m = m.length && new RegExp(m.join("|")), v = v.length && new RegExp(v.join("|")), t = J.test(f.compareDocumentPosition), b = t || J.test(f.contains) ? function (e, t) { var n = 9 === e.nodeType && e.documentElement || e, r = t && t.parentNode; return e === r || !(!r || 1 !== r.nodeType || !(n.contains ? n.contains(r) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(r))); } : function (e, t) { if (t) for (; t = t.parentNode;) if (t === e) return !0; return !1; }, _k = t ? function (e, t) { if (e === t) return d = !0, 0; var r = !e.compareDocumentPosition - !t.compareDocumentPosition; return r || (1 & (r = (e.ownerDocument || e) == (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || !n.sortDetached && t.compareDocumentPosition(e) === r ? e == h || e.ownerDocument == w && b(w, e) ? -1 : t == h || t.ownerDocument == w && b(w, t) ? 1 : c ? q(c, e) - q(c, t) : 0 : 4 & r ? -1 : 1); } : function (e, t) { if (e === t) return d = !0, 0; var n, r = 0, i = e.parentNode, o = t.parentNode, s = [e], a = [t]; if (!i || !o) return e == h ? -1 : t == h ? 1 : i ? -1 : o ? 1 : c ? q(c, e) - q(c, t) : 0; if (i === o) return pe(e, t); for (n = e; n = n.parentNode;) s.unshift(n); for (n = t; n = n.parentNode;) a.unshift(n); for (; s[r] === a[r];) r++; return r ? pe(s[r], a[r]) : s[r] == w ? -1 : a[r] == w ? 1 : 0; }, h) : h; }, ae.matches = function (e, t) { return ae(e, null, null, t); }, ae.matchesSelector = function (e, t) { if (p(e), n.matchesSelector && g && !T[t + " "] && (!v || !v.test(t)) && (!m || !m.test(t))) try { var r = y.call(e, t); if (r || n.disconnectedMatch || e.document && 11 !== e.document.nodeType) return r; } catch (e) { T(t, !0); } return ae(t, h, null, [e]).length > 0; }, ae.contains = function (e, t) { return (e.ownerDocument || e) != h && p(e), b(e, t); }, ae.attr = function (e, t) { (e.ownerDocument || e) != h && p(e); var i = r.attrHandle[t.toLowerCase()], o = i && $.call(r.attrHandle, t.toLowerCase()) ? i(e, t, !g) : void 0; return void 0 !== o ? o : n.attributes || !g ? e.getAttribute(t) : (o = e.getAttributeNode(t)) && o.specified ? o.value : null; }, ae.escape = function (e) { return (e + "").replace(re, ie); }, ae.error = function (e) { throw new Error("Syntax error, unrecognized expression: " + e); }, ae.uniqueSort = function (e) { var t, r = [], i = 0, o = 0; if (d = !n.detectDuplicates, c = !n.sortStable && e.slice(0), e.sort(_k), d) { for (; t = e[o++];) t === e[o] && (i = r.push(o)); for (; i--;) e.splice(r[i], 1); } return c = null, e; }, i = ae.getText = function (e) { var t, n = "", r = 0, o = e.nodeType; if (o) { if (1 === o || 9 === o || 11 === o) { if ("string" == typeof e.textContent) return e.textContent; for (e = e.firstChild; e; e = e.nextSibling) n += i(e); } else if (3 === o || 4 === o) return e.nodeValue; } else for (; t = e[r++];) n += i(t); return n; }, r = ae.selectors = { cacheLength: 50, createPseudo: ue, match: Y, attrHandle: {}, find: {}, relative: { ">": { dir: "parentNode", first: !0 }, " ": { dir: "parentNode" }, "+": { dir: "previousSibling", first: !0 }, "~": { dir: "previousSibling" } }, preFilter: { ATTR: function (e) { return e[1] = e[1].replace(te, ne), e[3] = (e[3] || e[4] || e[5] || "").replace(te, ne), "~=" === e[2] && (e[3] = " " + e[3] + " "), e.slice(0, 4); }, CHILD: function (e) { return e[1] = e[1].toLowerCase(), "nth" === e[1].slice(0, 3) ? (e[3] || ae.error(e[0]), e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ("even" === e[3] || "odd" === e[3])), e[5] = +(e[7] + e[8] || "odd" === e[3])) : e[3] && ae.error(e[0]), e; }, PSEUDO: function (e) { var t, n = !e[6] && e[2]; return Y.CHILD.test(e[0]) ? null : (e[3] ? e[2] = e[4] || e[5] || "" : n && G.test(n) && (t = s(n, !0)) && (t = n.indexOf(")", n.length - t) - n.length) && (e[0] = e[0].slice(0, t), e[2] = n.slice(0, t)), e.slice(0, 3)); } }, filter: { TAG: function (e) { var t = e.replace(te, ne).toLowerCase(); return "*" === e ? function () { return !0; } : function (e) { return e.nodeName && e.nodeName.toLowerCase() === t; }; }, CLASS: function (e) { var t = E[e + " "]; return t || (t = new RegExp("(^|[\\x20\\t\\r\\n\\f])" + e + "(" + I + "|$)")) && E(e, function (e) { return t.test("string" == typeof e.className && e.className || void 0 !== e.getAttribute && e.getAttribute("class") || ""); }); }, ATTR: function (e, t, n) { return function (r) { var i = ae.attr(r, e); return null == i ? "!=" === t : !t || (i += "", "=" === t ? i === n : "!=" === t ? i !== n : "^=" === t ? n && 0 === i.indexOf(n) : "*=" === t ? n && i.indexOf(n) > -1 : "$=" === t ? n && i.slice(-n.length) === n : "~=" === t ? (" " + i.replace(B, " ") + " ").indexOf(n) > -1 : "|=" === t && (i === n || i.slice(0, n.length + 1) === n + "-")); }; }, CHILD: function (e, t, n, r, i) { var o = "nth" !== e.slice(0, 3), s = "last" !== e.slice(-4), a = "of-type" === t; return 1 === r && 0 === i ? function (e) { return !!e.parentNode; } : function (t, n, l) { var u, c, d, p, h, f, g = o !== s ? "nextSibling" : "previousSibling", m = t.parentNode, v = a && t.nodeName.toLowerCase(), y = !l && !a, b = !1; if (m) { if (o) { for (; g;) { for (p = t; p = p[g];) if (a ? p.nodeName.toLowerCase() === v : 1 === p.nodeType) return !1; f = g = "only" === e && !f && "nextSibling"; } return !0; } if (f = [s ? m.firstChild : m.lastChild], s && y) { for (b = (h = (u = (c = (d = (p = m)[x] || (p[x] = {}))[p.uniqueID] || (d[p.uniqueID] = {}))[e] || [])[0] === _ && u[1]) && u[2], p = h && m.childNodes[h]; p = ++h && p && p[g] || (b = h = 0) || f.pop();) if (1 === p.nodeType && ++b && p === t) { c[e] = [_, h, b]; break; } } else if (y && (b = h = (u = (c = (d = (p = t)[x] || (p[x] = {}))[p.uniqueID] || (d[p.uniqueID] = {}))[e] || [])[0] === _ && u[1]), !1 === b) for (; (p = ++h && p && p[g] || (b = h = 0) || f.pop()) && ((a ? p.nodeName.toLowerCase() !== v : 1 !== p.nodeType) || !++b || (y && ((c = (d = p[x] || (p[x] = {}))[p.uniqueID] || (d[p.uniqueID] = {}))[e] = [_, b]), p !== t));); return (b -= i) === r || b % r == 0 && b / r >= 0; } }; }, PSEUDO: function (e, t) { var n, i = r.pseudos[e] || r.setFilters[e.toLowerCase()] || ae.error("unsupported pseudo: " + e); return i[x] ? i(t) : i.length > 1 ? (n = [e, e, "", t], r.setFilters.hasOwnProperty(e.toLowerCase()) ? ue(function (e, n) { for (var r, o = i(e, t), s = o.length; s--;) e[r = q(e, o[s])] = !(n[r] = o[s]); }) : function (e) { return i(e, 0, n); }) : i; } }, pseudos: { not: ue(function (e) { var t = [], n = [], r = a(e.replace(z, "$1")); return r[x] ? ue(function (e, t, n, i) { for (var o, s = r(e, null, i, []), a = e.length; a--;) (o = s[a]) && (e[a] = !(t[a] = o)); }) : function (e, i, o) { return t[0] = e, r(t, null, o, n), t[0] = null, !n.pop(); }; }), has: ue(function (e) { return function (t) { return ae(e, t).length > 0; }; }), contains: ue(function (e) { return e = e.replace(te, ne), function (t) { return (t.textContent || i(t)).indexOf(e) > -1; }; }), lang: ue(function (e) { return V.test(e || "") || ae.error("unsupported lang: " + e), e = e.replace(te, ne).toLowerCase(), function (t) { var n; do { if (n = g ? t.lang : t.getAttribute("xml:lang") || t.getAttribute("lang")) return (n = n.toLowerCase()) === e || 0 === n.indexOf(e + "-"); } while ((t = t.parentNode) && 1 === t.nodeType); return !1; }; }), target: function (t) { var n = e.location && e.location.hash; return n && n.slice(1) === t.id; }, root: function (e) { return e === f; }, focus: function (e) { return e === h.activeElement && (!h.hasFocus || h.hasFocus()) && !!(e.type || e.href || ~e.tabIndex); }, enabled: ge(!1), disabled: ge(!0), checked: function (e) { var t = e.nodeName.toLowerCase(); return "input" === t && !!e.checked || "option" === t && !!e.selected; }, selected: function (e) { return e.parentNode && e.parentNode.selectedIndex, !0 === e.selected; }, empty: function (e) { for (e = e.firstChild; e; e = e.nextSibling) if (e.nodeType < 6) return !1; return !0; }, parent: function (e) { return !r.pseudos.empty(e); }, header: function (e) { return Z.test(e.nodeName); }, input: function (e) { return X.test(e.nodeName); }, button: function (e) { var t = e.nodeName.toLowerCase(); return "input" === t && "button" === e.type || "button" === t; }, text: function (e) { var t; return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase()); }, first: me(function () { return [0]; }), last: me(function (e, t) { return [t - 1]; }), eq: me(function (e, t, n) { return [n < 0 ? n + t : n]; }), even: me(function (e, t) { for (var n = 0; n < t; n += 2) e.push(n); return e; }), odd: me(function (e, t) { for (var n = 1; n < t; n += 2) e.push(n); return e; }), lt: me(function (e, t, n) { for (var r = n < 0 ? n + t : n > t ? t : n; --r >= 0;) e.push(r); return e; }), gt: me(function (e, t, n) { for (var r = n < 0 ? n + t : n; ++r < t;) e.push(r); return e; }) } }, r.pseudos.nth = r.pseudos.eq, { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 }) r.pseudos[t] = he(t); for (t in { submit: !0, reset: !0 }) r.pseudos[t] = fe(t); function ye() {} function be(e) { for (var t = 0, n = e.length, r = ""; t < n; t++) r += e[t].value; return r; } function xe(e, t, n) { var r = t.dir, i = t.next, o = i || r, s = n && "parentNode" === o, a = S++; return t.first ? function (t, n, i) { for (; t = t[r];) if (1 === t.nodeType || s) return e(t, n, i); return !1; } : function (t, n, l) { var u, c, d, p = [_, a]; if (l) { for (; t = t[r];) if ((1 === t.nodeType || s) && e(t, n, l)) return !0; } else for (; t = t[r];) if (1 === t.nodeType || s) if (c = (d = t[x] || (t[x] = {}))[t.uniqueID] || (d[t.uniqueID] = {}), i && i === t.nodeName.toLowerCase()) t = t[r] || t;else { if ((u = c[o]) && u[0] === _ && u[1] === a) return p[2] = u[2]; if (c[o] = p, p[2] = e(t, n, l)) return !0; } return !1; }; } function we(e) { return e.length > 1 ? function (t, n, r) { for (var i = e.length; i--;) if (!e[i](t, n, r)) return !1; return !0; } : e[0]; } function _e(e, t, n, r, i) { for (var o, s = [], a = 0, l = e.length, u = null != t; a < l; a++) (o = e[a]) && (n && !n(o, r, i) || (s.push(o), u && t.push(a))); return s; } function Se(e, t, n, r, i, o) { return r && !r[x] && (r = Se(r)), i && !i[x] && (i = Se(i, o)), ue(function (o, s, a, l) { var u, c, d, p = [], h = [], f = s.length, g = o || function (e, t, n) { for (var r = 0, i = t.length; r < i; r++) ae(e, t[r], n); return n; }(t || "*", a.nodeType ? [a] : a, []), m = !e || !o && t ? g : _e(g, p, e, a, l), v = n ? i || (o ? e : f || r) ? [] : s : m; if (n && n(m, v, a, l), r) for (u = _e(v, h), r(u, [], a, l), c = u.length; c--;) (d = u[c]) && (v[h[c]] = !(m[h[c]] = d)); if (o) { if (i || e) { if (i) { for (u = [], c = v.length; c--;) (d = v[c]) && u.push(m[c] = d); i(null, v = [], u, l); } for (c = v.length; c--;) (d = v[c]) && (u = i ? q(o, d) : p[c]) > -1 && (o[u] = !(s[u] = d)); } } else v = _e(v === s ? v.splice(f, v.length) : v), i ? i(null, s, v, l) : N.apply(s, v); }); } function Ee(e) { for (var t, n, i, o = e.length, s = r.relative[e[0].type], a = s || r.relative[" "], l = s ? 1 : 0, c = xe(function (e) { return e === t; }, a, !0), d = xe(function (e) { return q(t, e) > -1; }, a, !0), p = [function (e, n, r) { var i = !s && (r || n !== u) || ((t = n).nodeType ? c(e, n, r) : d(e, n, r)); return t = null, i; }]; l < o; l++) if (n = r.relative[e[l].type]) p = [xe(we(p), n)];else { if ((n = r.filter[e[l].type].apply(null, e[l].matches))[x]) { for (i = ++l; i < o && !r.relative[e[i].type]; i++); return Se(l > 1 && we(p), l > 1 && be(e.slice(0, l - 1).concat({ value: " " === e[l - 2].type ? "*" : "" })).replace(z, "$1"), n, l < i && Ee(e.slice(l, i)), i < o && Ee(e = e.slice(i)), i < o && be(e)); } p.push(n); } return we(p); } return ye.prototype = r.filters = r.pseudos, r.setFilters = new ye(), s = ae.tokenize = function (e, t) { var n, i, o, s, a, l, u, c = C[e + " "]; if (c) return t ? 0 : c.slice(0); for (a = e, l = [], u = r.preFilter; a;) { for (s in n && !(i = U.exec(a)) || (i && (a = a.slice(i[0].length) || a), l.push(o = [])), n = !1, (i = F.exec(a)) && (n = i.shift(), o.push({ value: n, type: i[0].replace(z, " ") }), a = a.slice(n.length)), r.filter) !(i = Y[s].exec(a)) || u[s] && !(i = u[s](i)) || (n = i.shift(), o.push({ value: n, type: s, matches: i }), a = a.slice(n.length)); if (!n) break; } return t ? a.length : a ? ae.error(e) : C(e, l).slice(0); }, a = ae.compile = function (e, t) { var n, i = [], o = [], a = A[e + " "]; if (!a) { for (t || (t = s(e)), n = t.length; n--;) (a = Ee(t[n]))[x] ? i.push(a) : o.push(a); a = A(e, function (e, t) { var n = t.length > 0, i = e.length > 0, o = function o(o, s, a, l, c) { var d, f, m, v = 0, y = "0", b = o && [], x = [], w = u, S = o || i && r.find.TAG("*", c), E = _ += null == w ? 1 : Math.random() || .1, C = S.length; for (c && (u = s == h || s || c); y !== C && null != (d = S[y]); y++) { if (i && d) { for (f = 0, s || d.ownerDocument == h || (p(d), a = !g); m = e[f++];) if (m(d, s || h, a)) { l.push(d); break; } c && (_ = E); } n && ((d = !m && d) && v--, o && b.push(d)); } if (v += y, n && y !== v) { for (f = 0; m = t[f++];) m(b, x, s, a); if (o) { if (v > 0) for (; y-