@koalarx/ui 13.2.4 → 13.2.7

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.
@@ -26,6 +26,7 @@ export * from './lib/services/api-requester/helpers/error/koala.not-found.error'
26
26
  export * from './lib/services/api-requester/helpers/error/koala.success.error';
27
27
  export * from './lib/services/api-requester/helpers/error/koala.unhautorized.error';
28
28
  export * from './lib/services/api-requester/helpers/service/koala.request-header.helper';
29
+ export * from './lib/services/api-requester/koala.api-requester.cache';
29
30
  export * from './lib/services/request/koala.request.service';
30
31
  export * from './lib/services/loader/koala.loader.service';
31
32
  export * from './lib/services/token/koala.token.service';
@@ -33,4 +34,4 @@ export * from './lib/services/openid/koala.oauth2.service';
33
34
  export * from './lib/services/openid/koala.oauth.config';
34
35
  //#endregion
35
36
  export * from './lib/ngx-koala.module';
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxzQkFBc0I7QUFDdEIsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxZQUFZO0FBRVosa0JBQWtCO0FBQ2xCLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsWUFBWTtBQUVaLG9CQUFvQjtBQUNwQixjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYyw2REFBNkQsQ0FBQztBQUM1RSxjQUFjLCtEQUErRCxDQUFDO0FBQzlFLGNBQWMsZ0VBQWdFLENBQUM7QUFDL0UsY0FBYyxrRUFBa0UsQ0FBQztBQUNqRixjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMscUVBQXFFLENBQUM7QUFDcEYsY0FBYywwRUFBMEUsQ0FBQztBQUN6RixjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsMENBQTBDLENBQUM7QUFDekQsWUFBWTtBQUVaLGNBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyNyZWdpb24gW0NPTVBPTkVOVFNdXG5leHBvcnQgKiBmcm9tICcuL2xpYi9sb2FkZXIvbG9hZGVyLWJhci1wYWdlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9sb2FkZXIvbG9hZGVyLWJhci1wYWdlLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9sb2FkZXIvbG9hZGVyLWNvbmZpZy5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbG9hZGVyL2xvYWRlci1iYXItcGFnZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGFnZS9ub3RpZmljYXRpb25zL2tvYWxhLm5vdGlmaWNhdGlvbi5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGFnZS9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGFnZS9rb2FsYS1sYW5ndWFnZS5oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZW52aXJvbm1lbnRzL2tvYWxhRW52aXJvbm1lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvb3BlbmlkL2tvYWxhLW9hdXRoMi1jb25maWcuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BhZ2Uva29hbGEudXNlci1tZW51LW9wdGlvbnMuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BhZ2Uva29hbGEtcGFnZS1wYWxsZXQtY29sb3JzLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wYWdlL3BhZ2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BhZ2Uva29hbGEucGFnZS5tb2R1bGUnO1xuLy8jZW5kcmVnaW9uXG5cbi8vI3JlZ2lvbiBbUk9VVEVSXVxuZXhwb3J0ICogZnJvbSAnLi9saWIvcm91dGVyL2tvYWxhLnBhcmFtZXRlci1oYXNoLWxvY2F0aW9uLXN0YXRlZ3knO1xuLy8jZW5kcmVnaW9uXG5cbi8vI3JlZ2lvbiBbU0VSVklDRVNdXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9hcGktcmVxdWVzdGVyL2tvYWxhLmFwaS1yZXF1ZXN0ZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9hcGktcmVxdWVzdGVyL2tvYWxhLmFwaS1yZXF1ZXN0ZXIuYmFzZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9hcGktcmVxdWVzdGVyL2ZhY3Rvcnkva29hbGEucmVzcG9uc2UuZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9hcGktcmVxdWVzdGVyL2hlbHBlcnMvZXJyb3Iva29hbGEuY2xpZW50LmVycm9yJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2FwaS1yZXF1ZXN0ZXIvaGVscGVycy9lcnJvci9rb2FsYS5lcnJvcnMuaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2FwaS1yZXF1ZXN0ZXIvaGVscGVycy9lcnJvci9rb2FsYS5ub3QtZm91bmQuZXJyb3InO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvYXBpLXJlcXVlc3Rlci9oZWxwZXJzL2Vycm9yL2tvYWxhLnN1Y2Nlc3MuZXJyb3InO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvYXBpLXJlcXVlc3Rlci9oZWxwZXJzL2Vycm9yL2tvYWxhLnVuaGF1dG9yaXplZC5lcnJvcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9hcGktcmVxdWVzdGVyL2hlbHBlcnMvc2VydmljZS9rb2FsYS5yZXF1ZXN0LWhlYWRlci5oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvcmVxdWVzdC9rb2FsYS5yZXF1ZXN0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvbG9hZGVyL2tvYWxhLmxvYWRlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3Rva2VuL2tvYWxhLnRva2VuLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvb3BlbmlkL2tvYWxhLm9hdXRoMi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL29wZW5pZC9rb2FsYS5vYXV0aC5jb25maWcnO1xuLy8jZW5kcmVnaW9uXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL25neC1rb2FsYS5tb2R1bGUnO1xuIl19
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxzQkFBc0I7QUFDdEIsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxZQUFZO0FBRVosa0JBQWtCO0FBQ2xCLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsWUFBWTtBQUVaLG9CQUFvQjtBQUNwQixjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYyw2REFBNkQsQ0FBQztBQUM1RSxjQUFjLCtEQUErRCxDQUFDO0FBQzlFLGNBQWMsZ0VBQWdFLENBQUM7QUFDL0UsY0FBYyxrRUFBa0UsQ0FBQztBQUNqRixjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMscUVBQXFFLENBQUM7QUFDcEYsY0FBYywwRUFBMEUsQ0FBQztBQUN6RixjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxZQUFZO0FBRVosY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiBbQ09NUE9ORU5UU11cbmV4cG9ydCAqIGZyb20gJy4vbGliL2xvYWRlci9sb2FkZXItYmFyLXBhZ2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xvYWRlci9sb2FkZXItYmFyLXBhZ2UuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xvYWRlci9sb2FkZXItY29uZmlnLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9sb2FkZXIvbG9hZGVyLWJhci1wYWdlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wYWdlL25vdGlmaWNhdGlvbnMva29hbGEubm90aWZpY2F0aW9uLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wYWdlL25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wYWdlL2tvYWxhLWxhbmd1YWdlLmhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9lbnZpcm9ubWVudHMva29hbGFFbnZpcm9ubWVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9vcGVuaWQva29hbGEtb2F1dGgyLWNvbmZpZy5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGFnZS9rb2FsYS51c2VyLW1lbnUtb3B0aW9ucy5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGFnZS9rb2FsYS1wYWdlLXBhbGxldC1jb2xvcnMuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BhZ2UvcGFnZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGFnZS9rb2FsYS5wYWdlLm1vZHVsZSc7XG4vLyNlbmRyZWdpb25cblxuLy8jcmVnaW9uIFtST1VURVJdXG5leHBvcnQgKiBmcm9tICcuL2xpYi9yb3V0ZXIva29hbGEucGFyYW1ldGVyLWhhc2gtbG9jYXRpb24tc3RhdGVneSc7XG4vLyNlbmRyZWdpb25cblxuLy8jcmVnaW9uIFtTRVJWSUNFU11cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2FwaS1yZXF1ZXN0ZXIva29hbGEuYXBpLXJlcXVlc3Rlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2FwaS1yZXF1ZXN0ZXIva29hbGEuYXBpLXJlcXVlc3Rlci5iYXNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2FwaS1yZXF1ZXN0ZXIvZmFjdG9yeS9rb2FsYS5yZXNwb25zZS5mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2FwaS1yZXF1ZXN0ZXIvaGVscGVycy9lcnJvci9rb2FsYS5jbGllbnQuZXJyb3InO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvYXBpLXJlcXVlc3Rlci9oZWxwZXJzL2Vycm9yL2tvYWxhLmVycm9ycy5oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvYXBpLXJlcXVlc3Rlci9oZWxwZXJzL2Vycm9yL2tvYWxhLm5vdC1mb3VuZC5lcnJvcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9hcGktcmVxdWVzdGVyL2hlbHBlcnMvZXJyb3Iva29hbGEuc3VjY2Vzcy5lcnJvcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9hcGktcmVxdWVzdGVyL2hlbHBlcnMvZXJyb3Iva29hbGEudW5oYXV0b3JpemVkLmVycm9yJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2FwaS1yZXF1ZXN0ZXIvaGVscGVycy9zZXJ2aWNlL2tvYWxhLnJlcXVlc3QtaGVhZGVyLmhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9hcGktcmVxdWVzdGVyL2tvYWxhLmFwaS1yZXF1ZXN0ZXIuY2FjaGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvcmVxdWVzdC9rb2FsYS5yZXF1ZXN0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvbG9hZGVyL2tvYWxhLmxvYWRlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3Rva2VuL2tvYWxhLnRva2VuLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvb3BlbmlkL2tvYWxhLm9hdXRoMi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL29wZW5pZC9rb2FsYS5vYXV0aC5jb25maWcnO1xuLy8jZW5kcmVnaW9uXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL25neC1rb2FsYS5tb2R1bGUnO1xuIl19
@@ -1,21 +1,24 @@
1
1
  import { koala } from "@koalarx/utils";
2
2
  import { BehaviorSubject } from "rxjs";
3
3
  import { KoalaEnvironment } from "../../environments/koalaEnvironment";
4
+ import { KoalaApiRequesterCache } from "./koala.api-requester.cache";
5
+ import { map } from "rxjs/operators";
4
6
  export class KoalaApiRequesterBase {
5
- constructor(koalaService, endpoint, environmentNameToEndpointApi = 'endpointApi', isMockup = false) {
7
+ constructor(koalaService, endpoint, enableCache = false, environmentNameToEndpointApi = 'endpointApi', isMockup = false) {
6
8
  this.koalaService = koalaService;
7
9
  this.endpoint = endpoint;
10
+ this.enableCache = enableCache;
8
11
  koalaService.apiUrl = KoalaEnvironment.environment?.[environmentNameToEndpointApi];
9
12
  koalaService.isMockup = isMockup;
10
13
  }
11
14
  getAll(filter) {
12
- return this.koalaService.request('get', this.endpoint, this.getParams(filter));
15
+ return this.request('get', this.endpoint, this.getParams(filter));
13
16
  }
14
17
  getById(id) {
15
- return this.koalaService.request('get', this.endpoint + '/' + id);
18
+ return this.request('get', this.endpoint + '/' + id);
16
19
  }
17
20
  getBySomething(something) {
18
- return this.koalaService.request('get', this.endpoint + '/' + something);
21
+ return this.request('get', this.endpoint + '/' + something);
19
22
  }
20
23
  save(data, id) {
21
24
  return this.koalaService.request((id ? 'put' : 'post'), `${this.endpoint}${(id ? `/${id}` : '')}`, data);
@@ -59,5 +62,21 @@ export class KoalaApiRequesterBase {
59
62
  }
60
63
  return filter ?? null;
61
64
  }
65
+ request(method, url, data = {}) {
66
+ this.startCache(url);
67
+ return this.koalaService
68
+ .request(method, url, data)
69
+ .pipe(map(response => {
70
+ if (this.enableCache)
71
+ KoalaApiRequesterCache.setDataInCache(url, response);
72
+ return response;
73
+ }));
74
+ }
75
+ startCache(endpoint) {
76
+ if (this.enableCache && KoalaApiRequesterCache.hasCache(endpoint)) {
77
+ return KoalaApiRequesterCache.getCacheAsObservable(endpoint);
78
+ }
79
+ KoalaApiRequesterCache.createCache(endpoint);
80
+ }
62
81
  }
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia29hbGEuYXBpLXJlcXVlc3Rlci5iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3NlcnZpY2VzL2FwaS1yZXF1ZXN0ZXIva29hbGEuYXBpLXJlcXVlc3Rlci5iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3ZDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXZFLE1BQU0sT0FBZ0IscUJBQXFCO0lBRXpDLFlBQ1ksWUFBc0MsRUFDdEMsUUFBZ0IsRUFDMUIsNEJBQTRCLEdBQUcsYUFBYSxFQUM1QyxRQUFRLEdBQUcsS0FBSztRQUhOLGlCQUFZLEdBQVosWUFBWSxDQUEwQjtRQUN0QyxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBSTFCLFlBQVksQ0FBQyxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUNuRixZQUFZLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUNuQyxDQUFDO0lBRU0sTUFBTSxDQUFDLE1BQW1DO1FBQy9DLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQWEsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzdGLENBQUM7SUFFTSxPQUFPLENBQUMsRUFBVTtRQUN2QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFhLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRU0sY0FBYyxDQUFPLFNBQWM7UUFDeEMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBTyxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLEdBQUcsU0FBUyxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUVNLElBQUksQ0FBQyxJQUFjLEVBQUUsRUFBVztRQUNyQyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUM5QixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFDckIsR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUN6QyxJQUFJLENBQ0wsQ0FBQztJQUNKLENBQUM7SUFFTSxNQUFNLENBQUMsRUFBVTtRQUN0QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUF5QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUE7SUFDOUYsQ0FBQztJQUVNLEtBQUssQ0FBQyxjQUFjO1FBQ3pCLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRU0sS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFtQztRQUN4RCxJQUFJLE1BQU0sR0FBRyxFQUFTLENBQUM7UUFDdkIsSUFBSSxNQUFNLFlBQVksZUFBZSxFQUFFO1lBQ3JDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUNqRDthQUFNO1lBQ0wsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQ3JDO1FBQ0QsSUFDRSxNQUFNO1lBQ04sTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUM7WUFDN0IsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUM7WUFDOUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUM7WUFDOUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUM7WUFDN0IsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFDL0I7WUFDQSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQzdDLElBQ0UsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssS0FBSztvQkFDdkMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxJQUFJLEVBQ2pDO29CQUNBLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDO2lCQUMvQjtZQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxLQUFLLENBQUMsRUFBRSxDQUFDO2lCQUNiLE1BQU0sRUFBRTtpQkFDUixLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztpQkFDcEIsS0FBSyxDQUFDO2dCQUNMLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtnQkFDakIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO2dCQUNuQixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7Z0JBQ25CLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTthQUNsQixDQUFDO2lCQUNELFFBQVEsRUFBRSxDQUFDO1NBQ2Y7UUFFRCxPQUFPLE1BQU0sSUFBSSxJQUFJLENBQUM7SUFDeEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsga29hbGEgfSBmcm9tIFwiQGtvYWxhcngvdXRpbHNcIjtcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBLb2FsYUFwaVJlcXVlc3RlclNlcnZpY2UgfSBmcm9tIFwiLi9rb2FsYS5hcGktcmVxdWVzdGVyLnNlcnZpY2VcIjtcbmltcG9ydCB7IEtvYWxhUmVzcG9uc2VJbnRlcmZhY2UgfSBmcm9tIFwiLi9oZWxwZXJzL2Vycm9yL2tvYWxhLmVycm9ycy5oZWxwZXJcIjtcbmltcG9ydCB7IEtvYWxhRW52aXJvbm1lbnQgfSBmcm9tIFwiLi4vLi4vZW52aXJvbm1lbnRzL2tvYWxhRW52aXJvbm1lbnRcIjtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEtvYWxhQXBpUmVxdWVzdGVyQmFzZTxFbnRpdHlUeXBlLCBHZXRBbGxUeXBlLCBEYXRhVHlwZT4ge1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQga29hbGFTZXJ2aWNlOiBLb2FsYUFwaVJlcXVlc3RlclNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGVuZHBvaW50OiBzdHJpbmcsXG4gICAgZW52aXJvbm1lbnROYW1lVG9FbmRwb2ludEFwaSA9ICdlbmRwb2ludEFwaScsXG4gICAgaXNNb2NrdXAgPSBmYWxzZVxuICApIHtcbiAgICBrb2FsYVNlcnZpY2UuYXBpVXJsID0gS29hbGFFbnZpcm9ubWVudC5lbnZpcm9ubWVudD8uW2Vudmlyb25tZW50TmFtZVRvRW5kcG9pbnRBcGldO1xuICAgIGtvYWxhU2VydmljZS5pc01vY2t1cCA9IGlzTW9ja3VwO1xuICB9XG5cbiAgcHVibGljIGdldEFsbChmaWx0ZXI/OiBCZWhhdmlvclN1YmplY3Q8YW55PiB8IGFueSkge1xuICAgIHJldHVybiB0aGlzLmtvYWxhU2VydmljZS5yZXF1ZXN0PEdldEFsbFR5cGU+KCdnZXQnLCB0aGlzLmVuZHBvaW50LCB0aGlzLmdldFBhcmFtcyhmaWx0ZXIpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRCeUlkKGlkOiBudW1iZXIpIHtcbiAgICByZXR1cm4gdGhpcy5rb2FsYVNlcnZpY2UucmVxdWVzdDxFbnRpdHlUeXBlPignZ2V0JywgdGhpcy5lbmRwb2ludCArICcvJyArIGlkKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRCeVNvbWV0aGluZzxUeXBlPihzb21ldGhpbmc6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmtvYWxhU2VydmljZS5yZXF1ZXN0PFR5cGU+KCdnZXQnLCB0aGlzLmVuZHBvaW50ICsgJy8nICsgc29tZXRoaW5nKTtcbiAgfVxuXG4gIHB1YmxpYyBzYXZlKGRhdGE6IERhdGFUeXBlLCBpZD86IG51bWJlcikge1xuICAgIHJldHVybiB0aGlzLmtvYWxhU2VydmljZS5yZXF1ZXN0PEtvYWxhUmVzcG9uc2VJbnRlcmZhY2U+KFxuICAgICAgKGlkID8gJ3B1dCcgOiAncG9zdCcpLFxuICAgICAgYCR7dGhpcy5lbmRwb2ludH0keyhpZCA/IGAvJHtpZH1gIDogJycpfWAsXG4gICAgICBkYXRhXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGUoaWQ6IG51bWJlcikge1xuICAgIHJldHVybiB0aGlzLmtvYWxhU2VydmljZS5yZXF1ZXN0PEtvYWxhUmVzcG9uc2VJbnRlcmZhY2U+KCdkZWxldGUnLCB0aGlzLmVuZHBvaW50ICsgJy8nICsgaWQpXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY2FuY2VsUmVxdWVzdHMoKSB7XG4gICAgYXdhaXQgdGhpcy5rb2FsYVNlcnZpY2UuY2FuY2VsUmVxdWVzdHMoKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRQYXJhbXMocGFyYW1zPzogQmVoYXZpb3JTdWJqZWN0PGFueT4gfCBhbnkpIHtcbiAgICBsZXQgZmlsdGVyID0ge30gYXMgYW55O1xuICAgIGlmIChwYXJhbXMgaW5zdGFuY2VvZiBCZWhhdmlvclN1YmplY3QpIHtcbiAgICAgIE9iamVjdC5hc3NpZ24oZmlsdGVyLCBwYXJhbXM/LmdldFZhbHVlKCkgPz8ge30pO1xuICAgIH0gZWxzZSB7XG4gICAgICBPYmplY3QuYXNzaWduKGZpbHRlciwgcGFyYW1zID8/IHt9KTtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgZmlsdGVyICYmXG4gICAgICBmaWx0ZXIuaGFzT3duUHJvcGVydHkoJ3NvcnQnKSAmJlxuICAgICAgZmlsdGVyLmhhc093blByb3BlcnR5KCdvcmRlcicpICYmXG4gICAgICBmaWx0ZXIuaGFzT3duUHJvcGVydHkoJ2xpbWl0JykgJiZcbiAgICAgIGZpbHRlci5oYXNPd25Qcm9wZXJ0eSgncGFnZScpICYmXG4gICAgICBmaWx0ZXIuaGFzT3duUHJvcGVydHkoJ3BhcmFtcycpXG4gICAgKSB7XG4gICAgICBPYmplY3Qua2V5cyhmaWx0ZXIucGFyYW1zKS5mb3JFYWNoKGluZGV4TmFtZSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBgJHtmaWx0ZXIucGFyYW1zW2luZGV4TmFtZV19YCA9PT0gJ05hTicgfHxcbiAgICAgICAgICBmaWx0ZXIucGFyYW1zW2luZGV4TmFtZV0gPT09IG51bGxcbiAgICAgICAgKSB7XG4gICAgICAgICAgZmlsdGVyLnBhcmFtc1tpbmRleE5hbWVdID0gJyc7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGtvYWxhKHt9KVxuICAgICAgICAub2JqZWN0KClcbiAgICAgICAgLm1lcmdlKGZpbHRlci5wYXJhbXMpXG4gICAgICAgIC5tZXJnZSh7XG4gICAgICAgICAgc29ydDogZmlsdGVyLnNvcnQsXG4gICAgICAgICAgb3JkZXI6IGZpbHRlci5vcmRlcixcbiAgICAgICAgICBsaW1pdDogZmlsdGVyLmxpbWl0LFxuICAgICAgICAgIHBhZ2U6IGZpbHRlci5wYWdlXG4gICAgICAgIH0pXG4gICAgICAgIC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIHJldHVybiBmaWx0ZXIgPz8gbnVsbDtcbiAgfVxufVxuIl19
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia29hbGEuYXBpLXJlcXVlc3Rlci5iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3NlcnZpY2VzL2FwaS1yZXF1ZXN0ZXIva29hbGEuYXBpLXJlcXVlc3Rlci5iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBR25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxNQUFNLE9BQWdCLHFCQUFxQjtJQUV6QyxZQUNZLFlBQXNDLEVBQ3RDLFFBQWdCLEVBQ2hCLGNBQXVCLEtBQUssRUFDdEMsNEJBQTRCLEdBQUcsYUFBYSxFQUM1QyxRQUFRLEdBQUcsS0FBSztRQUpOLGlCQUFZLEdBQVosWUFBWSxDQUEwQjtRQUN0QyxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2hCLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtRQUl0QyxZQUFZLENBQUMsTUFBTSxHQUFHLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDbkYsWUFBWSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDbkMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxNQUFtQztRQUMvQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQWEsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFTSxPQUFPLENBQUMsRUFBVTtRQUN2QixPQUFPLElBQUksQ0FBQyxPQUFP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QUFNLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQzthQUM3QixJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ25CLElBQUksSUFBSSxDQUFDLFdBQVc7Z0JBQUUsc0JBQXNCLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUMzRSxPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFTyxVQUFVLENBQUMsUUFBZ0I7UUFDakMsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNqRSxPQUFPLHNCQUFzQixDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzlEO1FBQ0Qsc0JBQXNCLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQy9DLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGtvYWxhIH0gZnJvbSBcIkBrb2FsYXJ4L3V0aWxzXCI7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgQXBpUmVxdWVzdGVyVHlwZSwgS29hbGFBcGlSZXF1ZXN0ZXJTZXJ2aWNlIH0gZnJvbSBcIi4va29hbGEuYXBpLXJlcXVlc3Rlci5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBLb2FsYVJlc3BvbnNlSW50ZXJmYWNlIH0gZnJvbSBcIi4vaGVscGVycy9lcnJvci9rb2FsYS5lcnJvcnMuaGVscGVyXCI7XG5pbXBvcnQgeyBLb2FsYUVudmlyb25tZW50IH0gZnJvbSBcIi4uLy4uL2Vudmlyb25tZW50cy9rb2FsYUVudmlyb25tZW50XCI7XG5pbXBvcnQgeyBLb2FsYUFwaVJlcXVlc3RlckNhY2hlIH0gZnJvbSBcIi4va29hbGEuYXBpLXJlcXVlc3Rlci5jYWNoZVwiO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBLb2FsYUFwaVJlcXVlc3RlckJhc2U8RW50aXR5VHlwZSwgR2V0QWxsVHlwZSwgRGF0YVR5cGU+IHtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGtvYWxhU2VydmljZTogS29hbGFBcGlSZXF1ZXN0ZXJTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBlbmRwb2ludDogc3RyaW5nLFxuICAgIHByb3RlY3RlZCBlbmFibGVDYWNoZTogYm9vbGVhbiA9IGZhbHNlLFxuICAgIGVudmlyb25tZW50TmFtZVRvRW5kcG9pbnRBcGkgPSAnZW5kcG9pbnRBcGknLFxuICAgIGlzTW9ja3VwID0gZmFsc2VcbiAgKSB7XG4gICAga29hbGFTZXJ2aWNlLmFwaVVybCA9IEtvYWxhRW52aXJvbm1lbnQuZW52aXJvbm1lbnQ/LltlbnZpcm9ubWVudE5hbWVUb0VuZHBvaW50QXBpXTtcbiAgICBrb2FsYVNlcnZpY2UuaXNNb2NrdXAgPSBpc01vY2t1cDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRBbGwoZmlsdGVyPzogQmVoYXZpb3JTdWJqZWN0PGFueT4gfCBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5yZXF1ZXN0PEdldEFsbFR5cGU+KCdnZXQnLCB0aGlzLmVuZHBvaW50LCB0aGlzLmdldFBhcmFtcyhmaWx0ZXIpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRCeUlkKGlkOiBudW1iZXIpIHtcbiAgICByZXR1cm4gdGhpcy5yZXF1ZXN0PEVudGl0eVR5cGU+KCdnZXQnLCB0aGlzLmVuZHBvaW50ICsgJy8nICsgaWQpO1xuICB9XG5cbiAgcHVibGljIGdldEJ5U29tZXRoaW5nPFR5cGU+KHNvbWV0aGluZzogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMucmVxdWVzdDxUeXBlPignZ2V0JywgdGhpcy5lbmRwb2ludCArICcvJyArIHNvbWV0aGluZyk7XG4gIH1cblxuICBwdWJsaWMgc2F2ZShkYXRhOiBEYXRhVHlwZSwgaWQ/OiBudW1iZXIpIHtcbiAgICByZXR1cm4gdGhpcy5rb2FsYVNlcnZpY2UucmVxdWVzdDxLb2FsYVJlc3BvbnNlSW50ZXJmYWNlPihcbiAgICAgIChpZCA/ICdwdXQnIDogJ3Bvc3QnKSxcbiAgICAgIGAke3RoaXMuZW5kcG9pbnR9JHsoaWQgPyBgLyR7aWR9YCA6ICcnKX1gLFxuICAgICAgZGF0YVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlKGlkOiBudW1iZXIpIHtcbiAgICByZXR1cm4gdGhpcy5rb2FsYVNlcnZpY2UucmVxdWVzdDxLb2FsYVJlc3BvbnNlSW50ZXJmYWNlPignZGVsZXRlJywgdGhpcy5lbmRwb2ludCArICcvJyArIGlkKVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGNhbmNlbFJlcXVlc3RzKCkge1xuICAgIGF3YWl0IHRoaXMua29hbGFTZXJ2aWNlLmNhbmNlbFJlcXVlc3RzKCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0UGFyYW1zKHBhcmFtcz86IEJlaGF2aW9yU3ViamVjdDxhbnk+IHwgYW55KSB7XG4gICAgbGV0IGZpbHRlciA9IHt9IGFzIGFueTtcbiAgICBpZiAocGFyYW1zIGluc3RhbmNlb2YgQmVoYXZpb3JTdWJqZWN0KSB7XG4gICAgICBPYmplY3QuYXNzaWduKGZpbHRlciwgcGFyYW1zPy5nZXRWYWx1ZSgpID8/IHt9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgT2JqZWN0LmFzc2lnbihmaWx0ZXIsIHBhcmFtcyA/PyB7fSk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIGZpbHRlciAmJlxuICAgICAgZmlsdGVyLmhhc093blByb3BlcnR5KCdzb3J0JykgJiZcbiAgICAgIGZpbHRlci5oYXNPd25Qcm9wZXJ0eSgnb3JkZXInKSAmJlxuICAgICAgZmlsdGVyLmhhc093blByb3BlcnR5KCdsaW1pdCcpICYmXG4gICAgICBmaWx0ZXIuaGFzT3duUHJvcGVydHkoJ3BhZ2UnKSAmJlxuICAgICAgZmlsdGVyLmhhc093blByb3BlcnR5KCdwYXJhbXMnKVxuICAgICkge1xuICAgICAgT2JqZWN0LmtleXMoZmlsdGVyLnBhcmFtcykuZm9yRWFjaChpbmRleE5hbWUgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgYCR7ZmlsdGVyLnBhcmFtc1tpbmRleE5hbWVdfWAgPT09ICdOYU4nIHx8XG4gICAgICAgICAgZmlsdGVyLnBhcmFtc1tpbmRleE5hbWVdID09PSBudWxsXG4gICAgICAgICkge1xuICAgICAgICAgIGZpbHRlci5wYXJhbXNbaW5kZXhOYW1lXSA9ICcnO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBrb2FsYSh7fSlcbiAgICAgICAgLm9iamVjdCgpXG4gICAgICAgIC5tZXJnZShmaWx0ZXIucGFyYW1zKVxuICAgICAgICAubWVyZ2Uoe1xuICAgICAgICAgIHNvcnQ6IGZpbHRlci5zb3J0LFxuICAgICAgICAgIG9yZGVyOiBmaWx0ZXIub3JkZXIsXG4gICAgICAgICAgbGltaXQ6IGZpbHRlci5saW1pdCxcbiAgICAgICAgICBwYWdlOiBmaWx0ZXIucGFnZVxuICAgICAgICB9KVxuICAgICAgICAuZ2V0VmFsdWUoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmlsdGVyID8/IG51bGw7XG4gIH1cblxuICBwdWJsaWMgcmVxdWVzdDxUPihtZXRob2Q6IEFwaVJlcXVlc3RlclR5cGUsIHVybDogc3RyaW5nLCBkYXRhOiBhbnkgPSB7fSk6IE9ic2VydmFibGU8VD4ge1xuICAgIHRoaXMuc3RhcnRDYWNoZSh1cmwpO1xuICAgIHJldHVybiB0aGlzLmtvYWxhU2VydmljZVxuICAgICAgICAgICAgICAgLnJlcXVlc3Q8VD4obWV0aG9kLCB1cmwsIGRhdGEpXG4gICAgICAgICAgICAgICAucGlwZShtYXAocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgICBpZiAodGhpcy5lbmFibGVDYWNoZSkgS29hbGFBcGlSZXF1ZXN0ZXJDYWNoZS5zZXREYXRhSW5DYWNoZSh1cmwsIHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGFydENhY2hlKGVuZHBvaW50OiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5lbmFibGVDYWNoZSAmJiBLb2FsYUFwaVJlcXVlc3RlckNhY2hlLmhhc0NhY2hlKGVuZHBvaW50KSkge1xuICAgICAgcmV0dXJuIEtvYWxhQXBpUmVxdWVzdGVyQ2FjaGUuZ2V0Q2FjaGVBc09ic2VydmFibGUoZW5kcG9pbnQpO1xuICAgIH1cbiAgICBLb2FsYUFwaVJlcXVlc3RlckNhY2hlLmNyZWF0ZUNhY2hlKGVuZHBvaW50KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,38 @@
1
+ import { BehaviorSubject, Observable, skipWhile } from "rxjs";
2
+ export class KoalaApiRequesterCache {
3
+ static createCache(name) {
4
+ if (!this.hasCache(name)) {
5
+ this.cache.push({
6
+ name,
7
+ data: new BehaviorSubject(undefined)
8
+ });
9
+ }
10
+ }
11
+ static setDataInCache(name, data) {
12
+ this.getCacheSubject(name)?.next(data);
13
+ }
14
+ static getCacheSubject(name) {
15
+ return this.cache.find(item => item.name === name)?.data;
16
+ }
17
+ static getCacheAsObservable(name) {
18
+ return new Observable(observe => {
19
+ this.getCacheSubject(name)
20
+ .pipe(skipWhile(value => value === undefined))
21
+ .subscribe({
22
+ next: value => {
23
+ observe.next(value);
24
+ observe.complete();
25
+ },
26
+ error: err => {
27
+ observe.error(err);
28
+ observe.complete();
29
+ }
30
+ });
31
+ });
32
+ }
33
+ static hasCache(name) {
34
+ return !!this.getCacheSubject(name);
35
+ }
36
+ }
37
+ KoalaApiRequesterCache.cache = [];
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia29hbGEuYXBpLXJlcXVlc3Rlci5jYWNoZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9zZXJ2aWNlcy9hcGktcmVxdWVzdGVyL2tvYWxhLmFwaS1yZXF1ZXN0ZXIuY2FjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBTzlELE1BQU0sT0FBTyxzQkFBc0I7SUFHMUIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFZO1FBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO2dCQUNkLElBQUk7Z0JBQ0osSUFBSSxFQUFFLElBQUksZUFBZSxDQUFNLFNBQVMsQ0FBQzthQUMxQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFTSxNQUFNLENBQUMsY0FBYyxDQUFDLElBQVksRUFBRSxJQUFTO1FBQ2xELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFTSxNQUFNLENBQUMsZUFBZSxDQUFDLElBQVk7UUFDeEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDO0lBQzNELENBQUM7SUFFTSxNQUFNLENBQUMsb0JBQW9CLENBQUksSUFBWTtRQUNoRCxPQUFPLElBQUksVUFBVSxDQUFJLE9BQU8sQ0FBQyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDO2lCQUNyQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDO2lCQUM3QyxTQUFTLENBQUM7Z0JBQ1QsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFO29CQUNaLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3BCLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDckIsQ0FBQztnQkFDRCxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUU7b0JBQ1gsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDbkIsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNyQixDQUFDO2FBQ0YsQ0FBQyxDQUFDO1FBQ1QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFZO1FBQ2pDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQzs7QUF0Q2MsNEJBQUssR0FBcUIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBza2lwV2hpbGUgfSBmcm9tIFwicnhqc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEtvYWxhQ2FjaGVEYXRhIHtcbiAgbmFtZTogc3RyaW5nO1xuICBkYXRhOiBCZWhhdmlvclN1YmplY3Q8YW55Pjtcbn1cblxuZXhwb3J0IGNsYXNzIEtvYWxhQXBpUmVxdWVzdGVyQ2FjaGUge1xuICBwcml2YXRlIHN0YXRpYyBjYWNoZTogS29hbGFDYWNoZURhdGFbXSA9IFtdO1xuXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlQ2FjaGUobmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLmhhc0NhY2hlKG5hbWUpKSB7XG4gICAgICB0aGlzLmNhY2hlLnB1c2goe1xuICAgICAgICBuYW1lLFxuICAgICAgICBkYXRhOiBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4odW5kZWZpbmVkKVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyBzZXREYXRhSW5DYWNoZShuYW1lOiBzdHJpbmcsIGRhdGE6IGFueSkge1xuICAgIHRoaXMuZ2V0Q2FjaGVTdWJqZWN0KG5hbWUpPy5uZXh0KGRhdGEpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBnZXRDYWNoZVN1YmplY3QobmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGUuZmluZChpdGVtID0+IGl0ZW0ubmFtZSA9PT0gbmFtZSk/LmRhdGE7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldENhY2hlQXNPYnNlcnZhYmxlPFQ+KG5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxUPihvYnNlcnZlID0+IHtcbiAgICAgIHRoaXMuZ2V0Q2FjaGVTdWJqZWN0KG5hbWUpXG4gICAgICAgICAgLnBpcGUoc2tpcFdoaWxlKHZhbHVlID0+IHZhbHVlID09PSB1bmRlZmluZWQpKVxuICAgICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogdmFsdWUgPT4ge1xuICAgICAgICAgICAgICBvYnNlcnZlLm5leHQodmFsdWUpO1xuICAgICAgICAgICAgICBvYnNlcnZlLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgICAgICAgIG9ic2VydmUuZXJyb3IoZXJyKTtcbiAgICAgICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBoYXNDYWNoZShuYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gISF0aGlzLmdldENhY2hlU3ViamVjdChuYW1lKTtcbiAgfVxufVxuIl19
@@ -16,7 +16,7 @@ import * as i2$1 from '@angular/router';
16
16
  import { NavigationError, NavigationEnd, NavigationCancel, NavigationStart, RouterModule } from '@angular/router';
17
17
  import * as i7 from '@angular/material/core';
18
18
  import { __awaiter } from 'tslib';
19
- import { BehaviorSubject, interval, Observable } from 'rxjs';
19
+ import { BehaviorSubject, interval, Observable, skipWhile } from 'rxjs';
20
20
  import jwt from 'jwt-decode';
21
21
  import * as i4 from '@koalarx/ui/menu';
22
22
  import { menuStateSubject } from '@koalarx/ui/menu';
@@ -1273,22 +1273,62 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
1273
1273
  args: [{ providedIn: "root" }]
1274
1274
  }], ctorParameters: function () { return [{ type: i1$2.HttpClient }, { type: KoalaOAuth2Service }]; } });
1275
1275
 
1276
+ class KoalaApiRequesterCache {
1277
+ static createCache(name) {
1278
+ if (!this.hasCache(name)) {
1279
+ this.cache.push({
1280
+ name,
1281
+ data: new BehaviorSubject(undefined)
1282
+ });
1283
+ }
1284
+ }
1285
+ static setDataInCache(name, data) {
1286
+ var _a;
1287
+ (_a = this.getCacheSubject(name)) === null || _a === void 0 ? void 0 : _a.next(data);
1288
+ }
1289
+ static getCacheSubject(name) {
1290
+ var _a;
1291
+ return (_a = this.cache.find(item => item.name === name)) === null || _a === void 0 ? void 0 : _a.data;
1292
+ }
1293
+ static getCacheAsObservable(name) {
1294
+ return new Observable(observe => {
1295
+ this.getCacheSubject(name)
1296
+ .pipe(skipWhile(value => value === undefined))
1297
+ .subscribe({
1298
+ next: value => {
1299
+ observe.next(value);
1300
+ observe.complete();
1301
+ },
1302
+ error: err => {
1303
+ observe.error(err);
1304
+ observe.complete();
1305
+ }
1306
+ });
1307
+ });
1308
+ }
1309
+ static hasCache(name) {
1310
+ return !!this.getCacheSubject(name);
1311
+ }
1312
+ }
1313
+ KoalaApiRequesterCache.cache = [];
1314
+
1276
1315
  class KoalaApiRequesterBase {
1277
- constructor(koalaService, endpoint, environmentNameToEndpointApi = 'endpointApi', isMockup = false) {
1316
+ constructor(koalaService, endpoint, enableCache = false, environmentNameToEndpointApi = 'endpointApi', isMockup = false) {
1278
1317
  var _a;
1279
1318
  this.koalaService = koalaService;
1280
1319
  this.endpoint = endpoint;
1320
+ this.enableCache = enableCache;
1281
1321
  koalaService.apiUrl = (_a = KoalaEnvironment.environment) === null || _a === void 0 ? void 0 : _a[environmentNameToEndpointApi];
1282
1322
  koalaService.isMockup = isMockup;
1283
1323
  }
1284
1324
  getAll(filter) {
1285
- return this.koalaService.request('get', this.endpoint, this.getParams(filter));
1325
+ return this.request('get', this.endpoint, this.getParams(filter));
1286
1326
  }
1287
1327
  getById(id) {
1288
- return this.koalaService.request('get', this.endpoint + '/' + id);
1328
+ return this.request('get', this.endpoint + '/' + id);
1289
1329
  }
1290
1330
  getBySomething(something) {
1291
- return this.koalaService.request('get', this.endpoint + '/' + something);
1331
+ return this.request('get', this.endpoint + '/' + something);
1292
1332
  }
1293
1333
  save(data, id) {
1294
1334
  return this.koalaService.request((id ? 'put' : 'post'), `${this.endpoint}${(id ? `/${id}` : '')}`, data);
@@ -1337,6 +1377,22 @@ class KoalaApiRequesterBase {
1337
1377
  return filter !== null && filter !== void 0 ? filter : null;
1338
1378
  });
1339
1379
  }
1380
+ request(method, url, data = {}) {
1381
+ this.startCache(url);
1382
+ return this.koalaService
1383
+ .request(method, url, data)
1384
+ .pipe(map(response => {
1385
+ if (this.enableCache)
1386
+ KoalaApiRequesterCache.setDataInCache(url, response);
1387
+ return response;
1388
+ }));
1389
+ }
1390
+ startCache(endpoint) {
1391
+ if (this.enableCache && KoalaApiRequesterCache.hasCache(endpoint)) {
1392
+ return KoalaApiRequesterCache.getCacheAsObservable(endpoint);
1393
+ }
1394
+ KoalaApiRequesterCache.createCache(endpoint);
1395
+ }
1340
1396
  }
1341
1397
 
1342
1398
  class KoalaRequestService {
@@ -1435,5 +1491,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
1435
1491
  * Generated bundle index. Do not edit.
1436
1492
  */
1437
1493
 
1438
- export { KOALA_LOADER_SUBJECT, KoalaApiRequesterBase, KoalaApiRequesterService, KoalaClientError, KoalaEnvironment, KoalaErrorsHelper, KoalaLanguageHelper, KoalaLoaderService, KoalaNotFoundError, KoalaOAuth2Service, KoalaOauthConfig, KoalaPageModule, KoalaParameterHashLocationStrategy, KoalaRequestHeaderHelper, KoalaRequestService, KoalaResponseFactory, KoalaSuccessError, KoalaTokenService, KoalaUnhautorizedError, LoaderBarPageComponent, NgxKoalaModule, NotificationComponent, PageComponent };
1494
+ export { KOALA_LOADER_SUBJECT, KoalaApiRequesterBase, KoalaApiRequesterCache, KoalaApiRequesterService, KoalaClientError, KoalaEnvironment, KoalaErrorsHelper, KoalaLanguageHelper, KoalaLoaderService, KoalaNotFoundError, KoalaOAuth2Service, KoalaOauthConfig, KoalaPageModule, KoalaParameterHashLocationStrategy, KoalaRequestHeaderHelper, KoalaRequestService, KoalaResponseFactory, KoalaSuccessError, KoalaTokenService, KoalaUnhautorizedError, LoaderBarPageComponent, NgxKoalaModule, NotificationComponent, PageComponent };
1439
1495
  //# sourceMappingURL=koalarx-ui-core.mjs.map