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

224 lines (222 loc) 7.65 kB
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}" @change="${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