@dontdrinkandroot/ngx-extensions 0.5.0 → 0.7.0

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.
Files changed (53) hide show
  1. package/fesm2022/dontdrinkandroot-ngx-extensions.mjs +168 -126
  2. package/fesm2022/dontdrinkandroot-ngx-extensions.mjs.map +1 -1
  3. package/package.json +5 -7
  4. package/src/cookie/cookie.service.d.ts +1 -1
  5. package/src/http/redirect-to-login-interceptor.service.d.ts +1 -1
  6. package/src/http/with-credentials-interceptor.service.d.ts +1 -1
  7. package/src/image/lazy-image.directive.d.ts +4 -4
  8. package/src/jwt/jwt-interceptor.service.d.ts +1 -1
  9. package/src/jwt/jwt-refresh-token-interceptor.service.d.ts +1 -1
  10. package/src/logger/console-logger.service.d.ts +4 -4
  11. package/src/logger/logger.service.d.ts +4 -4
  12. package/src/oauth/oauth2-access-token-interceptor.service.d.ts +1 -1
  13. package/src/oauth/oauth2-refresh-token-interceptor.service.d.ts +1 -1
  14. package/src/oauth/oauth2.service.d.ts +1 -1
  15. package/src/oauth/redirect-to-oauth2-login-interceptor.service.d.ts +1 -1
  16. package/src/scroll/bottom-hit.directive.d.ts +5 -6
  17. package/src/util/collection-utils.d.ts +2 -2
  18. package/esm2022/dontdrinkandroot-ngx-extensions.mjs +0 -5
  19. package/esm2022/public-api.mjs +0 -29
  20. package/esm2022/src/cookie/cookie.service.mjs +0 -135
  21. package/esm2022/src/ddr-extensions.module.mjs +0 -67
  22. package/esm2022/src/http/redirect-to-login-interceptor.service.mjs +0 -35
  23. package/esm2022/src/http/url-info.mjs +0 -26
  24. package/esm2022/src/http/with-credentials-interceptor.service.mjs +0 -19
  25. package/esm2022/src/image/lazy-image.directive.mjs +0 -132
  26. package/esm2022/src/jwt/jwt-interceptor.service.mjs +0 -26
  27. package/esm2022/src/jwt/jwt-refresh-token-interceptor.service.mjs +0 -50
  28. package/esm2022/src/jwt/jwt-token-response.mjs +0 -2
  29. package/esm2022/src/jwt/jwt.service.mjs +0 -81
  30. package/esm2022/src/logger/console-logger.service.mjs +0 -43
  31. package/esm2022/src/logger/logger.service.mjs +0 -9
  32. package/esm2022/src/methoddecorator/debounce.mjs +0 -13
  33. package/esm2022/src/methoddecorator/limit.mjs +0 -16
  34. package/esm2022/src/oauth/json-web-token.mjs +0 -2
  35. package/esm2022/src/oauth/oauth2-access-token-interceptor.service.mjs +0 -26
  36. package/esm2022/src/oauth/oauth2-config.mjs +0 -11
  37. package/esm2022/src/oauth/oauth2-error.mjs +0 -8
  38. package/esm2022/src/oauth/oauth2-refresh-token-interceptor.service.mjs +0 -24
  39. package/esm2022/src/oauth/oauth2.module.mjs +0 -44
  40. package/esm2022/src/oauth/oauth2.service.mjs +0 -125
  41. package/esm2022/src/oauth/redirect-to-oauth2-login-interceptor.service.mjs +0 -41
  42. package/esm2022/src/oauth/token-response.mjs +0 -2
  43. package/esm2022/src/scroll/bottom-hit.directive.mjs +0 -60
  44. package/esm2022/src/scroll/scroll.service.mjs +0 -38
  45. package/esm2022/src/storage/local-storage.service.mjs +0 -53
  46. package/esm2022/src/storage/storage.service.mjs +0 -5
  47. package/esm2022/src/typeguard/is-non-null.mjs +0 -4
  48. package/esm2022/src/util/collection-utils.mjs +0 -27
  49. package/esm2022/src/util/number-utils.mjs +0 -10
  50. package/esm2022/src/util/object-utils.mjs +0 -9
  51. package/esm2022/src/util/string-utils.mjs +0 -35
  52. package/esm2022/src/util/type-utils.mjs +0 -9
  53. package/esm2022/src/visibility/visibility.service.mjs +0 -19
@@ -1,38 +0,0 @@
1
- import { NavigationStart } from '@angular/router';
2
- import { Injectable } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/router";
5
- import * as i2 from "@angular/common";
6
- export class ScrollService {
7
- constructor(router, viewportScroller) {
8
- this.router = router;
9
- this.viewportScroller = viewportScroller;
10
- this.scrollPositionMap = new Map();
11
- this.router.events
12
- .subscribe(e => {
13
- if (e instanceof NavigationStart) {
14
- this.scrollPositionMap.set(this.router.url, this.viewportScroller.getScrollPosition());
15
- }
16
- });
17
- }
18
- restore() {
19
- const url = this.router.url;
20
- if (this.scrollPositionMap.has(url)) {
21
- /* Restore after timeout so rendering was completed */
22
- setTimeout(() => {
23
- let scrollPosition = this.scrollPositionMap.get(url);
24
- if (null != scrollPosition)
25
- this.viewportScroller.scrollToPosition(scrollPosition);
26
- }, 1);
27
- }
28
- }
29
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: ScrollService, deps: [{ token: i1.Router }, { token: i2.ViewportScroller }], target: i0.ɵɵFactoryTarget.Injectable }); }
30
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: ScrollService, providedIn: 'root' }); }
31
- }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: ScrollService, decorators: [{
33
- type: Injectable,
34
- args: [{
35
- providedIn: 'root'
36
- }]
37
- }], ctorParameters: () => [{ type: i1.Router }, { type: i2.ViewportScroller }] });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2Nyb2xsL3Njcm9sbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxlQUFlLEVBQVMsTUFBTSxpQkFBaUIsQ0FBQztBQUV4RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7O0FBS3pDLE1BQU0sT0FBTyxhQUFhO0lBSXRCLFlBQW9CLE1BQWMsRUFBVSxnQkFBa0M7UUFBMUQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFGdEUsc0JBQWlCLEdBQWtDLElBQUksR0FBRyxFQUE0QixDQUFDO1FBSTNGLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTthQUNiLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNYLElBQUksQ0FBQyxZQUFZLGVBQWUsRUFBRSxDQUFDO2dCQUMvQixJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUM7WUFDM0YsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVNLE9BQU87UUFFVixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztRQUM1QixJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNsQyxzREFBc0Q7WUFDdEQsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDWixJQUFJLGNBQWMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNyRCxJQUFJLElBQUksSUFBSSxjQUFjO29CQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUN2RixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDVixDQUFDO0lBQ0wsQ0FBQzs4R0F4QlEsYUFBYTtrSEFBYixhQUFhLGNBRlYsTUFBTTs7MkZBRVQsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05hdmlnYXRpb25TdGFydCwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtWaWV3cG9ydFNjcm9sbGVyfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTY3JvbGxTZXJ2aWNlXG57XG4gICAgcHJpdmF0ZSBzY3JvbGxQb3NpdGlvbk1hcDogTWFwPHN0cmluZywgW251bWJlciwgbnVtYmVyXT4gPSBuZXcgTWFwPHN0cmluZywgW251bWJlciwgbnVtYmVyXT4oKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgdmlld3BvcnRTY3JvbGxlcjogVmlld3BvcnRTY3JvbGxlcilcbiAgICB7XG4gICAgICAgIHRoaXMucm91dGVyLmV2ZW50c1xuICAgICAgICAgICAgLnN1YnNjcmliZShlID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbFBvc2l0aW9uTWFwLnNldCh0aGlzLnJvdXRlci51cmwsIHRoaXMudmlld3BvcnRTY3JvbGxlci5nZXRTY3JvbGxQb3NpdGlvbigpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVzdG9yZSgpOiB2b2lkXG4gICAge1xuICAgICAgICBjb25zdCB1cmwgPSB0aGlzLnJvdXRlci51cmw7XG4gICAgICAgIGlmICh0aGlzLnNjcm9sbFBvc2l0aW9uTWFwLmhhcyh1cmwpKSB7XG4gICAgICAgICAgICAvKiBSZXN0b3JlIGFmdGVyIHRpbWVvdXQgc28gcmVuZGVyaW5nIHdhcyBjb21wbGV0ZWQgKi9cbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBzY3JvbGxQb3NpdGlvbiA9IHRoaXMuc2Nyb2xsUG9zaXRpb25NYXAuZ2V0KHVybCk7XG4gICAgICAgICAgICAgICAgaWYgKG51bGwgIT0gc2Nyb2xsUG9zaXRpb24pIHRoaXMudmlld3BvcnRTY3JvbGxlci5zY3JvbGxUb1Bvc2l0aW9uKHNjcm9sbFBvc2l0aW9uKTtcbiAgICAgICAgICAgIH0sIDEpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -1,53 +0,0 @@
1
- import { DDR_STORAGE_PREFIX, StorageService } from './storage.service';
2
- import { Inject, Injectable } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "../logger/logger.service";
5
- export class LocalStorageService extends StorageService {
6
- constructor(storagePrefix, logger) {
7
- super();
8
- this.storagePrefix = storagePrefix;
9
- this.logger = logger;
10
- }
11
- /**
12
- * @override
13
- */
14
- retrieve(key, defaultValue = null) {
15
- let fullKey = this.getFullKey(key);
16
- let valueJson = localStorage.getItem(fullKey);
17
- if (null == valueJson) {
18
- return defaultValue;
19
- }
20
- try {
21
- return JSON.parse(valueJson);
22
- }
23
- catch (e) {
24
- this.logger.warn('Could not parse json value', valueJson, e);
25
- localStorage.removeItem(fullKey);
26
- return null;
27
- }
28
- }
29
- /**
30
- * @override
31
- */
32
- store(key, value) {
33
- localStorage.setItem(this.getFullKey(key), JSON.stringify(value));
34
- }
35
- /**
36
- * @override
37
- */
38
- remove(key) {
39
- localStorage.removeItem(this.getFullKey(key));
40
- }
41
- getFullKey(key) {
42
- return this.storagePrefix + '.' + key;
43
- }
44
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: LocalStorageService, deps: [{ token: DDR_STORAGE_PREFIX }, { token: i1.Logger }], target: i0.ɵɵFactoryTarget.Injectable }); }
45
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: LocalStorageService }); }
46
- }
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: LocalStorageService, decorators: [{
48
- type: Injectable
49
- }], ctorParameters: () => [{ type: undefined, decorators: [{
50
- type: Inject,
51
- args: [DDR_STORAGE_PREFIX]
52
- }] }, { type: i1.Logger }] });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtc3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N0b3JhZ2UvbG9jYWwtc3RvcmFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxrQkFBa0IsRUFBRSxjQUFjLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7O0FBSWpELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxjQUFjO0lBRW5ELFlBQzBDLGFBQXFCLEVBQ2pELE1BQWM7UUFHeEIsS0FBSyxFQUFFLENBQUM7UUFKOEIsa0JBQWEsR0FBYixhQUFhLENBQVE7UUFDakQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUk1QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxRQUFRLENBQUksR0FBVyxFQUFFLGVBQXlCLElBQUk7UUFFekQsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQyxJQUFJLFNBQVMsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLElBQUksSUFBSSxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sWUFBWSxDQUFDO1FBQ3hCLENBQUM7UUFFRCxJQUFJLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakMsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDVCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDN0QsWUFBWSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNqQyxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFJLEdBQVcsRUFBRSxLQUFRO1FBRWpDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLEdBQVc7UUFFckIsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVTLFVBQVUsQ0FBQyxHQUFXO1FBRTVCLE9BQU8sSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDO0lBQzFDLENBQUM7OEdBakRRLG1CQUFtQixrQkFHaEIsa0JBQWtCO2tIQUhyQixtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVU7OzBCQUlGLE1BQU07MkJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtERFJfU1RPUkFHRV9QUkVGSVgsIFN0b3JhZ2VTZXJ2aWNlfSBmcm9tICcuL3N0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0xvZ2dlcn0gZnJvbSAnLi4vbG9nZ2VyL2xvZ2dlci5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIExvY2FsU3RvcmFnZVNlcnZpY2UgZXh0ZW5kcyBTdG9yYWdlU2VydmljZVxue1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KEREUl9TVE9SQUdFX1BSRUZJWCkgcHJvdGVjdGVkIHN0b3JhZ2VQcmVmaXg6IHN0cmluZyxcbiAgICAgICAgcHJvdGVjdGVkIGxvZ2dlcjogTG9nZ2VyXG4gICAgKVxuICAgIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAb3ZlcnJpZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgcmV0cmlldmU8VD4oa2V5OiBzdHJpbmcsIGRlZmF1bHRWYWx1ZTogVCB8IG51bGwgPSBudWxsKTogVCB8IG51bGxcbiAgICB7XG4gICAgICAgIGxldCBmdWxsS2V5ID0gdGhpcy5nZXRGdWxsS2V5KGtleSk7XG4gICAgICAgIGxldCB2YWx1ZUpzb24gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShmdWxsS2V5KTtcbiAgICAgICAgaWYgKG51bGwgPT0gdmFsdWVKc29uKSB7XG4gICAgICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKHZhbHVlSnNvbik7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLndhcm4oJ0NvdWxkIG5vdCBwYXJzZSBqc29uIHZhbHVlJywgdmFsdWVKc29uLCBlKTtcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGZ1bGxLZXkpO1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAb3ZlcnJpZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RvcmU8VD4oa2V5OiBzdHJpbmcsIHZhbHVlOiBUKTogdm9pZFxuICAgIHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5nZXRGdWxsS2V5KGtleSksIEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQG92ZXJyaWRlXG4gICAgICovXG4gICAgcHVibGljIHJlbW92ZShrZXk6IHN0cmluZylcbiAgICB7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuZ2V0RnVsbEtleShrZXkpKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0RnVsbEtleShrZXk6IHN0cmluZyk6IHN0cmluZ1xuICAgIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RvcmFnZVByZWZpeCArICcuJyArIGtleTtcbiAgICB9XG59XG4iXX0=
@@ -1,5 +0,0 @@
1
- import { InjectionToken } from "@angular/core";
2
- export const DDR_STORAGE_PREFIX = new InjectionToken('storage-prefix');
3
- export class StorageService {
4
- }
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N0b3JhZ2Uvc3RvcmFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFN0MsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxjQUFjLENBQVMsZ0JBQWdCLENBQUMsQ0FBQztBQUUvRSxNQUFNLE9BQWdCLGNBQWM7Q0FPbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGlvblRva2VufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5leHBvcnQgY29uc3QgRERSX1NUT1JBR0VfUFJFRklYID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ3N0b3JhZ2UtcHJlZml4Jyk7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTdG9yYWdlU2VydmljZVxue1xuICAgIHB1YmxpYyBhYnN0cmFjdCBzdG9yZTxUPihrZXk6IHN0cmluZywgdmFsdWU6IFQpOiB2b2lkO1xuXG4gICAgcHVibGljIGFic3RyYWN0IHJldHJpZXZlPFQ+KGtleTogc3RyaW5nLCBkZWZhdWx0VmFsdWU/OiBUKTogVCB8IG51bGw7XG5cbiAgICBwdWJsaWMgYWJzdHJhY3QgcmVtb3ZlKGtleTogc3RyaW5nKTogdm9pZDtcbn1cbiJdfQ==
@@ -1,4 +0,0 @@
1
- export function isNonNull(value) {
2
- return value != null;
3
- }
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtbm9uLW51bGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHlwZWd1YXJkL2lzLW5vbi1udWxsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxTQUFTLENBQUksS0FBUTtJQUVqQyxPQUFPLEtBQUssSUFBSSxJQUFJLENBQUM7QUFDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBpc05vbk51bGw8VD4odmFsdWU6IFQpOiB2YWx1ZSBpcyBOb25OdWxsYWJsZTxUPlxue1xuICAgIHJldHVybiB2YWx1ZSAhPSBudWxsO1xufVxuIl19
@@ -1,27 +0,0 @@
1
- import { ObjectUtils } from './object-utils';
2
- export class CollectionUtils {
3
- /**
4
- * Maps an array into a Map by a specific property which should be unique.
5
- */
6
- static mapByProperty(entries, property) {
7
- const map = new Map();
8
- for (const entry of entries) {
9
- map.set(ObjectUtils.getProperty(entry, property), entry);
10
- }
11
- return map;
12
- }
13
- /**
14
- * Maps an array into a Map by a specified property and aggregates them into an array.
15
- */
16
- static mapArrayByProperty(entries, property) {
17
- const map = new Map();
18
- for (const entry of entries) {
19
- const value = ObjectUtils.getProperty(entry, property);
20
- const existingEntries = map.get(value) ?? [];
21
- existingEntries.push(entry);
22
- map.set(value, existingEntries);
23
- }
24
- return map;
25
- }
26
- }
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy91dGlsL2NvbGxlY3Rpb24tdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE1BQU0sT0FBTyxlQUFlO0lBRXhCOztPQUVHO0lBQ0ksTUFBTSxDQUFDLGFBQWEsQ0FBc0MsT0FBaUIsRUFBRSxRQUFXO1FBRTNGLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7UUFDOUIsS0FBSyxNQUFNLEtBQUssSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUMxQixHQUFHLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzdELENBQUM7UUFFRCxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBc0MsT0FBaUIsRUFBRSxRQUFXO1FBRWhHLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxFQUFZLENBQUM7UUFDaEMsS0FBSyxNQUFNLEtBQUssSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUMxQixNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztZQUN2RCxNQUFNLGVBQWUsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQTtZQUM1QyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQzNCLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxDQUFBO1FBQ25DLENBQUM7UUFFRCxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7T2JqZWN0VXRpbHN9IGZyb20gJy4vb2JqZWN0LXV0aWxzJztcblxuZXhwb3J0IGNsYXNzIENvbGxlY3Rpb25VdGlsc1xue1xuICAgIC8qKlxuICAgICAqIE1hcHMgYW4gYXJyYXkgaW50byBhIE1hcCBieSBhIHNwZWNpZmljIHByb3BlcnR5IHdoaWNoIHNob3VsZCBiZSB1bmlxdWUuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBtYXBCeVByb3BlcnR5PFYgZXh0ZW5kcyBvYmplY3QsIEsgZXh0ZW5kcyBrZXlvZiBWPihlbnRyaWVzOiBBcnJheTxWPiwgcHJvcGVydHk6IEspOiBNYXA8YW55LCBWPlxuICAgIHtcbiAgICAgICAgY29uc3QgbWFwID0gbmV3IE1hcDxhbnksIFY+KCk7XG4gICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgZW50cmllcykge1xuICAgICAgICAgICAgbWFwLnNldChPYmplY3RVdGlscy5nZXRQcm9wZXJ0eShlbnRyeSwgcHJvcGVydHkpLCBlbnRyeSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbWFwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1hcHMgYW4gYXJyYXkgaW50byBhIE1hcCBieSBhIHNwZWNpZmllZCBwcm9wZXJ0eSBhbmQgYWdncmVnYXRlcyB0aGVtIGludG8gYW4gYXJyYXkuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBtYXBBcnJheUJ5UHJvcGVydHk8ViBleHRlbmRzIG9iamVjdCwgSyBleHRlbmRzIGtleW9mIFY+KGVudHJpZXM6IEFycmF5PFY+LCBwcm9wZXJ0eTogSyk6IE1hcDxhbnksIFZbXT5cbiAgICB7XG4gICAgICAgIGNvbnN0IG1hcCA9IG5ldyBNYXA8YW55LCBWW10+KCk7XG4gICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgZW50cmllcykge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBPYmplY3RVdGlscy5nZXRQcm9wZXJ0eShlbnRyeSwgcHJvcGVydHkpO1xuICAgICAgICAgICAgY29uc3QgZXhpc3RpbmdFbnRyaWVzID0gbWFwLmdldCh2YWx1ZSkgPz8gW11cbiAgICAgICAgICAgIGV4aXN0aW5nRW50cmllcy5wdXNoKGVudHJ5KVxuICAgICAgICAgICAgbWFwLnNldCh2YWx1ZSwgZXhpc3RpbmdFbnRyaWVzKVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG1hcDtcbiAgICB9XG59XG4iXX0=
@@ -1,10 +0,0 @@
1
- export class NumberUtils {
2
- static getNextPowerOfTwo(value) {
3
- let target = 2;
4
- while (target < value) {
5
- target *= 2;
6
- }
7
- return target;
8
- }
9
- }
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWwvbnVtYmVyLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxXQUFXO0lBRWIsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEtBQWE7UUFFekMsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsT0FBTyxNQUFNLEdBQUcsS0FBSyxFQUFFLENBQUM7WUFDcEIsTUFBTSxJQUFJLENBQUMsQ0FBQztRQUNoQixDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIE51bWJlclV0aWxzXG57XG4gICAgcHVibGljIHN0YXRpYyBnZXROZXh0UG93ZXJPZlR3byh2YWx1ZTogbnVtYmVyKTogbnVtYmVyXG4gICAge1xuICAgICAgICBsZXQgdGFyZ2V0ID0gMjtcbiAgICAgICAgd2hpbGUgKHRhcmdldCA8IHZhbHVlKSB7XG4gICAgICAgICAgICB0YXJnZXQgKj0gMjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0YXJnZXQ7XG4gICAgfVxufVxuIl19
@@ -1,9 +0,0 @@
1
- export class ObjectUtils {
2
- static deepCopy(value) {
3
- return JSON.parse(JSON.stringify(value));
4
- }
5
- static getProperty(o, propertyName) {
6
- return o[propertyName];
7
- }
8
- }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWwvb2JqZWN0LXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxXQUFXO0lBRWIsTUFBTSxDQUFDLFFBQVEsQ0FBSSxLQUFRO1FBRTlCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVNLE1BQU0sQ0FBQyxXQUFXLENBQXVCLENBQUksRUFBRSxZQUFlO1FBRWpFLE9BQU8sQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzNCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBPYmplY3RVdGlsc1xue1xuICAgIHB1YmxpYyBzdGF0aWMgZGVlcENvcHk8VD4odmFsdWU6IFQpOiBUXG4gICAge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh2YWx1ZSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0UHJvcGVydHk8VCwgSyBleHRlbmRzIGtleW9mIFQ+KG86IFQsIHByb3BlcnR5TmFtZTogSyk6IFRbS11cbiAgICB7XG4gICAgICAgIHJldHVybiBvW3Byb3BlcnR5TmFtZV07XG4gICAgfVxufVxuIl19
@@ -1,35 +0,0 @@
1
- export class StringUtils {
2
- static capitalizeFirstLetter(text) {
3
- return text.charAt(0).toUpperCase() + text.slice(1);
4
- }
5
- static stripTrailingSlash(text) {
6
- const lastChar = text.charAt(text.length - 1);
7
- if ('/' === lastChar) {
8
- return text.slice(0, text.length - 1);
9
- }
10
- return text;
11
- }
12
- static updateUrlParameter(uri, key, value) {
13
- // remove the hash part before operating on the uri
14
- const i = uri.indexOf('#');
15
- const hash = i === -1 ? '' : uri.substr(i);
16
- uri = i === -1 ? uri : uri.substr(0, i);
17
- const re = new RegExp('([?&])' + key + '=.*?(&|$)', 'i');
18
- const separator = uri.indexOf('?') !== -1 ? '&' : '?';
19
- if (uri.match(re)) {
20
- uri = uri.replace(re, '$1' + key + '=' + value + '$2');
21
- }
22
- else {
23
- uri = uri + separator + key + '=' + value;
24
- }
25
- return uri + hash; // finally append the hash as well
26
- }
27
- static createRandomString(lengthOfCode, possible) {
28
- let text = '';
29
- for (let i = 0; i < lengthOfCode; i++) {
30
- text += possible.charAt(Math.floor(Math.random() * possible.length));
31
- }
32
- return text;
33
- }
34
- }
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWwvc3RyaW5nLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxXQUFXO0lBRWIsTUFBTSxDQUFDLHFCQUFxQixDQUFDLElBQVk7UUFFNUMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVNLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFZO1FBRXpDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM5QyxJQUFJLEdBQUcsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNuQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxNQUFNLENBQUMsa0JBQWtCLENBQUMsR0FBVyxFQUFFLEdBQVcsRUFBRSxLQUFhO1FBRXBFLG1EQUFtRDtRQUNuRCxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNCLE1BQU0sSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNDLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFeEMsTUFBTSxFQUFFLEdBQUcsSUFBSSxNQUFNLENBQUMsUUFBUSxHQUFHLEdBQUcsR0FBRyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDekQsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDdEQsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDaEIsR0FBRyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQztRQUMzRCxDQUFDO2FBQU0sQ0FBQztZQUNKLEdBQUcsR0FBRyxHQUFHLEdBQUcsU0FBUyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsS0FBSyxDQUFDO1FBQzlDLENBQUM7UUFDRCxPQUFPLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBRSxrQ0FBa0M7SUFDMUQsQ0FBQztJQUVNLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxZQUFvQixFQUFFLFFBQWdCO1FBRW5FLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNkLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxZQUFZLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNwQyxJQUFJLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN6RSxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFN0cmluZ1V0aWxzXG57XG4gICAgcHVibGljIHN0YXRpYyBjYXBpdGFsaXplRmlyc3RMZXR0ZXIodGV4dDogc3RyaW5nKTogc3RyaW5nXG4gICAge1xuICAgICAgICByZXR1cm4gdGV4dC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHRleHQuc2xpY2UoMSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBzdHJpcFRyYWlsaW5nU2xhc2godGV4dDogc3RyaW5nKTogc3RyaW5nXG4gICAge1xuICAgICAgICBjb25zdCBsYXN0Q2hhciA9IHRleHQuY2hhckF0KHRleHQubGVuZ3RoIC0gMSk7XG4gICAgICAgIGlmICgnLycgPT09IGxhc3RDaGFyKSB7XG4gICAgICAgICAgICByZXR1cm4gdGV4dC5zbGljZSgwLCB0ZXh0Lmxlbmd0aCAtIDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRleHQ7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyB1cGRhdGVVcmxQYXJhbWV0ZXIodXJpOiBzdHJpbmcsIGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogc3RyaW5nXG4gICAge1xuICAgICAgICAvLyByZW1vdmUgdGhlIGhhc2ggcGFydCBiZWZvcmUgb3BlcmF0aW5nIG9uIHRoZSB1cmlcbiAgICAgICAgY29uc3QgaSA9IHVyaS5pbmRleE9mKCcjJyk7XG4gICAgICAgIGNvbnN0IGhhc2ggPSBpID09PSAtMSA/ICcnIDogdXJpLnN1YnN0cihpKTtcbiAgICAgICAgdXJpID0gaSA9PT0gLTEgPyB1cmkgOiB1cmkuc3Vic3RyKDAsIGkpO1xuXG4gICAgICAgIGNvbnN0IHJlID0gbmV3IFJlZ0V4cCgnKFs/Jl0pJyArIGtleSArICc9Lio/KCZ8JCknLCAnaScpO1xuICAgICAgICBjb25zdCBzZXBhcmF0b3IgPSB1cmkuaW5kZXhPZignPycpICE9PSAtMSA/ICcmJyA6ICc/JztcbiAgICAgICAgaWYgKHVyaS5tYXRjaChyZSkpIHtcbiAgICAgICAgICAgIHVyaSA9IHVyaS5yZXBsYWNlKHJlLCAnJDEnICsga2V5ICsgJz0nICsgdmFsdWUgKyAnJDInKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHVyaSA9IHVyaSArIHNlcGFyYXRvciArIGtleSArICc9JyArIHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1cmkgKyBoYXNoOyAgLy8gZmluYWxseSBhcHBlbmQgdGhlIGhhc2ggYXMgd2VsbFxuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlUmFuZG9tU3RyaW5nKGxlbmd0aE9mQ29kZTogbnVtYmVyLCBwb3NzaWJsZTogc3RyaW5nKTogc3RyaW5nXG4gICAge1xuICAgICAgICBsZXQgdGV4dCA9ICcnO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aE9mQ29kZTsgaSsrKSB7XG4gICAgICAgICAgICB0ZXh0ICs9IHBvc3NpYmxlLmNoYXJBdChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBwb3NzaWJsZS5sZW5ndGgpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGV4dDtcbiAgICB9XG59XG4iXX0=
@@ -1,9 +0,0 @@
1
- export class TypeUtils {
2
- static notNull(value, message = 'Value must not be null') {
3
- if (null == value) {
4
- throw new Error(message);
5
- }
6
- return value;
7
- }
8
- }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy91dGlsL3R5cGUtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFNBQVM7SUFFWCxNQUFNLENBQUMsT0FBTyxDQUFJLEtBQTJCLEVBQUUsVUFBa0Isd0JBQXdCO1FBRTVGLElBQUksSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0IsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBUeXBlVXRpbHNcbntcbiAgICBwdWJsaWMgc3RhdGljIG5vdE51bGw8VD4odmFsdWU6IFQgfCBudWxsIHwgdW5kZWZpbmVkLCBtZXNzYWdlOiBzdHJpbmcgPSAnVmFsdWUgbXVzdCBub3QgYmUgbnVsbCcpOiBUXG4gICAge1xuICAgICAgICBpZiAobnVsbCA9PSB2YWx1ZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,19 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { fromEvent, merge } from 'rxjs';
3
- import { debounceTime, distinctUntilChanged, map, shareReplay, startWith } from 'rxjs/operators';
4
- import * as i0 from "@angular/core";
5
- export class VisibilityService {
6
- constructor() {
7
- this.visibility$ = merge(fromEvent(document, 'visibilitychange'), fromEvent(window, 'focus'), fromEvent(window, 'blur')).pipe(debounceTime(50), startWith(true), map(() => document.hasFocus()), distinctUntilChanged(), shareReplay(1));
8
- }
9
- getVisibilityObservable() {
10
- return this.visibility$;
11
- }
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: VisibilityService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
13
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: VisibilityService, providedIn: 'root' }); }
14
- }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: VisibilityService, decorators: [{
16
- type: Injectable,
17
- args: [{ providedIn: 'root' }]
18
- }], ctorParameters: () => [] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaWJpbGl0eS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Zpc2liaWxpdHkvdmlzaWJpbGl0eS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFDLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDOztBQUcvRixNQUFNLE9BQU8saUJBQWlCO0lBSTFCO1FBRUksSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQ3BCLFNBQVMsQ0FBQyxRQUFRLEVBQUUsa0JBQWtCLENBQUMsRUFDdkMsU0FBUyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsRUFDMUIsU0FBUyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FDNUIsQ0FBQyxJQUFJLENBQ0YsWUFBWSxDQUFDLEVBQUUsQ0FBQyxFQUNoQixTQUFTLENBQUMsSUFBSSxDQUFDLEVBQ2YsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUM5QixvQkFBb0IsRUFBRSxFQUN0QixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2pCLENBQUM7SUFDTixDQUFDO0lBRU0sdUJBQXVCO1FBRTFCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDOzhHQXRCUSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQURMLE1BQU07OzJGQUNsQixpQkFBaUI7a0JBRDdCLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7ZnJvbUV2ZW50LCBtZXJnZSwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBWaXNpYmlsaXR5U2VydmljZVxue1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdmlzaWJpbGl0eSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgICBjb25zdHJ1Y3RvcigpXG4gICAge1xuICAgICAgICB0aGlzLnZpc2liaWxpdHkkID0gbWVyZ2UoXG4gICAgICAgICAgICBmcm9tRXZlbnQoZG9jdW1lbnQsICd2aXNpYmlsaXR5Y2hhbmdlJyksXG4gICAgICAgICAgICBmcm9tRXZlbnQod2luZG93LCAnZm9jdXMnKSxcbiAgICAgICAgICAgIGZyb21FdmVudCh3aW5kb3csICdibHVyJylcbiAgICAgICAgKS5waXBlKFxuICAgICAgICAgICAgZGVib3VuY2VUaW1lKDUwKSxcbiAgICAgICAgICAgIHN0YXJ0V2l0aCh0cnVlKSxcbiAgICAgICAgICAgIG1hcCgoKSA9PiBkb2N1bWVudC5oYXNGb2N1cygpKSxcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgICBzaGFyZVJlcGxheSgxKSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0VmlzaWJpbGl0eU9ic2VydmFibGUoKTogT2JzZXJ2YWJsZTxib29sZWFuPlxuICAgIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmlzaWJpbGl0eSQ7XG4gICAgfVxufVxuIl19