zavadil-ts-common 1.2.40 → 1.2.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -263,23 +263,22 @@ interface OAuthIdTokenProvider {
263
263
  * Manages refresh of id and access tokens.
264
264
  */
265
265
  declare class OAuthTokenManager implements OAuthIdTokenProvider {
266
- private eventManager;
267
266
  oAuthServer: OAuthRestClient;
268
267
  audience: string;
269
268
  idToken?: IdTokenPayload;
270
269
  freshIdTokenProvider: OAuthIdTokenProvider;
271
270
  accessTokens: Map<string, AccessTokenPayload>;
272
271
  constructor(oAuthServerBaseUrl: string, targetAudience: string, freshIdTokenProvider: OAuthIdTokenProvider);
273
- addIdTokenChangedHandler(handler: (t: IdTokenPayload) => any): void;
274
- removeIdTokenChangedHandler(handler: (t: IdTokenPayload) => any): void;
275
- isTokenExpired(expires?: Date | null): boolean;
276
- isTokenReadyForRefresh(issuedAt: Date, expires?: Date | null): boolean;
277
- isValidIdToken(idToken?: IdTokenPayload): boolean;
278
272
  hasValidIdToken(): boolean;
279
- isValidAccessToken(accessToken?: AccessTokenPayload): boolean;
280
273
  hasValidAccessToken(privilege: string): boolean;
281
274
  reset(): void;
275
+ /**
276
+ * Get stored id token or ask the provider, this will trigger redirect to login screen in case of the default provider
277
+ */
282
278
  getIdTokenInternal(): Promise<IdTokenPayload>;
279
+ /**
280
+ * Get id token, refresh it if needed
281
+ */
283
282
  getIdToken(): Promise<IdTokenPayload>;
284
283
  getIdTokenRaw(): Promise<string>;
285
284
  setIdToken(token?: IdTokenPayload): void;
@@ -303,15 +302,16 @@ type ServerOAuthInfoPayload = {
303
302
  oauthServerUrl: string;
304
303
  version: string;
305
304
  };
306
- declare class RestClientWithOAuth extends RestClient {
305
+ declare class RestClientWithOAuth extends RestClient implements OAuthIdTokenProvider {
307
306
  private insecureClient;
308
307
  private freshIdTokenProvider;
309
308
  private tokenManager;
310
309
  private serverInfo;
311
310
  private defaultPrivilege;
312
311
  constructor(url: string, freshIdTokenProvider?: OAuthIdTokenProvider, defaultPrivilege?: string);
312
+ getIdToken(): Promise<IdTokenPayload>;
313
313
  /**
314
- * Attempt to get ID token from the provider, this will trigger redirect to login screen in case of the default provider
314
+ * Attempt to get ID token from token manager
315
315
  */
316
316
  initialize(): Promise<any>;
317
317
  logout(): Promise<any>;
package/dist/index.esm.js CHANGED
@@ -1,2 +1,2 @@
1
- var t=function(){function t(t,e){this.supplier=t,this.maxAgeMs=e}return t.prototype.get=function(){var t=this;return void 0===this.cache||this.expires&&this.expires>new Date?this.supplier().then((function(e){return t.set(e),e})):Promise.resolve(this.cache)},t.prototype.set=function(t,e){this.cache=t,this.expires=e,this.maxAgeMs&&void 0===this.expires&&(this.expires=new Date((new Date).getTime()+this.maxAgeMs))},t.prototype.hasCache=function(){return void 0!==this.cache},t.prototype.getCache=function(){return this.cache},t}(),e=function(){function e(t,e){this.cache=new Map,this.maxSize=100,this.supplier=t,e&&(this.maxSize=e)}return e.prototype.obtainCache=function(e){var n=this,r=this.cache.get(e);return r||(r=new t((function(){return n.supplier(e)})),this.cache.set(e,r)),r},e.prototype.get=function(t){return this.obtainCache(t).get()},e.prototype.set=function(t,e,n){this.obtainCache(t).set(e,n)},e.prototype.reset=function(t){t?this.cache.delete(t):this.cache.clear()},e.prototype.getSize=function(){return this.cache.size},e.prototype.getMaxSize=function(){return this.maxSize},e.prototype.getStats=function(){return{cachedItems:this.getSize(),capacity:this.getMaxSize()}},e.prototype.hasCache=function(t){return this.cache.has(t)},e}(),n=function(){function t(t){this.supplier=t}return t.prototype.get=function(){return void 0===this.cache&&(this.cache=this.supplier()),this.cache},t.prototype.reset=function(){this.cache=void 0},t.prototype.hasCache=function(){return void 0!==this.cache},t}(),r=function(){function t(t){this.supplier=t}return t.prototype.get=function(){var t=this;return void 0!==this.cache?Promise.resolve(this.cache):(void 0===this.promise&&(this.promise=this.supplier().then((function(e){return t.cache=e,t.promise=void 0,Promise.resolve(e)})).catch((function(e){return t.promise=void 0,Promise.reject(e)}))),this.promise)},t.prototype.reset=function(){this.cache=void 0},t.prototype.hasCache=function(){return void 0!==this.cache},t.prototype.getCache=function(){return this.cache},t}(),o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)};function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}var s=function(){return s=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++)for(var o in e=arguments[n])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t},s.apply(this,arguments)};"function"==typeof SuppressedError&&SuppressedError;var u,a=function(){function t(){}return t.toString=function(t){var e,n;return"string"==typeof t?t:null!==(n=null===(e=null==t?void 0:t.toString)||void 0===e?void 0:e.call(t))&&void 0!==n?n:""},t.isEmpty=function(e){return"string"!=typeof e?t.isEmpty(t.toString(e)):0===e.length},t.notEmpty=function(e){return!t.isEmpty(e)},t.isBlank=function(e){return t.isEmpty(t.safeTrim(e))},t.notBlank=function(e){return!t.isBlank(e)},t.substr=function(t,e,n){return this.isEmpty(t)?"":t.substring(e,n)},t.replace=function(t,e,n){return this.isEmpty(t)||this.isEmpty(e)?"":t.replace(e,String(n))},t.containsLineBreaks=function(t){return null!=t&&0!==t.trim().length&&t.includes("\n")},t.trimLeadingSlashes=function(t){return this.isEmpty(t)?"":t.replace(/^\//g,"")},t.trimTrailingSlashes=function(t){return this.isEmpty(t)?"":t.replace(/\/$/g,"")},t.trimSlashes=function(t){return this.isEmpty(t)?"":t.replace(/^\/|\/$/g,"")},t.safeTruncate=function(e,n,r){return void 0===r&&(r=""),t.isEmpty(e)||!e?"":e.length<=n?String(e):e.substring(0,n-r.length)+r},t.ellipsis=function(e,n,r){return void 0===r&&(r="..."),t.safeTruncate(e,n,r)},t.safeTrim=function(e){return t.isEmpty(e)||!e?"":e.trim()},t.safeLowercase=function(e){return t.isEmpty(e)||!e?"":e.toLowerCase()},t.safeUppercase=function(e){return t.isEmpty(e)||!e?"":e.toUpperCase()},t.toBigInt=function(t){return this.isEmpty(t)?null:BigInt(t)},t.getNonEmpty=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return e.find((function(e){return t.notEmpty(e)}))||""},t.getNonBlank=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return e.find((function(e){return t.notBlank(e)}))||""},t.emptyToNull=function(e){return t.isEmpty(e)?null:String(e)},t.blankToNull=function(e){return t.isBlank(e)?null:String(e)},t}(),c=function(){function t(){}return t.isEmpty=function(t){return null==t},t.notEmpty=function(e){return!t.isEmpty(e)},t.clone=function(t){if(null===t)throw new Error("Null cannot be cloned!");if("object"!=typeof t)throw new Error("Not an object, cannot be cloned!");return s({},t)},t.getNestedValue=function(t,e){if(!t||a.isBlank(e))return"";for(var n=t,r=0,o=e.split(".");r<o.length;r++){var i=o[r];if(!n||"object"!=typeof n||!(i in n))return"";n=n[i]}return a.toString(n)},t}(),h=function(){function t(){}return t.isEmpty=function(t){return c.isEmpty(t)||0===t.length},t.notEmpty=function(e){return!t.isEmpty(e)},t.remove=function(e,n){return t.isEmpty(e)?[]:null==e?void 0:e.filter((function(t){return t!==n}))},t}(),p=function(){function t(){}return t.sleep=function(t){return new Promise((function(e){return setTimeout(e,t)}))},t}(),f=function(){function t(){}return t.formatByteSize=function(t){var e=Number(t);if(null===e||Number.isNaN(e))return"";if(0===e)return"0";var n=Math.floor(Math.log(e)/Math.log(1024));return 1*+(e/Math.pow(1024,n)).toFixed(2)+" "+["B","kB","MB","GB","TB"][n]},t}(),l={page:0,size:10},g=function(){function t(){}return t.sortingFieldToString=function(t){if(!t)return"";var e=[];return e.push(t.name),e.push(t.desc?"desc":""),e.push(t.nullsLast?"nl":""),e.join("-")},t.sortingFieldFromString=function(t){var e=t.split("-");return{name:e[0],desc:e.length>1&&"desc"===a.safeLowercase(e[1]),nullsLast:e.length>2&&"nl"===a.safeLowercase(e[2])}},t.sortingRequestToString=function(e){return e.map((function(e){return t.sortingFieldToString(e)})).join("+")},t.sortingRequestFromString=function(e){return e?e.split("+").map((function(e){return t.sortingFieldFromString(e)})):[]},t.pagingRequestToQueryParams=function(e){if(e){var n={page:e.page,size:e.size};return e.search&&(n.search=e.search),e.sorting&&(n.sorting=t.sortingRequestToString(e.sorting)),n}},t.pagingRequestToString=function(e){if(!e)return"";var n=[];return n.push(String(e.page)),n.push(String(e.size)),n.push(a.safeTrim(e.search)),n.push(e.sorting?t.sortingRequestToString(e.sorting):""),n.join(":")},t.pagingRequestFromString=function(e){if(!e||a.isEmpty(e))return s({},l);var n=e.split(":");return n.length<4?s({},l):{page:Number(n[0]),size:Number(n[1]),search:String(n[2]),sorting:a.isEmpty(n[3])?void 0:t.sortingRequestFromString(n[3])}},t}(),d=function(){function t(){}return t.formatNumber=function(t,e){return void 0===e&&(e=2),String(t).padStart(e,"0")},t.parseDate=function(t){if(t)return"string"==typeof t?new Date(t):t},t.formatDateForHumans=function(e,n){if(void 0===n&&(n=!1),!(e=t.parseDate(e)))return"";var r=e.getFullYear(),o=t.formatNumber(e.getMonth()+1),i=t.formatNumber(e.getDate()),s="".concat(r,"-").concat(o,"-").concat(i);if(!n)return s;var u=t.formatNumber(e.getHours()),a=t.formatNumber(e.getMinutes()),c=t.formatNumber(e.getSeconds());return"".concat(s," ").concat(u,":").concat(a,":").concat(c)},t.formatDateTimeForHumans=function(e){return t.formatDateForHumans(e,!0)},t.formatDateForInput=function(e){var n=t.parseDate(e);if(void 0===n)return"";var r=n.getFullYear(),o=t.formatNumber(n.getMonth()+1),i=t.formatNumber(n.getDate());return"".concat(r,"-").concat(o,"-").concat(i)},t.getDurationMs=function(e,n){if(e=t.parseDate(e),n=t.parseDate(n),c.isEmpty(e)||c.isEmpty(n))return null;try{return n.getTime()-e.getTime()}catch(t){return null}},t.getSinceDurationMs=function(e){return t.getDurationMs(e,new Date)},t.formatDuration=function(t){if(!t)return"";var e=Math.floor(t/1e3);t-=1e3*e;var n=Math.floor(e/60);e-=60*n;var r=Math.floor(n/60);n-=60*r;var o=Math.floor(r/24);r-=24*o;var i=[];return o>0&&i.push("".concat(o,"d")),r>0&&i.push("".concat(r,"h")),n>0&&i.push("".concat(n,"m")),e>0&&0===o&&0===r&&i.push("".concat(e,"s")),t>0&&0===o&&0===r&&0===n&&i.push("".concat(t,"ms")),i.join(" ")},t}(),y=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.parseNumber=function(t){if(!t)return null;var e=Number(t);return Number.isNaN(e)?null:e},e.round=function(t,e){e||(e=0);var n=Math.pow(10,e);return Math.round(t*n)/n},e.portionToPercent=function(t,n){if(null==t)return"";var r=e.round(100*t,n);return"".concat(r,"%")},e}(c),v=function(){function t(){}return t.dateParser=function(e,n){return"string"==typeof n&&t.reISO.exec(n)?new Date(n):n},t.parseWithDates=function(e){if(!a.isBlank(e))return JSON.parse(a.getNonEmpty(e),t.dateParser)},t.parse=function(e){return t.parseWithDates(e)},t.reISO=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*))(?:Z|(\+|-)([\d|:]*))?$/,t}(),m=function(){function t(e){a.isBlank(e)?this.baseUrl=t.baseHostUrl():(e.endsWith("/")||(e+="/"),this.baseUrl=e.startsWith("http")?new URL(e):new URL(e,t.baseHostUrl()))}return t.baseHostUrl=function(){return new URL("".concat(window.location.protocol,"//").concat(window.location.host,"/"))},t.pagingRequestToQueryParams=function(t){return g.pagingRequestToQueryParams(t)},t.paramsToQueryString=function(t){if(!t)return"";var e=new URLSearchParams(t),n=new URLSearchParams;e.forEach((function(t,e){""!==t&&void 0!==t&&"undefined"!==t&&n.set(e,t)}));var r=n.toString();return a.isEmpty(r)?"":"?".concat(r)},t.prototype.getHeaders=function(t){var e=new Headers;return e.set("Content-Type","application/json"),Promise.resolve(e)},t.prototype.getBaseUrl=function(){return this.baseUrl},t.prototype.getUrl=function(t,e){var n=new URL(a.trimLeadingSlashes(t),this.baseUrl);return e&&Object.keys(e).forEach((function(t){var r=e[t];""!==r&&void 0!==r&&"undefined"!==r&&n.searchParams.set(t,r)})),n},t.prototype.getRequestOptions=function(t,e,n){return void 0===e&&(e="GET"),void 0===n&&(n=null),this.getHeaders(t).then((function(t){return{method:e,headers:t,body:null===n?null:n instanceof FormData?n:JSON.stringify(n)}}))},t.prototype.processRequest=function(t,e,n){return fetch(this.getUrl(t,e),n).then((function(t){if(!t.ok){var e={cause:t.status};return"application/json"===t.headers.get("Content-Type")?t.json().then((function(n){if(n.message)throw new Error(n.message,e);if(n.error)throw new Error(n.error,e);throw new Error(t.statusText,e)}),(function(){throw new Error(t.statusText,e)})):t.text().then((function(n){throw a.isEmpty(n)?new Error(t.statusText,e):new Error(n,e)}),(function(){throw new Error(t.statusText,e)}))}return t}))},t.prototype.processRequestJson=function(t,e,n){return this.processRequest(t,e,n).then((function(t){return t.text().then(v.parseWithDates)}))},t.prototype.getJson=function(t,e){var n=this;return this.getRequestOptions(t).then((function(r){return n.processRequestJson(t,e,r)}))},t.prototype.postJson=function(t,e){var n=this;return void 0===e&&(e=null),this.getRequestOptions(t,"POST",e).then((function(e){return n.processRequestJson(t,null,e)}))},t.prototype.postForm=function(t,e){var n=this;return this.getRequestOptions(t,"POST",e).then((function(e){return e.headers.delete("Content-Type"),n.processRequest(t,null,e)}))},t.prototype.postFormJson=function(t,e){var n=this;return this.getRequestOptions(t,"POST",e).then((function(e){return e.headers.delete("Content-Type"),n.processRequestJson(t,null,e)}))},t.prototype.putJson=function(t,e){var n=this;return void 0===e&&(e=null),this.getRequestOptions(t,"PUT",e).then((function(e){return n.processRequestJson(t,null,e)}))},t.prototype.get=function(t,e){var n=this;return this.getRequestOptions(t).then((function(r){return n.processRequest(t,e,r)}))},t.prototype.del=function(t){var e=this;return this.getRequestOptions(t,"DELETE").then((function(n){return e.processRequest(t,null,n)}))},t.prototype.post=function(t,e){var n=this;return void 0===e&&(e=null),this.getRequestOptions(t,"POST",e).then((function(e){return n.processRequest(t,null,e)}))},t.prototype.put=function(t,e){var n=this;return void 0===e&&(e=null),this.getRequestOptions(t,"PUT",e).then((function(e){return n.processRequest(t,null,e)}))},t}(),k=function(){function t(t,e){this.client=t,this.name=e}return t.prototype.loadSingle=function(t){return this.client.getJson("".concat(this.name,"/").concat(t))},t.prototype.loadPage=function(t){return this.client.getJson(this.name,m.pagingRequestToQueryParams(t))},t.prototype.save=function(t){return t.id?this.client.putJson("".concat(this.name,"/").concat(t.id),t):this.client.postJson(this.name,t)},t.prototype.delete=function(t){return this.client.del("".concat(this.name,"/").concat(t))},t}(),T=function(t){function n(n,r,o){var i=t.call(this,n,r)||this;return i.cache=new e((function(e){return t.prototype.loadSingle.call(i,e)}),o),i}return i(n,t),n.prototype.loadSingle=function(t){return this.cache.get(t)},n.prototype.save=function(e){var n=this;return t.prototype.save.call(this,e).then((function(t){return t.id&&n.cache.set(t.id,t),t}))},n.prototype.delete=function(e){var n=this;return t.prototype.delete.call(this,e).then((function(){return n.cache.reset(e)}))},n.prototype.reset=function(t){this.cache.reset(t)},n.prototype.getStats=function(){return this.cache.getStats()},n}(k),S=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.loadSingle=function(t){throw new Error("Use loadSingleStub() instead!")},e.prototype.loadSingleStub=function(t){return this.client.getJson("".concat(this.name,"/").concat(t))},e.prototype.save=function(t){throw new Error("Use saveStub() instead!")},e.prototype.saveStub=function(t){return t.id?this.client.putJson("".concat(this.name,"/").concat(t.id),t):this.client.postJson(this.name,t)},e}(k),w=function(t){function e(e,n){var o=t.call(this,e,n)||this;return o.cache=new r((function(){return o.loadAllInternal()})),o}return i(e,t),e.prototype.loadAllInternal=function(){return this.client.getJson("".concat(this.name,"/all"))},e.prototype.loadAll=function(){return this.cache.get()},e.prototype.loadSingle=function(t){var e=this;return this.loadAll().then((function(n){var r=n.find((function(e){return e.id===t}));if(void 0===t)throw new Error("".concat(e.name," id ").concat(t," not found!"));return r}))},e.prototype.save=function(e){var n=this;return t.prototype.save.call(this,e).then((function(t){return n.cache.reset(),t}))},e.prototype.delete=function(e){var n=this;return t.prototype.delete.call(this,e).then((function(){return n.cache.reset()}))},e.prototype.reset=function(){this.cache.reset()},e.prototype.getStats=function(){var t,e=null===(t=this.cache.getCache())||void 0===t?void 0:t.length;return{cachedItems:e||0,capacity:e||0}},e}(k),E=function(){function t(){this.handlers=new Map}return t.prototype.addEventListener=function(t,e){this.handlers.has(t)||this.handlers.set(t,[]),this.handlers.get(t).push(e)},t.prototype.removeEventListener=function(t,e){var n=this.handlers.get(t);n&&n.splice(n.indexOf(e),1)},t.prototype.triggerEvent=function(t,e){this.handlers.has(t)&&this.handlers.get(t).forEach((function(t){return t(e)}))},t}();!function(t){t.info="info",t.warning="warning",t.error="danger"}(u||(u={}));var I=function(){function t(t){void 0===t&&(t=10),this.maxAlerts=t,this.em=new E,this.alerts=[]}return t.prototype.addOnChangeHandler=function(t){this.em.addEventListener("change",t)},t.prototype.removeOnChangeHandler=function(t){this.em.removeEventListener("change",t)},t.prototype.triggerChange=function(){this.em.triggerEvent("change")},t.prototype.reset=function(){this.alerts=[],this.triggerChange()},t.prototype.remove=function(t){this.alerts.splice(this.alerts.indexOf(t),1),this.triggerChange()},t.prototype.add=function(t){for(this.alerts.push(t);this.alerts.length>this.maxAlerts;)this.alerts.shift();this.triggerChange()},t.prototype.custom=function(t,e){this.add({time:new Date,type:t,message:e})},t.prototype.err=function(t){this.custom(u.error,"string"==typeof t?t:t.toString())},t.prototype.warn=function(t){this.custom(u.warning,t)},t.prototype.info=function(t){this.custom(u.info,t)},t.prototype.getSummary=function(){var t=new Map;Object.values(u).forEach((function(e,n){t.set(e,0)}));for(var e=0;e<this.alerts.length;e++){var n=this.alerts[e],r=t.get(n.type)||0;t.set(n.type,r+1)}return t},t}(),b=function(){function t(t,e){void 0===e&&(e=!1);var n=this;this.isCancelled={value:!1},this.throwWhenCancelled=e,this.promise=new Promise((function(e,r){t.then((function(t){if(!n.isCancelled.value)return e(t)})).catch((function(t){!n.throwWhenCancelled&&n.isCancelled.value||r(t)}))}))}return t.prototype.cancel=function(){this.isCancelled.value=!0},t}(),x=function(t){function e(e){return t.call(this,"".concat(a.trimSlashes(e),"/api/oauth"))||this}return i(e,t),e.prototype.jwks=function(){return this.getJson("jwks.json")},e.prototype.verifyIdToken=function(t){return this.getJson("id-tokens/verify/".concat(t))},e.prototype.requestIdTokenFromLogin=function(t){return this.postJson("id-tokens/from-login",t)},e.prototype.refreshIdToken=function(t){return this.postJson("id-tokens/refresh",t)},e.prototype.requestAccessToken=function(t){return this.postJson("access-tokens/from-id-token",t)},e}(m),R=function(){function t(t,e,n){this.eventManager=new E,this.freshIdTokenProvider=n,this.audience=e,this.oAuthServer=new x(t),this.accessTokens=new Map}return t.prototype.addIdTokenChangedHandler=function(t){this.eventManager.addEventListener("id-token-changed",t)},t.prototype.removeIdTokenChangedHandler=function(t){this.eventManager.removeEventListener("id-token-changed",t)},t.prototype.isTokenExpired=function(t){return null!=t&&t<new Date},t.prototype.isTokenReadyForRefresh=function(t,e){return null!=e&&new Date((e.getTime()+t.getTime())/2)<new Date},t.prototype.isValidIdToken=function(t){return void 0!==t&&a.notEmpty(t.token)&&!this.isTokenExpired(t.expires)},t.prototype.hasValidIdToken=function(){return this.isValidIdToken(this.idToken)},t.prototype.isValidAccessToken=function(t){return void 0!==t&&a.notEmpty(t.token)&&!this.isTokenExpired(t.expires)},t.prototype.hasValidAccessToken=function(t){return this.isValidAccessToken(this.accessTokens.get(t))},t.prototype.reset=function(){this.idToken=void 0,this.eventManager.triggerEvent("id-token-changed",void 0),this.accessTokens.clear()},t.prototype.getIdTokenInternal=function(){return void 0!==this.idToken&&this.hasValidIdToken()?Promise.resolve(this.idToken):this.freshIdTokenProvider.getIdToken()},t.prototype.getIdToken=function(){var t=this;return this.getIdTokenInternal().then((function(e){return t.isTokenReadyForRefresh(e.issuedAt,e.expires)?t.oAuthServer.refreshIdToken({idToken:e.token}).then((function(e){return t.setIdToken(e),e})):(t.setIdToken(e),Promise.resolve(e))}))},t.prototype.getIdTokenRaw=function(){return this.getIdToken().then((function(t){return t.token}))},t.prototype.setIdToken=function(t){if(!this.isValidIdToken(t))throw new Error("Received ID token is not valid!");this.idToken=t,this.eventManager.triggerEvent("id-token-changed",t)},t.prototype.verifyIdToken=function(t){return this.oAuthServer.verifyIdToken(t)},t.prototype.login=function(t,e){var n=this;return this.reset(),this.oAuthServer.requestIdTokenFromLogin({login:t,password:e,targetAudience:this.audience}).then((function(t){return n.setIdToken(t)}))},t.prototype.getAccessTokenInternal=function(t){var e=this;return this.getIdTokenRaw().then((function(n){return e.oAuthServer.requestAccessToken({idToken:n,targetAudience:e.audience,privilege:t}).then((function(n){return e.isValidAccessToken(n)?(e.accessTokens.set(t,n),n):Promise.reject("Received access token is not valid!")}))}))},t.prototype.getAccessToken=function(t){var e=this.accessTokens.get(t);return void 0!==e&&this.isValidAccessToken(e)?(this.isTokenReadyForRefresh(e.issuedAt,e.expires)&&this.getAccessTokenInternal(t),Promise.resolve(e.token)):this.getAccessTokenInternal(t).then((function(t){return t.token}))},t}(),P=function(){function t(t){this.value=t}return t.prototype.getSubjectType=function(){return a.isEmpty(this.value)?null:this.value.split(":")[0]},t.prototype.getSubjectContent=function(){if(a.isEmpty(this.value))return null;var t=this.value.split("//");return t.length>1?t[1]:null},t.prototype.toString=function(){return this.value},t}(),M=function(){function t(){}return t.prototype.redirectTo=function(t){return this.redirecting=t,document.location.href=t,Promise.reject("Redirecting to ".concat(t))},t.prototype.isRedirecting=function(){return a.notBlank(this.redirecting)},t.prototype.redirectingTo=function(){return a.getNonEmpty(this.redirecting)},t}(),N=function(){function t(){}return t.deleteParamFromUrl=function(t,e){return new URL(t).searchParams.delete(e),a.trimTrailingSlashes(t.toString())},t.extractParamFromUrl=function(t,e){return new URLSearchParams(new URL(t).search).get(e)},t.paramExistsInUrl=function(e,n){return a.notBlank(t.extractParamFromUrl(e,n))},t}(),A=function(t){function e(e,n){var r=t.call(this)||this;return r.client=e,r.tokenQueryName=n||"token",r}return i(e,t),e.prototype.redirectToLogin=function(){var t=this;return this.client.getServerInfo().then((function(e){var n=N.deleteParamFromUrl(document.location.toString(),t.tokenQueryName),r="".concat(e.oauthServerUrl,"/login?app_name=").concat(e.targetAudience,"&redirect_url=").concat(n);return t.redirectTo(r)})).catch((function(t){return console.error("Redirection failed: OAuth info not fetched:",t),Promise.reject(t)}))},e.prototype.getIdToken=function(){return this.redirectToLogin()},e}(M),L=function(){function t(t,e){this.client=t,this.tokenQueryName=e||"token"}return t.prototype.getIdTokenFromUrl=function(){return N.extractParamFromUrl(document.location.toString(),this.tokenQueryName)},t.prototype.getIdToken=function(){var t=this.getIdTokenFromUrl();return null===t||a.isBlank(t)?Promise.reject("No token in URL!"):this.client.getTokenManager().then((function(e){return e.verifyIdToken(t)}))},t}(),q=function(){function t(t){this.key=t||"id-token"}return t.prototype.saveIdTokenToLocalStorage=function(t){var e=t?JSON.stringify(t):null;null!==e?localStorage.setItem(this.key,e):localStorage.removeItem(this.key)},t.prototype.getIdTokenFromLocalStorage=function(){return v.parse(localStorage.getItem(this.key))},t.prototype.getIdToken=function(){var t=this.getIdTokenFromLocalStorage();return t?Promise.resolve(t):Promise.reject("No token found in storage!")},t}(),D=function(){function t(t,e,n){this.login=new A(t,n),this.url=new L(t,n),this.storage=new q(e)}return t.prototype.getIdToken=function(){var t=this;return this.url.getIdToken().catch((function(e){return console.log("No token in url, loading from storage",e),t.storage.getIdToken().catch((function(e){return console.log("No token in storage, redirecting to login page",e),t.login.getIdToken()}))})).then((function(e){return t.storage.saveIdTokenToLocalStorage(e),e}))},t}(),U=function(t){function e(e,n,o){void 0===o&&(o="*");var i=t.call(this,e)||this;return i.freshIdTokenProvider=n||new D(i),i.defaultPrivilege=o,i.insecureClient=new m(e),i.serverInfo=new r((function(){return i.getServerInfoInternal()})),i.tokenManager=new r((function(){return i.getTokenManagerInternal()})),i}return i(e,t),e.prototype.initialize=function(){return this.getTokenManager().then((function(t){return t.getIdToken()}))},e.prototype.logout=function(){var t=this;return this.getTokenManager().then((function(t){return t.reset()})).then((function(){return t.initialize()}))},e.prototype.getPrivilege=function(t){return this.defaultPrivilege},e.prototype.getServerInfoInternal=function(){return this.insecureClient.getJson("status/oauth/info")},e.prototype.getServerInfo=function(){return this.serverInfo.get()},e.prototype.getTokenManagerInternal=function(){var t=this;return this.getServerInfo().then((function(e){return new R(e.oauthServerUrl,e.targetAudience,t.freshIdTokenProvider)}))},e.prototype.getTokenManager=function(){return this.tokenManager.get()},e.prototype.login=function(t,e){return this.getTokenManager().then((function(n){return n.login(t,e)}))},e.prototype.setIdToken=function(t){return this.getTokenManager().then((function(e){return e.setIdToken(t)}))},e.prototype.getHeaders=function(e){var n=this;return this.getTokenManager().then((function(t){return t.getAccessToken(n.getPrivilege(e))})).then((function(r){return t.prototype.getHeaders.call(n,e).then((function(t){return t.set("Authorization","Bearer ".concat(r)),t}))}))},e}(m),C=function(){function t(t,e){this.x=t,this.y=e}return t.prototype.distanceTo=function(t){return Math.sqrt(Math.pow(this.x-t.x,2)+Math.pow(this.y-t.y,2))},t.prototype.equalsTo=function(t){return!!t&&(this.x===t.x&&this.y===t.y)},t.prototype.size=function(){return this.distanceTo(new t(0,0))},t.prototype.inSize=function(e){var n=this.size();if(0!==n){var r=e/n;return new t(this.x*r,this.y*r)}return this},t.prototype.round=function(){return new t(Math.round(this.x),Math.round(this.y))},t.prototype.add=function(e){return new t(this.x+e.x,this.y+e.y)},t.prototype.multiply=function(e){return new t(this.x*e,this.y*e)},t.prototype.subtract=function(e){return new t(this.x-e.x,this.y-e.y)},t.prototype.sub=function(t){return this.subtract(t)},t.prototype.toArray=function(){return[this.x,this.y]},t.fromArray=function(e){if("object"==typeof e&&2===e.length)return new t(e[0],e[1])},t.prototype.clone=function(){return new t(this.x,this.y)},t.prototype.getAngleToYAxis=function(t){var e=t.subtract(this),n=e.y<0,r=e.x/e.size(),o=Math.asin(r);return(n?Math.PI-o:o)||0},t.prototype.getNeighborPositions=function(e,n){void 0===e&&(e=1),void 0===n&&(n=!1);for(var r=[],o=this.x+e,i=this.x-e;i<=o;i++)for(var s=this.y+e,u=this.y-e;u<=s;u++){var a=new t(i,u);!n&&this.equalsTo(a)||r.push(a)}return r},t.prototype.getClosest=function(t){if(!t||0===t.length)return null;if(1===t.length)return t[0];for(var e=t[0],n=this.distanceTo(e),r=1,o=t.length;r<o;r++){var i=this.distanceTo(t[r]);i<n&&(e=t[r],n=i)}return e},t.prototype.toString=function(t){return void 0===t&&(t=2),"[".concat(y.round(this.x,t),",").concat(y.round(this.y,t),"]")},t}(),O={"--self-name":"Čeština",Anonymous:"Anonym",Administrator:"Administrátor",Back:"Zpět",File:"Soubor",Language:"Jazyk",Image:"Obrázek",Status:"Stav",State:"Stav",System:"Systém",Date:"Datum",Page:"Stránka","Page size":"Velikost stránky","Total items":"Celkem záznamů","Log out":"Odhlásit",Move:"Přesunout",Delete:"Smazat",Close:"Zavřít",Edit:"Upravit",Save:"Uložit",Refresh:"Obnovit",Select:"Vybrat","More...":"Více...",New:[{tags:["feminine"],value:"Nová"},{value:"Nový"}],Name:[{tags:["neutral"],value:"Název"},{value:"Jméno"}]},F={"--self-name":"English"},j=function(){function t(t){this.data=t}return t.prototype.translate=function(t,e){var n=this.data[t];if(void 0===n||"string"==typeof n)return n;var r=n.find((function(t){return void 0===t.tags||0===t.tags.length}));if((void 0===e||void 0===e.tags||0===e.tags.length)&&void 0!==r)return r.value;var o=n.filter((function(t){return void 0!==t.tags&&0!==t.tags.length&&(e&&e.tags&&e.tags.every((function(e){return t.tags&&t.tags.includes(e)})))}));return o.length>0?o[0].value:r?r.value:void 0},t}(),z=function(t){function e(){return t.call(this,O)||this}return i(e,t),e}(j),J=function(t){function e(){return t.call(this,F)||this}return i(e,t),e}(j),B=function(){function t(t,e){this.primary=t,this.fallback=e}return t.prototype.translate=function(t,e){var n=this.primary.translate(t,e);return void 0===n?this.fallback.translate(t,e):n},t}(),H=function(){function t(t){this.dictionaries=new Map,this.setLanguage(t)}return t.prototype.addDictionary=function(t,e){var n=this.dictionaries.get(t);n?this.dictionaries.set(t,new B(e,n)):this.dictionaries.set(t,e)},t.prototype.hasDictionary=function(t){return!!t&&this.dictionaries.has(t)},t.prototype.getLanguage=function(){return this.language},t.prototype.getLanguages=function(){return Array.from(this.dictionaries.keys())},t.prototype.setLanguage=function(t){this.language=t&&this.hasDictionary(t)?t:this.hasDictionary(navigator.language)?navigator.language:void 0},t.prototype.translate=function(t,e,n){if(!(n=n||this.language))return t;var r=this.dictionaries.get(n);if(!r)return t;var o=r.translate(t,e);return void 0===o?t:o},t}(),V=function(t){function e(e){var n=t.call(this)||this;return n.addDictionary("cs",new z),n.addDictionary("en",new J),n.setLanguage(e),n}return i(e,t),e}(H);export{h as ArrayUtil,p as AsyncUtil,V as BasicLocalization,f as ByteUtil,t as CacheAsync,b as CancellablePromise,z as CzechBasicDictionary,d as DateUtil,B as DictionaryWithFallback,J as EnglishBasicDictionary,T as EntityCachedClient,k as EntityClient,S as EntityClientWithStub,E as EventManager,e as HashCacheAsync,v as JsonUtil,n as Lazy,r as LazyAsync,H as Localization,w as LookupClient,j as MemoryDictionary,y as NumberUtil,x as OAuthRestClient,P as OAuthSubject,R as OAuthTokenManager,c as ObjectUtil,g as PagingUtil,m as RestClient,U as RestClientWithOAuth,a as StringUtil,u as UserAlertType,I as UserAlerts,C as Vector2};
1
+ var t=function(){function t(t,e){this.supplier=t,this.maxAgeMs=e}return t.prototype.get=function(){var t=this;return void 0===this.cache||this.expires&&this.expires>new Date?this.supplier().then((function(e){return t.set(e),e})):Promise.resolve(this.cache)},t.prototype.set=function(t,e){this.cache=t,this.expires=e,this.maxAgeMs&&void 0===this.expires&&(this.expires=new Date((new Date).getTime()+this.maxAgeMs))},t.prototype.hasCache=function(){return void 0!==this.cache},t.prototype.getCache=function(){return this.cache},t}(),e=function(){function e(t,e){this.cache=new Map,this.maxSize=100,this.supplier=t,e&&(this.maxSize=e)}return e.prototype.obtainCache=function(e){var n=this,r=this.cache.get(e);return r||(r=new t((function(){return n.supplier(e)})),this.cache.set(e,r)),r},e.prototype.get=function(t){return this.obtainCache(t).get()},e.prototype.set=function(t,e,n){this.obtainCache(t).set(e,n)},e.prototype.reset=function(t){t?this.cache.delete(t):this.cache.clear()},e.prototype.getSize=function(){return this.cache.size},e.prototype.getMaxSize=function(){return this.maxSize},e.prototype.getStats=function(){return{cachedItems:this.getSize(),capacity:this.getMaxSize()}},e.prototype.hasCache=function(t){return this.cache.has(t)},e}(),n=function(){function t(t){this.supplier=t}return t.prototype.get=function(){return void 0===this.cache&&(this.cache=this.supplier()),this.cache},t.prototype.reset=function(){this.cache=void 0},t.prototype.hasCache=function(){return void 0!==this.cache},t}(),r=function(){function t(t){this.supplier=t}return t.prototype.get=function(){var t=this;return void 0!==this.cache?Promise.resolve(this.cache):(void 0===this.promise&&(this.promise=this.supplier().then((function(e){return t.cache=e,t.promise=void 0,Promise.resolve(e)})).catch((function(e){return t.promise=void 0,Promise.reject(e)}))),this.promise)},t.prototype.reset=function(){this.cache=void 0},t.prototype.hasCache=function(){return void 0!==this.cache},t.prototype.getCache=function(){return this.cache},t}(),o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)};function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}var s=function(){return s=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++)for(var o in e=arguments[n])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t},s.apply(this,arguments)};"function"==typeof SuppressedError&&SuppressedError;var u,a=function(){function t(){}return t.toString=function(t){var e,n;return"string"==typeof t?t:null!==(n=null===(e=null==t?void 0:t.toString)||void 0===e?void 0:e.call(t))&&void 0!==n?n:""},t.isEmpty=function(e){return"string"!=typeof e?t.isEmpty(t.toString(e)):0===e.length},t.notEmpty=function(e){return!t.isEmpty(e)},t.isBlank=function(e){return t.isEmpty(t.safeTrim(e))},t.notBlank=function(e){return!t.isBlank(e)},t.substr=function(t,e,n){return this.isEmpty(t)?"":t.substring(e,n)},t.replace=function(t,e,n){return this.isEmpty(t)||this.isEmpty(e)?"":t.replace(e,String(n))},t.containsLineBreaks=function(t){return null!=t&&0!==t.trim().length&&t.includes("\n")},t.trimLeadingSlashes=function(t){return this.isEmpty(t)?"":t.replace(/^\//g,"")},t.trimTrailingSlashes=function(t){return this.isEmpty(t)?"":t.replace(/\/$/g,"")},t.trimSlashes=function(t){return this.isEmpty(t)?"":t.replace(/^\/|\/$/g,"")},t.safeTruncate=function(e,n,r){return void 0===r&&(r=""),t.isEmpty(e)||!e?"":e.length<=n?String(e):e.substring(0,n-r.length)+r},t.ellipsis=function(e,n,r){return void 0===r&&(r="..."),t.safeTruncate(e,n,r)},t.safeTrim=function(e){return t.isEmpty(e)||!e?"":e.trim()},t.safeLowercase=function(e){return t.isEmpty(e)||!e?"":e.toLowerCase()},t.safeUppercase=function(e){return t.isEmpty(e)||!e?"":e.toUpperCase()},t.toBigInt=function(t){return this.isEmpty(t)?null:BigInt(t)},t.getNonEmpty=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return e.find((function(e){return t.notEmpty(e)}))||""},t.getNonBlank=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return e.find((function(e){return t.notBlank(e)}))||""},t.emptyToNull=function(e){return t.isEmpty(e)?null:String(e)},t.blankToNull=function(e){return t.isBlank(e)?null:String(e)},t}(),c=function(){function t(){}return t.isEmpty=function(t){return null==t},t.notEmpty=function(e){return!t.isEmpty(e)},t.clone=function(t){if(null===t)throw new Error("Null cannot be cloned!");if("object"!=typeof t)throw new Error("Not an object, cannot be cloned!");return s({},t)},t.getNestedValue=function(t,e){if(!t||a.isBlank(e))return"";for(var n=t,r=0,o=e.split(".");r<o.length;r++){var i=o[r];if(!n||"object"!=typeof n||!(i in n))return"";n=n[i]}return a.toString(n)},t}(),h=function(){function t(){}return t.isEmpty=function(t){return c.isEmpty(t)||0===t.length},t.notEmpty=function(e){return!t.isEmpty(e)},t.remove=function(e,n){return t.isEmpty(e)?[]:null==e?void 0:e.filter((function(t){return t!==n}))},t}(),p=function(){function t(){}return t.sleep=function(t){return new Promise((function(e){return setTimeout(e,t)}))},t}(),f=function(){function t(){}return t.formatByteSize=function(t){var e=Number(t);if(null===e||Number.isNaN(e))return"";if(0===e)return"0";var n=Math.floor(Math.log(e)/Math.log(1024));return 1*+(e/Math.pow(1024,n)).toFixed(2)+" "+["B","kB","MB","GB","TB"][n]},t}(),l={page:0,size:10},g=function(){function t(){}return t.sortingFieldToString=function(t){if(!t)return"";var e=[];return e.push(t.name),e.push(t.desc?"desc":""),e.push(t.nullsLast?"nl":""),e.join("-")},t.sortingFieldFromString=function(t){var e=t.split("-");return{name:e[0],desc:e.length>1&&"desc"===a.safeLowercase(e[1]),nullsLast:e.length>2&&"nl"===a.safeLowercase(e[2])}},t.sortingRequestToString=function(e){return e.map((function(e){return t.sortingFieldToString(e)})).join("+")},t.sortingRequestFromString=function(e){return e?e.split("+").map((function(e){return t.sortingFieldFromString(e)})):[]},t.pagingRequestToQueryParams=function(e){if(e){var n={page:e.page,size:e.size};return e.search&&(n.search=e.search),e.sorting&&(n.sorting=t.sortingRequestToString(e.sorting)),n}},t.pagingRequestToString=function(e){if(!e)return"";var n=[];return n.push(String(e.page)),n.push(String(e.size)),n.push(a.safeTrim(e.search)),n.push(e.sorting?t.sortingRequestToString(e.sorting):""),n.join(":")},t.pagingRequestFromString=function(e){if(!e||a.isEmpty(e))return s({},l);var n=e.split(":");return n.length<4?s({},l):{page:Number(n[0]),size:Number(n[1]),search:String(n[2]),sorting:a.isEmpty(n[3])?void 0:t.sortingRequestFromString(n[3])}},t}(),d=function(){function t(){}return t.formatNumber=function(t,e){return void 0===e&&(e=2),String(t).padStart(e,"0")},t.parseDate=function(t){if(t)return"string"==typeof t?new Date(t):t},t.formatDateForHumans=function(e,n){if(void 0===n&&(n=!1),!(e=t.parseDate(e)))return"";var r=e.getFullYear(),o=t.formatNumber(e.getMonth()+1),i=t.formatNumber(e.getDate()),s="".concat(r,"-").concat(o,"-").concat(i);if(!n)return s;var u=t.formatNumber(e.getHours()),a=t.formatNumber(e.getMinutes()),c=t.formatNumber(e.getSeconds());return"".concat(s," ").concat(u,":").concat(a,":").concat(c)},t.formatDateTimeForHumans=function(e){return t.formatDateForHumans(e,!0)},t.formatDateForInput=function(e){var n=t.parseDate(e);if(void 0===n)return"";var r=n.getFullYear(),o=t.formatNumber(n.getMonth()+1),i=t.formatNumber(n.getDate());return"".concat(r,"-").concat(o,"-").concat(i)},t.getDurationMs=function(e,n){if(e=t.parseDate(e),n=t.parseDate(n),c.isEmpty(e)||c.isEmpty(n))return null;try{return n.getTime()-e.getTime()}catch(t){return null}},t.getSinceDurationMs=function(e){return t.getDurationMs(e,new Date)},t.formatDuration=function(t){if(!t)return"";var e=Math.floor(t/1e3);t-=1e3*e;var n=Math.floor(e/60);e-=60*n;var r=Math.floor(n/60);n-=60*r;var o=Math.floor(r/24);r-=24*o;var i=[];return o>0&&i.push("".concat(o,"d")),r>0&&i.push("".concat(r,"h")),n>0&&i.push("".concat(n,"m")),e>0&&0===o&&0===r&&i.push("".concat(e,"s")),t>0&&0===o&&0===r&&0===n&&i.push("".concat(t,"ms")),i.join(" ")},t}(),y=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.parseNumber=function(t){if(!t)return null;var e=Number(t);return Number.isNaN(e)?null:e},e.round=function(t,e){e||(e=0);var n=Math.pow(10,e);return Math.round(t*n)/n},e.portionToPercent=function(t,n){if(null==t)return"";var r=e.round(100*t,n);return"".concat(r,"%")},e}(c),v=function(){function t(){}return t.dateParser=function(e,n){return"string"==typeof n&&t.reISO.exec(n)?new Date(n):n},t.parseWithDates=function(e){if(!a.isBlank(e))return JSON.parse(a.getNonEmpty(e),t.dateParser)},t.parse=function(e){return t.parseWithDates(e)},t.reISO=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*))(?:Z|(\+|-)([\d|:]*))?$/,t}(),m=function(){function t(e){a.isBlank(e)?this.baseUrl=t.baseHostUrl():(e.endsWith("/")||(e+="/"),this.baseUrl=e.startsWith("http")?new URL(e):new URL(e,t.baseHostUrl()))}return t.baseHostUrl=function(){return new URL("".concat(window.location.protocol,"//").concat(window.location.host,"/"))},t.pagingRequestToQueryParams=function(t){return g.pagingRequestToQueryParams(t)},t.paramsToQueryString=function(t){if(!t)return"";var e=new URLSearchParams(t),n=new URLSearchParams;e.forEach((function(t,e){""!==t&&void 0!==t&&"undefined"!==t&&n.set(e,t)}));var r=n.toString();return a.isEmpty(r)?"":"?".concat(r)},t.prototype.getHeaders=function(t){var e=new Headers;return e.set("Content-Type","application/json"),Promise.resolve(e)},t.prototype.getBaseUrl=function(){return this.baseUrl},t.prototype.getUrl=function(t,e){var n=new URL(a.trimLeadingSlashes(t),this.baseUrl);return e&&Object.keys(e).forEach((function(t){var r=e[t];""!==r&&void 0!==r&&"undefined"!==r&&n.searchParams.set(t,r)})),n},t.prototype.getRequestOptions=function(t,e,n){return void 0===e&&(e="GET"),void 0===n&&(n=null),this.getHeaders(t).then((function(t){return{method:e,headers:t,body:null===n?null:n instanceof FormData?n:JSON.stringify(n)}}))},t.prototype.processRequest=function(t,e,n){return fetch(this.getUrl(t,e),n).then((function(t){if(!t.ok){var e={cause:t.status};return"application/json"===t.headers.get("Content-Type")?t.json().then((function(n){if(n.message)throw new Error(n.message,e);if(n.error)throw new Error(n.error,e);throw new Error(t.statusText,e)}),(function(){throw new Error(t.statusText,e)})):t.text().then((function(n){throw a.isEmpty(n)?new Error(t.statusText,e):new Error(n,e)}),(function(){throw new Error(t.statusText,e)}))}return t}))},t.prototype.processRequestJson=function(t,e,n){return this.processRequest(t,e,n).then((function(t){return t.text().then(v.parseWithDates)}))},t.prototype.getJson=function(t,e){var n=this;return this.getRequestOptions(t).then((function(r){return n.processRequestJson(t,e,r)}))},t.prototype.postJson=function(t,e){var n=this;return void 0===e&&(e=null),this.getRequestOptions(t,"POST",e).then((function(e){return n.processRequestJson(t,null,e)}))},t.prototype.postForm=function(t,e){var n=this;return this.getRequestOptions(t,"POST",e).then((function(e){return e.headers.delete("Content-Type"),n.processRequest(t,null,e)}))},t.prototype.postFormJson=function(t,e){var n=this;return this.getRequestOptions(t,"POST",e).then((function(e){return e.headers.delete("Content-Type"),n.processRequestJson(t,null,e)}))},t.prototype.putJson=function(t,e){var n=this;return void 0===e&&(e=null),this.getRequestOptions(t,"PUT",e).then((function(e){return n.processRequestJson(t,null,e)}))},t.prototype.get=function(t,e){var n=this;return this.getRequestOptions(t).then((function(r){return n.processRequest(t,e,r)}))},t.prototype.del=function(t){var e=this;return this.getRequestOptions(t,"DELETE").then((function(n){return e.processRequest(t,null,n)}))},t.prototype.post=function(t,e){var n=this;return void 0===e&&(e=null),this.getRequestOptions(t,"POST",e).then((function(e){return n.processRequest(t,null,e)}))},t.prototype.put=function(t,e){var n=this;return void 0===e&&(e=null),this.getRequestOptions(t,"PUT",e).then((function(e){return n.processRequest(t,null,e)}))},t}(),T=function(){function t(t,e){this.client=t,this.name=e}return t.prototype.loadSingle=function(t){return this.client.getJson("".concat(this.name,"/").concat(t))},t.prototype.loadPage=function(t){return this.client.getJson(this.name,m.pagingRequestToQueryParams(t))},t.prototype.save=function(t){return t.id?this.client.putJson("".concat(this.name,"/").concat(t.id),t):this.client.postJson(this.name,t)},t.prototype.delete=function(t){return this.client.del("".concat(this.name,"/").concat(t))},t}(),k=function(t){function n(n,r,o){var i=t.call(this,n,r)||this;return i.cache=new e((function(e){return t.prototype.loadSingle.call(i,e)}),o),i}return i(n,t),n.prototype.loadSingle=function(t){return this.cache.get(t)},n.prototype.save=function(e){var n=this;return t.prototype.save.call(this,e).then((function(t){return t.id&&n.cache.set(t.id,t),t}))},n.prototype.delete=function(e){var n=this;return t.prototype.delete.call(this,e).then((function(){return n.cache.reset(e)}))},n.prototype.reset=function(t){this.cache.reset(t)},n.prototype.getStats=function(){return this.cache.getStats()},n}(T),S=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.loadSingle=function(t){throw new Error("Use loadSingleStub() instead!")},e.prototype.loadSingleStub=function(t){return this.client.getJson("".concat(this.name,"/").concat(t))},e.prototype.save=function(t){throw new Error("Use saveStub() instead!")},e.prototype.saveStub=function(t){return t.id?this.client.putJson("".concat(this.name,"/").concat(t.id),t):this.client.postJson(this.name,t)},e}(T),w=function(t){function e(e,n){var o=t.call(this,e,n)||this;return o.cache=new r((function(){return o.loadAllInternal()})),o}return i(e,t),e.prototype.loadAllInternal=function(){return this.client.getJson("".concat(this.name,"/all"))},e.prototype.loadAll=function(){return this.cache.get()},e.prototype.loadSingle=function(t){var e=this;return this.loadAll().then((function(n){var r=n.find((function(e){return e.id===t}));if(void 0===t)throw new Error("".concat(e.name," id ").concat(t," not found!"));return r}))},e.prototype.save=function(e){var n=this;return t.prototype.save.call(this,e).then((function(t){return n.cache.reset(),t}))},e.prototype.delete=function(e){var n=this;return t.prototype.delete.call(this,e).then((function(){return n.cache.reset()}))},e.prototype.reset=function(){this.cache.reset()},e.prototype.getStats=function(){var t,e=null===(t=this.cache.getCache())||void 0===t?void 0:t.length;return{cachedItems:e||0,capacity:e||0}},e}(T),I=function(){function t(){this.handlers=new Map}return t.prototype.addEventListener=function(t,e){this.handlers.has(t)||this.handlers.set(t,[]),this.handlers.get(t).push(e)},t.prototype.removeEventListener=function(t,e){var n=this.handlers.get(t);n&&n.splice(n.indexOf(e),1)},t.prototype.triggerEvent=function(t,e){this.handlers.has(t)&&this.handlers.get(t).forEach((function(t){return t(e)}))},t}();!function(t){t.info="info",t.warning="warning",t.error="danger"}(u||(u={}));var E=function(){function t(t){void 0===t&&(t=10),this.maxAlerts=t,this.em=new I,this.alerts=[]}return t.prototype.addOnChangeHandler=function(t){this.em.addEventListener("change",t)},t.prototype.removeOnChangeHandler=function(t){this.em.removeEventListener("change",t)},t.prototype.triggerChange=function(){this.em.triggerEvent("change")},t.prototype.reset=function(){this.alerts=[],this.triggerChange()},t.prototype.remove=function(t){this.alerts.splice(this.alerts.indexOf(t),1),this.triggerChange()},t.prototype.add=function(t){for(this.alerts.push(t);this.alerts.length>this.maxAlerts;)this.alerts.shift();this.triggerChange()},t.prototype.custom=function(t,e){this.add({time:new Date,type:t,message:e})},t.prototype.err=function(t){this.custom(u.error,"string"==typeof t?t:t.toString())},t.prototype.warn=function(t){this.custom(u.warning,t)},t.prototype.info=function(t){this.custom(u.info,t)},t.prototype.getSummary=function(){var t=new Map;Object.values(u).forEach((function(e,n){t.set(e,0)}));for(var e=0;e<this.alerts.length;e++){var n=this.alerts[e],r=t.get(n.type)||0;t.set(n.type,r+1)}return t},t}(),b=function(){function t(t,e){void 0===e&&(e=!1);var n=this;this.isCancelled={value:!1},this.throwWhenCancelled=e,this.promise=new Promise((function(e,r){t.then((function(t){if(!n.isCancelled.value)return e(t)})).catch((function(t){!n.throwWhenCancelled&&n.isCancelled.value||r(t)}))}))}return t.prototype.cancel=function(){this.isCancelled.value=!0},t}(),x=function(t){function e(e){return t.call(this,"".concat(a.trimSlashes(e),"/api/oauth"))||this}return i(e,t),e.prototype.jwks=function(){return this.getJson("jwks.json")},e.prototype.verifyIdToken=function(t){return this.getJson("id-tokens/verify/".concat(t))},e.prototype.requestIdTokenFromLogin=function(t){return this.postJson("id-tokens/from-login",t)},e.prototype.refreshIdToken=function(t){return this.postJson("id-tokens/refresh",t)},e.prototype.requestAccessToken=function(t){return this.postJson("access-tokens/from-id-token",t)},e}(m),P=function(){function t(){}return t.isValidToken=function(e){return null!=e&&a.notEmpty(e.token)&&!t.isTokenExpired(e)},t.isTokenExpired=function(t){return null!=t&&(void 0!==t.expires&&null!==t.expires&&t.expires<new Date)},t.isTokenReadyForRefresh=function(e){return null!=e&&(!t.isTokenExpired(e)&&(void 0!==e.expires&&null!==e.expires&&new Date((e.expires.getTime()+e.issuedAt.getTime())/2)<new Date))},t}(),R=function(){function t(t,e,n){this.freshIdTokenProvider=n,this.audience=e,this.oAuthServer=new x(t),this.accessTokens=new Map}return t.prototype.hasValidIdToken=function(){return P.isValidToken(this.idToken)},t.prototype.hasValidAccessToken=function(t){return P.isValidToken(this.accessTokens.get(t))},t.prototype.reset=function(){this.idToken=void 0,this.accessTokens.clear()},t.prototype.getIdTokenInternal=function(){return void 0!==this.idToken&&this.hasValidIdToken()?Promise.resolve(this.idToken):this.freshIdTokenProvider.getIdToken()},t.prototype.getIdToken=function(){var t=this;return this.getIdTokenInternal().then((function(e){return P.isValidToken(e)?P.isTokenReadyForRefresh(e)?t.oAuthServer.refreshIdToken({idToken:e.token}).then((function(e){return t.setIdToken(e),e})):(t.setIdToken(e),Promise.resolve(e)):Promise.reject("Received invalid ID token!")}))},t.prototype.getIdTokenRaw=function(){return this.getIdToken().then((function(t){return t.token}))},t.prototype.setIdToken=function(t){this.idToken=t},t.prototype.verifyIdToken=function(t){return this.oAuthServer.verifyIdToken(t)},t.prototype.login=function(t,e){var n=this;return this.reset(),this.oAuthServer.requestIdTokenFromLogin({login:t,password:e,targetAudience:this.audience}).then((function(t){return n.setIdToken(t)}))},t.prototype.getAccessTokenInternal=function(t){var e=this;return this.getIdTokenRaw().then((function(n){return e.oAuthServer.requestAccessToken({idToken:n,targetAudience:e.audience,privilege:t}).then((function(n){return P.isValidToken(n)?(e.accessTokens.set(t,n),n):Promise.reject("Received access token is not valid!")}))}))},t.prototype.getAccessToken=function(t){var e=this.accessTokens.get(t);return void 0!==e&&P.isValidToken(e)?(P.isTokenReadyForRefresh(e)&&this.getAccessTokenInternal(t),Promise.resolve(e.token)):this.getAccessTokenInternal(t).then((function(t){return t.token}))},t}(),M=function(){function t(t){this.value=t}return t.prototype.getSubjectType=function(){return a.isEmpty(this.value)?null:this.value.split(":")[0]},t.prototype.getSubjectContent=function(){if(a.isEmpty(this.value))return null;var t=this.value.split("//");return t.length>1?t[1]:null},t.prototype.toString=function(){return this.value},t}(),N=function(){function t(){}return t.prototype.redirectTo=function(t){return this.redirecting=t,document.location.href=t,Promise.reject("Redirecting to ".concat(t))},t.prototype.isRedirecting=function(){return a.notBlank(this.redirecting)},t.prototype.redirectingTo=function(){return a.getNonEmpty(this.redirecting)},t}(),q=function(){function t(){}return t.deleteParamFromUrl=function(t,e){return new URL(t).searchParams.delete(e),a.trimTrailingSlashes(t.toString())},t.extractParamFromUrl=function(t,e){return new URLSearchParams(new URL(t).search).get(e)},t.paramExistsInUrl=function(e,n){return a.notBlank(t.extractParamFromUrl(e,n))},t}(),D=function(t){function e(e,n){var r=t.call(this)||this;return r.client=e,r.tokenQueryName=n||"token",r}return i(e,t),e.prototype.redirectToLogin=function(){var t=this;return this.client.getServerInfo().then((function(e){var n=q.deleteParamFromUrl(document.location.toString(),t.tokenQueryName),r="".concat(e.oauthServerUrl,"/login?app_name=").concat(e.targetAudience,"&redirect_url=").concat(n);return t.redirectTo(r)})).catch((function(t){return console.error("Redirection failed: OAuth info not fetched:",t),Promise.reject(t)}))},e.prototype.getIdToken=function(){return this.redirectToLogin()},e}(N),A=function(){function t(t,e){this.client=t,this.tokenQueryName=e||"token"}return t.prototype.getIdTokenFromUrl=function(){return q.extractParamFromUrl(document.location.toString(),this.tokenQueryName)},t.prototype.getIdToken=function(){var t=this.getIdTokenFromUrl();return null===t||a.isBlank(t)?Promise.reject("No token in URL!"):this.client.getTokenManager().then((function(e){return e.verifyIdToken(t)}))},t}(),L=function(){function t(t){this.key=t||""}return t.prototype.saveIdTokenToLocalStorage=function(t){var e=t?JSON.stringify(t):null;null!==e?localStorage.setItem(this.key,e):localStorage.removeItem(this.key)},t.prototype.getIdTokenFromLocalStorage=function(){return v.parse(localStorage.getItem(this.key))},t.prototype.getIdToken=function(){var t=this.getIdTokenFromLocalStorage();return t&&P.isValidToken(t)?Promise.resolve(t):Promise.reject("No valid token found in storage!")},t}(),U=function(){function t(t,e,n){this.login=new D(t,n),this.url=new A(t,n),this.storage=new L(e)}return t.prototype.getIdToken=function(){var t=this;return this.url.getIdToken().catch((function(e){return console.log("No token in url, loading from storage",e),t.storage.getIdToken().catch((function(e){return console.log("No token in storage, redirecting to login page",e),t.login.getIdToken()}))})).then((function(e){return t.storage.saveIdTokenToLocalStorage(e),e}))},t}(),O=function(t){function e(e,n,o){void 0===o&&(o="*");var i=t.call(this,e)||this;return i.freshIdTokenProvider=n||new U(i),i.defaultPrivilege=o,i.insecureClient=new m(e),i.serverInfo=new r((function(){return i.getServerInfoInternal()})),i.tokenManager=new r((function(){return i.getTokenManagerInternal()})),i}return i(e,t),e.prototype.getIdToken=function(){return this.getTokenManager().then((function(t){return t.getIdToken()}))},e.prototype.initialize=function(){return this.getIdToken()},e.prototype.logout=function(){var t=this;return this.getTokenManager().then((function(t){return t.reset()})).then((function(){return t.initialize()}))},e.prototype.getPrivilege=function(t){return this.defaultPrivilege},e.prototype.getServerInfoInternal=function(){return this.insecureClient.getJson("status/oauth/info")},e.prototype.getServerInfo=function(){return this.serverInfo.get()},e.prototype.getTokenManagerInternal=function(){var t=this;return this.getServerInfo().then((function(e){return new R(e.oauthServerUrl,e.targetAudience,t.freshIdTokenProvider)}))},e.prototype.getTokenManager=function(){return this.tokenManager.get()},e.prototype.login=function(t,e){return this.getTokenManager().then((function(n){return n.login(t,e)}))},e.prototype.setIdToken=function(t){return this.getTokenManager().then((function(e){return e.setIdToken(t)}))},e.prototype.getHeaders=function(e){var n=this;return this.getTokenManager().then((function(t){return t.getAccessToken(n.getPrivilege(e))})).then((function(r){return t.prototype.getHeaders.call(n,e).then((function(t){return t.set("Authorization","Bearer ".concat(r)),t}))}))},e}(m),C=function(){function t(t,e){this.x=t,this.y=e}return t.prototype.distanceTo=function(t){return Math.sqrt(Math.pow(this.x-t.x,2)+Math.pow(this.y-t.y,2))},t.prototype.equalsTo=function(t){return!!t&&(this.x===t.x&&this.y===t.y)},t.prototype.size=function(){return this.distanceTo(new t(0,0))},t.prototype.inSize=function(e){var n=this.size();if(0!==n){var r=e/n;return new t(this.x*r,this.y*r)}return this},t.prototype.round=function(){return new t(Math.round(this.x),Math.round(this.y))},t.prototype.add=function(e){return new t(this.x+e.x,this.y+e.y)},t.prototype.multiply=function(e){return new t(this.x*e,this.y*e)},t.prototype.subtract=function(e){return new t(this.x-e.x,this.y-e.y)},t.prototype.sub=function(t){return this.subtract(t)},t.prototype.toArray=function(){return[this.x,this.y]},t.fromArray=function(e){if("object"==typeof e&&2===e.length)return new t(e[0],e[1])},t.prototype.clone=function(){return new t(this.x,this.y)},t.prototype.getAngleToYAxis=function(t){var e=t.subtract(this),n=e.y<0,r=e.x/e.size(),o=Math.asin(r);return(n?Math.PI-o:o)||0},t.prototype.getNeighborPositions=function(e,n){void 0===e&&(e=1),void 0===n&&(n=!1);for(var r=[],o=this.x+e,i=this.x-e;i<=o;i++)for(var s=this.y+e,u=this.y-e;u<=s;u++){var a=new t(i,u);!n&&this.equalsTo(a)||r.push(a)}return r},t.prototype.getClosest=function(t){if(!t||0===t.length)return null;if(1===t.length)return t[0];for(var e=t[0],n=this.distanceTo(e),r=1,o=t.length;r<o;r++){var i=this.distanceTo(t[r]);i<n&&(e=t[r],n=i)}return e},t.prototype.toString=function(t){return void 0===t&&(t=2),"[".concat(y.round(this.x,t),",").concat(y.round(this.y,t),"]")},t}(),F={"--self-name":"Čeština",Anonymous:"Anonym",Administrator:"Administrátor",Back:"Zpět",File:"Soubor",Language:"Jazyk",Image:"Obrázek",Status:"Stav",State:"Stav",System:"Systém",Date:"Datum",Page:"Stránka","Page size":"Velikost stránky","Total items":"Celkem záznamů","Log out":"Odhlásit",Move:"Přesunout",Delete:"Smazat",Close:"Zavřít",Edit:"Upravit",Save:"Uložit",Refresh:"Obnovit",Select:"Vybrat","More...":"Více...",New:[{tags:["feminine"],value:"Nová"},{value:"Nový"}],Name:[{tags:["neutral"],value:"Název"},{value:"Jméno"}]},j={"--self-name":"English"},z=function(){function t(t){this.data=t}return t.prototype.translate=function(t,e){var n=this.data[t];if(void 0===n||"string"==typeof n)return n;var r=n.find((function(t){return void 0===t.tags||0===t.tags.length}));if((void 0===e||void 0===e.tags||0===e.tags.length)&&void 0!==r)return r.value;var o=n.filter((function(t){return void 0!==t.tags&&0!==t.tags.length&&(e&&e.tags&&e.tags.every((function(e){return t.tags&&t.tags.includes(e)})))}));return o.length>0?o[0].value:r?r.value:void 0},t}(),J=function(t){function e(){return t.call(this,F)||this}return i(e,t),e}(z),B=function(t){function e(){return t.call(this,j)||this}return i(e,t),e}(z),H=function(){function t(t,e){this.primary=t,this.fallback=e}return t.prototype.translate=function(t,e){var n=this.primary.translate(t,e);return void 0===n?this.fallback.translate(t,e):n},t}(),V=function(){function t(t){this.dictionaries=new Map,this.setLanguage(t)}return t.prototype.addDictionary=function(t,e){var n=this.dictionaries.get(t);n?this.dictionaries.set(t,new H(e,n)):this.dictionaries.set(t,e)},t.prototype.hasDictionary=function(t){return!!t&&this.dictionaries.has(t)},t.prototype.getLanguage=function(){return this.language},t.prototype.getLanguages=function(){return Array.from(this.dictionaries.keys())},t.prototype.setLanguage=function(t){this.language=t&&this.hasDictionary(t)?t:this.hasDictionary(navigator.language)?navigator.language:void 0},t.prototype.translate=function(t,e,n){if(!(n=n||this.language))return t;var r=this.dictionaries.get(n);if(!r)return t;var o=r.translate(t,e);return void 0===o?t:o},t}(),_=function(t){function e(e){var n=t.call(this)||this;return n.addDictionary("cs",new J),n.addDictionary("en",new B),n.setLanguage(e),n}return i(e,t),e}(V);export{h as ArrayUtil,p as AsyncUtil,_ as BasicLocalization,f as ByteUtil,t as CacheAsync,b as CancellablePromise,J as CzechBasicDictionary,d as DateUtil,H as DictionaryWithFallback,B as EnglishBasicDictionary,k as EntityCachedClient,T as EntityClient,S as EntityClientWithStub,I as EventManager,e as HashCacheAsync,v as JsonUtil,n as Lazy,r as LazyAsync,V as Localization,w as LookupClient,z as MemoryDictionary,y as NumberUtil,x as OAuthRestClient,M as OAuthSubject,R as OAuthTokenManager,c as ObjectUtil,g as PagingUtil,m as RestClient,O as RestClientWithOAuth,a as StringUtil,u as UserAlertType,E as UserAlerts,C as Vector2};
2
2
  //# sourceMappingURL=index.esm.js.map