UNPKG

@digital-blueprint/sublibrary-app

Version:

[GitHub Repository](https://github.com/digital-blueprint/sublibrary-app) | [npmjs package](https://www.npmjs.com/package/@digital-blueprint/sublibrary-app) | [Unpkg CDN](https://unpkg.com/browse/@digital-blueprint/sublibrary-app/) | [Sublibrary Bundle](ht

79 lines (78 loc) 7.29 kB
let e=e=>e,t,n,r;function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?i(Object(n),!0).forEach(function(t){o(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function o(e,t,n){return(t=s(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e){var t=c(e,`string`);return typeof t==`symbol`?t:t+``}function c(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)} /*! * License: LGPL-2.1-or-later * Dependencies: * * @webcomponents/scoped-custom-element-registry: BSD-3-Clause * @dbp-toolkit/app-shell: LGPL-2.1-or-later * @dbp-toolkit/language-select: LGPL-2.1-or-later * @dbp-toolkit/auth: LGPL-2.1-or-later * lit-html: BSD-3-Clause * @dbp-toolkit/notification: LGPL-2.1-or-later * @dbp-toolkit/theme-switcher: LGPL-2.1-or-later * universal-router: MIT * @dbp-toolkit/matomo: LGPL-2.1-or-later */ import{a as l,s as u,t as d}from"./shared/library-select.DEl5HMBb.js";import{B as f,D as p,E as m,M as h,S as g,T as _,U as v,V as y,b,d as x}from"./shared/styles.Cw9eAWXA.js";const S={none:0,loading:1,showBudget:2,noBudget:3};h(`dbp-sublibrary-budget`,class extends m(l){constructor(){super(),this.auth={},this._i18n=u(),this.lang=this._i18n.language,this.entryPointUrl=``,this.monetaryAmounts=[],this.sublibraryIri=``,this.abortController=null,this.pageStatus=S.none;let e=new Date;e.setDate(e.getDate()-1),this.analyticsUpdateDate=e.toLocaleDateString(this.lang)}static get scopedElements(){return{"dbp-library-select":d,"dbp-mini-spinner":p}}static get properties(){return a(a({},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(e){e.forEach((e,t)=>{t===`lang`?this._i18n.changeLanguage(this.lang):t===`sublibraryIri`&&this.loadBudget()}),super.update(e)}disconnectedCallback(){this.abortController!==null&&this.abortController.abort(),super.disconnectedCallback()}loadBudget(){if(!this.isLoggedIn()||this.sublibraryIri===``)return;let e=this;this.pageStatus=S.loading;let t=this.sublibraryIri.split(`/`),n=t[t.length-1],r=this.entryPointUrl+`/sublibrary/budget-monetary-amounts?sublibrary=`+n;this.abortController!==null&&this.abortController.abort(),this.abortController=new AbortController;let i=this.abortController.signal;console.assert(this.auth.token),fetch(r,{headers:{"Content-Type":`application/ld+json`,Authorization:`Bearer `+this.auth.token},signal:i}).then(e=>{if(!e.ok)throw e;if(e.headers.has(`x-analytics-update-date`)){let t=new Date(e.headers.get(`x-analytics-update-date`));this.analyticsUpdateDate=t.toLocaleDateString(this.lang)+` `+t.toLocaleTimeString(this.lang)}return e.json()}).then(t=>{let n={};t[`hydra:member`].forEach(e=>{n[e.name]=e}),e.monetaryAmounts=n,e.pageStatus=S.showBudget}).catch(t=>{t.status===404?e.pageStatus=S.noBudget:(e.pageStatus=S.none,e.handleFetchError(t,e._i18n.t(`budget.load-error`)))})}onLanguageChanged(e){this.lang=e.detail.lang}static get styles(){return y(t||=e` ${0} ${0} ${0} table th { padding: 8px; } `,_(),b(),g())}onSublibraryChanged(e){this.sublibraryIri=e.detail.value}getMonetaryAmountRow(t){let r=this._i18n;return r.t(`budget.taa`),r.t(`budget.taa-tcb`),r.t(`budget.tcb`),r.t(`budget.tcb-tab`),r.t(`budget.tab`),this.monetaryAmounts[t]?f(n||=e` <tr> <th>${0}</th> <td> ${0} </td> </tr> `,r.t(`budget.`+t),v(r,this.monetaryAmounts[t].value,{style:`currency`,currency:this.monetaryAmounts[t].currency})):``}_onLoginClicked(e){this.sendSetPropertyEvent(`requested-login-status`,`logged-in`),e.preventDefault()}render(){let t=this._i18n;return f(r||=e` <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} <a href="#" @click="${0}">${0}</a> </div> <div class="notification is-danger ${0}"> ${0} </div> <div class="${0}"> <dbp-mini-spinner></dbp-mini-spinner> </div> `,x({hidden:!this.isLoggedIn()||!this.hasLibraryPermissions()||this.isLoading()}),t.t(`order-list.current-state`),this.analyticsUpdateDate,t.t(`organization-select.label`),this.sublibraryIri,this.onSublibraryChanged,x({hidden:this.pageStatus!==S.loading}),t.t(`budget.mini-spinner-text`),x({hidden:this.pageStatus!==S.showBudget}),t.t(`budget.budget-key-values`),this.getMonetaryAmountRow(`taa`),this.getMonetaryAmountRow(`taa-tcb`),this.getMonetaryAmountRow(`tcb`),this.getMonetaryAmountRow(`tcb-tab`),this.getMonetaryAmountRow(`tab`),x({hidden:this.pageStatus!==S.noBudget}),t.t(`budget.no-budget`),x({hidden:this.isLoggedIn()||this.isLoading()}),t.t(`error-login-message`),this._onLoginClicked,t.t(`error-login-link`),x({hidden:this.hasLibraryPermissions()||!this.isLoggedIn()||this.isLoading()}),t.t(`error-permission-message`),x({hidden:!this.isLoading()}))}}); //# sourceMappingURL=dbp-sublibrary-budget.js.map