@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
224 lines (222 loc) • 7.65 kB
JavaScript
let _ = t => 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
* @babel/runtime: MIT
* i18next: MIT
* @lit/reactive-element: BSD-3-Clause
* lit-html: BSD-3-Clause
* lit-element: BSD-3-Clause
* @open-wc/dedupe-mixin: MIT
* @open-wc/scoped-elements: MIT
* datatables.net: MIT
* datatables.net-responsive: MIT
* datatables.net-responsive-dt: MIT
* datatables.net-dt: MIT
* jszip: (MIT OR GPL-3.0-or-later)
* datatables.net-buttons-dt: MIT
* datatables.net-buttons: MIT
* @dbp-toolkit/data-table-view: LGPL-2.1-or-later
*/
import { L as t, c as e, a } from "./shared/library-select.cb305ad9.es.js";
import { S as i, M as s, i as r, g as n, a as l, b as o, y as d, n as h, o as u, e as b } from "./shared/_commonjsHelpers.01af1198.es.js";
const g = 0,
c = 1,
p = 2,
y = 3;
class m extends i(t) {
constructor() {
super(), this.auth = {}, this._i18n = e(), this.lang = this._i18n.language, this.entryPointUrl = "", this.monetaryAmounts = [], this.sublibraryIri = "", this.abortController = null, this.pageStatus = g;
let t = new Date();
t.setDate(t.getDate() - 1), this.analyticsUpdateDate = t.toLocaleDateString(this.lang);
}
static get scopedElements() {
return {
"dbp-library-select": a,
"dbp-mini-spinner": s
};
}
static get properties() {
return _extends({}, super.properties, {
lang: {
type: String
},
entryPointUrl: {
type: String,
attribute: "entry-point-url"
},
sublibraryIri: {
type: String,
attribute: "sublibrary-iri",
reflect: !0
},
analyticsUpdateDate: {
type: Object,
attribute: !1
},
monetaryAmounts: {
type: Array,
attribute: !1
},
pageStatus: {
type: Boolean,
attribute: !1
},
auth: {
type: Object
}
});
}
loginCallback() {
super.loginCallback(), this.loadBudget();
}
connectedCallback() {
super.connectedCallback(), this.updateComplete.then(() => {
this.loadBudget();
});
}
update(t) {
t.forEach((t, e) => {
"lang" === e ? this._i18n.changeLanguage(this.lang) : "sublibraryIri" === e && this.loadBudget();
}), super.update(t);
}
disconnectedCallback() {
null !== this.abortController && this.abortController.abort(), super.disconnectedCallback();
}
loadBudget() {
if (!this.isLoggedIn() || "" === this.sublibraryIri) return;
const t = this;
this.pageStatus = c;
const e = this.sublibraryIri.split("/"),
a = e[e.length - 1],
i = this.entryPointUrl + "/sublibrary/budget-monetary-amounts?sublibrary=" + a;
null !== this.abortController && this.abortController.abort(), this.abortController = new AbortController();
const s = this.abortController.signal;
console.assert(this.auth.token), fetch(i, {
headers: {
"Content-Type": "application/ld+json",
Authorization: "Bearer " + this.auth.token
},
signal: s
}).then(t => {
if (!t.ok) throw t;
if (t.headers.has("x-analytics-update-date")) {
const e = new Date(t.headers.get("x-analytics-update-date"));
this.analyticsUpdateDate = e.toLocaleDateString(this.lang) + " " + e.toLocaleTimeString(this.lang);
}
return t.json();
}).then(e => {
let a = {};
e["hydra:member"].forEach(t => {
a[t.name] = t;
}), t.monetaryAmounts = a, t.pageStatus = p;
}).catch(e => {
404 === e.status ? t.pageStatus = y : (t.pageStatus = g, t.handleFetchError(e, t._i18n.t("budget.load-error")));
});
}
onLanguageChanged(t) {
this.lang = t.detail.lang;
}
static get styles() {
return r(_t || (_t = _`
${0}
${0}
${0}
table th {
padding: 8px;
}
`), n(), l(), o());
}
onSublibraryChanged(t) {
this.sublibraryIri = t.detail.value;
}
getMonetaryAmountRow(t) {
const e = this._i18n;
return e.t("budget.taa"), e.t("budget.taa-tcb"), e.t("budget.tcb"), e.t("budget.tcb-tab"), e.t("budget.tab"), this.monetaryAmounts[t] ? d(_t2 || (_t2 = _`
<tr>
<th>${0}</th>
<td>
${0}
</td>
</tr>
`), e.t("budget." + t), h(e, this.monetaryAmounts[t].value, {
style: "currency",
currency: this.monetaryAmounts[t].currency
})) : "";
}
render() {
const t = this._i18n;
return d(_t3 || (_t3 = _`
<div
class="${0}">
<div class="field">
${0}: ${0}
</div>
<div class="field">
<label class="label">${0}</label>
<div class="control">
<dbp-library-select
subscribe="lang:lang,entry-point-url:entry-point-url,auth:auth"
value="${0}"
="${0}"></dbp-library-select>
</div>
</div>
<dbp-mini-spinner
class="${0}"
text="${0}"
style="font-size: 2em;"></dbp-mini-spinner>
<div class="field ${0}">
<label class="label">${0}</label>
<div class="control">
<table>
${0}
${0}
${0}
${0}
${0}
</table>
</div>
</div>
<div class="field ${0}">
${0}
</div>
</div>
<div
class="notification is-warning ${0}">
${0}
</div>
<div
class="notification is-danger ${0}">
${0}
</div>
<div class="${0}">
<dbp-mini-spinner></dbp-mini-spinner>
</div>
`), u({
hidden: !this.isLoggedIn() || !this.hasLibraryPermissions() || this.isLoading()
}), t.t("order-list.current-state"), this.analyticsUpdateDate, t.t("organization-select.label"), this.sublibraryIri, this.onSublibraryChanged, u({
hidden: this.pageStatus !== c
}), t.t("budget.mini-spinner-text"), u({
hidden: this.pageStatus !== p
}), t.t("budget.budget-key-values"), this.getMonetaryAmountRow("taa"), this.getMonetaryAmountRow("taa-tcb"), this.getMonetaryAmountRow("tcb"), this.getMonetaryAmountRow("tcb-tab"), this.getMonetaryAmountRow("tab"), u({
hidden: this.pageStatus !== y
}), t.t("budget.no-budget"), u({
hidden: this.isLoggedIn() || this.isLoading()
}), t.t("error-login-message"), u({
hidden: this.hasLibraryPermissions() || !this.isLoggedIn() || this.isLoading()
}), t.t("error-permission-message"), u({
hidden: !this.isLoading()
}));
}
}
b("dbp-sublibrary-budget", m);
//# sourceMappingURL=dbp-sublibrary-budget.js.map