zavadil-ts-common 1.2.39 → 1.2.40

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
@@ -255,16 +255,21 @@ declare class OAuthRestClient extends RestClient {
255
255
  requestAccessToken(request: RequestAccessTokenPayload): Promise<AccessTokenPayload>;
256
256
  }
257
257
 
258
+ interface OAuthIdTokenProvider {
259
+ getIdToken(): Promise<IdTokenPayload>;
260
+ }
261
+
258
262
  /**
259
263
  * Manages refresh of id and access tokens.
260
264
  */
261
- declare class OAuthTokenManager {
265
+ declare class OAuthTokenManager implements OAuthIdTokenProvider {
262
266
  private eventManager;
263
267
  oAuthServer: OAuthRestClient;
264
268
  audience: string;
265
269
  idToken?: IdTokenPayload;
270
+ freshIdTokenProvider: OAuthIdTokenProvider;
266
271
  accessTokens: Map<string, AccessTokenPayload>;
267
- constructor(oAuthServerBaseUrl: string, targetAudience: string);
272
+ constructor(oAuthServerBaseUrl: string, targetAudience: string, freshIdTokenProvider: OAuthIdTokenProvider);
268
273
  addIdTokenChangedHandler(handler: (t: IdTokenPayload) => any): void;
269
274
  removeIdTokenChangedHandler(handler: (t: IdTokenPayload) => any): void;
270
275
  isTokenExpired(expires?: Date | null): boolean;
@@ -274,9 +279,11 @@ declare class OAuthTokenManager {
274
279
  isValidAccessToken(accessToken?: AccessTokenPayload): boolean;
275
280
  hasValidAccessToken(privilege: string): boolean;
276
281
  reset(): void;
277
- getIdToken(): Promise<string>;
282
+ getIdTokenInternal(): Promise<IdTokenPayload>;
283
+ getIdToken(): Promise<IdTokenPayload>;
284
+ getIdTokenRaw(): Promise<string>;
278
285
  setIdToken(token?: IdTokenPayload): void;
279
- verifyIdToken(token: string): Promise<any>;
286
+ verifyIdToken(token: string): Promise<IdTokenPayload>;
280
287
  login(login: string, password: string): Promise<any>;
281
288
  private getAccessTokenInternal;
282
289
  getAccessToken(privilege: string): Promise<string>;
@@ -297,23 +304,14 @@ type ServerOAuthInfoPayload = {
297
304
  version: string;
298
305
  };
299
306
  declare class RestClientWithOAuth extends RestClient {
300
- private tokenName;
301
307
  private insecureClient;
308
+ private freshIdTokenProvider;
302
309
  private tokenManager;
303
310
  private serverInfo;
304
311
  private defaultPrivilege;
305
- private redirecting?;
306
- constructor(url: string, defaultPrivilege?: string);
307
- isRedirecting(): boolean;
308
- redirectingTo(): string;
309
- redirectTo(url: string): Promise<any>;
310
- initializeIdToken(): Promise<any>;
311
- /**
312
- * Attempt to get ID token from URL or storage, redirect to login page when not successful
313
- */
314
- redirectToLogin(): Promise<any>;
312
+ constructor(url: string, freshIdTokenProvider?: OAuthIdTokenProvider, defaultPrivilege?: string);
315
313
  /**
316
- * Attempt to get ID token from URL or storage, redirect to login page when not successful
314
+ * Attempt to get ID token from the provider, this will trigger redirect to login screen in case of the default provider
317
315
  */
318
316
  initialize(): Promise<any>;
319
317
  logout(): Promise<any>;
@@ -322,25 +320,13 @@ declare class RestClientWithOAuth extends RestClient {
322
320
  * @param url
323
321
  */
324
322
  getPrivilege(url: string): string;
325
- deleteIdTokenFromUrl(): string;
326
- getIdTokenFromUrl(): string | null;
327
- getIdTokenFromLocalStorage(): IdTokenPayload | null | undefined;
328
- saveIdTokenToLocalStorage(token: IdTokenPayload | null): void;
329
- addIdTokenChangedHandler(handler: () => any): void;
330
- removeIdTokenChangedHandler(handler: () => any): void;
331
323
  private getServerInfoInternal;
332
324
  getServerInfo(): Promise<ServerOAuthInfoPayload>;
333
- private getTokenManagerInternal;
325
+ protected getTokenManagerInternal(): Promise<OAuthTokenManager>;
334
326
  getTokenManager(): Promise<OAuthTokenManager>;
335
327
  login(login: string, password: string): Promise<any>;
336
328
  setIdToken(token: IdTokenPayload): Promise<any>;
337
- setIdTokenRaw(token: string): Promise<any>;
338
329
  getHeaders(endpoint: string): Promise<Headers>;
339
- /**
340
- * Try to obtain access token, then return if everything is okay.
341
- * This is basically only used when initializing and trying to determine whether we need to redirect user to login page
342
- */
343
- checkAccessToken(privilege?: string): Promise<any>;
344
330
  }
345
331
 
346
332
  declare class ObjectUtil {
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}(),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),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}(),R=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),M=function(){function t(t,e){this.eventManager=new E,this.audience=e,this.oAuthServer=new R(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.getIdToken=function(){var t=this;return void 0!==this.idToken&&this.hasValidIdToken()?this.isTokenReadyForRefresh(this.idToken.issuedAt,this.idToken.expires)?this.oAuthServer.refreshIdToken({idToken:this.idToken.token}).then((function(e){return t.setIdToken(e),e.token})):Promise.resolve(this.idToken.token):Promise.reject("No valid ID 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){var e=this;return this.oAuthServer.verifyIdToken(t).then((function(t){return e.setIdToken(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){n.setIdToken(t)}))},t.prototype.getAccessTokenInternal=function(t){var e=this;return this.getIdToken().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}(),x=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}(),A=function(t){function e(e,n){void 0===n&&(n="*");var o=t.call(this,e)||this;return o.tokenName="token",o.defaultPrivilege=n,o.insecureClient=new m(e),o.serverInfo=new r((function(){return o.getServerInfoInternal()})),o.tokenManager=new r((function(){return o.getTokenManagerInternal()})),o}return i(e,t),e.prototype.isRedirecting=function(){return a.notBlank(this.redirecting)},e.prototype.redirectingTo=function(){return a.getNonEmpty(this.redirecting)},e.prototype.redirectTo=function(t){return this.redirecting=t,document.location.href=t,Promise.reject("Redirecting to ".concat(t))},e.prototype.initializeIdToken=function(){var t=this,e=this.getIdTokenFromUrl();if(null!==e)return this.setIdTokenRaw(e).then((function(){return t.redirectTo(t.deleteIdTokenFromUrl())}));var n=this.getIdTokenFromLocalStorage();return n?this.setIdToken(n):Promise.reject("No valid ID token!")},e.prototype.redirectToLogin=function(){var t=this;return this.isRedirecting()?Promise.reject("Already redirecting!"):this.getServerInfo().then((function(e){var n="".concat(e.oauthServerUrl,"/login?app_name=").concat(e.targetAudience,"&redirect_url=").concat(t.deleteIdTokenFromUrl());return t.redirectTo(n)})).catch((function(t){return console.error("Redirection failed: OAuth info not fetched:",t),Promise.reject(t)}))},e.prototype.initialize=function(){var t=this;return this.initializeIdToken().then((function(){if(!t.isRedirecting())return t.checkAccessToken()})).catch((function(e){return console.log("OAuth initialization failed:",e),t.redirectToLogin()}))},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.deleteIdTokenFromUrl=function(){var t=new URL(document.location.toString());return t.searchParams.delete(this.tokenName),a.trimTrailingSlashes(t.toString())},e.prototype.getIdTokenFromUrl=function(){return new URLSearchParams(document.location.search).get(this.tokenName)},e.prototype.getIdTokenFromLocalStorage=function(){return v.parse(localStorage.getItem("id-token"))},e.prototype.saveIdTokenToLocalStorage=function(t){var e=t?JSON.stringify(t):null;null!==e?localStorage.setItem("id-token",e):localStorage.removeItem("id-token")},e.prototype.addIdTokenChangedHandler=function(t){this.getTokenManager().then((function(e){return e.addIdTokenChangedHandler(t)}))},e.prototype.removeIdTokenChangedHandler=function(t){this.getTokenManager().then((function(e){return e.removeIdTokenChangedHandler(t)}))},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){var n=new M(e.oauthServerUrl,e.targetAudience);return n.addIdTokenChangedHandler((function(e){return t.saveIdTokenToLocalStorage(e)})),n}))},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.setIdTokenRaw=function(t){return this.getTokenManager().then((function(e){return e.verifyIdToken(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.prototype.checkAccessToken=function(t){var e=this;return this.getTokenManager().then((function(n){return n.getAccessToken(a.getNonEmpty(t,e.defaultPrivilege))})).catch((function(t){return Promise.reject("Access token check failed: ".concat(t))}))},e}(m),P=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}(),N={"--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"}]},C={"--self-name":"English"},D=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}(),q=function(t){function e(){return t.call(this,N)||this}return i(e,t),e}(D),L=function(t){function e(){return t.call(this,C)||this}return i(e,t),e}(D),O=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}(),U=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 O(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}(),F=function(t){function e(e){var n=t.call(this)||this;return n.addDictionary("cs",new q),n.addDictionary("en",new L),n.setLanguage(e),n}return i(e,t),e}(U);export{h as ArrayUtil,p as AsyncUtil,F as BasicLocalization,f as ByteUtil,t as CacheAsync,b as CancellablePromise,q as CzechBasicDictionary,d as DateUtil,O as DictionaryWithFallback,L as EnglishBasicDictionary,k as EntityCachedClient,T as EntityClient,S as EntityClientWithStub,E as EventManager,e as HashCacheAsync,v as JsonUtil,n as Lazy,r as LazyAsync,U as Localization,w as LookupClient,D as MemoryDictionary,y as NumberUtil,R as OAuthRestClient,x as OAuthSubject,M as OAuthTokenManager,c as ObjectUtil,g as PagingUtil,m as RestClient,A as RestClientWithOAuth,a as StringUtil,u as UserAlertType,I as UserAlerts,P 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}(),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};
2
2
  //# sourceMappingURL=index.esm.js.map