ngssm-remote-data 15.0.4 → 15.1.1

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.
@@ -8,4 +8,4 @@ export class RegisterLoadedRemoteDataAction {
8
8
  this.type = RemoteDataActionType.registerLoadedRemoteData;
9
9
  }
10
10
  }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXItbG9hZGVkLXJlbW90ZS1kYXRhLmFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXJlbW90ZS1kYXRhL3NyYy9saWIvYWN0aW9ucy9yZWdpc3Rlci1sb2FkZWQtcmVtb3RlLWRhdGEuYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRWpFLE1BQU0sT0FBTyw4QkFBOEI7SUFHekMsWUFDa0IsYUFBcUIsRUFDckIsTUFBa0IsRUFDbEIsSUFBUyxFQUNULE9BQWdCO1FBSGhCLGtCQUFhLEdBQWIsYUFBYSxDQUFRO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQVk7UUFDbEIsU0FBSSxHQUFKLElBQUksQ0FBSztRQUNULFlBQU8sR0FBUCxPQUFPLENBQVM7UUFObEIsU0FBSSxHQUFXLG9CQUFvQixDQUFDLHdCQUF3QixDQUFDO0lBTzFFLENBQUM7Q0FDTCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbiB9IGZyb20gJ25nc3NtLXN0b3JlJztcblxuaW1wb3J0IHsgRGF0YVN0YXR1cyB9IGZyb20gJy4uL2RhdGEtc3RhdHVzJztcbmltcG9ydCB7IFJlbW90ZURhdGFBY3Rpb25UeXBlIH0gZnJvbSAnLi9yZW1vdGUtZGF0YS1hY3Rpb24tdHlwZSc7XG5cbmV4cG9ydCBjbGFzcyBSZWdpc3RlckxvYWRlZFJlbW90ZURhdGFBY3Rpb24gaW1wbGVtZW50cyBBY3Rpb24ge1xuICBwdWJsaWMgcmVhZG9ubHkgdHlwZTogc3RyaW5nID0gUmVtb3RlRGF0YUFjdGlvblR5cGUucmVnaXN0ZXJMb2FkZWRSZW1vdGVEYXRhO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSByZW1vdGVEYXRhS2V5OiBzdHJpbmcsXG4gICAgcHVibGljIHJlYWRvbmx5IHN0YXR1czogRGF0YVN0YXR1cyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgZGF0YTogYW55LFxuICAgIHB1YmxpYyByZWFkb25seSBtZXNzYWdlPzogc3RyaW5nXG4gICkge31cbn1cbiJdfQ==
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXItbG9hZGVkLXJlbW90ZS1kYXRhLmFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXJlbW90ZS1kYXRhL3NyYy9saWIvYWN0aW9ucy9yZWdpc3Rlci1sb2FkZWQtcmVtb3RlLWRhdGEuYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRWpFLE1BQU0sT0FBTyw4QkFBOEI7SUFHekMsWUFDa0IsYUFBcUIsRUFDckIsTUFBa0IsRUFDbEIsSUFBUyxFQUNULE9BQWdCO1FBSGhCLGtCQUFhLEdBQWIsYUFBYSxDQUFRO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQVk7UUFDbEIsU0FBSSxHQUFKLElBQUksQ0FBSztRQUNULFlBQU8sR0FBUCxPQUFPLENBQVM7UUFObEIsU0FBSSxHQUFXLG9CQUFvQixDQUFDLHdCQUF3QixDQUFDO0lBTzFFLENBQUM7Q0FDTCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbiB9IGZyb20gJ25nc3NtLXN0b3JlJztcblxuaW1wb3J0IHsgRGF0YVN0YXR1cyB9IGZyb20gJy4uL21vZGVsJztcbmltcG9ydCB7IFJlbW90ZURhdGFBY3Rpb25UeXBlIH0gZnJvbSAnLi9yZW1vdGUtZGF0YS1hY3Rpb24tdHlwZSc7XG5cbmV4cG9ydCBjbGFzcyBSZWdpc3RlckxvYWRlZFJlbW90ZURhdGFBY3Rpb24gaW1wbGVtZW50cyBBY3Rpb24ge1xuICBwdWJsaWMgcmVhZG9ubHkgdHlwZTogc3RyaW5nID0gUmVtb3RlRGF0YUFjdGlvblR5cGUucmVnaXN0ZXJMb2FkZWRSZW1vdGVEYXRhO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSByZW1vdGVEYXRhS2V5OiBzdHJpbmcsXG4gICAgcHVibGljIHJlYWRvbmx5IHN0YXR1czogRGF0YVN0YXR1cyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgZGF0YTogYW55LFxuICAgIHB1YmxpYyByZWFkb25seSBtZXNzYWdlPzogc3RyaW5nXG4gICkge31cbn1cbiJdfQ==
@@ -1,7 +1,7 @@
1
1
  import { Inject, Injectable, Optional } from '@angular/core';
2
2
  import { NGSSM_EFFECT } from 'ngssm-store';
3
3
  import { RegisterLoadedRemoteDataAction, RemoteDataActionType } from '../actions';
4
- import { DataStatus } from '../data-status';
4
+ import { DataStatus } from '../model';
5
5
  import { NGSSM_REMOTE_DATA_PROVIDER } from '../remote-data-provider';
6
6
  import { selectRemoteDataState } from '../state';
7
7
  import * as i0 from "@angular/core";
@@ -26,9 +26,9 @@ export class RemoteDataLoadingEffect {
26
26
  });
27
27
  }
28
28
  }
29
- RemoteDataLoadingEffect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RemoteDataLoadingEffect, deps: [{ token: NGSSM_REMOTE_DATA_PROVIDER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
30
- RemoteDataLoadingEffect.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RemoteDataLoadingEffect });
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RemoteDataLoadingEffect, decorators: [{
29
+ RemoteDataLoadingEffect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: RemoteDataLoadingEffect, deps: [{ token: NGSSM_REMOTE_DATA_PROVIDER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
30
+ RemoteDataLoadingEffect.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: RemoteDataLoadingEffect });
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: RemoteDataLoadingEffect, decorators: [{
32
32
  type: Injectable
33
33
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
34
34
  type: Inject,
@@ -41,4 +41,4 @@ export const remoteDataLoadingEffectProvider = {
41
41
  useClass: RemoteDataLoadingEffect,
42
42
  multi: true
43
43
  };
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWRhdGEtbG9hZGluZy5lZmZlY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1yZW1vdGUtZGF0YS9zcmMvbGliL2VmZmVjdHMvcmVtb3RlLWRhdGEtbG9hZGluZy5lZmZlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBRXZFLE9BQU8sRUFBZ0MsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXpFLE9BQU8sRUFBd0IsOEJBQThCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDeEcsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBc0IsMEJBQTBCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBR2pELE1BQU0sT0FBTyx1QkFBdUI7SUFLbEMsWUFBNEQsbUJBQXlDO1FBRnJGLHFCQUFnQixHQUFhLENBQUMsb0JBQW9CLENBQUMsY0FBYyxDQUFDLENBQUM7UUFHakYsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksR0FBRyxDQUE2QixDQUFDLG1CQUFtQixJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNySSxDQUFDO0lBRU0sYUFBYSxDQUFDLEtBQVksRUFBRSxLQUFZLEVBQUUsTUFBYztRQUM3RCxNQUFNLG9CQUFvQixHQUFHLE1BQThCLENBQUM7UUFDNUQsTUFBTSxJQUFJLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDOUUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUV4RixJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssVUFBVSxDQUFDLE9BQU8sRUFBRTtZQUM1RCxPQUFPO1NBQ1I7UUFFRCxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDO1lBQ3ZCLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ2QsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLDhCQUE4QixDQUFDLG9CQUFvQixDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3hILEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsNEJBQTRCLG9CQUFvQixDQUFDLGFBQWEsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUN4RixLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksOEJBQThCLENBQUMsb0JBQW9CLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUM1SCxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7b0hBMUJVLHVCQUF1QixrQkFLZCwwQkFBMEI7d0hBTG5DLHVCQUF1QjsyRkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVOzswQkFNSSxNQUFNOzJCQUFDLDBCQUEwQjs7MEJBQUcsUUFBUTs7QUF3QjNELE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFhO0lBQ3ZELE9BQU8sRUFBRSxZQUFZO0lBQ3JCLFFBQVEsRUFBRSx1QkFBdUI7SUFDakMsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCwgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRWZmZWN0LCBTdG9yZSwgU3RhdGUsIEFjdGlvbiwgTkdTU01fRUZGRUNUIH0gZnJvbSAnbmdzc20tc3RvcmUnO1xuXG5pbXBvcnQgeyBMb2FkUmVtb3RlRGF0YUFjdGlvbiwgUmVnaXN0ZXJMb2FkZWRSZW1vdGVEYXRhQWN0aW9uLCBSZW1vdGVEYXRhQWN0aW9uVHlwZSB9IGZyb20gJy4uL2FjdGlvbnMnO1xuaW1wb3J0IHsgRGF0YVN0YXR1cyB9IGZyb20gJy4uL2RhdGEtc3RhdHVzJztcbmltcG9ydCB7IFJlbW90ZURhdGFQcm92aWRlciwgTkdTU01fUkVNT1RFX0RBVEFfUFJPVklERVIgfSBmcm9tICcuLi9yZW1vdGUtZGF0YS1wcm92aWRlcic7XG5pbXBvcnQgeyBzZWxlY3RSZW1vdGVEYXRhU3RhdGUgfSBmcm9tICcuLi9zdGF0ZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBSZW1vdGVEYXRhTG9hZGluZ0VmZmVjdCBpbXBsZW1lbnRzIEVmZmVjdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVtb3RlRGF0YVByb3ZpZGVyc1BlcktleTogTWFwPHN0cmluZywgUmVtb3RlRGF0YVByb3ZpZGVyPjtcblxuICBwdWJsaWMgcmVhZG9ubHkgcHJvY2Vzc2VkQWN0aW9uczogc3RyaW5nW10gPSBbUmVtb3RlRGF0YUFjdGlvblR5cGUubG9hZFJlbW90ZURhdGFdO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoTkdTU01fUkVNT1RFX0RBVEFfUFJPVklERVIpIEBPcHRpb25hbCgpIHJlbW90ZURhdGFQcm92aWRlcnM6IFJlbW90ZURhdGFQcm92aWRlcltdKSB7XG4gICAgdGhpcy5yZW1vdGVEYXRhUHJvdmlkZXJzUGVyS2V5ID0gbmV3IE1hcDxzdHJpbmcsIFJlbW90ZURhdGFQcm92aWRlcj4oKHJlbW90ZURhdGFQcm92aWRlcnMgPz8gW10pLm1hcCgocikgPT4gW3IucmVtb3RlRGF0YUtleSwgcl0pKTtcbiAgfVxuXG4gIHB1YmxpYyBwcm9jZXNzQWN0aW9uKHN0b3JlOiBTdG9yZSwgc3RhdGU6IFN0YXRlLCBhY3Rpb246IEFjdGlvbik6IHZvaWQge1xuICAgIGNvbnN0IGxvYWRSZW1vdGVEYXRhQWN0aW9uID0gYWN0aW9uIGFzIExvYWRSZW1vdGVEYXRhQWN0aW9uO1xuICAgIGNvbnN0IGl0ZW0gPSBzZWxlY3RSZW1vdGVEYXRhU3RhdGUoc3RhdGUpW2xvYWRSZW1vdGVEYXRhQWN0aW9uLnJlbW90ZURhdGFLZXldO1xuICAgIGNvbnN0IHByb3ZpZGVyID0gdGhpcy5yZW1vdGVEYXRhUHJvdmlkZXJzUGVyS2V5LmdldChsb2FkUmVtb3RlRGF0YUFjdGlvbi5yZW1vdGVEYXRhS2V5KTtcblxuICAgIGlmICghaXRlbSB8fCAhcHJvdmlkZXIgfHwgaXRlbS5zdGF0dXMgIT09IERhdGFTdGF0dXMubG9hZGluZykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHByb3ZpZGVyLmdldCgpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAodmFsdWUpID0+XG4gICAgICAgIHN0b3JlLmRpc3BhdGNoQWN0aW9uKG5ldyBSZWdpc3RlckxvYWRlZFJlbW90ZURhdGFBY3Rpb24obG9hZFJlbW90ZURhdGFBY3Rpb24ucmVtb3RlRGF0YUtleSwgRGF0YVN0YXR1cy5sb2FkZWQsIHZhbHVlKSksXG4gICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYFVuYWJsZSB0byBsb2FkIGRhdGEgZm9yICcke2xvYWRSZW1vdGVEYXRhQWN0aW9uLnJlbW90ZURhdGFLZXl9J2AsIGVycm9yKTtcbiAgICAgICAgc3RvcmUuZGlzcGF0Y2hBY3Rpb24obmV3IFJlZ2lzdGVyTG9hZGVkUmVtb3RlRGF0YUFjdGlvbihsb2FkUmVtb3RlRGF0YUFjdGlvbi5yZW1vdGVEYXRhS2V5LCBEYXRhU3RhdHVzLmVycm9yLCB1bmRlZmluZWQpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgcmVtb3RlRGF0YUxvYWRpbmdFZmZlY3RQcm92aWRlcjogUHJvdmlkZXIgPSB7XG4gIHByb3ZpZGU6IE5HU1NNX0VGRkVDVCxcbiAgdXNlQ2xhc3M6IFJlbW90ZURhdGFMb2FkaW5nRWZmZWN0LFxuICBtdWx0aTogdHJ1ZVxufTtcbiJdfQ==
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWRhdGEtbG9hZGluZy5lZmZlY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1yZW1vdGUtZGF0YS9zcmMvbGliL2VmZmVjdHMvcmVtb3RlLWRhdGEtbG9hZGluZy5lZmZlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBRXZFLE9BQU8sRUFBZ0MsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXpFLE9BQU8sRUFBd0IsOEJBQThCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDeEcsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN0QyxPQUFPLEVBQXNCLDBCQUEwQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUdqRCxNQUFNLE9BQU8sdUJBQXVCO0lBS2xDLFlBQTRELG1CQUF5QztRQUZyRixxQkFBZ0IsR0FBYSxDQUFDLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBR2pGLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLEdBQUcsQ0FBNkIsQ0FBQyxtQkFBbUIsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckksQ0FBQztJQUVNLGFBQWEsQ0FBQyxLQUFZLEVBQUUsS0FBWSxFQUFFLE1BQWM7UUFDN0QsTUFBTSxvQkFBb0IsR0FBRyxNQUE4QixDQUFDO1FBQzVELE1BQU0sSUFBSSxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzlFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFeEYsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLFVBQVUsQ0FBQyxPQUFPLEVBQUU7WUFDNUQsT0FBTztTQUNSO1FBRUQsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQztZQUN2QixJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUNkLEtBQUssQ0FBQyxjQUFjLENBQUMsSUFBSSw4QkFBOEIsQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN4SCxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDZixPQUFPLENBQUMsS0FBSyxDQUFDLDRCQUE0QixvQkFBb0IsQ0FBQyxhQUFhLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDeEYsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLDhCQUE4QixDQUFDLG9CQUFvQixDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDNUgsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O29IQTFCVSx1QkFBdUIsa0JBS2QsMEJBQTBCO3dIQUxuQyx1QkFBdUI7MkZBQXZCLHVCQUF1QjtrQkFEbkMsVUFBVTs7MEJBTUksTUFBTTsyQkFBQywwQkFBMEI7OzBCQUFHLFFBQVE7O0FBd0IzRCxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBYTtJQUN2RCxPQUFPLEVBQUUsWUFBWTtJQUNyQixRQUFRLEVBQUUsdUJBQXVCO0lBQ2pDLEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwsIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEVmZmVjdCwgU3RvcmUsIFN0YXRlLCBBY3Rpb24sIE5HU1NNX0VGRkVDVCB9IGZyb20gJ25nc3NtLXN0b3JlJztcblxuaW1wb3J0IHsgTG9hZFJlbW90ZURhdGFBY3Rpb24sIFJlZ2lzdGVyTG9hZGVkUmVtb3RlRGF0YUFjdGlvbiwgUmVtb3RlRGF0YUFjdGlvblR5cGUgfSBmcm9tICcuLi9hY3Rpb25zJztcbmltcG9ydCB7IERhdGFTdGF0dXMgfSBmcm9tICcuLi9tb2RlbCc7XG5pbXBvcnQgeyBSZW1vdGVEYXRhUHJvdmlkZXIsIE5HU1NNX1JFTU9URV9EQVRBX1BST1ZJREVSIH0gZnJvbSAnLi4vcmVtb3RlLWRhdGEtcHJvdmlkZXInO1xuaW1wb3J0IHsgc2VsZWN0UmVtb3RlRGF0YVN0YXRlIH0gZnJvbSAnLi4vc3RhdGUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUmVtb3RlRGF0YUxvYWRpbmdFZmZlY3QgaW1wbGVtZW50cyBFZmZlY3Qge1xuICBwcml2YXRlIHJlYWRvbmx5IHJlbW90ZURhdGFQcm92aWRlcnNQZXJLZXk6IE1hcDxzdHJpbmcsIFJlbW90ZURhdGFQcm92aWRlcj47XG5cbiAgcHVibGljIHJlYWRvbmx5IHByb2Nlc3NlZEFjdGlvbnM6IHN0cmluZ1tdID0gW1JlbW90ZURhdGFBY3Rpb25UeXBlLmxvYWRSZW1vdGVEYXRhXTtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KE5HU1NNX1JFTU9URV9EQVRBX1BST1ZJREVSKSBAT3B0aW9uYWwoKSByZW1vdGVEYXRhUHJvdmlkZXJzOiBSZW1vdGVEYXRhUHJvdmlkZXJbXSkge1xuICAgIHRoaXMucmVtb3RlRGF0YVByb3ZpZGVyc1BlcktleSA9IG5ldyBNYXA8c3RyaW5nLCBSZW1vdGVEYXRhUHJvdmlkZXI+KChyZW1vdGVEYXRhUHJvdmlkZXJzID8/IFtdKS5tYXAoKHIpID0+IFtyLnJlbW90ZURhdGFLZXksIHJdKSk7XG4gIH1cblxuICBwdWJsaWMgcHJvY2Vzc0FjdGlvbihzdG9yZTogU3RvcmUsIHN0YXRlOiBTdGF0ZSwgYWN0aW9uOiBBY3Rpb24pOiB2b2lkIHtcbiAgICBjb25zdCBsb2FkUmVtb3RlRGF0YUFjdGlvbiA9IGFjdGlvbiBhcyBMb2FkUmVtb3RlRGF0YUFjdGlvbjtcbiAgICBjb25zdCBpdGVtID0gc2VsZWN0UmVtb3RlRGF0YVN0YXRlKHN0YXRlKVtsb2FkUmVtb3RlRGF0YUFjdGlvbi5yZW1vdGVEYXRhS2V5XTtcbiAgICBjb25zdCBwcm92aWRlciA9IHRoaXMucmVtb3RlRGF0YVByb3ZpZGVyc1BlcktleS5nZXQobG9hZFJlbW90ZURhdGFBY3Rpb24ucmVtb3RlRGF0YUtleSk7XG5cbiAgICBpZiAoIWl0ZW0gfHwgIXByb3ZpZGVyIHx8IGl0ZW0uc3RhdHVzICE9PSBEYXRhU3RhdHVzLmxvYWRpbmcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBwcm92aWRlci5nZXQoKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHZhbHVlKSA9PlxuICAgICAgICBzdG9yZS5kaXNwYXRjaEFjdGlvbihuZXcgUmVnaXN0ZXJMb2FkZWRSZW1vdGVEYXRhQWN0aW9uKGxvYWRSZW1vdGVEYXRhQWN0aW9uLnJlbW90ZURhdGFLZXksIERhdGFTdGF0dXMubG9hZGVkLCB2YWx1ZSkpLFxuICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBVbmFibGUgdG8gbG9hZCBkYXRhIGZvciAnJHtsb2FkUmVtb3RlRGF0YUFjdGlvbi5yZW1vdGVEYXRhS2V5fSdgLCBlcnJvcik7XG4gICAgICAgIHN0b3JlLmRpc3BhdGNoQWN0aW9uKG5ldyBSZWdpc3RlckxvYWRlZFJlbW90ZURhdGFBY3Rpb24obG9hZFJlbW90ZURhdGFBY3Rpb24ucmVtb3RlRGF0YUtleSwgRGF0YVN0YXR1cy5lcnJvciwgdW5kZWZpbmVkKSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHJlbW90ZURhdGFMb2FkaW5nRWZmZWN0UHJvdmlkZXI6IFByb3ZpZGVyID0ge1xuICBwcm92aWRlOiBOR1NTTV9FRkZFQ1QsXG4gIHVzZUNsYXNzOiBSZW1vdGVEYXRhTG9hZGluZ0VmZmVjdCxcbiAgbXVsdGk6IHRydWVcbn07XG4iXX0=
@@ -14,9 +14,9 @@ export class RemoteDataLoadingGuard {
14
14
  return true;
15
15
  }
16
16
  }
17
- RemoteDataLoadingGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RemoteDataLoadingGuard, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable });
18
- RemoteDataLoadingGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RemoteDataLoadingGuard, providedIn: 'root' });
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RemoteDataLoadingGuard, decorators: [{
17
+ RemoteDataLoadingGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: RemoteDataLoadingGuard, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable });
18
+ RemoteDataLoadingGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: RemoteDataLoadingGuard, providedIn: 'root' });
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: RemoteDataLoadingGuard, decorators: [{
20
20
  type: Injectable,
21
21
  args: [{
22
22
  providedIn: 'root'
@@ -0,0 +1,9 @@
1
+ export var DataStatus;
2
+ (function (DataStatus) {
3
+ DataStatus["none"] = "None";
4
+ DataStatus["loading"] = "Loading";
5
+ DataStatus["loaded"] = "Loaded";
6
+ DataStatus["notFound"] = "NotFound";
7
+ DataStatus["error"] = "Error";
8
+ })(DataStatus || (DataStatus = {}));
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zdGF0dXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1yZW1vdGUtZGF0YS9zcmMvbGliL21vZGVsL2RhdGEtc3RhdHVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLFVBTVg7QUFORCxXQUFZLFVBQVU7SUFDcEIsMkJBQWEsQ0FBQTtJQUNiLGlDQUFtQixDQUFBO0lBQ25CLCtCQUFpQixDQUFBO0lBQ2pCLG1DQUFxQixDQUFBO0lBQ3JCLDZCQUFlLENBQUE7QUFDakIsQ0FBQyxFQU5XLFVBQVUsS0FBVixVQUFVLFFBTXJCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gRGF0YVN0YXR1cyB7XG4gIG5vbmUgPSAnTm9uZScsXG4gIGxvYWRpbmcgPSAnTG9hZGluZycsXG4gIGxvYWRlZCA9ICdMb2FkZWQnLFxuICBub3RGb3VuZCA9ICdOb3RGb3VuZCcsXG4gIGVycm9yID0gJ0Vycm9yJ1xufVxuIl19
@@ -0,0 +1,5 @@
1
+ export * from './data-status';
2
+ export * from './remote-data';
3
+ export * from './remote-call-status';
4
+ export * from './remote-call-error';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1yZW1vdGUtZGF0YS9zcmMvbGliL21vZGVsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGF0YS1zdGF0dXMnO1xuZXhwb3J0ICogZnJvbSAnLi9yZW1vdGUtZGF0YSc7XG5leHBvcnQgKiBmcm9tICcuL3JlbW90ZS1jYWxsLXN0YXR1cyc7XG5leHBvcnQgKiBmcm9tICcuL3JlbW90ZS1jYWxsLWVycm9yJztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWNhbGwtZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1yZW1vdGUtZGF0YS9zcmMvbGliL21vZGVsL3JlbW90ZS1jYWxsLWVycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFJlbW90ZUNhbGxFcnJvciB7XG4gIHR5cGU/OiBzdHJpbmc7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBzdGF0dXM/OiBudW1iZXI7XG4gIHRyYWNlSWQ/OiBzdHJpbmc7XG4gIGVycm9ycz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nW10gfTtcbn1cbiJdfQ==
@@ -0,0 +1,8 @@
1
+ export var RemoteCallStatus;
2
+ (function (RemoteCallStatus) {
3
+ RemoteCallStatus["none"] = "None";
4
+ RemoteCallStatus["inProgress"] = "In progress";
5
+ RemoteCallStatus["done"] = "Done";
6
+ RemoteCallStatus["ko"] = "Ko";
7
+ })(RemoteCallStatus || (RemoteCallStatus = {}));
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWNhbGwtc3RhdHVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdzc20tcmVtb3RlLWRhdGEvc3JjL2xpYi9tb2RlbC9yZW1vdGUtY2FsbC1zdGF0dXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksZ0JBS1g7QUFMRCxXQUFZLGdCQUFnQjtJQUMxQixpQ0FBYSxDQUFBO0lBQ2IsOENBQTBCLENBQUE7SUFDMUIsaUNBQWEsQ0FBQTtJQUNiLDZCQUFTLENBQUE7QUFDWCxDQUFDLEVBTFcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQUszQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIFJlbW90ZUNhbGxTdGF0dXMge1xuICBub25lID0gJ05vbmUnLFxuICBpblByb2dyZXNzID0gJ0luIHByb2dyZXNzJyxcbiAgZG9uZSA9ICdEb25lJyxcbiAga28gPSAnS28nXG59XG4iXX0=
@@ -0,0 +1,6 @@
1
+ import { DataStatus } from './data-status';
2
+ export const getDefaultRemoteData = (defaultValue) => ({
3
+ status: DataStatus.none,
4
+ data: defaultValue
5
+ });
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1yZW1vdGUtZGF0YS9zcmMvbGliL21vZGVsL3JlbW90ZS1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFTM0MsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBSSxZQUFnQixFQUFpQixFQUFFLENBQUMsQ0FBQztJQUMzRSxNQUFNLEVBQUUsVUFBVSxDQUFDLElBQUk7SUFDdkIsSUFBSSxFQUFFLFlBQVk7Q0FDbkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YVN0YXR1cyB9IGZyb20gJy4vZGF0YS1zdGF0dXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlbW90ZURhdGE8VD4ge1xuICBzdGF0dXM6IERhdGFTdGF0dXM7XG4gIGRhdGE/OiBUO1xuICB0aW1lc3RhbXA/OiBEYXRlO1xuICBtZXNzYWdlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgZ2V0RGVmYXVsdFJlbW90ZURhdGEgPSA8VD4oZGVmYXVsdFZhbHVlPzogVCk6IFJlbW90ZURhdGE8VD4gPT4gKHtcbiAgc3RhdHVzOiBEYXRhU3RhdHVzLm5vbmUsXG4gIGRhdGE6IGRlZmF1bHRWYWx1ZVxufSk7XG4iXX0=
@@ -6,14 +6,14 @@ import { RemoteDataStateInitializer } from './remote-data-state-initializer';
6
6
  import * as i0 from "@angular/core";
7
7
  export class NgssmRemoteDataModule {
8
8
  }
9
- NgssmRemoteDataModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NgssmRemoteDataModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
- NgssmRemoteDataModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.4", ngImport: i0, type: NgssmRemoteDataModule });
11
- NgssmRemoteDataModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NgssmRemoteDataModule, providers: [
9
+ NgssmRemoteDataModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgssmRemoteDataModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ NgssmRemoteDataModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.1", ngImport: i0, type: NgssmRemoteDataModule });
11
+ NgssmRemoteDataModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgssmRemoteDataModule, providers: [
12
12
  remoteDataReducerProvider,
13
13
  remoteDataLoadingEffectProvider,
14
14
  { provide: NGSSM_STATE_INITIALIZER, useClass: RemoteDataStateInitializer, multi: true }
15
15
  ] });
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NgssmRemoteDataModule, decorators: [{
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgssmRemoteDataModule, decorators: [{
17
17
  type: NgModule,
18
18
  args: [{
19
19
  declarations: [],
@@ -1,7 +1,7 @@
1
1
  import { Inject, Injectable, Optional } from '@angular/core';
2
2
  import { NGSSM_REDUCER } from 'ngssm-store';
3
3
  import { RemoteDataActionType } from '../actions';
4
- import { DataStatus } from '../data-status';
4
+ import { DataStatus } from '../model';
5
5
  import { NGSSM_REMOTE_DATA_PROVIDER } from '../remote-data-provider';
6
6
  import { selectRemoteDataState, updateRemoteDataState } from '../state';
7
7
  import * as i0 from "@angular/core";
@@ -46,9 +46,9 @@ export class RemoteDataReducer {
46
46
  return state;
47
47
  }
48
48
  }
49
- RemoteDataReducer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RemoteDataReducer, deps: [{ token: NGSSM_REMOTE_DATA_PROVIDER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
50
- RemoteDataReducer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RemoteDataReducer });
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RemoteDataReducer, decorators: [{
49
+ RemoteDataReducer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: RemoteDataReducer, deps: [{ token: NGSSM_REMOTE_DATA_PROVIDER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
50
+ RemoteDataReducer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: RemoteDataReducer });
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: RemoteDataReducer, decorators: [{
52
52
  type: Injectable
53
53
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
54
54
  type: Inject,
@@ -61,4 +61,4 @@ export const remoteDataReducerProvider = {
61
61
  useClass: RemoteDataReducer,
62
62
  multi: true
63
63
  };
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWRhdGEucmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXJlbW90ZS1kYXRhL3NyYy9saWIvcmVkdWNlcnMvcmVtb3RlLWRhdGEucmVkdWNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQVksTUFBTSxlQUFlLENBQUM7QUFFdkUsT0FBTyxFQUFrQixhQUFhLEVBQVUsTUFBTSxhQUFhLENBQUM7QUFFcEUsT0FBTyxFQUF3RCxvQkFBb0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN4RyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFzQiwwQkFBMEIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7QUFHeEUsTUFBTSxPQUFPLGlCQUFpQjtJQUs1QixZQUE0RCxtQkFBeUM7UUFGckYscUJBQWdCLEdBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxjQUFjLEVBQUUsb0JBQW9CLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUdoSSxJQUFJLENBQUMseUJBQXlCLEdBQUcsSUFBSSxHQUFHLENBQTZCLENBQUMsbUJBQW1CLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JJLENBQUM7SUFFTSxXQUFXLENBQUMsS0FBWSxFQUFFLE1BQWM7UUFDN0MsUUFBUSxNQUFNLENBQUMsSUFBSSxFQUFFO1lBQ25CLEtBQUssb0JBQW9CLENBQUMsY0FBYztnQkFDdEMsTUFBTSxvQkFBb0IsR0FBRyxNQUE4QixDQUFDO2dCQUM1RCxNQUFNLElBQUksR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDOUUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFFeEYsSUFDRSxDQUFDLFFBQVE7b0JBQ1Qsb0JBQW9CLENBQUMsV0FBVztvQkFDaEMsSUFBSSxDQUFDLE1BQU0sS0FBSyxVQUFVLENBQUMsSUFBSTtvQkFDL0IsSUFBSSxDQUFDLE1BQU0sS0FBSyxVQUFVLENBQUMsS0FBSztvQkFDaEMsQ0FBQyxJQUFJLENBQUMsU0FBUztvQkFDZixJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksSUFBSSxHQUFHLFFBQVEsQ0FBQyxzQkFBc0IsRUFDekY7b0JBQ0EsT0FBTyxxQkFBcUIsQ0FBQyxLQUFLLEVBQUU7d0JBQ2xDLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLEVBQUU7NEJBQ3BDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLENBQUMsT0FBTyxFQUFFO3lCQUNyQztxQkFDRixDQUFDLENBQUM7aUJBQ0o7Z0JBRUQsTUFBTTtZQUVSLEtBQUssb0JBQW9CLENBQUMsd0JBQXdCO2dCQUNoRCxNQUFNLDhCQUE4QixHQUFHLE1BQXdDLENBQUM7Z0JBQ2hGLElBQUksSUFBSSxDQUFDLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyw4QkFBOEIsQ0FBQyxhQUFhLENBQUMsRUFBRTtvQkFDcEYsT0FBTyxxQkFBcUIsQ0FBQyxLQUFLLEVBQUU7d0JBQ2xDLENBQUMsOEJBQThCLENBQUMsYUFBYSxDQUFDLEVBQUU7NEJBQzlDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSw4QkFBOEIsQ0FBQyxNQUFNLEVBQUU7NEJBQ3ZELElBQUksRUFBRSxFQUFFLElBQUksRUFBRSw4QkFBOEIsQ0FBQyxJQUFJLEVBQUU7NEJBQ25ELFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFOzRCQUMvQixPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsOEJBQThCLENBQUMsT0FBTyxFQUFFO3lCQUMxRDtxQkFDRixDQUFDLENBQUM7aUJBQ0o7Z0JBRUQsTUFBTTtTQUNUO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzs4R0FsRFUsaUJBQWlCLGtCQUtSLDBCQUEwQjtrSEFMbkMsaUJBQWlCOzJGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVU7OzBCQU1JLE1BQU07MkJBQUMsMEJBQTBCOzswQkFBRyxRQUFROztBQWdEM0QsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQWE7SUFDakQsT0FBTyxFQUFFLGFBQWE7SUFDdEIsUUFBUSxFQUFFLGlCQUFpQjtJQUMzQixLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBSZWR1Y2VyLCBTdGF0ZSwgTkdTU01fUkVEVUNFUiwgQWN0aW9uIH0gZnJvbSAnbmdzc20tc3RvcmUnO1xuXG5pbXBvcnQgeyBMb2FkUmVtb3RlRGF0YUFjdGlvbiwgUmVnaXN0ZXJMb2FkZWRSZW1vdGVEYXRhQWN0aW9uLCBSZW1vdGVEYXRhQWN0aW9uVHlwZSB9IGZyb20gJy4uL2FjdGlvbnMnO1xuaW1wb3J0IHsgRGF0YVN0YXR1cyB9IGZyb20gJy4uL2RhdGEtc3RhdHVzJztcbmltcG9ydCB7IFJlbW90ZURhdGFQcm92aWRlciwgTkdTU01fUkVNT1RFX0RBVEFfUFJPVklERVIgfSBmcm9tICcuLi9yZW1vdGUtZGF0YS1wcm92aWRlcic7XG5pbXBvcnQgeyBzZWxlY3RSZW1vdGVEYXRhU3RhdGUsIHVwZGF0ZVJlbW90ZURhdGFTdGF0ZSB9IGZyb20gJy4uL3N0YXRlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFJlbW90ZURhdGFSZWR1Y2VyIGltcGxlbWVudHMgUmVkdWNlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVtb3RlRGF0YVByb3ZpZGVyc1BlcktleTogTWFwPHN0cmluZywgUmVtb3RlRGF0YVByb3ZpZGVyPjtcblxuICBwdWJsaWMgcmVhZG9ubHkgcHJvY2Vzc2VkQWN0aW9uczogc3RyaW5nW10gPSBbUmVtb3RlRGF0YUFjdGlvblR5cGUubG9hZFJlbW90ZURhdGEsIFJlbW90ZURhdGFBY3Rpb25UeXBlLnJlZ2lzdGVyTG9hZGVkUmVtb3RlRGF0YV07XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChOR1NTTV9SRU1PVEVfREFUQV9QUk9WSURFUikgQE9wdGlvbmFsKCkgcmVtb3RlRGF0YVByb3ZpZGVyczogUmVtb3RlRGF0YVByb3ZpZGVyW10pIHtcbiAgICB0aGlzLnJlbW90ZURhdGFQcm92aWRlcnNQZXJLZXkgPSBuZXcgTWFwPHN0cmluZywgUmVtb3RlRGF0YVByb3ZpZGVyPigocmVtb3RlRGF0YVByb3ZpZGVycyA/PyBbXSkubWFwKChyKSA9PiBbci5yZW1vdGVEYXRhS2V5LCByXSkpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVN0YXRlKHN0YXRlOiBTdGF0ZSwgYWN0aW9uOiBBY3Rpb24pOiBTdGF0ZSB7XG4gICAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgICAgY2FzZSBSZW1vdGVEYXRhQWN0aW9uVHlwZS5sb2FkUmVtb3RlRGF0YTpcbiAgICAgICAgY29uc3QgbG9hZFJlbW90ZURhdGFBY3Rpb24gPSBhY3Rpb24gYXMgTG9hZFJlbW90ZURhdGFBY3Rpb247XG4gICAgICAgIGNvbnN0IGl0ZW0gPSBzZWxlY3RSZW1vdGVEYXRhU3RhdGUoc3RhdGUpW2xvYWRSZW1vdGVEYXRhQWN0aW9uLnJlbW90ZURhdGFLZXldO1xuICAgICAgICBjb25zdCBwcm92aWRlciA9IHRoaXMucmVtb3RlRGF0YVByb3ZpZGVyc1BlcktleS5nZXQobG9hZFJlbW90ZURhdGFBY3Rpb24ucmVtb3RlRGF0YUtleSk7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICFwcm92aWRlciB8fFxuICAgICAgICAgIGxvYWRSZW1vdGVEYXRhQWN0aW9uLmZvcmNlUmVsb2FkIHx8XG4gICAgICAgICAgaXRlbS5zdGF0dXMgPT09IERhdGFTdGF0dXMubm9uZSB8fFxuICAgICAgICAgIGl0ZW0uc3RhdHVzID09PSBEYXRhU3RhdHVzLmVycm9yIHx8XG4gICAgICAgICAgIWl0ZW0udGltZXN0YW1wIHx8XG4gICAgICAgICAgbmV3IERhdGUoKS5nZXRUaW1lKCkgLSBpdGVtLnRpbWVzdGFtcC5nZXRUaW1lKCkgPj0gMTAwMCAqIHByb3ZpZGVyLmNhY2hlRHVyYXRpb25JblNlY29uZHNcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZVJlbW90ZURhdGFTdGF0ZShzdGF0ZSwge1xuICAgICAgICAgICAgW2xvYWRSZW1vdGVEYXRhQWN0aW9uLnJlbW90ZURhdGFLZXldOiB7XG4gICAgICAgICAgICAgIHN0YXR1czogeyAkc2V0OiBEYXRhU3RhdHVzLmxvYWRpbmcgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgUmVtb3RlRGF0YUFjdGlvblR5cGUucmVnaXN0ZXJMb2FkZWRSZW1vdGVEYXRhOlxuICAgICAgICBjb25zdCByZWdpc3RlckxvYWRlZFJlbW90ZURhdGFBY3Rpb24gPSBhY3Rpb24gYXMgUmVnaXN0ZXJMb2FkZWRSZW1vdGVEYXRhQWN0aW9uO1xuICAgICAgICBpZiAodGhpcy5yZW1vdGVEYXRhUHJvdmlkZXJzUGVyS2V5LmhhcyhyZWdpc3RlckxvYWRlZFJlbW90ZURhdGFBY3Rpb24ucmVtb3RlRGF0YUtleSkpIHtcbiAgICAgICAgICByZXR1cm4gdXBkYXRlUmVtb3RlRGF0YVN0YXRlKHN0YXRlLCB7XG4gICAgICAgICAgICBbcmVnaXN0ZXJMb2FkZWRSZW1vdGVEYXRhQWN0aW9uLnJlbW90ZURhdGFLZXldOiB7XG4gICAgICAgICAgICAgIHN0YXR1czogeyAkc2V0OiByZWdpc3RlckxvYWRlZFJlbW90ZURhdGFBY3Rpb24uc3RhdHVzIH0sXG4gICAgICAgICAgICAgIGRhdGE6IHsgJHNldDogcmVnaXN0ZXJMb2FkZWRSZW1vdGVEYXRhQWN0aW9uLmRhdGEgfSxcbiAgICAgICAgICAgICAgdGltZXN0YW1wOiB7ICRzZXQ6IG5ldyBEYXRlKCkgfSxcbiAgICAgICAgICAgICAgbWVzc2FnZTogeyAkc2V0OiByZWdpc3RlckxvYWRlZFJlbW90ZURhdGFBY3Rpb24ubWVzc2FnZSB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICByZXR1cm4gc3RhdGU7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHJlbW90ZURhdGFSZWR1Y2VyUHJvdmlkZXI6IFByb3ZpZGVyID0ge1xuICBwcm92aWRlOiBOR1NTTV9SRURVQ0VSLFxuICB1c2VDbGFzczogUmVtb3RlRGF0YVJlZHVjZXIsXG4gIG11bHRpOiB0cnVlXG59O1xuIl19
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWRhdGEucmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXJlbW90ZS1kYXRhL3NyYy9saWIvcmVkdWNlcnMvcmVtb3RlLWRhdGEucmVkdWNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQVksTUFBTSxlQUFlLENBQUM7QUFFdkUsT0FBTyxFQUFrQixhQUFhLEVBQVUsTUFBTSxhQUFhLENBQUM7QUFFcEUsT0FBTyxFQUF3RCxvQkFBb0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN4RyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3RDLE9BQU8sRUFBc0IsMEJBQTBCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RixPQUFPLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBR3hFLE1BQU0sT0FBTyxpQkFBaUI7SUFLNUIsWUFBNEQsbUJBQXlDO1FBRnJGLHFCQUFnQixHQUFhLENBQUMsb0JBQW9CLENBQUMsY0FBYyxFQUFFLG9CQUFvQixDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFHaEksSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksR0FBRyxDQUE2QixDQUFDLG1CQUFtQixJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNySSxDQUFDO0lBRU0sV0FBVyxDQUFDLEtBQVksRUFBRSxNQUFjO1FBQzdDLFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRTtZQUNuQixLQUFLLG9CQUFvQixDQUFDLGNBQWM7Z0JBQ3RDLE1BQU0sb0JBQW9CLEdBQUcsTUFBOEIsQ0FBQztnQkFDNUQsTUFBTSxJQUFJLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQzlFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBRXhGLElBQ0UsQ0FBQyxRQUFRO29CQUNULG9CQUFvQixDQUFDLFdBQVc7b0JBQ2hDLElBQUksQ0FBQyxNQUFNLEtBQUssVUFBVSxDQUFDLElBQUk7b0JBQy9CLElBQUksQ0FBQyxNQUFNLEtBQUssVUFBVSxDQUFDLEtBQUs7b0JBQ2hDLENBQUMsSUFBSSxDQUFDLFNBQVM7b0JBQ2YsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxJQUFJLElBQUksR0FBRyxRQUFRLENBQUMsc0JBQXNCLEVBQ3pGO29CQUNBLE9BQU8scUJBQXFCLENBQUMsS0FBSyxFQUFFO3dCQUNsQyxDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxFQUFFOzRCQUNwQyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLE9BQU8sRUFBRTt5QkFDckM7cUJBQ0YsQ0FBQyxDQUFDO2lCQUNKO2dCQUVELE1BQU07WUFFUixLQUFLLG9CQUFvQixDQUFDLHdCQUF3QjtnQkFDaEQsTUFBTSw4QkFBOEIsR0FBRyxNQUF3QyxDQUFDO2dCQUNoRixJQUFJLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLENBQUMsOEJBQThCLENBQUMsYUFBYSxDQUFDLEVBQUU7b0JBQ3BGLE9BQU8scUJBQXFCLENBQUMsS0FBSyxFQUFFO3dCQUNsQyxDQUFDLDhCQUE4QixDQUFDLGFBQWEsQ0FBQyxFQUFFOzRCQUM5QyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsOEJBQThCLENBQUMsTUFBTSxFQUFFOzRCQUN2RCxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsOEJBQThCLENBQUMsSUFBSSxFQUFFOzRCQUNuRCxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRTs0QkFDL0IsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLDhCQUE4QixDQUFDLE9BQU8sRUFBRTt5QkFDMUQ7cUJBQ0YsQ0FBQyxDQUFDO2lCQUNKO2dCQUVELE1BQU07U0FDVDtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7OEdBbERVLGlCQUFpQixrQkFLUiwwQkFBMEI7a0hBTG5DLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVOzswQkFNSSxNQUFNOzJCQUFDLDBCQUEwQjs7MEJBQUcsUUFBUTs7QUFnRDNELE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFhO0lBQ2pELE9BQU8sRUFBRSxhQUFhO0lBQ3RCLFFBQVEsRUFBRSxpQkFBaUI7SUFDM0IsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCwgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUmVkdWNlciwgU3RhdGUsIE5HU1NNX1JFRFVDRVIsIEFjdGlvbiB9IGZyb20gJ25nc3NtLXN0b3JlJztcblxuaW1wb3J0IHsgTG9hZFJlbW90ZURhdGFBY3Rpb24sIFJlZ2lzdGVyTG9hZGVkUmVtb3RlRGF0YUFjdGlvbiwgUmVtb3RlRGF0YUFjdGlvblR5cGUgfSBmcm9tICcuLi9hY3Rpb25zJztcbmltcG9ydCB7IERhdGFTdGF0dXMgfSBmcm9tICcuLi9tb2RlbCc7XG5pbXBvcnQgeyBSZW1vdGVEYXRhUHJvdmlkZXIsIE5HU1NNX1JFTU9URV9EQVRBX1BST1ZJREVSIH0gZnJvbSAnLi4vcmVtb3RlLWRhdGEtcHJvdmlkZXInO1xuaW1wb3J0IHsgc2VsZWN0UmVtb3RlRGF0YVN0YXRlLCB1cGRhdGVSZW1vdGVEYXRhU3RhdGUgfSBmcm9tICcuLi9zdGF0ZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBSZW1vdGVEYXRhUmVkdWNlciBpbXBsZW1lbnRzIFJlZHVjZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IHJlbW90ZURhdGFQcm92aWRlcnNQZXJLZXk6IE1hcDxzdHJpbmcsIFJlbW90ZURhdGFQcm92aWRlcj47XG5cbiAgcHVibGljIHJlYWRvbmx5IHByb2Nlc3NlZEFjdGlvbnM6IHN0cmluZ1tdID0gW1JlbW90ZURhdGFBY3Rpb25UeXBlLmxvYWRSZW1vdGVEYXRhLCBSZW1vdGVEYXRhQWN0aW9uVHlwZS5yZWdpc3RlckxvYWRlZFJlbW90ZURhdGFdO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoTkdTU01fUkVNT1RFX0RBVEFfUFJPVklERVIpIEBPcHRpb25hbCgpIHJlbW90ZURhdGFQcm92aWRlcnM6IFJlbW90ZURhdGFQcm92aWRlcltdKSB7XG4gICAgdGhpcy5yZW1vdGVEYXRhUHJvdmlkZXJzUGVyS2V5ID0gbmV3IE1hcDxzdHJpbmcsIFJlbW90ZURhdGFQcm92aWRlcj4oKHJlbW90ZURhdGFQcm92aWRlcnMgPz8gW10pLm1hcCgocikgPT4gW3IucmVtb3RlRGF0YUtleSwgcl0pKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVTdGF0ZShzdGF0ZTogU3RhdGUsIGFjdGlvbjogQWN0aW9uKTogU3RhdGUge1xuICAgIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICAgIGNhc2UgUmVtb3RlRGF0YUFjdGlvblR5cGUubG9hZFJlbW90ZURhdGE6XG4gICAgICAgIGNvbnN0IGxvYWRSZW1vdGVEYXRhQWN0aW9uID0gYWN0aW9uIGFzIExvYWRSZW1vdGVEYXRhQWN0aW9uO1xuICAgICAgICBjb25zdCBpdGVtID0gc2VsZWN0UmVtb3RlRGF0YVN0YXRlKHN0YXRlKVtsb2FkUmVtb3RlRGF0YUFjdGlvbi5yZW1vdGVEYXRhS2V5XTtcbiAgICAgICAgY29uc3QgcHJvdmlkZXIgPSB0aGlzLnJlbW90ZURhdGFQcm92aWRlcnNQZXJLZXkuZ2V0KGxvYWRSZW1vdGVEYXRhQWN0aW9uLnJlbW90ZURhdGFLZXkpO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAhcHJvdmlkZXIgfHxcbiAgICAgICAgICBsb2FkUmVtb3RlRGF0YUFjdGlvbi5mb3JjZVJlbG9hZCB8fFxuICAgICAgICAgIGl0ZW0uc3RhdHVzID09PSBEYXRhU3RhdHVzLm5vbmUgfHxcbiAgICAgICAgICBpdGVtLnN0YXR1cyA9PT0gRGF0YVN0YXR1cy5lcnJvciB8fFxuICAgICAgICAgICFpdGVtLnRpbWVzdGFtcCB8fFxuICAgICAgICAgIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC0gaXRlbS50aW1lc3RhbXAuZ2V0VGltZSgpID49IDEwMDAgKiBwcm92aWRlci5jYWNoZUR1cmF0aW9uSW5TZWNvbmRzXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybiB1cGRhdGVSZW1vdGVEYXRhU3RhdGUoc3RhdGUsIHtcbiAgICAgICAgICAgIFtsb2FkUmVtb3RlRGF0YUFjdGlvbi5yZW1vdGVEYXRhS2V5XToge1xuICAgICAgICAgICAgICBzdGF0dXM6IHsgJHNldDogRGF0YVN0YXR1cy5sb2FkaW5nIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFJlbW90ZURhdGFBY3Rpb25UeXBlLnJlZ2lzdGVyTG9hZGVkUmVtb3RlRGF0YTpcbiAgICAgICAgY29uc3QgcmVnaXN0ZXJMb2FkZWRSZW1vdGVEYXRhQWN0aW9uID0gYWN0aW9uIGFzIFJlZ2lzdGVyTG9hZGVkUmVtb3RlRGF0YUFjdGlvbjtcbiAgICAgICAgaWYgKHRoaXMucmVtb3RlRGF0YVByb3ZpZGVyc1BlcktleS5oYXMocmVnaXN0ZXJMb2FkZWRSZW1vdGVEYXRhQWN0aW9uLnJlbW90ZURhdGFLZXkpKSB7XG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZVJlbW90ZURhdGFTdGF0ZShzdGF0ZSwge1xuICAgICAgICAgICAgW3JlZ2lzdGVyTG9hZGVkUmVtb3RlRGF0YUFjdGlvbi5yZW1vdGVEYXRhS2V5XToge1xuICAgICAgICAgICAgICBzdGF0dXM6IHsgJHNldDogcmVnaXN0ZXJMb2FkZWRSZW1vdGVEYXRhQWN0aW9uLnN0YXR1cyB9LFxuICAgICAgICAgICAgICBkYXRhOiB7ICRzZXQ6IHJlZ2lzdGVyTG9hZGVkUmVtb3RlRGF0YUFjdGlvbi5kYXRhIH0sXG4gICAgICAgICAgICAgIHRpbWVzdGFtcDogeyAkc2V0OiBuZXcgRGF0ZSgpIH0sXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IHsgJHNldDogcmVnaXN0ZXJMb2FkZWRSZW1vdGVEYXRhQWN0aW9uLm1lc3NhZ2UgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCByZW1vdGVEYXRhUmVkdWNlclByb3ZpZGVyOiBQcm92aWRlciA9IHtcbiAgcHJvdmlkZTogTkdTU01fUkVEVUNFUixcbiAgdXNlQ2xhc3M6IFJlbW90ZURhdGFSZWR1Y2VyLFxuICBtdWx0aTogdHJ1ZVxufTtcbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import { Inject, Injectable, Optional } from '@angular/core';
2
- import { DataStatus } from './data-status';
2
+ import { DataStatus } from './model';
3
3
  import { NGSSM_REMOTE_DATA_PROVIDER } from './remote-data-provider';
4
4
  import { updateRemoteDataState } from './state';
5
5
  import * as i0 from "@angular/core";
@@ -12,9 +12,9 @@ export class RemoteDataStateInitializer {
12
12
  return (this.remoteDataProviders ?? []).reduce((s, provider) => updateRemoteDataState(s, { [provider.remoteDataKey]: { $set: { status: DataStatus.none } } }), tempState);
13
13
  }
14
14
  }
15
- RemoteDataStateInitializer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RemoteDataStateInitializer, deps: [{ token: NGSSM_REMOTE_DATA_PROVIDER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
16
- RemoteDataStateInitializer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RemoteDataStateInitializer });
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RemoteDataStateInitializer, decorators: [{
15
+ RemoteDataStateInitializer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: RemoteDataStateInitializer, deps: [{ token: NGSSM_REMOTE_DATA_PROVIDER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
16
+ RemoteDataStateInitializer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: RemoteDataStateInitializer });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: RemoteDataStateInitializer, decorators: [{
18
18
  type: Injectable
19
19
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
20
20
  type: Inject,
@@ -22,4 +22,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
22
22
  }, {
23
23
  type: Optional
24
24
  }] }]; } });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWRhdGEtc3RhdGUtaW5pdGlhbGl6ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1yZW1vdGUtZGF0YS9zcmMvbGliL3JlbW90ZS1kYXRhLXN0YXRlLWluaXRpYWxpemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUk3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBc0IsMEJBQTBCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxTQUFTLENBQUM7O0FBR2hELE1BQU0sT0FBTywwQkFBMEI7SUFDckMsWUFBb0UsbUJBQXlDO1FBQXpDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBc0I7SUFBRyxDQUFDO0lBRTFHLGVBQWUsQ0FBQyxLQUFZO1FBQ2pDLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN0QixPQUFPLENBQUMsSUFBSSxDQUFDLG1CQUFtQixJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FDNUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxVQUFVLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQzlHLFNBQVMsQ0FDVixDQUFDO0lBQ0osQ0FBQzs7dUhBVFUsMEJBQTBCLGtCQUNqQiwwQkFBMEI7MkhBRG5DLDBCQUEwQjsyRkFBMUIsMEJBQTBCO2tCQUR0QyxVQUFVOzswQkFFSSxNQUFNOzJCQUFDLDBCQUEwQjs7MEJBQUcsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU3RhdGUsIFN0YXRlSW5pdGlhbGl6ZXIgfSBmcm9tICduZ3NzbS1zdG9yZSc7XG5cbmltcG9ydCB7IERhdGFTdGF0dXMgfSBmcm9tICcuL2RhdGEtc3RhdHVzJztcbmltcG9ydCB7IFJlbW90ZURhdGFQcm92aWRlciwgTkdTU01fUkVNT1RFX0RBVEFfUFJPVklERVIgfSBmcm9tICcuL3JlbW90ZS1kYXRhLXByb3ZpZGVyJztcbmltcG9ydCB7IHVwZGF0ZVJlbW90ZURhdGFTdGF0ZSB9IGZyb20gJy4vc3RhdGUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUmVtb3RlRGF0YVN0YXRlSW5pdGlhbGl6ZXIgaW1wbGVtZW50cyBTdGF0ZUluaXRpYWxpemVyIHtcbiAgY29uc3RydWN0b3IoQEluamVjdChOR1NTTV9SRU1PVEVfREFUQV9QUk9WSURFUikgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZW1vdGVEYXRhUHJvdmlkZXJzOiBSZW1vdGVEYXRhUHJvdmlkZXJbXSkge31cblxuICBwdWJsaWMgaW5pdGlhbGl6ZVN0YXRlKHN0YXRlOiBTdGF0ZSk6IFN0YXRlIHtcbiAgICBsZXQgdGVtcFN0YXRlID0gc3RhdGU7XG4gICAgcmV0dXJuICh0aGlzLnJlbW90ZURhdGFQcm92aWRlcnMgPz8gW10pLnJlZHVjZShcbiAgICAgIChzLCBwcm92aWRlcikgPT4gdXBkYXRlUmVtb3RlRGF0YVN0YXRlKHMsIHsgW3Byb3ZpZGVyLnJlbW90ZURhdGFLZXldOiB7ICRzZXQ6IHsgc3RhdHVzOiBEYXRhU3RhdHVzLm5vbmUgfSB9IH0pLFxuICAgICAgdGVtcFN0YXRlXG4gICAgKTtcbiAgfVxufVxuIl19
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWRhdGEtc3RhdGUtaW5pdGlhbGl6ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1yZW1vdGUtZGF0YS9zcmMvbGliL3JlbW90ZS1kYXRhLXN0YXRlLWluaXRpYWxpemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUk3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3JDLE9BQU8sRUFBc0IsMEJBQTBCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxTQUFTLENBQUM7O0FBR2hELE1BQU0sT0FBTywwQkFBMEI7SUFDckMsWUFBb0UsbUJBQXlDO1FBQXpDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBc0I7SUFBRyxDQUFDO0lBRTFHLGVBQWUsQ0FBQyxLQUFZO1FBQ2pDLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN0QixPQUFPLENBQUMsSUFBSSxDQUFDLG1CQUFtQixJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FDNUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxVQUFVLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQzlHLFNBQVMsQ0FDVixDQUFDO0lBQ0osQ0FBQzs7dUhBVFUsMEJBQTBCLGtCQUNqQiwwQkFBMEI7MkhBRG5DLDBCQUEwQjsyRkFBMUIsMEJBQTBCO2tCQUR0QyxVQUFVOzswQkFFSSxNQUFNOzJCQUFDLDBCQUEwQjs7MEJBQUcsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU3RhdGUsIFN0YXRlSW5pdGlhbGl6ZXIgfSBmcm9tICduZ3NzbS1zdG9yZSc7XG5cbmltcG9ydCB7IERhdGFTdGF0dXMgfSBmcm9tICcuL21vZGVsJztcbmltcG9ydCB7IFJlbW90ZURhdGFQcm92aWRlciwgTkdTU01fUkVNT1RFX0RBVEFfUFJPVklERVIgfSBmcm9tICcuL3JlbW90ZS1kYXRhLXByb3ZpZGVyJztcbmltcG9ydCB7IHVwZGF0ZVJlbW90ZURhdGFTdGF0ZSB9IGZyb20gJy4vc3RhdGUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUmVtb3RlRGF0YVN0YXRlSW5pdGlhbGl6ZXIgaW1wbGVtZW50cyBTdGF0ZUluaXRpYWxpemVyIHtcbiAgY29uc3RydWN0b3IoQEluamVjdChOR1NTTV9SRU1PVEVfREFUQV9QUk9WSURFUikgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZW1vdGVEYXRhUHJvdmlkZXJzOiBSZW1vdGVEYXRhUHJvdmlkZXJbXSkge31cblxuICBwdWJsaWMgaW5pdGlhbGl6ZVN0YXRlKHN0YXRlOiBTdGF0ZSk6IFN0YXRlIHtcbiAgICBsZXQgdGVtcFN0YXRlID0gc3RhdGU7XG4gICAgcmV0dXJuICh0aGlzLnJlbW90ZURhdGFQcm92aWRlcnMgPz8gW10pLnJlZHVjZShcbiAgICAgIChzLCBwcm92aWRlcikgPT4gdXBkYXRlUmVtb3RlRGF0YVN0YXRlKHMsIHsgW3Byb3ZpZGVyLnJlbW90ZURhdGFLZXldOiB7ICRzZXQ6IHsgc3RhdHVzOiBEYXRhU3RhdHVzLm5vbmUgfSB9IH0pLFxuICAgICAgdGVtcFN0YXRlXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -17,4 +17,4 @@ RemoteDataStateSpecification = RemoteDataStateSpecification_1 = __decorate([
17
17
  })
18
18
  ], RemoteDataStateSpecification);
19
19
  export { RemoteDataStateSpecification };
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWRhdGEuc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1yZW1vdGUtZGF0YS9zcmMvbGliL3N0YXRlL3JlbW90ZS1kYXRhLnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxNQUFnQixNQUFNLHFCQUFxQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxpQkFBaUIsRUFBUyxNQUFNLGFBQWEsQ0FBQztBQUl2RCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLEtBQVksRUFBbUIsRUFBRSxDQUNyRSxLQUFLLENBQUMsNEJBQTRCLENBQUMsZUFBZSxDQUFvQixDQUFDO0FBRXpFLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsS0FBWSxFQUFFLE9BQXFDLEVBQVMsRUFBRSxDQUNsRyxNQUFNLENBQUMsS0FBSyxFQUFFO0lBQ1osQ0FBQyw0QkFBNEIsQ0FBQyxlQUFlLENBQUMsRUFBRSxPQUFPO0NBQ3hELENBQUMsQ0FBQztBQVVFLElBQU0sNEJBQTRCLG9DQUFsQyxNQUFNLDRCQUE0Qjs7QUFDaEIsNENBQWUsR0FBRyxtQkFBbUIsQ0FBQztBQUN0Qyx5Q0FBWSxHQUFvQixFQUFFLENBQUM7QUFGL0MsNEJBQTRCO0lBSnhDLGlCQUFpQixDQUFDO1FBQ2pCLGVBQWUsRUFBRSw4QkFBNEIsQ0FBQyxlQUFlO1FBQzdELFlBQVksRUFBRSw4QkFBNEIsQ0FBQyxZQUFZO0tBQ3hELENBQUM7R0FDVyw0QkFBNEIsQ0FHeEM7U0FIWSw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdXBkYXRlLCB7IFNwZWMgfSBmcm9tICdpbW11dGFiaWxpdHktaGVscGVyJztcblxuaW1wb3J0IHsgTmdTc21GZWF0dXJlU3RhdGUsIFN0YXRlIH0gZnJvbSAnbmdzc20tc3RvcmUnO1xuXG5pbXBvcnQgeyBSZW1vdGVEYXRhIH0gZnJvbSAnLi4vcmVtb3RlLWRhdGEnO1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0UmVtb3RlRGF0YVN0YXRlID0gKHN0YXRlOiBTdGF0ZSk6IFJlbW90ZURhdGFTdGF0ZSA9PlxuICBzdGF0ZVtSZW1vdGVEYXRhU3RhdGVTcGVjaWZpY2F0aW9uLmZlYXR1cmVTdGF0ZUtleV0gYXMgUmVtb3RlRGF0YVN0YXRlO1xuXG5leHBvcnQgY29uc3QgdXBkYXRlUmVtb3RlRGF0YVN0YXRlID0gKHN0YXRlOiBTdGF0ZSwgY29tbWFuZDogU3BlYzxSZW1vdGVEYXRhU3RhdGUsIG5ldmVyPik6IFN0YXRlID0+XG4gIHVwZGF0ZShzdGF0ZSwge1xuICAgIFtSZW1vdGVEYXRhU3RhdGVTcGVjaWZpY2F0aW9uLmZlYXR1cmVTdGF0ZUtleV06IGNvbW1hbmRcbiAgfSk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVtb3RlRGF0YVN0YXRlIHtcbiAgW2tleTogc3RyaW5nXTogUmVtb3RlRGF0YTxhbnk+O1xufVxuXG5ATmdTc21GZWF0dXJlU3RhdGUoe1xuICBmZWF0dXJlU3RhdGVLZXk6IFJlbW90ZURhdGFTdGF0ZVNwZWNpZmljYXRpb24uZmVhdHVyZVN0YXRlS2V5LFxuICBpbml0aWFsU3RhdGU6IFJlbW90ZURhdGFTdGF0ZVNwZWNpZmljYXRpb24uaW5pdGlhbFN0YXRlXG59KVxuZXhwb3J0IGNsYXNzIFJlbW90ZURhdGFTdGF0ZVNwZWNpZmljYXRpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGZlYXR1cmVTdGF0ZUtleSA9ICdyZW1vdGUtZGF0YS1zdGF0ZSc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgaW5pdGlhbFN0YXRlOiBSZW1vdGVEYXRhU3RhdGUgPSB7fTtcbn1cbiJdfQ==
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWRhdGEuc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1yZW1vdGUtZGF0YS9zcmMvbGliL3N0YXRlL3JlbW90ZS1kYXRhLnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxNQUFnQixNQUFNLHFCQUFxQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxpQkFBaUIsRUFBUyxNQUFNLGFBQWEsQ0FBQztBQUl2RCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLEtBQVksRUFBbUIsRUFBRSxDQUNyRSxLQUFLLENBQUMsNEJBQTRCLENBQUMsZUFBZSxDQUFvQixDQUFDO0FBRXpFLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsS0FBWSxFQUFFLE9BQXFDLEVBQVMsRUFBRSxDQUNsRyxNQUFNLENBQUMsS0FBSyxFQUFFO0lBQ1osQ0FBQyw0QkFBNEIsQ0FBQyxlQUFlLENBQUMsRUFBRSxPQUFPO0NBQ3hELENBQUMsQ0FBQztBQVVFLElBQU0sNEJBQTRCLG9DQUFsQyxNQUFNLDRCQUE0Qjs7QUFDaEIsNENBQWUsR0FBRyxtQkFBbUIsQ0FBQztBQUN0Qyx5Q0FBWSxHQUFvQixFQUFFLENBQUM7QUFGL0MsNEJBQTRCO0lBSnhDLGlCQUFpQixDQUFDO1FBQ2pCLGVBQWUsRUFBRSw4QkFBNEIsQ0FBQyxlQUFlO1FBQzdELFlBQVksRUFBRSw4QkFBNEIsQ0FBQyxZQUFZO0tBQ3hELENBQUM7R0FDVyw0QkFBNEIsQ0FHeEM7U0FIWSw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdXBkYXRlLCB7IFNwZWMgfSBmcm9tICdpbW11dGFiaWxpdHktaGVscGVyJztcblxuaW1wb3J0IHsgTmdTc21GZWF0dXJlU3RhdGUsIFN0YXRlIH0gZnJvbSAnbmdzc20tc3RvcmUnO1xuXG5pbXBvcnQgeyBSZW1vdGVEYXRhIH0gZnJvbSAnLi4vbW9kZWwnO1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0UmVtb3RlRGF0YVN0YXRlID0gKHN0YXRlOiBTdGF0ZSk6IFJlbW90ZURhdGFTdGF0ZSA9PlxuICBzdGF0ZVtSZW1vdGVEYXRhU3RhdGVTcGVjaWZpY2F0aW9uLmZlYXR1cmVTdGF0ZUtleV0gYXMgUmVtb3RlRGF0YVN0YXRlO1xuXG5leHBvcnQgY29uc3QgdXBkYXRlUmVtb3RlRGF0YVN0YXRlID0gKHN0YXRlOiBTdGF0ZSwgY29tbWFuZDogU3BlYzxSZW1vdGVEYXRhU3RhdGUsIG5ldmVyPik6IFN0YXRlID0+XG4gIHVwZGF0ZShzdGF0ZSwge1xuICAgIFtSZW1vdGVEYXRhU3RhdGVTcGVjaWZpY2F0aW9uLmZlYXR1cmVTdGF0ZUtleV06IGNvbW1hbmRcbiAgfSk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVtb3RlRGF0YVN0YXRlIHtcbiAgW2tleTogc3RyaW5nXTogUmVtb3RlRGF0YTxhbnk+O1xufVxuXG5ATmdTc21GZWF0dXJlU3RhdGUoe1xuICBmZWF0dXJlU3RhdGVLZXk6IFJlbW90ZURhdGFTdGF0ZVNwZWNpZmljYXRpb24uZmVhdHVyZVN0YXRlS2V5LFxuICBpbml0aWFsU3RhdGU6IFJlbW90ZURhdGFTdGF0ZVNwZWNpZmljYXRpb24uaW5pdGlhbFN0YXRlXG59KVxuZXhwb3J0IGNsYXNzIFJlbW90ZURhdGFTdGF0ZVNwZWNpZmljYXRpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGZlYXR1cmVTdGF0ZUtleSA9ICdyZW1vdGUtZGF0YS1zdGF0ZSc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgaW5pdGlhbFN0YXRlOiBSZW1vdGVEYXRhU3RhdGUgPSB7fTtcbn1cbiJdfQ==
@@ -2,10 +2,9 @@
2
2
  * Public API Surface of ngssm-remote-data
3
3
  */
4
4
  export * from './lib/ngssm-remote-data.module';
5
- export * from './lib/data-status';
6
- export * from './lib/remote-data';
5
+ export * from './lib/model';
7
6
  export * from './lib/state';
8
7
  export * from './lib/actions';
9
8
  export * from './lib/remote-data-provider';
10
9
  export * from './lib/guards';
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXJlbW90ZS1kYXRhL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygbmdzc20tcmVtb3RlLWRhdGFcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZ3NzbS1yZW1vdGUtZGF0YS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0YS1zdGF0dXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVtb3RlLWRhdGEnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RhdGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYWN0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9yZW1vdGUtZGF0YS1wcm92aWRlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9ndWFyZHMnO1xuIl19
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXJlbW90ZS1kYXRhL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBuZ3NzbS1yZW1vdGUtZGF0YVxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL25nc3NtLXJlbW90ZS1kYXRhLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zdGF0ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3JlbW90ZS1kYXRhLXByb3ZpZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2d1YXJkcyc7XG4iXX0=
@@ -38,6 +38,19 @@ var DataStatus;
38
38
  DataStatus["error"] = "Error";
39
39
  })(DataStatus || (DataStatus = {}));
40
40
 
41
+ const getDefaultRemoteData = (defaultValue) => ({
42
+ status: DataStatus.none,
43
+ data: defaultValue
44
+ });
45
+
46
+ var RemoteCallStatus;
47
+ (function (RemoteCallStatus) {
48
+ RemoteCallStatus["none"] = "None";
49
+ RemoteCallStatus["inProgress"] = "In progress";
50
+ RemoteCallStatus["done"] = "Done";
51
+ RemoteCallStatus["ko"] = "Ko";
52
+ })(RemoteCallStatus || (RemoteCallStatus = {}));
53
+
41
54
  const NGSSM_REMOTE_DATA_PROVIDER = new InjectionToken('NGSSM_REMOTE_DATA_PROVIDER');
42
55
 
43
56
  var RemoteDataStateSpecification_1;
@@ -79,9 +92,9 @@ class RemoteDataLoadingEffect {
79
92
  });
80
93
  }
81
94
  }
82
- RemoteDataLoadingEffect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RemoteDataLoadingEffect, deps: [{ token: NGSSM_REMOTE_DATA_PROVIDER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
83
- RemoteDataLoadingEffect.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RemoteDataLoadingEffect });
84
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RemoteDataLoadingEffect, decorators: [{
95
+ RemoteDataLoadingEffect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: RemoteDataLoadingEffect, deps: [{ token: NGSSM_REMOTE_DATA_PROVIDER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
96
+ RemoteDataLoadingEffect.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: RemoteDataLoadingEffect });
97
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: RemoteDataLoadingEffect, decorators: [{
85
98
  type: Injectable
86
99
  }], ctorParameters: function () {
87
100
  return [{ type: undefined, decorators: [{
@@ -138,9 +151,9 @@ class RemoteDataReducer {
138
151
  return state;
139
152
  }
140
153
  }
141
- RemoteDataReducer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RemoteDataReducer, deps: [{ token: NGSSM_REMOTE_DATA_PROVIDER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
142
- RemoteDataReducer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RemoteDataReducer });
143
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RemoteDataReducer, decorators: [{
154
+ RemoteDataReducer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: RemoteDataReducer, deps: [{ token: NGSSM_REMOTE_DATA_PROVIDER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
155
+ RemoteDataReducer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: RemoteDataReducer });
156
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: RemoteDataReducer, decorators: [{
144
157
  type: Injectable
145
158
  }], ctorParameters: function () {
146
159
  return [{ type: undefined, decorators: [{
@@ -166,9 +179,9 @@ class RemoteDataStateInitializer {
166
179
  return ((_a = this.remoteDataProviders) !== null && _a !== void 0 ? _a : []).reduce((s, provider) => updateRemoteDataState(s, { [provider.remoteDataKey]: { $set: { status: DataStatus.none } } }), tempState);
167
180
  }
168
181
  }
169
- RemoteDataStateInitializer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RemoteDataStateInitializer, deps: [{ token: NGSSM_REMOTE_DATA_PROVIDER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
170
- RemoteDataStateInitializer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RemoteDataStateInitializer });
171
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RemoteDataStateInitializer, decorators: [{
182
+ RemoteDataStateInitializer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: RemoteDataStateInitializer, deps: [{ token: NGSSM_REMOTE_DATA_PROVIDER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
183
+ RemoteDataStateInitializer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: RemoteDataStateInitializer });
184
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: RemoteDataStateInitializer, decorators: [{
172
185
  type: Injectable
173
186
  }], ctorParameters: function () {
174
187
  return [{ type: undefined, decorators: [{
@@ -181,14 +194,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
181
194
 
182
195
  class NgssmRemoteDataModule {
183
196
  }
184
- NgssmRemoteDataModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NgssmRemoteDataModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
185
- NgssmRemoteDataModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.4", ngImport: i0, type: NgssmRemoteDataModule });
186
- NgssmRemoteDataModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NgssmRemoteDataModule, providers: [
197
+ NgssmRemoteDataModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgssmRemoteDataModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
198
+ NgssmRemoteDataModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.1", ngImport: i0, type: NgssmRemoteDataModule });
199
+ NgssmRemoteDataModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgssmRemoteDataModule, providers: [
187
200
  remoteDataReducerProvider,
188
201
  remoteDataLoadingEffectProvider,
189
202
  { provide: NGSSM_STATE_INITIALIZER, useClass: RemoteDataStateInitializer, multi: true }
190
203
  ] });
191
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NgssmRemoteDataModule, decorators: [{
204
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgssmRemoteDataModule, decorators: [{
192
205
  type: NgModule,
193
206
  args: [{
194
207
  declarations: [],
@@ -202,11 +215,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
202
215
  }]
203
216
  }] });
204
217
 
205
- const getDefaultRemoteData = (defaultValue) => ({
206
- status: DataStatus.none,
207
- data: defaultValue
208
- });
209
-
210
218
  class RemoteDataLoadingGuard {
211
219
  constructor(store) {
212
220
  this.store = store;
@@ -220,9 +228,9 @@ class RemoteDataLoadingGuard {
220
228
  return true;
221
229
  }
222
230
  }
223
- RemoteDataLoadingGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RemoteDataLoadingGuard, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable });
224
- RemoteDataLoadingGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RemoteDataLoadingGuard, providedIn: 'root' });
225
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RemoteDataLoadingGuard, decorators: [{
231
+ RemoteDataLoadingGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: RemoteDataLoadingGuard, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable });
232
+ RemoteDataLoadingGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: RemoteDataLoadingGuard, providedIn: 'root' });
233
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: RemoteDataLoadingGuard, decorators: [{
226
234
  type: Injectable,
227
235
  args: [{
228
236
  providedIn: 'root'
@@ -237,5 +245,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
237
245
  * Generated bundle index. Do not edit.
238
246
  */
239
247
 
240
- export { DataStatus, LoadRemoteDataAction, NGSSM_REMOTE_DATA_PROVIDER, NgssmRemoteDataModule, RegisterLoadedRemoteDataAction, RemoteDataActionType, RemoteDataLoadingGuard, RemoteDataStateSpecification, getDefaultRemoteData, selectRemoteData, selectRemoteDataState, updateRemoteDataState };
248
+ export { DataStatus, LoadRemoteDataAction, NGSSM_REMOTE_DATA_PROVIDER, NgssmRemoteDataModule, RegisterLoadedRemoteDataAction, RemoteCallStatus, RemoteDataActionType, RemoteDataLoadingGuard, RemoteDataStateSpecification, getDefaultRemoteData, selectRemoteData, selectRemoteDataState, updateRemoteDataState };
241
249
  //# sourceMappingURL=ngssm-remote-data.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ngssm-remote-data.mjs","sources":["../../../projects/ngssm-remote-data/src/lib/actions/remote-data-action-type.ts","../../../projects/ngssm-remote-data/src/lib/actions/load-remote-data.action.ts","../../../projects/ngssm-remote-data/src/lib/actions/register-loaded-remote-data.action.ts","../../../projects/ngssm-remote-data/src/lib/data-status.ts","../../../projects/ngssm-remote-data/src/lib/remote-data-provider.ts","../../../projects/ngssm-remote-data/src/lib/state/remote-data.state.ts","../../../projects/ngssm-remote-data/src/lib/state/selectors.ts","../../../projects/ngssm-remote-data/src/lib/effects/remote-data-loading.effect.ts","../../../projects/ngssm-remote-data/src/lib/reducers/remote-data.reducer.ts","../../../projects/ngssm-remote-data/src/lib/remote-data-state-initializer.ts","../../../projects/ngssm-remote-data/src/lib/ngssm-remote-data.module.ts","../../../projects/ngssm-remote-data/src/lib/remote-data.ts","../../../projects/ngssm-remote-data/src/lib/guards/remote-data-loading.guard.ts","../../../projects/ngssm-remote-data/src/public-api.ts","../../../projects/ngssm-remote-data/src/ngssm-remote-data.ts"],"sourcesContent":["export enum RemoteDataActionType {\n loadRemoteData = '[RemoteDataActionType] loadRemoteData',\n registerLoadedRemoteData = '[RemoteDataActionType] registerLoadedRemoteData'\n}\n","import { Action } from 'ngssm-store';\n\nimport { RemoteDataActionType } from './remote-data-action-type';\n\nexport class LoadRemoteDataAction implements Action {\n public readonly type: string = RemoteDataActionType.loadRemoteData;\n\n constructor(public readonly remoteDataKey: string, public readonly forceReload: boolean) {}\n}\n","import { Action } from 'ngssm-store';\n\nimport { DataStatus } from '../data-status';\nimport { RemoteDataActionType } from './remote-data-action-type';\n\nexport class RegisterLoadedRemoteDataAction implements Action {\n public readonly type: string = RemoteDataActionType.registerLoadedRemoteData;\n\n constructor(\n public readonly remoteDataKey: string,\n public readonly status: DataStatus,\n public readonly data: any,\n public readonly message?: string\n ) {}\n}\n","export enum DataStatus {\n none = 'None',\n loading = 'Loading',\n loaded = 'Loaded',\n notFound = 'NotFound',\n error = 'Error'\n}\n","import { InjectionToken } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nexport interface RemoteDataProvider {\n readonly remoteDataKey: string;\n readonly cacheDurationInSeconds: number;\n\n get(): Observable<any>;\n}\n\nexport const NGSSM_REMOTE_DATA_PROVIDER = new InjectionToken<RemoteDataProvider>('NGSSM_REMOTE_DATA_PROVIDER');\n","import update, { Spec } from 'immutability-helper';\n\nimport { NgSsmFeatureState, State } from 'ngssm-store';\n\nimport { RemoteData } from '../remote-data';\n\nexport const selectRemoteDataState = (state: State): RemoteDataState =>\n state[RemoteDataStateSpecification.featureStateKey] as RemoteDataState;\n\nexport const updateRemoteDataState = (state: State, command: Spec<RemoteDataState, never>): State =>\n update(state, {\n [RemoteDataStateSpecification.featureStateKey]: command\n });\n\nexport interface RemoteDataState {\n [key: string]: RemoteData<any>;\n}\n\n@NgSsmFeatureState({\n featureStateKey: RemoteDataStateSpecification.featureStateKey,\n initialState: RemoteDataStateSpecification.initialState\n})\nexport class RemoteDataStateSpecification {\n public static readonly featureStateKey = 'remote-data-state';\n public static readonly initialState: RemoteDataState = {};\n}\n","import { State } from 'ngssm-store';\n\nimport { selectRemoteDataState } from './remote-data.state';\n\nexport const selectRemoteData = (state: State, remoteDataKey: string) => selectRemoteDataState(state)[remoteDataKey];\n","import { Inject, Injectable, Optional, Provider } from '@angular/core';\n\nimport { Effect, Store, State, Action, NGSSM_EFFECT } from 'ngssm-store';\n\nimport { LoadRemoteDataAction, RegisterLoadedRemoteDataAction, RemoteDataActionType } from '../actions';\nimport { DataStatus } from '../data-status';\nimport { RemoteDataProvider, NGSSM_REMOTE_DATA_PROVIDER } from '../remote-data-provider';\nimport { selectRemoteDataState } from '../state';\n\n@Injectable()\nexport class RemoteDataLoadingEffect implements Effect {\n private readonly remoteDataProvidersPerKey: Map<string, RemoteDataProvider>;\n\n public readonly processedActions: string[] = [RemoteDataActionType.loadRemoteData];\n\n constructor(@Inject(NGSSM_REMOTE_DATA_PROVIDER) @Optional() remoteDataProviders: RemoteDataProvider[]) {\n this.remoteDataProvidersPerKey = new Map<string, RemoteDataProvider>((remoteDataProviders ?? []).map((r) => [r.remoteDataKey, r]));\n }\n\n public processAction(store: Store, state: State, action: Action): void {\n const loadRemoteDataAction = action as LoadRemoteDataAction;\n const item = selectRemoteDataState(state)[loadRemoteDataAction.remoteDataKey];\n const provider = this.remoteDataProvidersPerKey.get(loadRemoteDataAction.remoteDataKey);\n\n if (!item || !provider || item.status !== DataStatus.loading) {\n return;\n }\n\n provider.get().subscribe({\n next: (value) =>\n store.dispatchAction(new RegisterLoadedRemoteDataAction(loadRemoteDataAction.remoteDataKey, DataStatus.loaded, value)),\n error: (error) => {\n console.error(`Unable to load data for '${loadRemoteDataAction.remoteDataKey}'`, error);\n store.dispatchAction(new RegisterLoadedRemoteDataAction(loadRemoteDataAction.remoteDataKey, DataStatus.error, undefined));\n }\n });\n }\n}\n\nexport const remoteDataLoadingEffectProvider: Provider = {\n provide: NGSSM_EFFECT,\n useClass: RemoteDataLoadingEffect,\n multi: true\n};\n","import { Inject, Injectable, Optional, Provider } from '@angular/core';\n\nimport { Reducer, State, NGSSM_REDUCER, Action } from 'ngssm-store';\n\nimport { LoadRemoteDataAction, RegisterLoadedRemoteDataAction, RemoteDataActionType } from '../actions';\nimport { DataStatus } from '../data-status';\nimport { RemoteDataProvider, NGSSM_REMOTE_DATA_PROVIDER } from '../remote-data-provider';\nimport { selectRemoteDataState, updateRemoteDataState } from '../state';\n\n@Injectable()\nexport class RemoteDataReducer implements Reducer {\n private readonly remoteDataProvidersPerKey: Map<string, RemoteDataProvider>;\n\n public readonly processedActions: string[] = [RemoteDataActionType.loadRemoteData, RemoteDataActionType.registerLoadedRemoteData];\n\n constructor(@Inject(NGSSM_REMOTE_DATA_PROVIDER) @Optional() remoteDataProviders: RemoteDataProvider[]) {\n this.remoteDataProvidersPerKey = new Map<string, RemoteDataProvider>((remoteDataProviders ?? []).map((r) => [r.remoteDataKey, r]));\n }\n\n public updateState(state: State, action: Action): State {\n switch (action.type) {\n case RemoteDataActionType.loadRemoteData:\n const loadRemoteDataAction = action as LoadRemoteDataAction;\n const item = selectRemoteDataState(state)[loadRemoteDataAction.remoteDataKey];\n const provider = this.remoteDataProvidersPerKey.get(loadRemoteDataAction.remoteDataKey);\n\n if (\n !provider ||\n loadRemoteDataAction.forceReload ||\n item.status === DataStatus.none ||\n item.status === DataStatus.error ||\n !item.timestamp ||\n new Date().getTime() - item.timestamp.getTime() >= 1000 * provider.cacheDurationInSeconds\n ) {\n return updateRemoteDataState(state, {\n [loadRemoteDataAction.remoteDataKey]: {\n status: { $set: DataStatus.loading }\n }\n });\n }\n\n break;\n\n case RemoteDataActionType.registerLoadedRemoteData:\n const registerLoadedRemoteDataAction = action as RegisterLoadedRemoteDataAction;\n if (this.remoteDataProvidersPerKey.has(registerLoadedRemoteDataAction.remoteDataKey)) {\n return updateRemoteDataState(state, {\n [registerLoadedRemoteDataAction.remoteDataKey]: {\n status: { $set: registerLoadedRemoteDataAction.status },\n data: { $set: registerLoadedRemoteDataAction.data },\n timestamp: { $set: new Date() },\n message: { $set: registerLoadedRemoteDataAction.message }\n }\n });\n }\n\n break;\n }\n\n return state;\n }\n}\n\nexport const remoteDataReducerProvider: Provider = {\n provide: NGSSM_REDUCER,\n useClass: RemoteDataReducer,\n multi: true\n};\n","import { Inject, Injectable, Optional } from '@angular/core';\n\nimport { State, StateInitializer } from 'ngssm-store';\n\nimport { DataStatus } from './data-status';\nimport { RemoteDataProvider, NGSSM_REMOTE_DATA_PROVIDER } from './remote-data-provider';\nimport { updateRemoteDataState } from './state';\n\n@Injectable()\nexport class RemoteDataStateInitializer implements StateInitializer {\n constructor(@Inject(NGSSM_REMOTE_DATA_PROVIDER) @Optional() private remoteDataProviders: RemoteDataProvider[]) {}\n\n public initializeState(state: State): State {\n let tempState = state;\n return (this.remoteDataProviders ?? []).reduce(\n (s, provider) => updateRemoteDataState(s, { [provider.remoteDataKey]: { $set: { status: DataStatus.none } } }),\n tempState\n );\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { NGSSM_STATE_INITIALIZER } from 'ngssm-store';\n\nimport { remoteDataLoadingEffectProvider } from './effects/remote-data-loading.effect';\nimport { remoteDataReducerProvider } from './reducers/remote-data.reducer';\nimport { RemoteDataStateInitializer } from './remote-data-state-initializer';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n providers: [\n remoteDataReducerProvider,\n remoteDataLoadingEffectProvider,\n { provide: NGSSM_STATE_INITIALIZER, useClass: RemoteDataStateInitializer, multi: true }\n ]\n})\nexport class NgssmRemoteDataModule {}\n","import { DataStatus } from './data-status';\n\nexport interface RemoteData<T> {\n status: DataStatus;\n data?: T;\n timestamp?: Date;\n message?: string;\n}\n\nexport const getDefaultRemoteData = <T>(defaultValue?: T): RemoteData<T> => ({\n status: DataStatus.none,\n data: defaultValue\n});\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\n\nimport { Store } from 'ngssm-store';\n\nimport { LoadRemoteDataAction } from '../actions';\n\nexport interface RemoteDataLoadingGuardItem {\n remoteDataKey: string;\n forceReload?: boolean;\n}\n\nexport interface RemoteDataLoadingGuardParameters {\n remoteDataItems: RemoteDataLoadingGuardItem[];\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RemoteDataLoadingGuard implements CanActivate {\n constructor(private store: Store) {}\n\n public canActivate(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n ): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n const parameters = route.data as RemoteDataLoadingGuardParameters;\n (parameters?.remoteDataItems ?? []).forEach((item) => {\n this.store.dispatchAction(new LoadRemoteDataAction(item.remoteDataKey, item.forceReload === true));\n });\n\n return true;\n }\n}\n","/*\n * Public API Surface of ngssm-remote-data\n */\n\nexport * from './lib/ngssm-remote-data.module';\nexport * from './lib/data-status';\nexport * from './lib/remote-data';\nexport * from './lib/state';\nexport * from './lib/actions';\nexport * from './lib/remote-data-provider';\nexport * from './lib/guards';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngssm-remote-data.mjs","sources":["../../../projects/ngssm-remote-data/src/lib/actions/remote-data-action-type.ts","../../../projects/ngssm-remote-data/src/lib/actions/load-remote-data.action.ts","../../../projects/ngssm-remote-data/src/lib/actions/register-loaded-remote-data.action.ts","../../../projects/ngssm-remote-data/src/lib/model/data-status.ts","../../../projects/ngssm-remote-data/src/lib/model/remote-data.ts","../../../projects/ngssm-remote-data/src/lib/model/remote-call-status.ts","../../../projects/ngssm-remote-data/src/lib/remote-data-provider.ts","../../../projects/ngssm-remote-data/src/lib/state/remote-data.state.ts","../../../projects/ngssm-remote-data/src/lib/state/selectors.ts","../../../projects/ngssm-remote-data/src/lib/effects/remote-data-loading.effect.ts","../../../projects/ngssm-remote-data/src/lib/reducers/remote-data.reducer.ts","../../../projects/ngssm-remote-data/src/lib/remote-data-state-initializer.ts","../../../projects/ngssm-remote-data/src/lib/ngssm-remote-data.module.ts","../../../projects/ngssm-remote-data/src/lib/guards/remote-data-loading.guard.ts","../../../projects/ngssm-remote-data/src/public-api.ts","../../../projects/ngssm-remote-data/src/ngssm-remote-data.ts"],"sourcesContent":["export enum RemoteDataActionType {\n loadRemoteData = '[RemoteDataActionType] loadRemoteData',\n registerLoadedRemoteData = '[RemoteDataActionType] registerLoadedRemoteData'\n}\n","import { Action } from 'ngssm-store';\n\nimport { RemoteDataActionType } from './remote-data-action-type';\n\nexport class LoadRemoteDataAction implements Action {\n public readonly type: string = RemoteDataActionType.loadRemoteData;\n\n constructor(public readonly remoteDataKey: string, public readonly forceReload: boolean) {}\n}\n","import { Action } from 'ngssm-store';\n\nimport { DataStatus } from '../model';\nimport { RemoteDataActionType } from './remote-data-action-type';\n\nexport class RegisterLoadedRemoteDataAction implements Action {\n public readonly type: string = RemoteDataActionType.registerLoadedRemoteData;\n\n constructor(\n public readonly remoteDataKey: string,\n public readonly status: DataStatus,\n public readonly data: any,\n public readonly message?: string\n ) {}\n}\n","export enum DataStatus {\n none = 'None',\n loading = 'Loading',\n loaded = 'Loaded',\n notFound = 'NotFound',\n error = 'Error'\n}\n","import { DataStatus } from './data-status';\n\nexport interface RemoteData<T> {\n status: DataStatus;\n data?: T;\n timestamp?: Date;\n message?: string;\n}\n\nexport const getDefaultRemoteData = <T>(defaultValue?: T): RemoteData<T> => ({\n status: DataStatus.none,\n data: defaultValue\n});\n","export enum RemoteCallStatus {\n none = 'None',\n inProgress = 'In progress',\n done = 'Done',\n ko = 'Ko'\n}\n","import { InjectionToken } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nexport interface RemoteDataProvider {\n readonly remoteDataKey: string;\n readonly cacheDurationInSeconds: number;\n\n get(): Observable<any>;\n}\n\nexport const NGSSM_REMOTE_DATA_PROVIDER = new InjectionToken<RemoteDataProvider>('NGSSM_REMOTE_DATA_PROVIDER');\n","import update, { Spec } from 'immutability-helper';\n\nimport { NgSsmFeatureState, State } from 'ngssm-store';\n\nimport { RemoteData } from '../model';\n\nexport const selectRemoteDataState = (state: State): RemoteDataState =>\n state[RemoteDataStateSpecification.featureStateKey] as RemoteDataState;\n\nexport const updateRemoteDataState = (state: State, command: Spec<RemoteDataState, never>): State =>\n update(state, {\n [RemoteDataStateSpecification.featureStateKey]: command\n });\n\nexport interface RemoteDataState {\n [key: string]: RemoteData<any>;\n}\n\n@NgSsmFeatureState({\n featureStateKey: RemoteDataStateSpecification.featureStateKey,\n initialState: RemoteDataStateSpecification.initialState\n})\nexport class RemoteDataStateSpecification {\n public static readonly featureStateKey = 'remote-data-state';\n public static readonly initialState: RemoteDataState = {};\n}\n","import { State } from 'ngssm-store';\n\nimport { selectRemoteDataState } from './remote-data.state';\n\nexport const selectRemoteData = (state: State, remoteDataKey: string) => selectRemoteDataState(state)[remoteDataKey];\n","import { Inject, Injectable, Optional, Provider } from '@angular/core';\n\nimport { Effect, Store, State, Action, NGSSM_EFFECT } from 'ngssm-store';\n\nimport { LoadRemoteDataAction, RegisterLoadedRemoteDataAction, RemoteDataActionType } from '../actions';\nimport { DataStatus } from '../model';\nimport { RemoteDataProvider, NGSSM_REMOTE_DATA_PROVIDER } from '../remote-data-provider';\nimport { selectRemoteDataState } from '../state';\n\n@Injectable()\nexport class RemoteDataLoadingEffect implements Effect {\n private readonly remoteDataProvidersPerKey: Map<string, RemoteDataProvider>;\n\n public readonly processedActions: string[] = [RemoteDataActionType.loadRemoteData];\n\n constructor(@Inject(NGSSM_REMOTE_DATA_PROVIDER) @Optional() remoteDataProviders: RemoteDataProvider[]) {\n this.remoteDataProvidersPerKey = new Map<string, RemoteDataProvider>((remoteDataProviders ?? []).map((r) => [r.remoteDataKey, r]));\n }\n\n public processAction(store: Store, state: State, action: Action): void {\n const loadRemoteDataAction = action as LoadRemoteDataAction;\n const item = selectRemoteDataState(state)[loadRemoteDataAction.remoteDataKey];\n const provider = this.remoteDataProvidersPerKey.get(loadRemoteDataAction.remoteDataKey);\n\n if (!item || !provider || item.status !== DataStatus.loading) {\n return;\n }\n\n provider.get().subscribe({\n next: (value) =>\n store.dispatchAction(new RegisterLoadedRemoteDataAction(loadRemoteDataAction.remoteDataKey, DataStatus.loaded, value)),\n error: (error) => {\n console.error(`Unable to load data for '${loadRemoteDataAction.remoteDataKey}'`, error);\n store.dispatchAction(new RegisterLoadedRemoteDataAction(loadRemoteDataAction.remoteDataKey, DataStatus.error, undefined));\n }\n });\n }\n}\n\nexport const remoteDataLoadingEffectProvider: Provider = {\n provide: NGSSM_EFFECT,\n useClass: RemoteDataLoadingEffect,\n multi: true\n};\n","import { Inject, Injectable, Optional, Provider } from '@angular/core';\n\nimport { Reducer, State, NGSSM_REDUCER, Action } from 'ngssm-store';\n\nimport { LoadRemoteDataAction, RegisterLoadedRemoteDataAction, RemoteDataActionType } from '../actions';\nimport { DataStatus } from '../model';\nimport { RemoteDataProvider, NGSSM_REMOTE_DATA_PROVIDER } from '../remote-data-provider';\nimport { selectRemoteDataState, updateRemoteDataState } from '../state';\n\n@Injectable()\nexport class RemoteDataReducer implements Reducer {\n private readonly remoteDataProvidersPerKey: Map<string, RemoteDataProvider>;\n\n public readonly processedActions: string[] = [RemoteDataActionType.loadRemoteData, RemoteDataActionType.registerLoadedRemoteData];\n\n constructor(@Inject(NGSSM_REMOTE_DATA_PROVIDER) @Optional() remoteDataProviders: RemoteDataProvider[]) {\n this.remoteDataProvidersPerKey = new Map<string, RemoteDataProvider>((remoteDataProviders ?? []).map((r) => [r.remoteDataKey, r]));\n }\n\n public updateState(state: State, action: Action): State {\n switch (action.type) {\n case RemoteDataActionType.loadRemoteData:\n const loadRemoteDataAction = action as LoadRemoteDataAction;\n const item = selectRemoteDataState(state)[loadRemoteDataAction.remoteDataKey];\n const provider = this.remoteDataProvidersPerKey.get(loadRemoteDataAction.remoteDataKey);\n\n if (\n !provider ||\n loadRemoteDataAction.forceReload ||\n item.status === DataStatus.none ||\n item.status === DataStatus.error ||\n !item.timestamp ||\n new Date().getTime() - item.timestamp.getTime() >= 1000 * provider.cacheDurationInSeconds\n ) {\n return updateRemoteDataState(state, {\n [loadRemoteDataAction.remoteDataKey]: {\n status: { $set: DataStatus.loading }\n }\n });\n }\n\n break;\n\n case RemoteDataActionType.registerLoadedRemoteData:\n const registerLoadedRemoteDataAction = action as RegisterLoadedRemoteDataAction;\n if (this.remoteDataProvidersPerKey.has(registerLoadedRemoteDataAction.remoteDataKey)) {\n return updateRemoteDataState(state, {\n [registerLoadedRemoteDataAction.remoteDataKey]: {\n status: { $set: registerLoadedRemoteDataAction.status },\n data: { $set: registerLoadedRemoteDataAction.data },\n timestamp: { $set: new Date() },\n message: { $set: registerLoadedRemoteDataAction.message }\n }\n });\n }\n\n break;\n }\n\n return state;\n }\n}\n\nexport const remoteDataReducerProvider: Provider = {\n provide: NGSSM_REDUCER,\n useClass: RemoteDataReducer,\n multi: true\n};\n","import { Inject, Injectable, Optional } from '@angular/core';\n\nimport { State, StateInitializer } from 'ngssm-store';\n\nimport { DataStatus } from './model';\nimport { RemoteDataProvider, NGSSM_REMOTE_DATA_PROVIDER } from './remote-data-provider';\nimport { updateRemoteDataState } from './state';\n\n@Injectable()\nexport class RemoteDataStateInitializer implements StateInitializer {\n constructor(@Inject(NGSSM_REMOTE_DATA_PROVIDER) @Optional() private remoteDataProviders: RemoteDataProvider[]) {}\n\n public initializeState(state: State): State {\n let tempState = state;\n return (this.remoteDataProviders ?? []).reduce(\n (s, provider) => updateRemoteDataState(s, { [provider.remoteDataKey]: { $set: { status: DataStatus.none } } }),\n tempState\n );\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { NGSSM_STATE_INITIALIZER } from 'ngssm-store';\n\nimport { remoteDataLoadingEffectProvider } from './effects/remote-data-loading.effect';\nimport { remoteDataReducerProvider } from './reducers/remote-data.reducer';\nimport { RemoteDataStateInitializer } from './remote-data-state-initializer';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n providers: [\n remoteDataReducerProvider,\n remoteDataLoadingEffectProvider,\n { provide: NGSSM_STATE_INITIALIZER, useClass: RemoteDataStateInitializer, multi: true }\n ]\n})\nexport class NgssmRemoteDataModule {}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\n\nimport { Store } from 'ngssm-store';\n\nimport { LoadRemoteDataAction } from '../actions';\n\nexport interface RemoteDataLoadingGuardItem {\n remoteDataKey: string;\n forceReload?: boolean;\n}\n\nexport interface RemoteDataLoadingGuardParameters {\n remoteDataItems: RemoteDataLoadingGuardItem[];\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RemoteDataLoadingGuard implements CanActivate {\n constructor(private store: Store) {}\n\n public canActivate(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n ): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n const parameters = route.data as RemoteDataLoadingGuardParameters;\n (parameters?.remoteDataItems ?? []).forEach((item) => {\n this.store.dispatchAction(new LoadRemoteDataAction(item.remoteDataKey, item.forceReload === true));\n });\n\n return true;\n }\n}\n","/*\n * Public API Surface of ngssm-remote-data\n */\n\nexport * from './lib/ngssm-remote-data.module';\nexport * from './lib/model';\nexport * from './lib/state';\nexport * from './lib/actions';\nexport * from './lib/remote-data-provider';\nexport * from './lib/guards';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -38,6 +38,19 @@ var DataStatus;
38
38
  DataStatus["error"] = "Error";
39
39
  })(DataStatus || (DataStatus = {}));
40
40
 
41
+ const getDefaultRemoteData = (defaultValue) => ({
42
+ status: DataStatus.none,
43
+ data: defaultValue
44
+ });
45
+
46
+ var RemoteCallStatus;
47
+ (function (RemoteCallStatus) {
48
+ RemoteCallStatus["none"] = "None";
49
+ RemoteCallStatus["inProgress"] = "In progress";
50
+ RemoteCallStatus["done"] = "Done";
51
+ RemoteCallStatus["ko"] = "Ko";
52
+ })(RemoteCallStatus || (RemoteCallStatus = {}));
53
+
41
54
  const NGSSM_REMOTE_DATA_PROVIDER = new InjectionToken('NGSSM_REMOTE_DATA_PROVIDER');
42
55
 
43
56
  var RemoteDataStateSpecification_1;
@@ -79,9 +92,9 @@ class RemoteDataLoadingEffect {
79
92
  });
80
93
  }
81
94
  }
82
- RemoteDataLoadingEffect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RemoteDataLoadingEffect, deps: [{ token: NGSSM_REMOTE_DATA_PROVIDER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
83
- RemoteDataLoadingEffect.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RemoteDataLoadingEffect });
84
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RemoteDataLoadingEffect, decorators: [{
95
+ RemoteDataLoadingEffect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: RemoteDataLoadingEffect, deps: [{ token: NGSSM_REMOTE_DATA_PROVIDER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
96
+ RemoteDataLoadingEffect.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: RemoteDataLoadingEffect });
97
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: RemoteDataLoadingEffect, decorators: [{
85
98
  type: Injectable
86
99
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
87
100
  type: Inject,
@@ -136,9 +149,9 @@ class RemoteDataReducer {
136
149
  return state;
137
150
  }
138
151
  }
139
- RemoteDataReducer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RemoteDataReducer, deps: [{ token: NGSSM_REMOTE_DATA_PROVIDER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
140
- RemoteDataReducer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RemoteDataReducer });
141
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RemoteDataReducer, decorators: [{
152
+ RemoteDataReducer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: RemoteDataReducer, deps: [{ token: NGSSM_REMOTE_DATA_PROVIDER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
153
+ RemoteDataReducer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: RemoteDataReducer });
154
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: RemoteDataReducer, decorators: [{
142
155
  type: Injectable
143
156
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
144
157
  type: Inject,
@@ -161,9 +174,9 @@ class RemoteDataStateInitializer {
161
174
  return (this.remoteDataProviders ?? []).reduce((s, provider) => updateRemoteDataState(s, { [provider.remoteDataKey]: { $set: { status: DataStatus.none } } }), tempState);
162
175
  }
163
176
  }
164
- RemoteDataStateInitializer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RemoteDataStateInitializer, deps: [{ token: NGSSM_REMOTE_DATA_PROVIDER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
165
- RemoteDataStateInitializer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RemoteDataStateInitializer });
166
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RemoteDataStateInitializer, decorators: [{
177
+ RemoteDataStateInitializer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: RemoteDataStateInitializer, deps: [{ token: NGSSM_REMOTE_DATA_PROVIDER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
178
+ RemoteDataStateInitializer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: RemoteDataStateInitializer });
179
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: RemoteDataStateInitializer, decorators: [{
167
180
  type: Injectable
168
181
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
169
182
  type: Inject,
@@ -174,14 +187,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
174
187
 
175
188
  class NgssmRemoteDataModule {
176
189
  }
177
- NgssmRemoteDataModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NgssmRemoteDataModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
178
- NgssmRemoteDataModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.4", ngImport: i0, type: NgssmRemoteDataModule });
179
- NgssmRemoteDataModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NgssmRemoteDataModule, providers: [
190
+ NgssmRemoteDataModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgssmRemoteDataModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
191
+ NgssmRemoteDataModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.1", ngImport: i0, type: NgssmRemoteDataModule });
192
+ NgssmRemoteDataModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgssmRemoteDataModule, providers: [
180
193
  remoteDataReducerProvider,
181
194
  remoteDataLoadingEffectProvider,
182
195
  { provide: NGSSM_STATE_INITIALIZER, useClass: RemoteDataStateInitializer, multi: true }
183
196
  ] });
184
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NgssmRemoteDataModule, decorators: [{
197
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgssmRemoteDataModule, decorators: [{
185
198
  type: NgModule,
186
199
  args: [{
187
200
  declarations: [],
@@ -195,11 +208,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
195
208
  }]
196
209
  }] });
197
210
 
198
- const getDefaultRemoteData = (defaultValue) => ({
199
- status: DataStatus.none,
200
- data: defaultValue
201
- });
202
-
203
211
  class RemoteDataLoadingGuard {
204
212
  constructor(store) {
205
213
  this.store = store;
@@ -212,9 +220,9 @@ class RemoteDataLoadingGuard {
212
220
  return true;
213
221
  }
214
222
  }
215
- RemoteDataLoadingGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RemoteDataLoadingGuard, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable });
216
- RemoteDataLoadingGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RemoteDataLoadingGuard, providedIn: 'root' });
217
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RemoteDataLoadingGuard, decorators: [{
223
+ RemoteDataLoadingGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: RemoteDataLoadingGuard, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable });
224
+ RemoteDataLoadingGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: RemoteDataLoadingGuard, providedIn: 'root' });
225
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: RemoteDataLoadingGuard, decorators: [{
218
226
  type: Injectable,
219
227
  args: [{
220
228
  providedIn: 'root'
@@ -229,5 +237,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
229
237
  * Generated bundle index. Do not edit.
230
238
  */
231
239
 
232
- export { DataStatus, LoadRemoteDataAction, NGSSM_REMOTE_DATA_PROVIDER, NgssmRemoteDataModule, RegisterLoadedRemoteDataAction, RemoteDataActionType, RemoteDataLoadingGuard, RemoteDataStateSpecification, getDefaultRemoteData, selectRemoteData, selectRemoteDataState, updateRemoteDataState };
240
+ export { DataStatus, LoadRemoteDataAction, NGSSM_REMOTE_DATA_PROVIDER, NgssmRemoteDataModule, RegisterLoadedRemoteDataAction, RemoteCallStatus, RemoteDataActionType, RemoteDataLoadingGuard, RemoteDataStateSpecification, getDefaultRemoteData, selectRemoteData, selectRemoteDataState, updateRemoteDataState };
233
241
  //# sourceMappingURL=ngssm-remote-data.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ngssm-remote-data.mjs","sources":["../../../projects/ngssm-remote-data/src/lib/actions/remote-data-action-type.ts","../../../projects/ngssm-remote-data/src/lib/actions/load-remote-data.action.ts","../../../projects/ngssm-remote-data/src/lib/actions/register-loaded-remote-data.action.ts","../../../projects/ngssm-remote-data/src/lib/data-status.ts","../../../projects/ngssm-remote-data/src/lib/remote-data-provider.ts","../../../projects/ngssm-remote-data/src/lib/state/remote-data.state.ts","../../../projects/ngssm-remote-data/src/lib/state/selectors.ts","../../../projects/ngssm-remote-data/src/lib/effects/remote-data-loading.effect.ts","../../../projects/ngssm-remote-data/src/lib/reducers/remote-data.reducer.ts","../../../projects/ngssm-remote-data/src/lib/remote-data-state-initializer.ts","../../../projects/ngssm-remote-data/src/lib/ngssm-remote-data.module.ts","../../../projects/ngssm-remote-data/src/lib/remote-data.ts","../../../projects/ngssm-remote-data/src/lib/guards/remote-data-loading.guard.ts","../../../projects/ngssm-remote-data/src/public-api.ts","../../../projects/ngssm-remote-data/src/ngssm-remote-data.ts"],"sourcesContent":["export enum RemoteDataActionType {\n loadRemoteData = '[RemoteDataActionType] loadRemoteData',\n registerLoadedRemoteData = '[RemoteDataActionType] registerLoadedRemoteData'\n}\n","import { Action } from 'ngssm-store';\n\nimport { RemoteDataActionType } from './remote-data-action-type';\n\nexport class LoadRemoteDataAction implements Action {\n public readonly type: string = RemoteDataActionType.loadRemoteData;\n\n constructor(public readonly remoteDataKey: string, public readonly forceReload: boolean) {}\n}\n","import { Action } from 'ngssm-store';\n\nimport { DataStatus } from '../data-status';\nimport { RemoteDataActionType } from './remote-data-action-type';\n\nexport class RegisterLoadedRemoteDataAction implements Action {\n public readonly type: string = RemoteDataActionType.registerLoadedRemoteData;\n\n constructor(\n public readonly remoteDataKey: string,\n public readonly status: DataStatus,\n public readonly data: any,\n public readonly message?: string\n ) {}\n}\n","export enum DataStatus {\n none = 'None',\n loading = 'Loading',\n loaded = 'Loaded',\n notFound = 'NotFound',\n error = 'Error'\n}\n","import { InjectionToken } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nexport interface RemoteDataProvider {\n readonly remoteDataKey: string;\n readonly cacheDurationInSeconds: number;\n\n get(): Observable<any>;\n}\n\nexport const NGSSM_REMOTE_DATA_PROVIDER = new InjectionToken<RemoteDataProvider>('NGSSM_REMOTE_DATA_PROVIDER');\n","import update, { Spec } from 'immutability-helper';\n\nimport { NgSsmFeatureState, State } from 'ngssm-store';\n\nimport { RemoteData } from '../remote-data';\n\nexport const selectRemoteDataState = (state: State): RemoteDataState =>\n state[RemoteDataStateSpecification.featureStateKey] as RemoteDataState;\n\nexport const updateRemoteDataState = (state: State, command: Spec<RemoteDataState, never>): State =>\n update(state, {\n [RemoteDataStateSpecification.featureStateKey]: command\n });\n\nexport interface RemoteDataState {\n [key: string]: RemoteData<any>;\n}\n\n@NgSsmFeatureState({\n featureStateKey: RemoteDataStateSpecification.featureStateKey,\n initialState: RemoteDataStateSpecification.initialState\n})\nexport class RemoteDataStateSpecification {\n public static readonly featureStateKey = 'remote-data-state';\n public static readonly initialState: RemoteDataState = {};\n}\n","import { State } from 'ngssm-store';\n\nimport { selectRemoteDataState } from './remote-data.state';\n\nexport const selectRemoteData = (state: State, remoteDataKey: string) => selectRemoteDataState(state)[remoteDataKey];\n","import { Inject, Injectable, Optional, Provider } from '@angular/core';\n\nimport { Effect, Store, State, Action, NGSSM_EFFECT } from 'ngssm-store';\n\nimport { LoadRemoteDataAction, RegisterLoadedRemoteDataAction, RemoteDataActionType } from '../actions';\nimport { DataStatus } from '../data-status';\nimport { RemoteDataProvider, NGSSM_REMOTE_DATA_PROVIDER } from '../remote-data-provider';\nimport { selectRemoteDataState } from '../state';\n\n@Injectable()\nexport class RemoteDataLoadingEffect implements Effect {\n private readonly remoteDataProvidersPerKey: Map<string, RemoteDataProvider>;\n\n public readonly processedActions: string[] = [RemoteDataActionType.loadRemoteData];\n\n constructor(@Inject(NGSSM_REMOTE_DATA_PROVIDER) @Optional() remoteDataProviders: RemoteDataProvider[]) {\n this.remoteDataProvidersPerKey = new Map<string, RemoteDataProvider>((remoteDataProviders ?? []).map((r) => [r.remoteDataKey, r]));\n }\n\n public processAction(store: Store, state: State, action: Action): void {\n const loadRemoteDataAction = action as LoadRemoteDataAction;\n const item = selectRemoteDataState(state)[loadRemoteDataAction.remoteDataKey];\n const provider = this.remoteDataProvidersPerKey.get(loadRemoteDataAction.remoteDataKey);\n\n if (!item || !provider || item.status !== DataStatus.loading) {\n return;\n }\n\n provider.get().subscribe({\n next: (value) =>\n store.dispatchAction(new RegisterLoadedRemoteDataAction(loadRemoteDataAction.remoteDataKey, DataStatus.loaded, value)),\n error: (error) => {\n console.error(`Unable to load data for '${loadRemoteDataAction.remoteDataKey}'`, error);\n store.dispatchAction(new RegisterLoadedRemoteDataAction(loadRemoteDataAction.remoteDataKey, DataStatus.error, undefined));\n }\n });\n }\n}\n\nexport const remoteDataLoadingEffectProvider: Provider = {\n provide: NGSSM_EFFECT,\n useClass: RemoteDataLoadingEffect,\n multi: true\n};\n","import { Inject, Injectable, Optional, Provider } from '@angular/core';\n\nimport { Reducer, State, NGSSM_REDUCER, Action } from 'ngssm-store';\n\nimport { LoadRemoteDataAction, RegisterLoadedRemoteDataAction, RemoteDataActionType } from '../actions';\nimport { DataStatus } from '../data-status';\nimport { RemoteDataProvider, NGSSM_REMOTE_DATA_PROVIDER } from '../remote-data-provider';\nimport { selectRemoteDataState, updateRemoteDataState } from '../state';\n\n@Injectable()\nexport class RemoteDataReducer implements Reducer {\n private readonly remoteDataProvidersPerKey: Map<string, RemoteDataProvider>;\n\n public readonly processedActions: string[] = [RemoteDataActionType.loadRemoteData, RemoteDataActionType.registerLoadedRemoteData];\n\n constructor(@Inject(NGSSM_REMOTE_DATA_PROVIDER) @Optional() remoteDataProviders: RemoteDataProvider[]) {\n this.remoteDataProvidersPerKey = new Map<string, RemoteDataProvider>((remoteDataProviders ?? []).map((r) => [r.remoteDataKey, r]));\n }\n\n public updateState(state: State, action: Action): State {\n switch (action.type) {\n case RemoteDataActionType.loadRemoteData:\n const loadRemoteDataAction = action as LoadRemoteDataAction;\n const item = selectRemoteDataState(state)[loadRemoteDataAction.remoteDataKey];\n const provider = this.remoteDataProvidersPerKey.get(loadRemoteDataAction.remoteDataKey);\n\n if (\n !provider ||\n loadRemoteDataAction.forceReload ||\n item.status === DataStatus.none ||\n item.status === DataStatus.error ||\n !item.timestamp ||\n new Date().getTime() - item.timestamp.getTime() >= 1000 * provider.cacheDurationInSeconds\n ) {\n return updateRemoteDataState(state, {\n [loadRemoteDataAction.remoteDataKey]: {\n status: { $set: DataStatus.loading }\n }\n });\n }\n\n break;\n\n case RemoteDataActionType.registerLoadedRemoteData:\n const registerLoadedRemoteDataAction = action as RegisterLoadedRemoteDataAction;\n if (this.remoteDataProvidersPerKey.has(registerLoadedRemoteDataAction.remoteDataKey)) {\n return updateRemoteDataState(state, {\n [registerLoadedRemoteDataAction.remoteDataKey]: {\n status: { $set: registerLoadedRemoteDataAction.status },\n data: { $set: registerLoadedRemoteDataAction.data },\n timestamp: { $set: new Date() },\n message: { $set: registerLoadedRemoteDataAction.message }\n }\n });\n }\n\n break;\n }\n\n return state;\n }\n}\n\nexport const remoteDataReducerProvider: Provider = {\n provide: NGSSM_REDUCER,\n useClass: RemoteDataReducer,\n multi: true\n};\n","import { Inject, Injectable, Optional } from '@angular/core';\n\nimport { State, StateInitializer } from 'ngssm-store';\n\nimport { DataStatus } from './data-status';\nimport { RemoteDataProvider, NGSSM_REMOTE_DATA_PROVIDER } from './remote-data-provider';\nimport { updateRemoteDataState } from './state';\n\n@Injectable()\nexport class RemoteDataStateInitializer implements StateInitializer {\n constructor(@Inject(NGSSM_REMOTE_DATA_PROVIDER) @Optional() private remoteDataProviders: RemoteDataProvider[]) {}\n\n public initializeState(state: State): State {\n let tempState = state;\n return (this.remoteDataProviders ?? []).reduce(\n (s, provider) => updateRemoteDataState(s, { [provider.remoteDataKey]: { $set: { status: DataStatus.none } } }),\n tempState\n );\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { NGSSM_STATE_INITIALIZER } from 'ngssm-store';\n\nimport { remoteDataLoadingEffectProvider } from './effects/remote-data-loading.effect';\nimport { remoteDataReducerProvider } from './reducers/remote-data.reducer';\nimport { RemoteDataStateInitializer } from './remote-data-state-initializer';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n providers: [\n remoteDataReducerProvider,\n remoteDataLoadingEffectProvider,\n { provide: NGSSM_STATE_INITIALIZER, useClass: RemoteDataStateInitializer, multi: true }\n ]\n})\nexport class NgssmRemoteDataModule {}\n","import { DataStatus } from './data-status';\n\nexport interface RemoteData<T> {\n status: DataStatus;\n data?: T;\n timestamp?: Date;\n message?: string;\n}\n\nexport const getDefaultRemoteData = <T>(defaultValue?: T): RemoteData<T> => ({\n status: DataStatus.none,\n data: defaultValue\n});\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\n\nimport { Store } from 'ngssm-store';\n\nimport { LoadRemoteDataAction } from '../actions';\n\nexport interface RemoteDataLoadingGuardItem {\n remoteDataKey: string;\n forceReload?: boolean;\n}\n\nexport interface RemoteDataLoadingGuardParameters {\n remoteDataItems: RemoteDataLoadingGuardItem[];\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RemoteDataLoadingGuard implements CanActivate {\n constructor(private store: Store) {}\n\n public canActivate(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n ): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n const parameters = route.data as RemoteDataLoadingGuardParameters;\n (parameters?.remoteDataItems ?? []).forEach((item) => {\n this.store.dispatchAction(new LoadRemoteDataAction(item.remoteDataKey, item.forceReload === true));\n });\n\n return true;\n }\n}\n","/*\n * Public API Surface of ngssm-remote-data\n */\n\nexport * from './lib/ngssm-remote-data.module';\nexport * from './lib/data-status';\nexport * from './lib/remote-data';\nexport * from './lib/state';\nexport * from './lib/actions';\nexport * from './lib/remote-data-provider';\nexport * from './lib/guards';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngssm-remote-data.mjs","sources":["../../../projects/ngssm-remote-data/src/lib/actions/remote-data-action-type.ts","../../../projects/ngssm-remote-data/src/lib/actions/load-remote-data.action.ts","../../../projects/ngssm-remote-data/src/lib/actions/register-loaded-remote-data.action.ts","../../../projects/ngssm-remote-data/src/lib/model/data-status.ts","../../../projects/ngssm-remote-data/src/lib/model/remote-data.ts","../../../projects/ngssm-remote-data/src/lib/model/remote-call-status.ts","../../../projects/ngssm-remote-data/src/lib/remote-data-provider.ts","../../../projects/ngssm-remote-data/src/lib/state/remote-data.state.ts","../../../projects/ngssm-remote-data/src/lib/state/selectors.ts","../../../projects/ngssm-remote-data/src/lib/effects/remote-data-loading.effect.ts","../../../projects/ngssm-remote-data/src/lib/reducers/remote-data.reducer.ts","../../../projects/ngssm-remote-data/src/lib/remote-data-state-initializer.ts","../../../projects/ngssm-remote-data/src/lib/ngssm-remote-data.module.ts","../../../projects/ngssm-remote-data/src/lib/guards/remote-data-loading.guard.ts","../../../projects/ngssm-remote-data/src/public-api.ts","../../../projects/ngssm-remote-data/src/ngssm-remote-data.ts"],"sourcesContent":["export enum RemoteDataActionType {\n loadRemoteData = '[RemoteDataActionType] loadRemoteData',\n registerLoadedRemoteData = '[RemoteDataActionType] registerLoadedRemoteData'\n}\n","import { Action } from 'ngssm-store';\n\nimport { RemoteDataActionType } from './remote-data-action-type';\n\nexport class LoadRemoteDataAction implements Action {\n public readonly type: string = RemoteDataActionType.loadRemoteData;\n\n constructor(public readonly remoteDataKey: string, public readonly forceReload: boolean) {}\n}\n","import { Action } from 'ngssm-store';\n\nimport { DataStatus } from '../model';\nimport { RemoteDataActionType } from './remote-data-action-type';\n\nexport class RegisterLoadedRemoteDataAction implements Action {\n public readonly type: string = RemoteDataActionType.registerLoadedRemoteData;\n\n constructor(\n public readonly remoteDataKey: string,\n public readonly status: DataStatus,\n public readonly data: any,\n public readonly message?: string\n ) {}\n}\n","export enum DataStatus {\n none = 'None',\n loading = 'Loading',\n loaded = 'Loaded',\n notFound = 'NotFound',\n error = 'Error'\n}\n","import { DataStatus } from './data-status';\n\nexport interface RemoteData<T> {\n status: DataStatus;\n data?: T;\n timestamp?: Date;\n message?: string;\n}\n\nexport const getDefaultRemoteData = <T>(defaultValue?: T): RemoteData<T> => ({\n status: DataStatus.none,\n data: defaultValue\n});\n","export enum RemoteCallStatus {\n none = 'None',\n inProgress = 'In progress',\n done = 'Done',\n ko = 'Ko'\n}\n","import { InjectionToken } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nexport interface RemoteDataProvider {\n readonly remoteDataKey: string;\n readonly cacheDurationInSeconds: number;\n\n get(): Observable<any>;\n}\n\nexport const NGSSM_REMOTE_DATA_PROVIDER = new InjectionToken<RemoteDataProvider>('NGSSM_REMOTE_DATA_PROVIDER');\n","import update, { Spec } from 'immutability-helper';\n\nimport { NgSsmFeatureState, State } from 'ngssm-store';\n\nimport { RemoteData } from '../model';\n\nexport const selectRemoteDataState = (state: State): RemoteDataState =>\n state[RemoteDataStateSpecification.featureStateKey] as RemoteDataState;\n\nexport const updateRemoteDataState = (state: State, command: Spec<RemoteDataState, never>): State =>\n update(state, {\n [RemoteDataStateSpecification.featureStateKey]: command\n });\n\nexport interface RemoteDataState {\n [key: string]: RemoteData<any>;\n}\n\n@NgSsmFeatureState({\n featureStateKey: RemoteDataStateSpecification.featureStateKey,\n initialState: RemoteDataStateSpecification.initialState\n})\nexport class RemoteDataStateSpecification {\n public static readonly featureStateKey = 'remote-data-state';\n public static readonly initialState: RemoteDataState = {};\n}\n","import { State } from 'ngssm-store';\n\nimport { selectRemoteDataState } from './remote-data.state';\n\nexport const selectRemoteData = (state: State, remoteDataKey: string) => selectRemoteDataState(state)[remoteDataKey];\n","import { Inject, Injectable, Optional, Provider } from '@angular/core';\n\nimport { Effect, Store, State, Action, NGSSM_EFFECT } from 'ngssm-store';\n\nimport { LoadRemoteDataAction, RegisterLoadedRemoteDataAction, RemoteDataActionType } from '../actions';\nimport { DataStatus } from '../model';\nimport { RemoteDataProvider, NGSSM_REMOTE_DATA_PROVIDER } from '../remote-data-provider';\nimport { selectRemoteDataState } from '../state';\n\n@Injectable()\nexport class RemoteDataLoadingEffect implements Effect {\n private readonly remoteDataProvidersPerKey: Map<string, RemoteDataProvider>;\n\n public readonly processedActions: string[] = [RemoteDataActionType.loadRemoteData];\n\n constructor(@Inject(NGSSM_REMOTE_DATA_PROVIDER) @Optional() remoteDataProviders: RemoteDataProvider[]) {\n this.remoteDataProvidersPerKey = new Map<string, RemoteDataProvider>((remoteDataProviders ?? []).map((r) => [r.remoteDataKey, r]));\n }\n\n public processAction(store: Store, state: State, action: Action): void {\n const loadRemoteDataAction = action as LoadRemoteDataAction;\n const item = selectRemoteDataState(state)[loadRemoteDataAction.remoteDataKey];\n const provider = this.remoteDataProvidersPerKey.get(loadRemoteDataAction.remoteDataKey);\n\n if (!item || !provider || item.status !== DataStatus.loading) {\n return;\n }\n\n provider.get().subscribe({\n next: (value) =>\n store.dispatchAction(new RegisterLoadedRemoteDataAction(loadRemoteDataAction.remoteDataKey, DataStatus.loaded, value)),\n error: (error) => {\n console.error(`Unable to load data for '${loadRemoteDataAction.remoteDataKey}'`, error);\n store.dispatchAction(new RegisterLoadedRemoteDataAction(loadRemoteDataAction.remoteDataKey, DataStatus.error, undefined));\n }\n });\n }\n}\n\nexport const remoteDataLoadingEffectProvider: Provider = {\n provide: NGSSM_EFFECT,\n useClass: RemoteDataLoadingEffect,\n multi: true\n};\n","import { Inject, Injectable, Optional, Provider } from '@angular/core';\n\nimport { Reducer, State, NGSSM_REDUCER, Action } from 'ngssm-store';\n\nimport { LoadRemoteDataAction, RegisterLoadedRemoteDataAction, RemoteDataActionType } from '../actions';\nimport { DataStatus } from '../model';\nimport { RemoteDataProvider, NGSSM_REMOTE_DATA_PROVIDER } from '../remote-data-provider';\nimport { selectRemoteDataState, updateRemoteDataState } from '../state';\n\n@Injectable()\nexport class RemoteDataReducer implements Reducer {\n private readonly remoteDataProvidersPerKey: Map<string, RemoteDataProvider>;\n\n public readonly processedActions: string[] = [RemoteDataActionType.loadRemoteData, RemoteDataActionType.registerLoadedRemoteData];\n\n constructor(@Inject(NGSSM_REMOTE_DATA_PROVIDER) @Optional() remoteDataProviders: RemoteDataProvider[]) {\n this.remoteDataProvidersPerKey = new Map<string, RemoteDataProvider>((remoteDataProviders ?? []).map((r) => [r.remoteDataKey, r]));\n }\n\n public updateState(state: State, action: Action): State {\n switch (action.type) {\n case RemoteDataActionType.loadRemoteData:\n const loadRemoteDataAction = action as LoadRemoteDataAction;\n const item = selectRemoteDataState(state)[loadRemoteDataAction.remoteDataKey];\n const provider = this.remoteDataProvidersPerKey.get(loadRemoteDataAction.remoteDataKey);\n\n if (\n !provider ||\n loadRemoteDataAction.forceReload ||\n item.status === DataStatus.none ||\n item.status === DataStatus.error ||\n !item.timestamp ||\n new Date().getTime() - item.timestamp.getTime() >= 1000 * provider.cacheDurationInSeconds\n ) {\n return updateRemoteDataState(state, {\n [loadRemoteDataAction.remoteDataKey]: {\n status: { $set: DataStatus.loading }\n }\n });\n }\n\n break;\n\n case RemoteDataActionType.registerLoadedRemoteData:\n const registerLoadedRemoteDataAction = action as RegisterLoadedRemoteDataAction;\n if (this.remoteDataProvidersPerKey.has(registerLoadedRemoteDataAction.remoteDataKey)) {\n return updateRemoteDataState(state, {\n [registerLoadedRemoteDataAction.remoteDataKey]: {\n status: { $set: registerLoadedRemoteDataAction.status },\n data: { $set: registerLoadedRemoteDataAction.data },\n timestamp: { $set: new Date() },\n message: { $set: registerLoadedRemoteDataAction.message }\n }\n });\n }\n\n break;\n }\n\n return state;\n }\n}\n\nexport const remoteDataReducerProvider: Provider = {\n provide: NGSSM_REDUCER,\n useClass: RemoteDataReducer,\n multi: true\n};\n","import { Inject, Injectable, Optional } from '@angular/core';\n\nimport { State, StateInitializer } from 'ngssm-store';\n\nimport { DataStatus } from './model';\nimport { RemoteDataProvider, NGSSM_REMOTE_DATA_PROVIDER } from './remote-data-provider';\nimport { updateRemoteDataState } from './state';\n\n@Injectable()\nexport class RemoteDataStateInitializer implements StateInitializer {\n constructor(@Inject(NGSSM_REMOTE_DATA_PROVIDER) @Optional() private remoteDataProviders: RemoteDataProvider[]) {}\n\n public initializeState(state: State): State {\n let tempState = state;\n return (this.remoteDataProviders ?? []).reduce(\n (s, provider) => updateRemoteDataState(s, { [provider.remoteDataKey]: { $set: { status: DataStatus.none } } }),\n tempState\n );\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { NGSSM_STATE_INITIALIZER } from 'ngssm-store';\n\nimport { remoteDataLoadingEffectProvider } from './effects/remote-data-loading.effect';\nimport { remoteDataReducerProvider } from './reducers/remote-data.reducer';\nimport { RemoteDataStateInitializer } from './remote-data-state-initializer';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n providers: [\n remoteDataReducerProvider,\n remoteDataLoadingEffectProvider,\n { provide: NGSSM_STATE_INITIALIZER, useClass: RemoteDataStateInitializer, multi: true }\n ]\n})\nexport class NgssmRemoteDataModule {}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\n\nimport { Store } from 'ngssm-store';\n\nimport { LoadRemoteDataAction } from '../actions';\n\nexport interface RemoteDataLoadingGuardItem {\n remoteDataKey: string;\n forceReload?: boolean;\n}\n\nexport interface RemoteDataLoadingGuardParameters {\n remoteDataItems: RemoteDataLoadingGuardItem[];\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RemoteDataLoadingGuard implements CanActivate {\n constructor(private store: Store) {}\n\n public canActivate(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n ): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n const parameters = route.data as RemoteDataLoadingGuardParameters;\n (parameters?.remoteDataItems ?? []).forEach((item) => {\n this.store.dispatchAction(new LoadRemoteDataAction(item.remoteDataKey, item.forceReload === true));\n });\n\n return true;\n }\n}\n","/*\n * Public API Surface of ngssm-remote-data\n */\n\nexport * from './lib/ngssm-remote-data.module';\nexport * from './lib/model';\nexport * from './lib/state';\nexport * from './lib/actions';\nexport * from './lib/remote-data-provider';\nexport * from './lib/guards';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Action } from 'ngssm-store';
2
- import { DataStatus } from '../data-status';
2
+ import { DataStatus } from '../model';
3
3
  export declare class RegisterLoadedRemoteDataAction implements Action {
4
4
  readonly remoteDataKey: string;
5
5
  readonly status: DataStatus;
File without changes
@@ -0,0 +1,4 @@
1
+ export * from './data-status';
2
+ export * from './remote-data';
3
+ export * from './remote-call-status';
4
+ export * from './remote-call-error';
@@ -0,0 +1,9 @@
1
+ export interface RemoteCallError {
2
+ type?: string;
3
+ title?: string;
4
+ status?: number;
5
+ traceId?: string;
6
+ errors?: {
7
+ [key: string]: string[];
8
+ };
9
+ }
@@ -0,0 +1,6 @@
1
+ export declare enum RemoteCallStatus {
2
+ none = "None",
3
+ inProgress = "In progress",
4
+ done = "Done",
5
+ ko = "Ko"
6
+ }
File without changes
@@ -1,6 +1,6 @@
1
1
  import { Spec } from 'immutability-helper';
2
2
  import { State } from 'ngssm-store';
3
- import { RemoteData } from '../remote-data';
3
+ import { RemoteData } from '../model';
4
4
  export declare const selectRemoteDataState: (state: State) => RemoteDataState;
5
5
  export declare const updateRemoteDataState: (state: State, command: Spec<RemoteDataState, never>) => State;
6
6
  export interface RemoteDataState {
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "ngssm-remote-data",
3
- "version": "15.0.4",
3
+ "version": "15.1.1",
4
4
  "description": "NgSsm - Utilities to manage data loaded from remote services with the store.",
5
5
  "author": "Lion Marc",
6
6
  "license": "MIT",
7
7
  "peerDependencies": {
8
8
  "@angular/common": ">15.0.0",
9
9
  "@angular/core": ">=15.0.0",
10
- "ngssm-store": "15.0.4"
10
+ "ngssm-store": "15.1.1"
11
11
  },
12
12
  "dependencies": {
13
13
  "tslib": "^2.3.0"
package/public-api.d.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  export * from './lib/ngssm-remote-data.module';
2
- export * from './lib/data-status';
3
- export * from './lib/remote-data';
2
+ export * from './lib/model';
4
3
  export * from './lib/state';
5
4
  export * from './lib/actions';
6
5
  export * from './lib/remote-data-provider';
@@ -1,9 +0,0 @@
1
- export var DataStatus;
2
- (function (DataStatus) {
3
- DataStatus["none"] = "None";
4
- DataStatus["loading"] = "Loading";
5
- DataStatus["loaded"] = "Loaded";
6
- DataStatus["notFound"] = "NotFound";
7
- DataStatus["error"] = "Error";
8
- })(DataStatus || (DataStatus = {}));
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zdGF0dXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1yZW1vdGUtZGF0YS9zcmMvbGliL2RhdGEtc3RhdHVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLFVBTVg7QUFORCxXQUFZLFVBQVU7SUFDcEIsMkJBQWEsQ0FBQTtJQUNiLGlDQUFtQixDQUFBO0lBQ25CLCtCQUFpQixDQUFBO0lBQ2pCLG1DQUFxQixDQUFBO0lBQ3JCLDZCQUFlLENBQUE7QUFDakIsQ0FBQyxFQU5XLFVBQVUsS0FBVixVQUFVLFFBTXJCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gRGF0YVN0YXR1cyB7XG4gIG5vbmUgPSAnTm9uZScsXG4gIGxvYWRpbmcgPSAnTG9hZGluZycsXG4gIGxvYWRlZCA9ICdMb2FkZWQnLFxuICBub3RGb3VuZCA9ICdOb3RGb3VuZCcsXG4gIGVycm9yID0gJ0Vycm9yJ1xufVxuIl19
@@ -1,6 +0,0 @@
1
- import { DataStatus } from './data-status';
2
- export const getDefaultRemoteData = (defaultValue) => ({
3
- status: DataStatus.none,
4
- data: defaultValue
5
- });
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1yZW1vdGUtZGF0YS9zcmMvbGliL3JlbW90ZS1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFTM0MsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBSSxZQUFnQixFQUFpQixFQUFFLENBQUMsQ0FBQztJQUMzRSxNQUFNLEVBQUUsVUFBVSxDQUFDLElBQUk7SUFDdkIsSUFBSSxFQUFFLFlBQVk7Q0FDbkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YVN0YXR1cyB9IGZyb20gJy4vZGF0YS1zdGF0dXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlbW90ZURhdGE8VD4ge1xuICBzdGF0dXM6IERhdGFTdGF0dXM7XG4gIGRhdGE/OiBUO1xuICB0aW1lc3RhbXA/OiBEYXRlO1xuICBtZXNzYWdlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgZ2V0RGVmYXVsdFJlbW90ZURhdGEgPSA8VD4oZGVmYXVsdFZhbHVlPzogVCk6IFJlbW90ZURhdGE8VD4gPT4gKHtcbiAgc3RhdHVzOiBEYXRhU3RhdHVzLm5vbmUsXG4gIGRhdGE6IGRlZmF1bHRWYWx1ZVxufSk7XG4iXX0=