@rosoftlab/core 1.0.0-alpha-0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (98) hide show
  1. package/README.md +27 -0
  2. package/esm2022/lib/base-components/base-form-edit.component.mjs +239 -0
  3. package/esm2022/lib/base-components/field-error-display/field-error-display.component.mjs +15 -0
  4. package/esm2022/lib/base-components/index.mjs +4 -0
  5. package/esm2022/lib/base-components/page-not-found/page-not-found.component.mjs +15 -0
  6. package/esm2022/lib/base-components/under-construction/under-construction.component.mjs +12 -0
  7. package/esm2022/lib/configurations.mjs +8 -0
  8. package/esm2022/lib/constants/symbols.mjs +3 -0
  9. package/esm2022/lib/converters/date/date.converter.mjs +20 -0
  10. package/esm2022/lib/core.mjs +8 -0
  11. package/esm2022/lib/decorators/attribute.decorator.mjs +87 -0
  12. package/esm2022/lib/decorators/base-datastore-config.decorator.mjs +7 -0
  13. package/esm2022/lib/decorators/base-model-config.decorator.mjs +10 -0
  14. package/esm2022/lib/decorators/custom.type.decorator.mjs +11 -0
  15. package/esm2022/lib/directives/translated-content.directive.mjs +97 -0
  16. package/esm2022/lib/directives/translated-element.directive.mjs +20 -0
  17. package/esm2022/lib/grid-layout-format.enum.mjs +15 -0
  18. package/esm2022/lib/index.mjs +26 -0
  19. package/esm2022/lib/interceptors/cache.interceptor.mjs +52 -0
  20. package/esm2022/lib/interceptors/index.mjs +2 -0
  21. package/esm2022/lib/interfaces/attribute-decorator-options.interface.mjs +2 -0
  22. package/esm2022/lib/interfaces/datastore-config.interface.mjs +2 -0
  23. package/esm2022/lib/interfaces/model-config.interface.mjs +2 -0
  24. package/esm2022/lib/interfaces/overrides.interface.mjs +2 -0
  25. package/esm2022/lib/interfaces/property-converter.interface.mjs +2 -0
  26. package/esm2022/lib/models/base-meta.model.mjs +7 -0
  27. package/esm2022/lib/models/base-query-data.mjs +13 -0
  28. package/esm2022/lib/models/base.model.mjs +158 -0
  29. package/esm2022/lib/models/error-response.model.mjs +9 -0
  30. package/esm2022/lib/models/rule.mjs +6 -0
  31. package/esm2022/lib/pipes/Nl2brPipe.pipe.mjs +21 -0
  32. package/esm2022/lib/pipes/input-error.pipe.mjs +38 -0
  33. package/esm2022/lib/providers.mjs +12 -0
  34. package/esm2022/lib/resolvers/dynamically-class-resolver.mjs +22 -0
  35. package/esm2022/lib/resolvers/dynamically-service-resolver.mjs +22 -0
  36. package/esm2022/lib/resolvers/index.mjs +3 -0
  37. package/esm2022/lib/rsl-base-module.mjs +64 -0
  38. package/esm2022/lib/services/base-datastore.service.mjs +342 -0
  39. package/esm2022/lib/services/base.service.mjs +99 -0
  40. package/esm2022/lib/services/cache.service.mjs +35 -0
  41. package/esm2022/lib/services/datastore.service.mjs +26 -0
  42. package/esm2022/lib/services/dialog.service.mjs +150 -0
  43. package/esm2022/lib/services/index.mjs +6 -0
  44. package/esm2022/lib/services/translate-loader.service.mjs +34 -0
  45. package/esm2022/lib/utils.mjs +27 -0
  46. package/esm2022/lib/validators/pattern-validator.mjs +15 -0
  47. package/esm2022/public-api.mjs +5 -0
  48. package/esm2022/rosoftlab-core.mjs +5 -0
  49. package/fesm2022/rosoftlab-core.mjs +1637 -0
  50. package/fesm2022/rosoftlab-core.mjs.map +1 -0
  51. package/index.d.ts +5 -0
  52. package/lib/base-components/base-form-edit.component.d.ts +56 -0
  53. package/lib/base-components/field-error-display/field-error-display.component.d.ts +7 -0
  54. package/lib/base-components/index.d.ts +3 -0
  55. package/lib/base-components/page-not-found/page-not-found.component.d.ts +8 -0
  56. package/lib/base-components/under-construction/under-construction.component.d.ts +6 -0
  57. package/lib/configurations.d.ts +6 -0
  58. package/lib/constants/symbols.d.ts +1 -0
  59. package/lib/converters/date/date.converter.d.ts +5 -0
  60. package/lib/core.d.ts +7 -0
  61. package/lib/decorators/attribute.decorator.d.ts +3 -0
  62. package/lib/decorators/base-datastore-config.decorator.d.ts +1 -0
  63. package/lib/decorators/base-model-config.decorator.d.ts +1 -0
  64. package/lib/decorators/custom.type.decorator.d.ts +1 -0
  65. package/lib/directives/translated-content.directive.d.ts +21 -0
  66. package/lib/directives/translated-element.directive.d.ts +10 -0
  67. package/lib/grid-layout-format.enum.d.ts +12 -0
  68. package/lib/index.d.ts +25 -0
  69. package/lib/interceptors/cache.interceptor.d.ts +13 -0
  70. package/lib/interceptors/index.d.ts +1 -0
  71. package/lib/interfaces/attribute-decorator-options.interface.d.ts +8 -0
  72. package/lib/interfaces/datastore-config.interface.d.ts +8 -0
  73. package/lib/interfaces/model-config.interface.d.ts +10 -0
  74. package/lib/interfaces/overrides.interface.d.ts +5 -0
  75. package/lib/interfaces/property-converter.interface.d.ts +4 -0
  76. package/lib/models/base-meta.model.d.ts +5 -0
  77. package/lib/models/base-query-data.d.ts +7 -0
  78. package/lib/models/base.model.d.ts +31 -0
  79. package/lib/models/error-response.model.d.ts +17 -0
  80. package/lib/models/rule.d.ts +5 -0
  81. package/lib/pipes/Nl2brPipe.pipe.d.ts +7 -0
  82. package/lib/pipes/input-error.pipe.d.ts +10 -0
  83. package/lib/providers.d.ts +2 -0
  84. package/lib/resolvers/dynamically-class-resolver.d.ts +3 -0
  85. package/lib/resolvers/dynamically-service-resolver.d.ts +3 -0
  86. package/lib/resolvers/index.d.ts +2 -0
  87. package/lib/rsl-base-module.d.ts +13 -0
  88. package/lib/services/base-datastore.service.d.ts +47 -0
  89. package/lib/services/base.service.d.ts +27 -0
  90. package/lib/services/cache.service.d.ts +11 -0
  91. package/lib/services/datastore.service.d.ts +12 -0
  92. package/lib/services/dialog.service.d.ts +21 -0
  93. package/lib/services/index.d.ts +5 -0
  94. package/lib/services/translate-loader.service.d.ts +14 -0
  95. package/lib/utils.d.ts +2 -0
  96. package/lib/validators/pattern-validator.d.ts +4 -0
  97. package/package.json +36 -0
  98. package/public-api.d.ts +1 -0
@@ -0,0 +1,97 @@
1
+ import { ChangeDetectorRef, ContentChildren, Directive, Input, QueryList, Renderer2, ViewContainerRef } from '@angular/core';
2
+ import { TranslateService } from '@ngx-translate/core';
3
+ import { BehaviorSubject, combineLatest, merge } from 'rxjs';
4
+ import { map, switchMap } from 'rxjs/operators';
5
+ import { TranslatedElementDirective } from './translated-element.directive';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@ngx-translate/core";
8
+ const TOKEN_START_DEMARC = '{{';
9
+ const TOKEN_END_DEMARC = '}}';
10
+ // adapted from @kasperlauge's solution in https://github.com/ngx-translate/core/issues/223
11
+ export class TranslatedContentDirective {
12
+ constructor(viewRef, renderer, translateService, changeDetectorRef) {
13
+ this.viewRef = viewRef;
14
+ this.renderer = renderer;
15
+ this.translateService = translateService;
16
+ this.changeDetectorRef = changeDetectorRef;
17
+ this.subs = [];
18
+ }
19
+ ngOnInit() {
20
+ this.rawTranslation = merge(this.translateService.get(this.translationKey), this.translateService.onLangChange.asObservable().pipe(switchMap(() => this.translateService.get(this.translationKey))));
21
+ }
22
+ ngAfterContentInit() {
23
+ // QueryList.changes doesn't re-emit after its initial value, which we have by now
24
+ // BehaviorSubjects re-emit their initial value on subscription, so we get what we need by merging
25
+ // the BehaviorSubject and the QueryList.changes observable
26
+ const elementsSubject = new BehaviorSubject(this.elements.toArray());
27
+ const elementsChanges = merge(elementsSubject, this.elements.changes);
28
+ this.translationData = combineLatest(this.rawTranslation, elementsChanges)
29
+ .pipe(map(([rawTranslation]) => {
30
+ return {
31
+ elements: this.elements.toArray(),
32
+ rawTranslation,
33
+ };
34
+ }));
35
+ this.subs.push(this.translationData.subscribe(this.render.bind(this)));
36
+ }
37
+ render(translationData) {
38
+ if (!translationData.rawTranslation || translationData.rawTranslation === this.translationKey) {
39
+ throw new Error(`No resource matching the key '${this.translationKey}'`);
40
+ }
41
+ while (this.viewRef.element.nativeElement.firstChild) {
42
+ this.renderer.removeChild(this.viewRef.element.nativeElement, this.viewRef.element.nativeElement.firstChild);
43
+ }
44
+ let lastTokenEnd = 0;
45
+ while (lastTokenEnd < translationData.rawTranslation.length) {
46
+ const tokenStartDemarc = translationData.rawTranslation.indexOf(TOKEN_START_DEMARC, lastTokenEnd);
47
+ if (tokenStartDemarc < 0) {
48
+ break;
49
+ }
50
+ const tokenStart = tokenStartDemarc + TOKEN_START_DEMARC.length;
51
+ const tokenEnd = translationData.rawTranslation.indexOf(TOKEN_END_DEMARC, tokenStart);
52
+ if (tokenEnd < 0) {
53
+ throw new Error(`Encountered unterminated token in translation string '${this.translationKey}'`);
54
+ }
55
+ const tokenEndDemarc = tokenEnd + TOKEN_END_DEMARC.length;
56
+ const precedingText = translationData.rawTranslation.substring(lastTokenEnd, tokenStartDemarc);
57
+ const precedingTextElement = this.renderer.createText(precedingText);
58
+ this.renderer.appendChild(this.viewRef.element.nativeElement, precedingTextElement);
59
+ const elementKey = translationData.rawTranslation.substring(tokenStart, tokenEnd);
60
+ const embeddedElementTemplate = translationData.elements.find(element => element.elementKey === elementKey);
61
+ if (embeddedElementTemplate) {
62
+ const embeddedElementView = embeddedElementTemplate.viewRef.createEmbeddedView(embeddedElementTemplate.templateRef);
63
+ this.renderer.appendChild(this.viewRef.element.nativeElement, embeddedElementView.rootNodes[0]);
64
+ }
65
+ else {
66
+ const missingTokenText = translationData.rawTranslation.substring(tokenStartDemarc, tokenEndDemarc);
67
+ const missingTokenElement = this.renderer.createText(missingTokenText);
68
+ this.renderer.appendChild(this.viewRef.element.nativeElement, missingTokenElement);
69
+ }
70
+ lastTokenEnd = tokenEndDemarc;
71
+ }
72
+ const trailingText = translationData.rawTranslation.substring(lastTokenEnd);
73
+ const trailingTextElement = this.renderer.createText(trailingText);
74
+ this.renderer.appendChild(this.viewRef.element.nativeElement, trailingTextElement);
75
+ // in case the rendering happens outside of a change detection event, this ensures that any translations in the
76
+ // embedded elements are rendered
77
+ this.changeDetectorRef.detectChanges();
78
+ }
79
+ ngOnDestroy() {
80
+ this.subs.forEach(sub => sub.unsubscribe());
81
+ }
82
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: TranslatedContentDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.Renderer2 }, { token: i1.TranslateService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
83
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.1", type: TranslatedContentDirective, selector: "[appTranslatedContent]", inputs: { translationKey: ["appTranslatedContent", "translationKey"] }, queries: [{ propertyName: "elements", predicate: TranslatedElementDirective }], ngImport: i0 }); }
84
+ }
85
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: TranslatedContentDirective, decorators: [{
86
+ type: Directive,
87
+ args: [{
88
+ selector: '[appTranslatedContent]',
89
+ }]
90
+ }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.Renderer2 }, { type: i1.TranslateService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { translationKey: [{
91
+ type: Input,
92
+ args: ['appTranslatedContent']
93
+ }], elements: [{
94
+ type: ContentChildren,
95
+ args: [TranslatedElementDirective]
96
+ }] } });
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlZC1jb250ZW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jvc29mdGxhYi9jb3JlL3NyYy9saWIvZGlyZWN0aXZlcy90cmFuc2xhdGVkLWNvbnRlbnQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDYSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUMvRCxLQUFLLEVBQXFCLFNBQVMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQ2pFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBNEIsTUFBTSxNQUFNLENBQUM7QUFDdkYsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7O0FBTzVFLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDO0FBQ2hDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO0FBRTlCLDJGQUEyRjtBQUkzRixNQUFNLE9BQU8sMEJBQTBCO0lBV3JDLFlBQ1UsT0FBeUIsRUFDekIsUUFBbUIsRUFDbkIsZ0JBQWtDLEVBQ2xDLGlCQUFvQztRQUhwQyxZQUFPLEdBQVAsT0FBTyxDQUFrQjtRQUN6QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQVJ0QyxTQUFJLEdBQW1CLEVBQUUsQ0FBQztJQVM5QixDQUFDO0lBRUUsUUFBUTtRQUNiLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUN6QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxD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SSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFFbkYsK0dBQStHO1FBQy9HLGlDQUFpQztRQUNqQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7SUFFekMsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUM5QyxDQUFDOzhHQXBHVSwwQkFBMEI7a0dBQTFCLDBCQUEwQiwrSkFJcEIsMEJBQTBCOzsyRkFKaEMsMEJBQTBCO2tCQUh0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx3QkFBd0I7aUJBQ25DOzhMQUdnQyxjQUFjO3NCQUE1QyxLQUFLO3VCQUFDLHNCQUFzQjtnQkFHckIsUUFBUTtzQkFEZixlQUFlO3VCQUFDLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb250ZW50Q2hpbGRyZW4sIERpcmVjdGl2ZSxcbiAgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBRdWVyeUxpc3QsIFJlbmRlcmVyMiwgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWVyZ2UsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVkRWxlbWVudERpcmVjdGl2ZSB9IGZyb20gJy4vdHJhbnNsYXRlZC1lbGVtZW50LmRpcmVjdGl2ZSc7XG5cbmludGVyZmFjZSBUcmFuc2xhdGlvbkRhdGEge1xuICBlbGVtZW50czogVHJhbnNsYXRlZEVsZW1lbnREaXJlY3RpdmVbXTtcbiAgcmF3VHJhbnNsYXRpb246IHN0cmluZztcbn1cblxuY29uc3QgVE9LRU5fU1RBUlRfREVNQVJDID0gJ3t7JztcbmNvbnN0IFRPS0VOX0VORF9ERU1BUkMgPSAnfX0nO1xuXG4vLyBhZGFwdGVkIGZyb20gQGthc3BlcmxhdWdlJ3Mgc29sdXRpb24gaW4gaHR0cHM6Ly9naXRodWIuY29tL25neC10cmFuc2xhdGUvY29yZS9pc3N1ZXMvMjIzXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYXBwVHJhbnNsYXRlZENvbnRlbnRdJyxcbn0pXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRlZENvbnRlbnREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJDb250ZW50SW5pdCB7XG5cbiAgQElucHV0KCdhcHBUcmFuc2xhdGVkQ29udGVudCcpIHRyYW5zbGF0aW9uS2V5OiBzdHJpbmc7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihUcmFuc2xhdGVkRWxlbWVudERpcmVjdGl2ZSlcbiAgcHJpdmF0ZSBlbGVtZW50czogUXVlcnlMaXN0PFRyYW5zbGF0ZWRFbGVtZW50RGlyZWN0aXZlPjtcblxuICBwcml2YXRlIHN1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XG4gIHByaXZhdGUgcmF3VHJhbnNsYXRpb246IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgcHJpdmF0ZSB0cmFuc2xhdGlvbkRhdGE6IE9ic2VydmFibGU8VHJhbnNsYXRpb25EYXRhPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHZpZXdSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgKSB7IH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yYXdUcmFuc2xhdGlvbiA9IG1lcmdlKFxuICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldCh0aGlzLnRyYW5zbGF0aW9uS2V5KSxcbiAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5vbkxhbmdDaGFuZ2UuYXNPYnNlcnZhYmxlKCkucGlwZShzd2l0Y2hNYXAoKCkgPT4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldCh0aGlzLnRyYW5zbGF0aW9uS2V5KSkpXG4gICAgKTtcbiAgfVxuXG5cbiAgcHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAvLyBRdWVyeUxpc3QuY2hhbmdlcyBkb2Vzbid0IHJlLWVtaXQgYWZ0ZXIgaXRzIGluaXRpYWwgdmFsdWUsIHdoaWNoIHdlIGhhdmUgYnkgbm93XG4gICAgLy8gQmVoYXZpb3JTdWJqZWN0cyByZS1lbWl0IHRoZWlyIGluaXRpYWwgdmFsdWUgb24gc3Vic2NyaXB0aW9uLCBzbyB3ZSBnZXQgd2hhdCB3ZSBuZWVkIGJ5IG1lcmdpbmdcbiAgICAvLyB0aGUgQmVoYXZpb3JTdWJqZWN0IGFuZCB0aGUgUXVlcnlMaXN0LmNoYW5nZXMgb2JzZXJ2YWJsZVxuICAgIGNvbnN0IGVsZW1lbnRzU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcy5lbGVtZW50cy50b0FycmF5KCkpO1xuICAgIGNvbnN0IGVsZW1lbnRzQ2hhbmdlcyA9IG1lcmdlKGVsZW1lbnRzU3ViamVjdCwgdGhpcy5lbGVtZW50cy5jaGFuZ2VzKTtcblxuICAgIHRoaXMudHJhbnNsYXRpb25EYXRhID0gY29tYmluZUxhdGVzdCh0aGlzLnJhd1RyYW5zbGF0aW9uLCBlbGVtZW50c0NoYW5nZXMpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChbcmF3VHJhbnNsYXRpb25dKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVsZW1lbnRzOiB0aGlzLmVsZW1lbnRzLnRvQXJyYXkoKSxcbiAgICAgICAgICAgIHJhd1RyYW5zbGF0aW9uLFxuICAgICAgICAgIH07XG4gICAgICAgIH0pXG4gICAgICApO1xuXG4gICAgdGhpcy5zdWJzLnB1c2godGhpcy50cmFuc2xhdGlvbkRhdGEuc3Vic2NyaWJlKHRoaXMucmVuZGVyLmJpbmQodGhpcykpKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyKHRyYW5zbGF0aW9uRGF0YTogVHJhbnNsYXRpb25EYXRhKTogdm9pZCB7XG5cbiAgICBpZiAoIXRyYW5zbGF0aW9uRGF0YS5yYXdUcmFuc2xhdGlvbiB8fCB0cmFuc2xhdGlvbkRhdGEucmF3VHJhbnNsYXRpb24gPT09IHRoaXMudHJhbnNsYXRpb25LZXkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gcmVzb3VyY2UgbWF0Y2hpbmcgdGhlIGtleSAnJHt0aGlzLnRyYW5zbGF0aW9uS2V5fSdgKTtcbiAgICB9XG5cbiAgICB3aGlsZSAodGhpcy52aWV3UmVmLmVsZW1lbnQubmF0aXZlRWxlbWVudC5maXJzdENoaWxkKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKHRoaXMudmlld1JlZi5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIHRoaXMudmlld1JlZi5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZmlyc3RDaGlsZCk7XG4gICAgfVxuXG4gICAgbGV0IGxhc3RUb2tlbkVuZCA9IDA7XG4gICAgd2hpbGUgKGxhc3RUb2tlbkVuZCA8IHRyYW5zbGF0aW9uRGF0YS5yYXdUcmFuc2xhdGlvbi5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHRva2VuU3RhcnREZW1hcmMgPSB0cmFuc2xhdGlvbkRhdGEucmF3VHJhbnNsYXRpb24uaW5kZXhPZihUT0tFTl9TVEFSVF9ERU1BUkMsIGxhc3RUb2tlbkVuZCk7XG4gICAgICBpZiAodG9rZW5TdGFydERlbWFyYyA8IDApIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjb25zdCB0b2tlblN0YXJ0ID0gdG9rZW5TdGFydERlbWFyYyArIFRPS0VOX1NUQVJUX0RFTUFSQy5sZW5ndGg7XG4gICAgICBjb25zdCB0b2tlbkVuZCA9IHRyYW5zbGF0aW9uRGF0YS5yYXdUcmFuc2xhdGlvbi5pbmRleE9mKFRPS0VOX0VORF9ERU1BUkMsIHRva2VuU3RhcnQpO1xuICAgICAgaWYgKHRva2VuRW5kIDwgMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEVuY291bnRlcmVkIHVudGVybWluYXRlZCB0b2tlbiBpbiB0cmFuc2xhdGlvbiBzdHJpbmcgJyR7dGhpcy50cmFuc2xhdGlvbktleX0nYCk7XG4gICAgICB9XG4gICAgICBjb25zdCB0b2tlbkVuZERlbWFyYyA9IHRva2VuRW5kICsgVE9LRU5fRU5EX0RFTUFSQy5sZW5ndGg7XG5cbiAgICAgIGNvbnN0IHByZWNlZGluZ1RleHQgPSB0cmFuc2xhdGlvbkRhdGEucmF3VHJhbnNsYXRpb24uc3Vic3RyaW5nKGxhc3RUb2tlbkVuZCwgdG9rZW5TdGFydERlbWFyYyk7XG4gICAgICBjb25zdCBwcmVjZWRpbmdUZXh0RWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlVGV4dChwcmVjZWRpbmdUZXh0KTtcbiAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy52aWV3UmVmLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgcHJlY2VkaW5nVGV4dEVsZW1lbnQpO1xuXG4gICAgICBjb25zdCBlbGVtZW50S2V5ID0gdHJhbnNsYXRpb25EYXRhLnJhd1RyYW5zbGF0aW9uLnN1YnN0cmluZyh0b2tlblN0YXJ0LCB0b2tlbkVuZCk7XG4gICAgICBjb25zdCBlbWJlZGRlZEVsZW1lbnRUZW1wbGF0ZSA9IHRyYW5zbGF0aW9uRGF0YS5lbGVtZW50cy5maW5kKGVsZW1lbnQgPT4gZWxlbWVudC5lbGVtZW50S2V5ID09PSBlbGVtZW50S2V5KTtcbiAgICAgIGlmIChlbWJlZGRlZEVsZW1lbnRUZW1wbGF0ZSkge1xuICAgICAgICBjb25zdCBlbWJlZGRlZEVsZW1lbnRWaWV3ID0gZW1iZWRkZWRFbGVtZW50VGVtcGxhdGUudmlld1JlZi5jcmVhdGVFbWJlZGRlZFZpZXcoZW1iZWRkZWRFbGVtZW50VGVtcGxhdGUudGVtcGxhdGVSZWYpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMudmlld1JlZi5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIGVtYmVkZGVkRWxlbWVudFZpZXcucm9vdE5vZGVzWzBdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IG1pc3NpbmdUb2tlblRleHQgPSB0cmFuc2xhdGlvbkRhdGEucmF3VHJhbnNsYXRpb24uc3Vic3RyaW5nKHRva2VuU3RhcnREZW1hcmMsIHRva2VuRW5kRGVtYXJjKTtcbiAgICAgICAgY29uc3QgbWlzc2luZ1Rva2VuRWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlVGV4dChtaXNzaW5nVG9rZW5UZXh0KTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLnZpZXdSZWYuZWxlbWVudC5uYXRpdmVFbGVtZW50LCBtaXNzaW5nVG9rZW5FbGVtZW50KTtcbiAgICAgIH1cblxuICAgICAgbGFzdFRva2VuRW5kID0gdG9rZW5FbmREZW1hcmM7XG4gICAgfVxuXG4gICAgY29uc3QgdHJhaWxpbmdUZXh0ID0gdHJhbnNsYXRpb25EYXRhLnJhd1RyYW5zbGF0aW9uLnN1YnN0cmluZyhsYXN0VG9rZW5FbmQpO1xuICAgIGNvbnN0IHRyYWlsaW5nVGV4dEVsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZVRleHQodHJhaWxpbmdUZXh0KTtcblxuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy52aWV3UmVmLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgdHJhaWxpbmdUZXh0RWxlbWVudCk7XG5cbiAgICAvLyBpbiBjYXNlIHRoZSByZW5kZXJpbmcgaGFwcGVucyBvdXRzaWRlIG9mIGEgY2hhbmdlIGRldGVjdGlvbiBldmVudCwgdGhpcyBlbnN1cmVzIHRoYXQgYW55IHRyYW5zbGF0aW9ucyBpbiB0aGVcbiAgICAvLyBlbWJlZGRlZCBlbGVtZW50cyBhcmUgcmVuZGVyZWRcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcblxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vicy5mb3JFYWNoKHN1YiA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XG4gIH1cbn0iXX0=
@@ -0,0 +1,20 @@
1
+ import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class TranslatedElementDirective {
4
+ constructor(viewRef, templateRef) {
5
+ this.viewRef = viewRef;
6
+ this.templateRef = templateRef;
7
+ }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: TranslatedElementDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
9
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.1", type: TranslatedElementDirective, selector: "[translatedElement]", inputs: { elementKey: ["translatedElement", "elementKey"] }, ngImport: i0 }); }
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: TranslatedElementDirective, decorators: [{
12
+ type: Directive,
13
+ args: [{
14
+ selector: '[translatedElement]',
15
+ }]
16
+ }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }]; }, propDecorators: { elementKey: [{
17
+ type: Input,
18
+ args: ['translatedElement']
19
+ }] } });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlZC1lbGVtZW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jvc29mdGxhYi9jb3JlL3NyYy9saWIvZGlyZWN0aXZlcy90cmFuc2xhdGVkLWVsZW1lbnQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLaEYsTUFBTSxPQUFPLDBCQUEwQjtJQUtyQyxZQUNrQixPQUF5QixFQUN6QixXQUE2QjtRQUQ3QixZQUFPLEdBQVAsT0FBTyxDQUFrQjtRQUN6QixnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7SUFDNUMsQ0FBQzs4R0FSTywwQkFBMEI7a0dBQTFCLDBCQUEwQjs7MkZBQTFCLDBCQUEwQjtrQkFIdEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUscUJBQXFCO2lCQUNoQztpSUFJUSxVQUFVO3NCQURoQixLQUFLO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3RyYW5zbGF0ZWRFbGVtZW50XScsXG59KVxuZXhwb3J0IGNsYXNzIFRyYW5zbGF0ZWRFbGVtZW50RGlyZWN0aXZlIHtcblxuICBASW5wdXQoJ3RyYW5zbGF0ZWRFbGVtZW50JylcbiAgcHVibGljIGVsZW1lbnRLZXk6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgdmlld1JlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwdWJsaWMgcmVhZG9ubHkgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4sXG4gICkge31cbn0iXX0=
@@ -0,0 +1,15 @@
1
+ export var GridLayoutFormat;
2
+ (function (GridLayoutFormat) {
3
+ GridLayoutFormat[GridLayoutFormat["none"] = 0] = "none";
4
+ GridLayoutFormat[GridLayoutFormat["date"] = 1] = "date";
5
+ GridLayoutFormat[GridLayoutFormat["number"] = 2] = "number";
6
+ GridLayoutFormat[GridLayoutFormat["percent"] = 3] = "percent";
7
+ GridLayoutFormat[GridLayoutFormat["picture"] = 4] = "picture";
8
+ })(GridLayoutFormat || (GridLayoutFormat = {}));
9
+ export var CellTextAlign;
10
+ (function (CellTextAlign) {
11
+ CellTextAlign["left"] = "left";
12
+ CellTextAlign["center"] = "center";
13
+ CellTextAlign["right"] = "right";
14
+ })(CellTextAlign || (CellTextAlign = {}));
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1sYXlvdXQtZm9ybWF0LmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yb3NvZnRsYWIvY29yZS9zcmMvbGliL2dyaWQtbGF5b3V0LWZvcm1hdC5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGdCQU1YO0FBTkQsV0FBWSxnQkFBZ0I7SUFDeEIsdURBQUksQ0FBQTtJQUNKLHVEQUFJLENBQUE7SUFDSiwyREFBTSxDQUFBO0lBQ04sNkRBQU8sQ0FBQTtJQUNQLDZEQUFPLENBQUE7QUFDWCxDQUFDLEVBTlcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQU0zQjtBQUVELE1BQU0sQ0FBTixJQUFZLGFBSVg7QUFKRCxXQUFZLGFBQWE7SUFDckIsOEJBQWEsQ0FBQTtJQUNiLGtDQUFpQixDQUFBO0lBQ2pCLGdDQUFlLENBQUE7QUFDbkIsQ0FBQyxFQUpXLGFBQWEsS0FBYixhQUFhLFFBSXhCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gR3JpZExheW91dEZvcm1hdCB7XG4gICAgbm9uZSxcbiAgICBkYXRlLFxuICAgIG51bWJlcixcbiAgICBwZXJjZW50LFxuICAgIHBpY3R1cmVcbn1cblxuZXhwb3J0IGVudW0gQ2VsbFRleHRBbGlnbiB7XG4gICAgbGVmdCA9ICdsZWZ0JyxcbiAgICBjZW50ZXIgPSAnY2VudGVyJyxcbiAgICByaWdodCA9ICdyaWdodCcsXG59Il19
@@ -0,0 +1,26 @@
1
+ export * from './base-components';
2
+ export * from './decorators/attribute.decorator';
3
+ export * from './decorators/base-datastore-config.decorator';
4
+ export * from './decorators/base-model-config.decorator';
5
+ export * from './decorators/custom.type.decorator';
6
+ export * from './directives/translated-content.directive';
7
+ export * from './directives/translated-element.directive';
8
+ export * from './interceptors';
9
+ export * from './interfaces/attribute-decorator-options.interface';
10
+ export * from './interfaces/datastore-config.interface';
11
+ export * from './interfaces/model-config.interface';
12
+ export * from './interfaces/overrides.interface';
13
+ export * from './interfaces/property-converter.interface';
14
+ export * from './models/base-meta.model';
15
+ export * from './models/base-query-data';
16
+ export * from './models/base.model';
17
+ export * from './models/error-response.model';
18
+ export * from './models/rule';
19
+ export * from './pipes/Nl2brPipe.pipe';
20
+ export * from './pipes/input-error.pipe';
21
+ export * from './providers';
22
+ export * from './resolvers';
23
+ export * from './rsl-base-module';
24
+ export * from './services/base.service';
25
+ export * from './validators/pattern-validator';
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yb3NvZnRsYWIvY29yZS9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsZ0NBQWdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Jhc2UtY29tcG9uZW50cyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZGVjb3JhdG9ycy9hdHRyaWJ1dGUuZGVjb3JhdG9yJztcclxuZXhwb3J0ICogZnJvbSAnLi9kZWNvcmF0b3JzL2Jhc2UtZGF0YXN0b3JlLWNvbmZpZy5kZWNvcmF0b3InO1xyXG5leHBvcnQgKiBmcm9tICcuL2RlY29yYXRvcnMvYmFzZS1tb2RlbC1jb25maWcuZGVjb3JhdG9yJztcclxuZXhwb3J0ICogZnJvbSAnLi9kZWNvcmF0b3JzL2N1c3RvbS50eXBlLmRlY29yYXRvcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy90cmFuc2xhdGVkLWNvbnRlbnQuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL3RyYW5zbGF0ZWQtZWxlbWVudC5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2ludGVyY2VwdG9ycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9hdHRyaWJ1dGUtZGVjb3JhdG9yLW9wdGlvbnMuaW50ZXJmYWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL2RhdGFzdG9yZS1jb25maWcuaW50ZXJmYWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL21vZGVsLWNvbmZpZy5pbnRlcmZhY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvb3ZlcnJpZGVzLmludGVyZmFjZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9wcm9wZXJ0eS1jb252ZXJ0ZXIuaW50ZXJmYWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvYmFzZS1tZXRhLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvYmFzZS1xdWVyeS1kYXRhJztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvYmFzZS5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL2Vycm9yLXJlc3BvbnNlLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvcnVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvTmwyYnJQaXBlLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL2lucHV0LWVycm9yLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3Byb3ZpZGVycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcmVzb2x2ZXJzJztcclxuZXhwb3J0ICogZnJvbSAnLi9yc2wtYmFzZS1tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2Jhc2Uuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdmFsaWRhdG9ycy9wYXR0ZXJuLXZhbGlkYXRvcic7XHJcblxyXG4iXX0=
@@ -0,0 +1,52 @@
1
+ import { HttpResponse } from '@angular/common/http';
2
+ import { Inject, Injectable } from '@angular/core';
3
+ import { of } from 'rxjs';
4
+ import { tap } from 'rxjs/operators';
5
+ import { CacheService } from '../services/cache.service';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../services/cache.service";
8
+ export class CacheInterceptor {
9
+ constructor(expirationTime, cacheService) {
10
+ this.expirationTime = expirationTime;
11
+ this.cacheService = cacheService;
12
+ this.cache = new Map();
13
+ }
14
+ intercept(request, next) {
15
+ const bypassCache = request.params.get('bypassCache') || false;
16
+ if (bypassCache || request.method !== 'GET') {
17
+ return next.handle(request);
18
+ }
19
+ if (!bypassCache) {
20
+ const cachedResponse = this.cacheService.get(request.urlWithParams);
21
+ if (cachedResponse) {
22
+ return of(cachedResponse.clone());
23
+ //return cachedResponse;
24
+ }
25
+ }
26
+ return next.handle(request).pipe(tap((event) => {
27
+ if (event instanceof HttpResponse) {
28
+ this.cacheService.set(request.urlWithParams, event.clone(), this.expirationTime);
29
+ }
30
+ }));
31
+ // const cachedItem = this.cache.get(request.url);
32
+ // if (cachedItem && cachedItem.expiration > Date.now()) {
33
+ // return of(cachedItem.response.clone());
34
+ // }
35
+ // return next.handle(request).pipe(
36
+ // tap(event => {
37
+ // if (event instanceof HttpResponse) {
38
+ // this.cache.set(request.url, { response: event.clone(), expiration: Date.now() + this.expirationTime });
39
+ // }
40
+ // })
41
+ // );
42
+ }
43
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: CacheInterceptor, deps: [{ token: 'CACHE_EXPIRATION_TIME' }, { token: i1.CacheService }], target: i0.ɵɵFactoryTarget.Injectable }); }
44
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: CacheInterceptor }); }
45
+ }
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: CacheInterceptor, decorators: [{
47
+ type: Injectable
48
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
49
+ type: Inject,
50
+ args: ['CACHE_EXPIRATION_TIME']
51
+ }] }, { type: i1.CacheService }]; } });
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yb3NvZnRsYWIvY29yZS9zcmMvbGliL2ludGVyY2VwdG9ycy9jYWNoZS5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXdELFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFHLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7O0FBR3pELE1BQU0sT0FBTyxnQkFBZ0I7SUFHM0IsWUFBcUQsY0FBc0IsRUFDakUsWUFBMEI7UUFEaUIsbUJBQWMsR0FBZCxjQUFjLENBQVE7UUFDakUsaUJBQVksR0FBWixZQUFZLENBQWM7UUFINUIsVUFBSyxHQUFxRSxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBR3BELENBQUM7SUFFekMsU0FBUyxDQUFDLE9BQXlCLEVBQUUsSUFBaUI7UUFDcEQsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksS0FBSyxDQUFDO1FBRS9ELElBQUksV0FBVyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssS0FBSyxFQUFFO1lBQzNDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUM3QjtRQUVELElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDaEIsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3BFLElBQUksY0FBYyxFQUFFO2dCQUNsQixPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFDbEMsd0JBQXdCO2FBQ3pCO1NBQ0Y7UUFFRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUM5QixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNaLElBQUksS0FBSyxZQUFZLFlBQVksRUFBRTtnQkFDakMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2FBQ2xGO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUVGLGtEQUFrRDtRQUVsRCwwREFBMEQ7UUFDMUQsNENBQTRDO1FBQzVDLElBQUk7UUFFSixvQ0FBb0M7UUFDcEMsbUJBQW1CO1FBQ25CLDJDQUEyQztRQUMzQyxnSEFBZ0g7UUFDaEgsUUFBUTtRQUNSLE9BQU87UUFDUCxLQUFLO0lBQ1AsQ0FBQzs4R0ExQ1UsZ0JBQWdCLGtCQUdQLHVCQUF1QjtrSEFIaEMsZ0JBQWdCOzsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVOzswQkFJSSxNQUFNOzJCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFdmVudCwgSHR0cEhhbmRsZXIsIEh0dHBJbnRlcmNlcHRvciwgSHR0cFJlcXVlc3QsIEh0dHBSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ2FjaGVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY2FjaGUuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDYWNoZUludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcclxuICBwcml2YXRlIGNhY2hlOiBNYXA8c3RyaW5nLCB7IHJlc3BvbnNlOiBIdHRwUmVzcG9uc2U8YW55PiwgZXhwaXJhdGlvbjogbnVtYmVyIH0+ID0gbmV3IE1hcCgpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihASW5qZWN0KCdDQUNIRV9FWFBJUkFUSU9OX1RJTUUnKSBwcml2YXRlIGV4cGlyYXRpb25UaW1lOiBudW1iZXIsXHJcbiAgICBwcml2YXRlIGNhY2hlU2VydmljZTogQ2FjaGVTZXJ2aWNlKSB7IH1cclxuXHJcbiAgaW50ZXJjZXB0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xyXG4gICAgY29uc3QgYnlwYXNzQ2FjaGUgPSByZXF1ZXN0LnBhcmFtcy5nZXQoJ2J5cGFzc0NhY2hlJykgfHwgZmFsc2U7XHJcblxyXG4gICAgaWYgKGJ5cGFzc0NhY2hlIHx8IHJlcXVlc3QubWV0aG9kICE9PSAnR0VUJykge1xyXG4gICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxdWVzdCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFieXBhc3NDYWNoZSkge1xyXG4gICAgICBjb25zdCBjYWNoZWRSZXNwb25zZSA9IHRoaXMuY2FjaGVTZXJ2aWNlLmdldChyZXF1ZXN0LnVybFdpdGhQYXJhbXMpO1xyXG4gICAgICBpZiAoY2FjaGVkUmVzcG9uc2UpIHtcclxuICAgICAgICByZXR1cm4gb2YoY2FjaGVkUmVzcG9uc2UuY2xvbmUoKSk7XHJcbiAgICAgICAgLy9yZXR1cm4gY2FjaGVkUmVzcG9uc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxdWVzdCkucGlwZShcclxuICAgICAgdGFwKChldmVudCkgPT4ge1xyXG4gICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSkge1xyXG4gICAgICAgICAgdGhpcy5jYWNoZVNlcnZpY2Uuc2V0KHJlcXVlc3QudXJsV2l0aFBhcmFtcywgZXZlbnQuY2xvbmUoKSwgdGhpcy5leHBpcmF0aW9uVGltZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuXHJcbiAgICAvLyBjb25zdCBjYWNoZWRJdGVtID0gdGhpcy5jYWNoZS5nZXQocmVxdWVzdC51cmwpO1xyXG5cclxuICAgIC8vIGlmIChjYWNoZWRJdGVtICYmIGNhY2hlZEl0ZW0uZXhwaXJhdGlvbiA+IERhdGUubm93KCkpIHtcclxuICAgIC8vICAgcmV0dXJuIG9mKGNhY2hlZEl0ZW0ucmVzcG9uc2UuY2xvbmUoKSk7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgLy8gcmV0dXJuIG5leHQuaGFuZGxlKHJlcXVlc3QpLnBpcGUoXHJcbiAgICAvLyAgIHRhcChldmVudCA9PiB7XHJcbiAgICAvLyAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKSB7XHJcbiAgICAvLyAgICAgICB0aGlzLmNhY2hlLnNldChyZXF1ZXN0LnVybCwgeyByZXNwb25zZTogZXZlbnQuY2xvbmUoKSwgZXhwaXJhdGlvbjogRGF0ZS5ub3coKSArIHRoaXMuZXhwaXJhdGlvblRpbWUgfSk7XHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gICB9KVxyXG4gICAgLy8gKTtcclxuICB9XHJcbn0iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './cache.interceptor';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yb3NvZnRsYWIvY29yZS9zcmMvbGliL2ludGVyY2VwdG9ycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jYWNoZS5pbnRlcmNlcHRvcic7XHJcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlLWRlY29yYXRvci1vcHRpb25zLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jvc29mdGxhYi9jb3JlL3NyYy9saWIvaW50ZXJmYWNlcy9hdHRyaWJ1dGUtZGVjb3JhdG9yLW9wdGlvbnMuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm9wZXJ0eUNvbnZlcnRlciB9IGZyb20gJy4vcHJvcGVydHktY29udmVydGVyLmludGVyZmFjZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEF0dHJpYnV0ZURlY29yYXRvck9wdGlvbnMge1xyXG4gIHNlcmlhbGl6ZWROYW1lPzogc3RyaW5nO1xyXG4gIGNvbnZlcnRlcj86IFByb3BlcnR5Q29udmVydGVyO1xyXG4gIHJlcXVpcmVkPzogYm9vbGVhbjtcclxuICBkZWZhdWx0VmFsdWU/OiBhbnk7XHJcbiAgZm9ybVN1Ykdyb3VwPzogc3RyaW5nXHJcbn1cclxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXN0b3JlLWNvbmZpZy5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yb3NvZnRsYWIvY29yZS9zcmMvbGliL2ludGVyZmFjZXMvZGF0YXN0b3JlLWNvbmZpZy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJyaWRlcyB9IGZyb20gJy4vb3ZlcnJpZGVzLmludGVyZmFjZSc7XG5cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhc3RvcmVDb25maWcge1xuICBhcGlWZXJzaW9uPzogc3RyaW5nO1xuICBiYXNlVXJsPzogc3RyaW5nO1xuICBtb2RlbHM/OiBvYmplY3Q7XG4gIG92ZXJyaWRlcz86IE92ZXJyaWRlcztcbiAgbW9jaz86IGJvb2xlYW47XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtY29uZmlnLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jvc29mdGxhYi9jb3JlL3NyYy9saWIvaW50ZXJmYWNlcy9tb2RlbC1jb25maWcuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlTWV0YU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2Jhc2UtbWV0YS5tb2RlbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9kZWxDb25maWcge1xuICB0eXBlOiBzdHJpbmc7XG4gIGFwaVZlcnNpb24/OiBzdHJpbmc7XG4gIGJhc2VVcmw/OiBzdHJpbmc7XG4gIG1vZGVsRW5kcG9pbnRVcmw/OiBzdHJpbmc7XG4gIG1ldGE/OiBCYXNlTWV0YU1vZGVsO1xuICBmb3JtVGl0bGU6IHN0cmluZztcbiAgYnlwYXNzQ2FjaGU/OiBib29sZWFuO1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcnJpZGVzLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jvc29mdGxhYi9jb3JlL3NyYy9saWIvaW50ZXJmYWNlcy9vdmVycmlkZXMuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIE92ZXJyaWRlcyB7XG4gIGdldERpcnR5QXR0cmlidXRlcz86IChhdHRyaWJ1dGVkTWV0YWRhdGE6IGFueSwgbW9kZWw/OiBhbnkpID0+IG9iamVjdDtcbiAgZ2V0QWxsQXR0cmlidXRlcz86IChhdHRyaWJ1dGVkTWV0YWRhdGE6IGFueSwgbW9kZWw/OiBhbnkpID0+IG9iamVjdDtcbiAgdG9RdWVyeVN0cmluZz86IChwYXJhbXM6IGFueSkgPT4gc3RyaW5nO1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktY29udmVydGVyLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jvc29mdGxhYi9jb3JlL3NyYy9saWIvaW50ZXJmYWNlcy9wcm9wZXJ0eS1jb252ZXJ0ZXIuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFByb3BlcnR5Q29udmVydGVyIHtcclxuICBtYXNrKHZhbHVlOiBhbnkpOiBhbnk7XHJcbiAgdW5tYXNrKHZhbHVlOiBhbnkpOiBhbnk7XHJcbn1cclxuIl19
@@ -0,0 +1,7 @@
1
+ export class BaseMetaModel {
2
+ constructor(response) {
3
+ this.links = response.links || [];
4
+ this.meta = response.meta;
5
+ }
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1tZXRhLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcm9zb2Z0bGFiL2NvcmUvc3JjL2xpYi9tb2RlbHMvYmFzZS1tZXRhLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxhQUFhO0lBSXhCLFlBQVksUUFBYTtRQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztJQUM1QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgQmFzZU1ldGFNb2RlbCB7XHJcbiAgcHVibGljIGxpbmtzOiBBcnJheTxhbnk+O1xyXG4gIHB1YmxpYyBtZXRhOiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHJlc3BvbnNlOiBhbnkpIHtcclxuICAgIHRoaXMubGlua3MgPSByZXNwb25zZS5saW5rcyB8fCBbXTtcclxuICAgIHRoaXMubWV0YSA9IHJlc3BvbnNlLm1ldGE7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,13 @@
1
+ export class BaseQueryData {
2
+ constructor(jsonApiModels, metaData) {
3
+ this.jsonApiModels = jsonApiModels;
4
+ this.metaData = metaData;
5
+ }
6
+ getModels() {
7
+ return this.jsonApiModels;
8
+ }
9
+ getMeta() {
10
+ return this.metaData;
11
+ }
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1xdWVyeS1kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcm9zb2Z0bGFiL2NvcmUvc3JjL2xpYi9tb2RlbHMvYmFzZS1xdWVyeS1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE1BQU0sT0FBTyxhQUFhO0lBQ3hCLFlBQXNCLGFBQXVCLEVBQVksUUFBYztRQUFqRCxrQkFBYSxHQUFiLGFBQWEsQ0FBVTtRQUFZLGFBQVEsR0FBUixRQUFRLENBQU07SUFBSSxDQUFDO0lBRXJFLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUVNLE9BQU87UUFDWixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmV4cG9ydCBjbGFzcyBCYXNlUXVlcnlEYXRhPFQ+IHtcclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQganNvbkFwaU1vZGVsczogQXJyYXk8VD4sIHByb3RlY3RlZCBtZXRhRGF0YT86IGFueSkgeyB9XHJcblxyXG4gIHB1YmxpYyBnZXRNb2RlbHMoKTogVFtdIHtcclxuICAgIHJldHVybiB0aGlzLmpzb25BcGlNb2RlbHM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0TWV0YSgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMubWV0YURhdGE7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,158 @@
1
+ import { Validators } from '@angular/forms';
2
+ import { AttributeMetadata } from '../constants/symbols';
3
+ export class BaseModel {
4
+ // tslint:disable-next-line:variable-name
5
+ constructor(_datastore, data) {
6
+ this._datastore = _datastore;
7
+ if (data) {
8
+ if (data.id) {
9
+ this.id = data.id;
10
+ }
11
+ Object.assign(this, data);
12
+ }
13
+ }
14
+ save(params, headers, customUrl, customBody) {
15
+ const attributesMetadata = this[AttributeMetadata];
16
+ return this._datastore.saveRecord(attributesMetadata, this, params, headers, customUrl, customBody);
17
+ }
18
+ patch(origModel, params, headers, customUrl) {
19
+ const attributesMetadata = this[AttributeMetadata];
20
+ return this._datastore.patchRecord(attributesMetadata, this, origModel, params, headers, customUrl);
21
+ }
22
+ replace(params, headers, customUrl, customBody) {
23
+ const attributesMetadata = this[AttributeMetadata];
24
+ return this._datastore.replaceRecord(attributesMetadata, this, params, headers, customUrl, customBody);
25
+ }
26
+ get attributeMetadata() {
27
+ const attributesMetadata = this[AttributeMetadata];
28
+ return attributesMetadata;
29
+ }
30
+ set attributeMetadata(val) {
31
+ this[AttributeMetadata] = val;
32
+ }
33
+ get hasDirtyAttributes() {
34
+ const attributesMetadata = this[AttributeMetadata];
35
+ let hasDirtyAttributes = false;
36
+ for (const propertyName in attributesMetadata) {
37
+ if (attributesMetadata.hasOwnProperty(propertyName)) {
38
+ const metadata = attributesMetadata[propertyName];
39
+ if (metadata.hasDirtyAttributes) {
40
+ hasDirtyAttributes = true;
41
+ break;
42
+ }
43
+ }
44
+ }
45
+ return hasDirtyAttributes;
46
+ }
47
+ rollbackAttributes() {
48
+ const attributesMetadata = this[AttributeMetadata];
49
+ let metadata;
50
+ for (const propertyName in attributesMetadata) {
51
+ if (attributesMetadata.hasOwnProperty(propertyName)) {
52
+ if (attributesMetadata[propertyName].hasDirtyAttributes) {
53
+ this[propertyName] = attributesMetadata[propertyName].oldValue;
54
+ metadata = {
55
+ hasDirtyAttributes: false,
56
+ newValue: attributesMetadata[propertyName].oldValue,
57
+ oldValue: undefined
58
+ };
59
+ attributesMetadata[propertyName] = metadata;
60
+ }
61
+ }
62
+ }
63
+ this[AttributeMetadata] = attributesMetadata;
64
+ }
65
+ get modelConfig() {
66
+ return Reflect.getMetadata('BaseModelConfig', this.constructor);
67
+ }
68
+ deserializeModel(modelType, data) {
69
+ data = this.transformSerializedNamesToPropertyNames(modelType, data);
70
+ return new modelType(this._datastore, data);
71
+ }
72
+ transformSerializedNamesToPropertyNames(modelType, attributes) {
73
+ const serializedNameToPropertyName = this.getModelPropertyNames(modelType.prototype);
74
+ const properties = {};
75
+ Object.keys(serializedNameToPropertyName).forEach((serializedName) => {
76
+ if (attributes[serializedName] !== null && attributes[serializedName] !== undefined) {
77
+ properties[serializedNameToPropertyName[serializedName]] = attributes[serializedName];
78
+ }
79
+ });
80
+ return properties;
81
+ }
82
+ getModelPropertyNames(model) {
83
+ return Reflect.getMetadata('AttributeMapping', model);
84
+ }
85
+ getModelRequiredPropertyNames(model) {
86
+ return Reflect.getMetadata('AttributeRequired', model);
87
+ }
88
+ getModelDefaultPropertyValues(model) {
89
+ return Reflect.getMetadata('AttributedefaultValue', model);
90
+ }
91
+ getModelSubGroupPropertyNames(model) {
92
+ return Reflect.getMetadata('AttributeformSubGroup', model);
93
+ }
94
+ getFromGroup(fb) {
95
+ const props = Object.keys(this.getModelPropertyNames(this));
96
+ const requiredProps = this.getModelRequiredPropertyNames(this);
97
+ const defaultValues = this.getModelDefaultPropertyValues(this);
98
+ const formSubGroupsValues = this.getModelSubGroupPropertyNames(this);
99
+ const controlsConfig = {};
100
+ const that = this;
101
+ if (props) {
102
+ props.forEach(property => {
103
+ const value = that[property] !== undefined ? that[property] : defaultValues[property];
104
+ const formSubGroup = formSubGroupsValues[property] ?? null;
105
+ if (requiredProps[property]) {
106
+ if (formSubGroup)
107
+ this.getSubFromGroup(fb, controlsConfig, formSubGroup).addControl(property, fb.control(value, Validators.required));
108
+ else
109
+ controlsConfig[property] = [value, Validators.required];
110
+ }
111
+ else {
112
+ if (formSubGroup)
113
+ this.getSubFromGroup(fb, controlsConfig, formSubGroup).addControl(property, fb.control(value));
114
+ else
115
+ controlsConfig[property] = value;
116
+ }
117
+ });
118
+ }
119
+ return fb.group(controlsConfig);
120
+ }
121
+ getSubFromGroup(fb, controlsConfig, subGroup) {
122
+ if (!controlsConfig[subGroup])
123
+ controlsConfig[subGroup] = fb.group({});
124
+ return controlsConfig[subGroup];
125
+ }
126
+ getModelFromFormGroup(formGroup, id) {
127
+ const props = Object.keys(this.getModelPropertyNames(this));
128
+ const formSubGroupsValues = this.getModelSubGroupPropertyNames(this);
129
+ const data = {};
130
+ if (id) {
131
+ data.id = id;
132
+ }
133
+ const that = this;
134
+ if (props) {
135
+ props.forEach(property => {
136
+ const formSubGroup = formSubGroupsValues[property] ?? null;
137
+ if (!formSubGroup)
138
+ data[property] = formGroup.controls[property].value ?? null;
139
+ else
140
+ data[property] = formGroup.controls[formSubGroup].controls[property].value ?? null;
141
+ });
142
+ }
143
+ if (data) {
144
+ if (id) {
145
+ this.id = id;
146
+ }
147
+ Object.assign(this, data);
148
+ }
149
+ }
150
+ getSerializedModel() {
151
+ const attributesMetadata = this[AttributeMetadata];
152
+ return this._datastore.modelToEntity(this, attributesMetadata, true);
153
+ }
154
+ getCellClass(property) {
155
+ return '';
156
+ }
157
+ }
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jvc29mdGxhYi9jb3JlL3NyYy9saWIvbW9kZWxzL2Jhc2UubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUF3QyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUd6RCxNQUFNLE9BQU8sU0FBUztJQUtwQix5Q0FBeUM7SUFDekMsWUFBc0IsVUFBeUIsRUFBRSxJQUFVO1FBQXJDLGVBQVUsR0FBVixVQUFVLENBQWU7UUFDN0MsSUFBSSxJQUFJLEVBQUU7WUFDUixJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO2FBQ25CO1lBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBRUQsSUFBSSxDQUNGLE1BQVksRUFDWixPQUFxQixFQUNyQixTQUFrQixFQUNsQixVQUFnQjtRQUNoQixNQUFNLGtCQUFrQixHQUFRLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3hELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3RHLENBQUM7SUFFRCxLQUFLLENBQ0gsU0FBZSxFQUNmLE1BQVksRUFDWixPQUFxQixFQUNyQixTQUFrQjtRQUVsQixNQUFNLGtCQUFrQixHQUFRLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3hELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLFNBQVMs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RUFBRSxJQUFJLENBQUMsQ0FBQztTQUMzQjtJQUNILENBQUM7SUFJTSxrQkFBa0I7UUFDdkIsTUFBTSxrQkFBa0IsR0FBUSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN4RCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxrQkFBa0IsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBQ0QsWUFBWSxDQUFDLFFBQWdCO1FBQzNCLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBdHRyaWJ1dGVNZXRhZGF0YSB9IGZyb20gJy4uL2NvbnN0YW50cy9zeW1ib2xzJztcbmltcG9ydCB7IE1vZGVsQ29uZmlnIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9tb2RlbC1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IEJhc2VEYXRhc3RvcmUsIE1vZGVsVHlwZSB9IGZyb20gJy4uL3NlcnZpY2VzL2Jhc2UtZGF0YXN0b3JlLnNlcnZpY2UnO1xuZXhwb3J0IGNsYXNzIEJhc2VNb2RlbCB7XG4gIHB1YmxpYyBoaWdobGlnaHRlZDogYm9vbGVhbjtcbiAgcHVibGljIGlkOiBhbnk7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcblxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dmFyaWFibGUtbmFtZVxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX2RhdGFzdG9yZTogQmFzZURhdGFzdG9yZSwgZGF0YT86IGFueSkge1xuICAgIGlmIChkYXRhKSB7XG4gICAgICBpZiAoZGF0YS5pZCkge1xuICAgICAgICB0aGlzLmlkID0gZGF0YS5pZDtcbiAgICAgIH1cbiAgICAgIE9iamVjdC5hc3NpZ24odGhpcywgZGF0YSk7XG4gICAgfVxuICB9XG5cbiAgc2F2ZShcbiAgICBwYXJhbXM/OiBhbnksXG4gICAgaGVhZGVycz86IEh0dHBIZWFkZXJzLFxuICAgIGN1c3RvbVVybD86IHN0cmluZyxcbiAgICBjdXN0b21Cb2R5PzogYW55KTogT2JzZXJ2YWJsZTx0aGlzPiB7XG4gICAgY29uc3QgYXR0cmlidXRlc01ldGFkYXRhOiBhbnkgPSB0aGlzW0F0dHJpYnV0ZU1ldGFkYXRhXTtcbiAgICByZXR1cm4gdGhpcy5fZGF0YXN0b3JlLnNhdmVSZWNvcmQoYXR0cmlidXRlc01ldGFkYXRhLCB0aGlzLCBwYXJhbXMsIGhlYWRlcnMsIGN1c3RvbVVybCwgY3VzdG9tQm9keSk7XG4gIH1cblxuICBwYXRjaChcbiAgICBvcmlnTW9kZWw6IHRoaXMsXG4gICAgcGFyYW1zPzogYW55LFxuICAgIGhlYWRlcnM/OiBIdHRwSGVhZGVycyxcbiAgICBjdXN0b21Vcmw/OiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTx0aGlzPiB7XG4gICAgY29uc3QgYXR0cmlidXRlc01ldGFkYXRhOiBhbnkgPSB0aGlzW0F0dHJpYnV0ZU1ldGFkYXRhXTtcbiAgICByZXR1cm4gdGhpcy5fZGF0YXN0b3JlLnBhdGNoUmVjb3JkKGF0dHJpYnV0ZXNNZXRhZGF0YSwgdGhpcywgb3JpZ01vZGVsLCBwYXJhbXMsIGhlYWRlcnMsIGN1c3RvbVVybCk7XG4gIH1cblxuICByZXBsYWNlKFxuICAgIHBhcmFtcz86IGFueSxcbiAgICBoZWFkZXJzPzogSHR0cEhlYWRlcnMsXG4gICAgY3VzdG9tVXJsPzogc3RyaW5nLFxuICAgIGN1c3RvbUJvZHk/OiBhbnkpOiBPYnNlcnZhYmxlPHRoaXM+IHtcbiAgICBjb25zdCBhdHRyaWJ1dGVzTWV0YWRhdGE6IGFueSA9IHRoaXNbQXR0cmlidXRlTWV0YWRhdGFdO1xuICAgIHJldHVybiB0aGlzLl9kYXRhc3RvcmUucmVwbGFjZVJlY29yZChhdHRyaWJ1dGVzTWV0YWRhdGEsIHRoaXMsIHBhcmFtcywgaGVhZGVycywgY3VzdG9tVXJsLCBjdXN0b21Cb2R5KTtcbiAgfVxuICBnZXQgYXR0cmlidXRlTWV0YWRhdGEoKTogYW55IHtcbiAgICBjb25zdCBhdHRyaWJ1dGVzTWV0YWRhdGE6IGFueSA9IHRoaXNbQXR0cmlidXRlTWV0YWRhdGFdO1xuICAgIHJldHVybiBhdHRyaWJ1dGVzTWV0YWRhdGE7XG4gIH1cbiAgc2V0IGF0dHJpYnV0ZU1ldGFkYXRhKHZhbDogYW55KSB7XG4gICAgdGhpc1tBdHRyaWJ1dGVNZXRhZGF0YV0gPSB2YWw7XG4gIH1cbiAgZ2V0IGhhc0RpcnR5QXR0cmlidXRlcygpIHtcbiAgICBjb25zdCBhdHRyaWJ1dGVzTWV0YWRhdGE6IGFueSA9IHRoaXNbQXR0cmlidXRlTWV0YWRhdGFdO1xuICAgIGxldCBoYXNEaXJ0eUF0dHJpYnV0ZXMgPSBmYWxzZTtcbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5TmFtZSBpbiBhdHRyaWJ1dGVzTWV0YWRhdGEpIHtcbiAgICAgIGlmIChhdHRyaWJ1dGVzTWV0YWRhdGEuaGFzT3duUHJvcGVydHkocHJvcGVydHlOYW1lKSkge1xuICAgICAgICBjb25zdCBtZXRhZGF0YTogYW55ID0gYXR0cmlidXRlc01ldGFkYXRhW3Byb3BlcnR5TmFtZV07XG5cbiAgICAgICAgaWYgKG1ldGFkYXRhLmhhc0RpcnR5QXR0cmlidXRlcykge1xuICAgICAgICAgIGhhc0RpcnR5QXR0cmlidXRlcyA9IHRydWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGhhc0RpcnR5QXR0cmlidXRlcztcbiAgfVxuXG4gIHJvbGxiYWNrQXR0cmlidXRlcygpOiB2b2lkIHtcbiAgICBjb25zdCBhdHRyaWJ1dGVzTWV0YWRhdGE6IGFueSA9IHRoaXNbQXR0cmlidXRlTWV0YWRhdGFdO1xuICAgIGxldCBtZXRhZGF0YTogYW55O1xuICAgIGZvciAoY29uc3QgcHJvcGVydHlOYW1lIGluIGF0dHJpYnV0ZXNNZXRhZGF0YSkge1xuICAgICAgaWYgKGF0dHJpYnV0ZXNNZXRhZGF0YS5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eU5hbWUpKSB7XG4gICAgICAgIGlmIChhdHRyaWJ1dGVzTWV0YWRhdGFbcHJvcGVydHlOYW1lXS5oYXNEaXJ0eUF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICB0aGlzW3Byb3BlcnR5TmFtZV0gPSBhdHRyaWJ1dGVzTWV0YWRhdGFbcHJvcGVydHlOYW1lXS5vbGRWYWx1ZTtcbiAgICAgICAgICBtZXRhZGF0YSA9IHtcbiAgICAgICAgICAgIGhhc0RpcnR5QXR0cmlidXRlczogZmFsc2UsXG4gICAgICAgICAgICBuZXdWYWx1ZTogYXR0cmlidXRlc01ldGFkYXRhW3Byb3BlcnR5TmFtZV0ub2xkVmFsdWUsXG4gICAgICAgICAgICBvbGRWYWx1ZTogdW5kZWZpbmVkXG4gICAgICAgICAgfTtcbiAgICAgICAgICBhdHRyaWJ1dGVzTWV0YWRhdGFbcHJvcGVydHlOYW1lXSA9IG1ldGFkYXRhO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpc1tBdHRyaWJ1dGVNZXRhZGF0YV0gPSBhdHRyaWJ1dGVzTWV0YWRhdGE7XG4gIH1cblxuICBnZXQgbW9kZWxDb25maWcoKTogTW9kZWxDb25maWcge1xuICAgIHJldHVybiBSZWZsZWN0LmdldE1ldGFkYXRhKCdCYXNlTW9kZWxDb25maWcnLCB0aGlzLmNvbnN0cnVjdG9yKTtcbiAgfVxuXG5cbiAgcHJvdGVjdGVkIGRlc2VyaWFsaXplTW9kZWw8VCBleHRlbmRzIEJhc2VNb2RlbD4obW9kZWxUeXBlOiBNb2RlbFR5cGU8VD4sIGRhdGE6IGFueSkge1xuICAgIGRhdGEgPSB0aGlzLnRyYW5zZm9ybVNlcmlhbGl6ZWROYW1lc1RvUHJvcGVydHlOYW1lcyhtb2RlbFR5cGUsIGRhdGEpO1xuICAgIHJldHVybiBuZXcgbW9kZWxUeXBlKHRoaXMuX2RhdGFzdG9yZSwgZGF0YSk7XG4gIH1cblxuXG4gIHByb3RlY3RlZCB0cmFuc2Zvcm1TZXJpYWxpemVkTmFtZXNUb1Byb3BlcnR5TmFtZXM8VCBleHRlbmRzIEJhc2VNb2RlbD4obW9kZWxUeXBlOiBNb2RlbFR5cGU8VD4sIGF0dHJpYnV0ZXM6IGFueSkge1xuICAgIGNvbnN0IHNlcmlhbGl6ZWROYW1lVG9Qcm9wZXJ0eU5hbWUgPSB0aGlzLmdldE1vZGVsUHJvcGVydHlOYW1lcyhtb2RlbFR5cGUucHJvdG90eXBlKTtcbiAgICBjb25zdCBwcm9wZXJ0aWVzOiBhbnkgPSB7fTtcblxuICAgIE9iamVjdC5rZXlzKHNlcmlhbGl6ZWROYW1lVG9Qcm9wZXJ0eU5hbWUpLmZvckVhY2goKHNlcmlhbGl6ZWROYW1lKSA9PiB7XG4gICAgICBpZiAoYXR0cmlidXRlc1tzZXJpYWxpemVkTmFtZV0gIT09IG51bGwgJiYgYXR0cmlidXRlc1tzZXJpYWxpemVkTmFtZV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBwcm9wZXJ0aWVzW3NlcmlhbGl6ZWROYW1lVG9Qcm9wZXJ0eU5hbWVbc2VyaWFsaXplZE5hbWVdXSA9IGF0dHJpYnV0ZXNbc2VyaWFsaXplZE5hbWVdO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHByb3BlcnRpZXM7XG4gIH1cblxuICBwdWJsaWMgZ2V0TW9kZWxQcm9wZXJ0eU5hbWVzKG1vZGVsOiBCYXNlTW9kZWwpIHtcbiAgICByZXR1cm4gUmVmbGVjdC5nZXRNZXRhZGF0YSgnQXR0cmlidXRlTWFwcGluZycsIG1vZGVsKTtcbiAgfVxuICBwdWJsaWMgZ2V0TW9kZWxSZXF1aXJlZFByb3BlcnR5TmFtZXMobW9kZWw6IEJhc2VNb2RlbCkge1xuICAgIHJldHVybiBSZWZsZWN0LmdldE1ldGFkYXRhKCdBdHRyaWJ1dGVSZXF1aXJlZCcsIG1vZGVsKTtcbiAgfVxuICBwdWJsaWMgZ2V0TW9kZWxEZWZhdWx0UHJvcGVydHlWYWx1ZXMobW9kZWw6IEJhc2VNb2RlbCkge1xuICAgIHJldHVybiBSZWZsZWN0LmdldE1ldGFkYXRhKCdBdHRyaWJ1dGVkZWZhdWx0VmFsdWUnLCBtb2RlbCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TW9kZWxTdWJHcm91cFByb3BlcnR5TmFtZXMobW9kZWw6IEJhc2VNb2RlbCkge1xuICAgIHJldHVybiBSZWZsZWN0LmdldE1ldGFkYXRhKCdBdHRyaWJ1dGVmb3JtU3ViR3JvdXAnLCBtb2RlbCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0RnJvbUdyb3VwKGZiOiBVbnR5cGVkRm9ybUJ1aWxkZXIpOiBVbnR5cGVkRm9ybUdyb3VwIHtcbiAgICBjb25zdCBwcm9wcyA9IE9iamVjdC5rZXlzKHRoaXMuZ2V0TW9kZWxQcm9wZXJ0eU5hbWVzKHRoaXMpKTtcbiAgICBjb25zdCByZXF1aXJlZFByb3BzID0gdGhpcy5nZXRNb2RlbFJlcXVpcmVkUHJvcGVydHlOYW1lcyh0aGlzKTtcbiAgICBjb25zdCBkZWZhdWx0VmFsdWVzID0gdGhpcy5nZXRNb2RlbERlZmF1bHRQcm9wZXJ0eVZhbHVlcyh0aGlzKTtcbiAgICBjb25zdCBmb3JtU3ViR3JvdXBzVmFsdWVzID0gdGhpcy5nZXRNb2RlbFN1Ykdyb3VwUHJvcGVydHlOYW1lcyh0aGlzKTtcbiAgICBjb25zdCBjb250cm9sc0NvbmZpZzogYW55ID0ge307XG4gICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgaWYgKHByb3BzKSB7XG4gICAgICBwcm9wcy5mb3JFYWNoKHByb3BlcnR5ID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGF0W3Byb3BlcnR5XSAhPT0gdW5kZWZpbmVkID8gdGhhdFtwcm9wZXJ0eV0gOiBkZWZhdWx0VmFsdWVzW3Byb3BlcnR5XTtcbiAgICAgICAgY29uc3QgZm9ybVN1Ykdyb3VwID0gZm9ybVN1Ykdyb3Vwc1ZhbHVlc1twcm9wZXJ0eV0gPz8gbnVsbDtcbiAgICAgICAgaWYgKHJlcXVpcmVkUHJvcHNbcHJvcGVydHldKSB7XG4gICAgICAgICAgaWYgKGZvcm1TdWJHcm91cClcbiAgICAgICAgICAgIHRoaXMuZ2V0U3ViRnJvbUdyb3VwKGZiLCBjb250cm9sc0NvbmZpZywgZm9ybVN1Ykdyb3VwKS5hZGRDb250cm9sKHByb3BlcnR5LCBmYi5jb250cm9sKHZhbHVlLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSk7XG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgY29udHJvbHNDb25maWdbcHJvcGVydHldID0gW3ZhbHVlLCBWYWxpZGF0b3JzLnJlcXVpcmVkXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoZm9ybVN1Ykdyb3VwKVxuICAgICAgICAgICAgdGhpcy5nZXRTdWJGcm9tR3JvdXAoZmIsIGNvbnRyb2xzQ29uZmlnLCBmb3JtU3ViR3JvdXApLmFkZENvbnRyb2wocHJvcGVydHksIGZiLmNvbnRyb2wodmFsdWUpKTtcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBjb250cm9sc0NvbmZpZ1twcm9wZXJ0eV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICB9XG4gICAgcmV0dXJuIGZiLmdyb3VwKGNvbnRyb2xzQ29uZmlnKTtcbiAgfVxuICBwcml2YXRlIGdldFN1YkZyb21Hcm91cChmYjogVW50eXBlZEZvcm1CdWlsZGVyLCBjb250cm9sc0NvbmZpZzogYW55LCBzdWJHcm91cDogc3RyaW5nKTogVW50eXBlZEZvcm1Hcm91cCB7XG4gICAgaWYgKCFjb250cm9sc0NvbmZpZ1tzdWJHcm91cF0pXG4gICAgICBjb250cm9sc0NvbmZpZ1tzdWJHcm91cF0gPSBmYi5ncm91cCh7fSk7XG4gICAgcmV0dXJuIGNvbnRyb2xzQ29uZmlnW3N1Ykdyb3VwXTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRNb2RlbEZyb21Gb3JtR3JvdXAoZm9ybUdyb3VwOiBVbnR5cGVkRm9ybUdyb3VwLCBpZD86IGFueSkge1xuICAgIGNvbnN0IHByb3BzID0gT2JqZWN0LmtleXModGhpcy5nZXRNb2RlbFByb3BlcnR5TmFtZXModGhpcykpO1xuICAgIGNvbnN0IGZvcm1TdWJHcm91cHNWYWx1ZXMgPSB0aGlzLmdldE1vZGVsU3ViR3JvdXBQcm9wZXJ0eU5hbWVzKHRoaXMpO1xuICAgIGNvbnN0IGRhdGE6IGFueSA9IHt9O1xuICAgIGlmIChpZCkge1xuICAgICAgZGF0YS5pZCA9IGlkO1xuICAgIH1cbiAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICBpZiAocHJvcHMpIHtcbiAgICAgIHByb3BzLmZvckVhY2gocHJvcGVydHkgPT4ge1xuICAgICAgICBjb25zdCBmb3JtU3ViR3JvdXAgPSBmb3JtU3ViR3JvdXBzVmFsdWVzW3Byb3BlcnR5XSA/PyBudWxsO1xuICAgICAgICBpZiAoIWZvcm1TdWJHcm91cClcbiAgICAgICAgICBkYXRhW3Byb3BlcnR5XSA9IGZvcm1Hcm91cC5jb250cm9sc1twcm9wZXJ0eV0udmFsdWUgPz8gbnVsbDtcbiAgICAgICAgZWxzZVxuICAgICAgICAgIGRhdGFbcHJvcGVydHldID0gKGZvcm1Hcm91cC5jb250cm9sc1tmb3JtU3ViR3JvdXBdIGFzIFVudHlwZWRGb3JtR3JvdXApLmNvbnRyb2xzW3Byb3BlcnR5XS52YWx1ZSA/PyBudWxsO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChkYXRhKSB7XG4gICAgICBpZiAoaWQpIHtcbiAgICAgICAgdGhpcy5pZCA9IGlkO1xuICAgICAgfVxuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBkYXRhKTtcbiAgICB9XG4gIH1cblxuIFxuXG4gIHB1YmxpYyBnZXRTZXJpYWxpemVkTW9kZWwoKSB7XG4gICAgY29uc3QgYXR0cmlidXRlc01ldGFkYXRhOiBhbnkgPSB0aGlzW0F0dHJpYnV0ZU1ldGFkYXRhXTtcbiAgICByZXR1cm4gdGhpcy5fZGF0YXN0b3JlLm1vZGVsVG9FbnRpdHkodGhpcywgYXR0cmlidXRlc01ldGFkYXRhLCB0cnVlKTtcbiAgfVxuICBnZXRDZWxsQ2xhc3MocHJvcGVydHk6IHN0cmluZykge1xuICAgIHJldHVybiAnJztcbiAgfVxufVxuIl19
@@ -0,0 +1,9 @@
1
+ export class ErrorResponse {
2
+ constructor(errors) {
3
+ this.errors = [];
4
+ if (errors) {
5
+ this.errors = errors;
6
+ }
7
+ }
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItcmVzcG9uc2UubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yb3NvZnRsYWIvY29yZS9zcmMvbGliL21vZGVscy9lcnJvci1yZXNwb25zZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFjQSxNQUFNLE9BQU8sYUFBYTtJQUd4QixZQUFZLE1BQXlCO1FBRnJDLFdBQU0sR0FBcUIsRUFBRSxDQUFDO1FBRzVCLElBQUksTUFBTSxFQUFFO1lBQ1YsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7U0FDdEI7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEpzb25CYXNlRXJyb3Ige1xyXG4gIGlkPzogc3RyaW5nO1xyXG4gIGxpbmtzID86IEFycmF5PGFueT47XHJcbiAgc3RhdHVzID86IHN0cmluZztcclxuICBjb2RlID86IHN0cmluZztcclxuICB0aXRsZSA/OiBzdHJpbmc7XHJcbiAgZGV0YWlsID86IHN0cmluZztcclxuICBzb3VyY2UgPzoge1xyXG4gICAgcG9pbnRlciA/OiBzdHJpbmc7XHJcbiAgICBwYXJhbWV0ZXIgPzogc3RyaW5nXHJcbiAgfTtcclxuICBtZXRhID86IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEVycm9yUmVzcG9uc2Uge1xyXG4gIGVycm9ycz86IEpzb25CYXNlRXJyb3JbXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihlcnJvcnMgPzogSnNvbkJhc2VFcnJvcltdKSB7XHJcbiAgICBpZiAoZXJyb3JzKSB7XHJcbiAgICAgIHRoaXMuZXJyb3JzID0gZXJyb3JzO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,6 @@
1
+ export class Rule {
2
+ constructor() {
3
+ this.parameters = [];
4
+ }
5
+ }
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jvc29mdGxhYi9jb3JlL3NyYy9saWIvbW9kZWxzL3J1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLElBQUk7SUFBakI7UUFHSSxlQUFVLEdBQWEsRUFBRSxDQUFDO0lBQzlCLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBSdWxlIHtcbiAgICBydWxlOiBhbnk7XG4gICAgb3JkZXI6IG51bWJlcjtcbiAgICBwYXJhbWV0ZXJzOiBzdHJpbmdbXSA9IFtdO1xufVxuIl19
@@ -0,0 +1,21 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class Nl2brPipe {
4
+ transform(value, args) {
5
+ // return value.replace(/\n/g, '<br />');
6
+ if (value) {
7
+ value = value.replace(/(?:\r\n\r\n|\r\r|\n\n)/g, '</p><p>');
8
+ return '<p>' + value.replace(/(?:\r\n|\r|\n)/g, '<br>') + '</p>';
9
+ }
10
+ return value;
11
+ }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: Nl2brPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
13
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.1", ngImport: i0, type: Nl2brPipe, name: "nl2br" }); }
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: Nl2brPipe, decorators: [{
16
+ type: Pipe,
17
+ args: [{
18
+ name: 'nl2br'
19
+ }]
20
+ }] });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmwyYnJQaXBlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yb3NvZnRsYWIvY29yZS9zcmMvbGliL3BpcGVzL05sMmJyUGlwZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQUtwRCxNQUFNLE9BQU8sU0FBUztJQUVwQixTQUFTLENBQUMsS0FBVSxFQUFFLElBQVU7UUFDOUIseUNBQXlDO1FBQ3pDLElBQUksS0FBSyxFQUFFO1lBQ1QsS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMseUJBQXlCLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDNUQsT0FBTyxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUM7U0FDbEU7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OEdBVFUsU0FBUzs0R0FBVCxTQUFTOzsyRkFBVCxTQUFTO2tCQUhyQixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxPQUFPO2lCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQFBpcGUoe1xyXG4gIG5hbWU6ICdubDJicidcclxufSlcclxuZXhwb3J0IGNsYXNzIE5sMmJyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG5cclxuICB0cmFuc2Zvcm0odmFsdWU6IGFueSwgYXJncz86IGFueSk6IGFueSB7XHJcbiAgICAvLyByZXR1cm4gdmFsdWUucmVwbGFjZSgvXFxuL2csICc8YnIgLz4nKTtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoLyg/OlxcclxcblxcclxcbnxcXHJcXHJ8XFxuXFxuKS9nLCAnPC9wPjxwPicpO1xyXG4gICAgICByZXR1cm4gJzxwPicgKyB2YWx1ZS5yZXBsYWNlKC8oPzpcXHJcXG58XFxyfFxcbikvZywgJzxicj4nKSArICc8L3A+JztcclxuICAgIH1cclxuICAgIHJldHVybiB2YWx1ZTtcclxuICB9XHJcbn0iXX0=
@@ -0,0 +1,38 @@
1
+ import { Pipe } from '@angular/core';
2
+ import { TranslateService } from '@ngx-translate/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@ngx-translate/core";
5
+ export class InputErrorPipe {
6
+ constructor(translate) {
7
+ this.translate = translate;
8
+ }
9
+ transform(value, filedTranslationKey) {
10
+ let rvalue = '';
11
+ if (value !== null) {
12
+ if (value['invalid'] === true) {
13
+ rvalue = 'ERROR.INVALID';
14
+ }
15
+ if (value['mustMatch'] === true) {
16
+ rvalue = 'Account.Password.MustMach';
17
+ }
18
+ if (value['required'] === true) {
19
+ const field = this.translate.instant(filedTranslationKey.field);
20
+ rvalue = this.translate.instant('General.Field.Required', { field });
21
+ }
22
+ if (value['minlength']) {
23
+ const field = this.translate.instant(filedTranslationKey.field);
24
+ rvalue = this.translate.instant('General.Field.MinLength', { field, requiredLength: value.minlength.requiredLength });
25
+ }
26
+ }
27
+ return rvalue;
28
+ }
29
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: InputErrorPipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
30
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.1", ngImport: i0, type: InputErrorPipe, name: "inputError" }); }
31
+ }
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: InputErrorPipe, decorators: [{
33
+ type: Pipe,
34
+ args: [{
35
+ name: 'inputError'
36
+ }]
37
+ }], ctorParameters: function () { return [{ type: i1.TranslateService }]; } });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZXJyb3IucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jvc29mdGxhYi9jb3JlL3NyYy9saWIvcGlwZXMvaW5wdXQtZXJyb3IucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBS3ZELE1BQU0sT0FBTyxjQUFjO0lBQ3pCLFlBQXNCLFNBQTJCO1FBQTNCLGNBQVMsR0FBVCxTQUFTLENBQWtCO0lBRWpELENBQUM7SUFDRCxTQUFTLENBQUMsS0FBVSxFQUFFLG1CQUF3QjtRQUM1QyxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFO1lBQ2xCLElBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLElBQUksRUFBRTtnQkFDN0IsTUFBTSxHQUFHLGVBQWUsQ0FBQzthQUMxQjtZQUNELElBQUksS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFLLElBQUksRUFBRTtnQkFDL0IsTUFBTSxHQUFHLDJCQUEyQixDQUFDO2FBQ3RDO1lBQ0QsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssSUFBSSxFQUFFO2dCQUM5QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDaEUsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLHdCQUF3QixFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQzthQUN0RTtZQUNELElBQUksS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUN0QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDaEUsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLHlCQUF5QixFQUFFLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7YUFDdkg7U0FDRjtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7OEdBdkJVLGNBQWM7NEdBQWQsY0FBYzs7MkZBQWQsY0FBYztrQkFIMUIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsWUFBWTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuXHJcbkBQaXBlKHtcclxuICBuYW1lOiAnaW5wdXRFcnJvcidcclxufSlcclxuZXhwb3J0IGNsYXNzIElucHV0RXJyb3JQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkge1xyXG5cclxuICB9XHJcbiAgdHJhbnNmb3JtKHZhbHVlOiBhbnksIGZpbGVkVHJhbnNsYXRpb25LZXk6IGFueSk6IHN0cmluZyB7XHJcbiAgICBsZXQgcnZhbHVlID0gJyc7XHJcbiAgICBpZiAodmFsdWUgIT09IG51bGwpIHtcclxuICAgICAgaWYgKHZhbHVlWydpbnZhbGlkJ10gPT09IHRydWUpIHtcclxuICAgICAgICBydmFsdWUgPSAnRVJST1IuSU5WQUxJRCc7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHZhbHVlWydtdXN0TWF0Y2gnXSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIHJ2YWx1ZSA9ICdBY2NvdW50LlBhc3N3b3JkLk11c3RNYWNoJztcclxuICAgICAgfVxyXG4gICAgICBpZiAodmFsdWVbJ3JlcXVpcmVkJ10gPT09IHRydWUpIHtcclxuICAgICAgICBjb25zdCBmaWVsZCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoZmlsZWRUcmFuc2xhdGlvbktleS5maWVsZCk7XHJcbiAgICAgICAgcnZhbHVlID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnR2VuZXJhbC5GaWVsZC5SZXF1aXJlZCcsIHsgZmllbGQgfSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHZhbHVlWydtaW5sZW5ndGgnXSkge1xyXG4gICAgICAgIGNvbnN0IGZpZWxkID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudChmaWxlZFRyYW5zbGF0aW9uS2V5LmZpZWxkKTtcclxuICAgICAgICBydmFsdWUgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdHZW5lcmFsLkZpZWxkLk1pbkxlbmd0aCcsIHsgZmllbGQsIHJlcXVpcmVkTGVuZ3RoOiB2YWx1ZS5taW5sZW5ndGgucmVxdWlyZWRMZW5ndGggfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBydmFsdWU7XHJcbiAgfVxyXG5cclxufSJdfQ==
@@ -0,0 +1,12 @@
1
+ import { DatePipe, DecimalPipe, PercentPipe } from '@angular/common';
2
+ import { BaseDatastore } from './services/base-datastore.service';
3
+ import { DatastoreCore } from './services/datastore.service';
4
+ export * from './services';
5
+ export const PROVIDERS = [
6
+ BaseDatastore,
7
+ DatastoreCore,
8
+ DatePipe,
9
+ DecimalPipe,
10
+ PercentPipe,
11
+ ];
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcm9zb2Z0bGFiL2NvcmUvc3JjL2xpYi9wcm92aWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxjQUFjLFlBQVksQ0FBQztBQUUzQixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQVU7SUFDOUIsYUFBYTtJQUNiLGFBQWE7SUFDYixRQUFRO0lBQ1IsV0FBVztJQUNYLFdBQVc7Q0FDWixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0ZVBpcGUsIERlY2ltYWxQaXBlLCBQZXJjZW50UGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEJhc2VEYXRhc3RvcmUgfSBmcm9tICcuL3NlcnZpY2VzL2Jhc2UtZGF0YXN0b3JlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEYXRhc3RvcmVDb3JlIH0gZnJvbSAnLi9zZXJ2aWNlcy9kYXRhc3RvcmUuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBST1ZJREVSUzogYW55W10gPSBbXHJcbiAgQmFzZURhdGFzdG9yZSxcclxuICBEYXRhc3RvcmVDb3JlLFxyXG4gIERhdGVQaXBlLFxyXG4gIERlY2ltYWxQaXBlLFxyXG4gIFBlcmNlbnRQaXBlLFxyXG5dO1xyXG4iXX0=