@wallfree-dev/angular-ngrx 0.0.59-beta.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.
- package/README.md +60 -0
- package/esm2022/lib/airgap-angular-ngrx.module.mjs +23 -0
- package/esm2022/lib/base/base-ngrx.facade.mjs +36 -0
- package/esm2022/lib/components/components.module.mjs +21 -0
- package/esm2022/lib/components/currency-symbol/currency-symbol.facade.mjs +59 -0
- package/esm2022/lib/components/currency-symbol/currency-symbol.store.mjs +148 -0
- package/esm2022/lib/components/currency-symbol/currency-symbol.types.mjs +2 -0
- package/esm2022/lib/components/isolated-modules-details/isolated-modules-details.facade.mjs +28 -0
- package/esm2022/lib/components/isolated-modules-details/isolated-modules-details.store.mjs +76 -0
- package/esm2022/lib/components/isolated-modules-details/isolated-modules-details.types.mjs +2 -0
- package/esm2022/lib/components/isolated-modules-list/isolated-modules-list.facade.mjs +26 -0
- package/esm2022/lib/components/isolated-modules-list/isolated-modules-list.store.mjs +55 -0
- package/esm2022/lib/components/isolated-modules-list/isolated-modules-list.types.mjs +2 -0
- package/esm2022/lib/pages/isolated-modules-list/isolated-modules-list.facade.mjs +24 -0
- package/esm2022/lib/pages/isolated-modules-list/isolated-modules-list.store.mjs +57 -0
- package/esm2022/lib/pages/isolated-modules-list/isolated-modules-list.types.mjs +2 -0
- package/esm2022/public-api.mjs +15 -0
- package/esm2022/wallfree-dev-angular-ngrx.mjs +5 -0
- package/fesm2022/wallfree-dev-angular-ngrx.mjs +524 -0
- package/fesm2022/wallfree-dev-angular-ngrx.mjs.map +1 -0
- package/index.d.ts +6 -0
- package/lib/airgap-angular-ngrx.module.d.ts +9 -0
- package/lib/airgap-angular-ngrx.module.d.ts.map +1 -0
- package/lib/base/base-ngrx.facade.d.ts +17 -0
- package/lib/base/base-ngrx.facade.d.ts.map +1 -0
- package/lib/components/components.module.d.ts +12 -0
- package/lib/components/components.module.d.ts.map +1 -0
- package/lib/components/currency-symbol/currency-symbol.facade.d.ts +20 -0
- package/lib/components/currency-symbol/currency-symbol.facade.d.ts.map +1 -0
- package/lib/components/currency-symbol/currency-symbol.store.d.ts +21 -0
- package/lib/components/currency-symbol/currency-symbol.store.d.ts.map +1 -0
- package/lib/components/currency-symbol/currency-symbol.types.d.ts +9 -0
- package/lib/components/currency-symbol/currency-symbol.types.d.ts.map +1 -0
- package/lib/components/isolated-modules-details/isolated-modules-details.facade.d.ts +17 -0
- package/lib/components/isolated-modules-details/isolated-modules-details.facade.d.ts.map +1 -0
- package/lib/components/isolated-modules-details/isolated-modules-details.store.d.ts +16 -0
- package/lib/components/isolated-modules-details/isolated-modules-details.store.d.ts.map +1 -0
- package/lib/components/isolated-modules-details/isolated-modules-details.types.d.ts +7 -0
- package/lib/components/isolated-modules-details/isolated-modules-details.types.d.ts.map +1 -0
- package/lib/components/isolated-modules-list/isolated-modules-list.facade.d.ts +16 -0
- package/lib/components/isolated-modules-list/isolated-modules-list.facade.d.ts.map +1 -0
- package/lib/components/isolated-modules-list/isolated-modules-list.store.d.ts +19 -0
- package/lib/components/isolated-modules-list/isolated-modules-list.store.d.ts.map +1 -0
- package/lib/components/isolated-modules-list/isolated-modules-list.types.d.ts +6 -0
- package/lib/components/isolated-modules-list/isolated-modules-list.types.d.ts.map +1 -0
- package/lib/pages/isolated-modules-list/isolated-modules-list.facade.d.ts +15 -0
- package/lib/pages/isolated-modules-list/isolated-modules-list.facade.d.ts.map +1 -0
- package/lib/pages/isolated-modules-list/isolated-modules-list.store.d.ts +15 -0
- package/lib/pages/isolated-modules-list/isolated-modules-list.store.d.ts.map +1 -0
- package/lib/pages/isolated-modules-list/isolated-modules-list.types.d.ts +6 -0
- package/lib/pages/isolated-modules-list/isolated-modules-list.types.d.ts.map +1 -0
- package/package.json +42 -0
- package/public-api.d.ts +8 -0
- package/public-api.d.ts.map +1 -0
- package/wallfree-dev-angular-ngrx.d.ts.map +1 -0
package/README.md
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# @wallfree-dev/angular-ngrx
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@wallfree-dev/ngrx)
|
|
4
|
+
[](https://travis-ci.org/airgap-it/angular-ngrx/)
|
|
5
|
+
[](https://codecov.io/gh/airgap-it/angular-ngrx/)
|
|
6
|
+
[](https://github.com/prettier/prettier)
|
|
7
|
+
|
|
8
|
+
`@wallfree-dev/angular-ngrx` extends `@wallfree-dev/angular-core` providing [NgRx](https://ngrx.io/) support for its components.
|
|
9
|
+
|
|
10
|
+
## Requirements
|
|
11
|
+
|
|
12
|
+
Please check `peerDependencies` in `package.json` to see what dependencies are required for this library.
|
|
13
|
+
|
|
14
|
+
## Install
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
$ npm install --save @wallfree-dev/angular-ngrx
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Development
|
|
21
|
+
|
|
22
|
+
### Requirements
|
|
23
|
+
|
|
24
|
+
Make sure you have statisfied the following requirements before building or testing the project:
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
npm >= 6
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Build
|
|
31
|
+
|
|
32
|
+
Before building the library make sure you have installed the root project dependencies. If not, run:
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
$ cd ../..
|
|
36
|
+
$ npm install
|
|
37
|
+
$ cd packages/ngrx
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
To build the `ngrx` library run:
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
$ npm run build
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Run Tests
|
|
47
|
+
|
|
48
|
+
Before running the tests make sure you have installed the root project dependencies. If not, run:
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
$ cd ../..
|
|
52
|
+
$ npm install
|
|
53
|
+
$ cd packages/ngrx
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
To run tests for the `ngrx` library run:
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
$ npm run test
|
|
60
|
+
```
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { StoreModule } from '@ngrx/store';
|
|
3
|
+
import { ComponentsModule } from './components/components.module';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@ngrx/store";
|
|
6
|
+
export class AirGapAngularNgRxModule {
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AirGapAngularNgRxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: AirGapAngularNgRxModule, imports: [i1.StoreFeatureModule, ComponentsModule], exports: [ComponentsModule] }); }
|
|
9
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AirGapAngularNgRxModule, imports: [StoreModule.forFeature('shared', {}),
|
|
10
|
+
ComponentsModule, ComponentsModule] }); }
|
|
11
|
+
}
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AirGapAngularNgRxModule, decorators: [{
|
|
13
|
+
type: NgModule,
|
|
14
|
+
args: [{
|
|
15
|
+
declarations: [],
|
|
16
|
+
imports: [
|
|
17
|
+
StoreModule.forFeature('shared', {}),
|
|
18
|
+
ComponentsModule
|
|
19
|
+
],
|
|
20
|
+
exports: [ComponentsModule]
|
|
21
|
+
}]
|
|
22
|
+
}] });
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWlyZ2FwLWFuZ3VsYXItbmdyeC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2FpcmdhcC1hbmd1bGFyLW5ncngubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDeEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQTs7O0FBVWpFLE1BQU0sT0FBTyx1QkFBdUI7K0dBQXZCLHVCQUF1QjtnSEFBdkIsdUJBQXVCLG1DQUpoQyxnQkFBZ0IsYUFFUixnQkFBZ0I7Z0hBRWYsdUJBQXVCLFlBTGhDLFdBQVcsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUNwQyxnQkFBZ0IsRUFFUixnQkFBZ0I7OzRGQUVmLHVCQUF1QjtrQkFSbkMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsRUFBRTtvQkFDaEIsT0FBTyxFQUFFO3dCQUNQLFdBQVcsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQzt3QkFDcEMsZ0JBQWdCO3FCQUNqQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztpQkFDNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBTdG9yZU1vZHVsZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJ1xuaW1wb3J0IHsgQ29tcG9uZW50c01vZHVsZSB9IGZyb20gJy4vY29tcG9uZW50cy9jb21wb25lbnRzLm1vZHVsZSdcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXSxcbiAgaW1wb3J0czogW1xuICAgIFN0b3JlTW9kdWxlLmZvckZlYXR1cmUoJ3NoYXJlZCcsIHt9KSxcbiAgICBDb21wb25lbnRzTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtDb21wb25lbnRzTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBBaXJHYXBBbmd1bGFyTmdSeE1vZHVsZSB7fVxuIl19
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { BaseFacade, UIActionStatus } from '@wallfree-dev/angular-core';
|
|
2
|
+
export class BaseNgRxFacade extends BaseFacade {
|
|
3
|
+
constructor(store, uiEventService) {
|
|
4
|
+
super();
|
|
5
|
+
this.store = store;
|
|
6
|
+
this.uiEventService = uiEventService;
|
|
7
|
+
}
|
|
8
|
+
async showOrHideToast(toast) {
|
|
9
|
+
if (this.uiEventService === undefined) {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
// TODO: Move error sentries to common components and catch toast errors
|
|
13
|
+
this.toastElement?.dismiss();
|
|
14
|
+
if (toast?.status === UIActionStatus.PENDING) {
|
|
15
|
+
const defaultToastOptions = {
|
|
16
|
+
duration: 3000,
|
|
17
|
+
position: 'bottom'
|
|
18
|
+
};
|
|
19
|
+
this.toastElement = await this.uiEventService.getTranslatedToast({ ...defaultToastOptions, ...this.getToastData(toast.value) });
|
|
20
|
+
this.toastElement.present();
|
|
21
|
+
return this.toastElement.onWillDismiss().then(() => {
|
|
22
|
+
this.onToastDismissed(toast);
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
this.toastElement = undefined;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
onToastDismissed(_toast) {
|
|
30
|
+
throw new Error('`onToastDismissed` not implemented');
|
|
31
|
+
}
|
|
32
|
+
getToastData(_toast) {
|
|
33
|
+
throw new Error('`getToastData` not implemented');
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1uZ3J4LmZhY2FkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvYmFzZS9iYXNlLW5ncnguZmFjYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVksY0FBYyxFQUFrQixNQUFNLDRCQUE0QixDQUFBO0FBU2pHLE1BQU0sT0FBZ0IsY0FBbUYsU0FBUSxVQUFVO0lBR3pILFlBQStCLEtBQVEsRUFBcUIsY0FBK0I7UUFDekYsS0FBSyxFQUFFLENBQUE7UUFEc0IsVUFBSyxHQUFMLEtBQUssQ0FBRztRQUFxQixtQkFBYyxHQUFkLGNBQWMsQ0FBaUI7SUFFM0YsQ0FBQztJQUVTLEtBQUssQ0FBQyxlQUFlLENBQUMsS0FBdUM7UUFDckUsSUFBSSxJQUFJLENBQUMsY0FBYyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3RDLE9BQU07UUFDUixDQUFDO1FBRUQsd0VBQXdFO1FBRXhFLElBQUksQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLENBQUE7UUFDNUIsSUFBSSxLQUFLLEVBQUUsTUFBTSxLQUFLLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM3QyxNQUFNLG1CQUFtQixHQUFpQjtnQkFDeEMsUUFBUSxFQUFFLElBQUk7Z0JBQ2QsUUFBUSxFQUFFLFFBQVE7YUFDbkIsQ0FBQTtZQUNELElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsR0FBRyxtQkFBbUIsRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUMvSCxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFBO1lBRTNCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUNqRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDOUIsQ0FBQyxDQUFDLENBQUE7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFBO1FBQy9CLENBQUM7SUFDSCxDQUFDO0lBRVMsZ0JBQWdCLENBQUMsTUFBNEI7UUFDckQsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFBO0lBQ3ZELENBQUM7SUFFUyxZQUFZLENBQUMsTUFBa0I7UUFDdkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFBO0lBQ25ELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VGYWNhZGUsIFVJQWN0aW9uLCBVSUFjdGlvblN0YXR1cywgVWlFdmVudFNlcnZpY2UgfSBmcm9tICdAd2FsbGZyZWUtZGV2L2FuZ3VsYXItY29yZSdcbmltcG9ydCB7IFRvYXN0T3B0aW9ucyB9IGZyb20gJ0Bpb25pYy9jb3JlJ1xuaW1wb3J0IHsgQ29tcG9uZW50U3RvcmUgfSBmcm9tICdAbmdyeC9jb21wb25lbnQtc3RvcmUnXG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJ1xuXG5leHBvcnQgaW50ZXJmYWNlIEZhY2FkZVR5cGVzIHtcbiAgVG9hc3Q6IGFueVxufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZU5nUnhGYWNhZGU8UyBleHRlbmRzIFN0b3JlIHwgQ29tcG9uZW50U3RvcmU8YW55PiwgVCBleHRlbmRzIEZhY2FkZVR5cGVzID0gYW55PiBleHRlbmRzIEJhc2VGYWNhZGUge1xuICBwcm90ZWN0ZWQgdG9hc3RFbGVtZW50OiBIVE1MSW9uVG9hc3RFbGVtZW50IHwgdW5kZWZpbmVkXG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlYWRvbmx5IHN0b3JlOiBTLCBwcm90ZWN0ZWQgcmVhZG9ubHkgdWlFdmVudFNlcnZpY2U/OiBVaUV2ZW50U2VydmljZSkge1xuICAgIHN1cGVyKClcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBzaG93T3JIaWRlVG9hc3QodG9hc3Q6IFVJQWN0aW9uPFRbJ1RvYXN0J10+IHwgdW5kZWZpbmVkKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMudWlFdmVudFNlcnZpY2UgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gVE9ETzogTW92ZSBlcnJvciBzZW50cmllcyB0byBjb21tb24gY29tcG9uZW50cyBhbmQgY2F0Y2ggdG9hc3QgZXJyb3JzXG5cbiAgICB0aGlzLnRvYXN0RWxlbWVudD8uZGlzbWlzcygpXG4gICAgaWYgKHRvYXN0Py5zdGF0dXMgPT09IFVJQWN0aW9uU3RhdHVzLlBFTkRJTkcpIHtcbiAgICAgIGNvbnN0IGRlZmF1bHRUb2FzdE9wdGlvbnM6IFRvYXN0T3B0aW9ucyA9IHtcbiAgICAgICAgZHVyYXRpb246IDMwMDAsXG4gICAgICAgIHBvc2l0aW9uOiAnYm90dG9tJ1xuICAgICAgfVxuICAgICAgdGhpcy50b2FzdEVsZW1lbnQgPSBhd2FpdCB0aGlzLnVpRXZlbnRTZXJ2aWNlLmdldFRyYW5zbGF0ZWRUb2FzdCh7IC4uLmRlZmF1bHRUb2FzdE9wdGlvbnMsIC4uLnRoaXMuZ2V0VG9hc3REYXRhKHRvYXN0LnZhbHVlKSB9KVxuICAgICAgdGhpcy50b2FzdEVsZW1lbnQucHJlc2VudCgpXG5cbiAgICAgIHJldHVybiB0aGlzLnRvYXN0RWxlbWVudC5vbldpbGxEaXNtaXNzKCkudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMub25Ub2FzdERpc21pc3NlZCh0b2FzdClcbiAgICAgIH0pXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudG9hc3RFbGVtZW50ID0gdW5kZWZpbmVkXG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG9uVG9hc3REaXNtaXNzZWQoX3RvYXN0OiBVSUFjdGlvbjxUWydUb2FzdCddPik6IHZvaWQge1xuICAgIHRocm93IG5ldyBFcnJvcignYG9uVG9hc3REaXNtaXNzZWRgIG5vdCBpbXBsZW1lbnRlZCcpXG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0VG9hc3REYXRhKF90b2FzdDogVFsnVG9hc3QnXSk6IFRvYXN0T3B0aW9ucyB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdgZ2V0VG9hc3REYXRhYCBub3QgaW1wbGVtZW50ZWQnKVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { FormsModule } from '@angular/forms';
|
|
4
|
+
import { IonicModule } from '@ionic/angular';
|
|
5
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
6
|
+
import { QRCodeModule } from 'angularx-qrcode';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export class ComponentsModule {
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ComponentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
10
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: ComponentsModule, imports: [CommonModule, IonicModule, TranslateModule, QRCodeModule, FormsModule] }); }
|
|
11
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ComponentsModule, imports: [CommonModule, IonicModule, TranslateModule, QRCodeModule, FormsModule] }); }
|
|
12
|
+
}
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ComponentsModule, decorators: [{
|
|
14
|
+
type: NgModule,
|
|
15
|
+
args: [{
|
|
16
|
+
declarations: [],
|
|
17
|
+
imports: [CommonModule, IonicModule, TranslateModule, QRCodeModule, FormsModule],
|
|
18
|
+
exports: []
|
|
19
|
+
}]
|
|
20
|
+
}] });
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvY29tcG9uZW50cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDeEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzVDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUM1QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBOztBQU85QyxNQUFNLE9BQU8sZ0JBQWdCOytHQUFoQixnQkFBZ0I7Z0hBQWhCLGdCQUFnQixZQUhqQixZQUFZLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsV0FBVztnSEFHcEUsZ0JBQWdCLFlBSGpCLFlBQVksRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxXQUFXOzs0RkFHcEUsZ0JBQWdCO2tCQUw1QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxFQUFFO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsV0FBVyxDQUFDO29CQUNoRixPQUFPLEVBQUUsRUFBRTtpQkFDWiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBJb25pY01vZHVsZSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IFFSQ29kZU1vZHVsZSB9IGZyb20gJ2FuZ3VsYXJ4LXFyY29kZSdcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uaWNNb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgUVJDb2RlTW9kdWxlLCBGb3Jtc01vZHVsZV0sXG4gIGV4cG9ydHM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIENvbXBvbmVudHNNb2R1bGUge31cbiJdfQ==
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { FilesystemService, ProtocolService } from '@wallfree-dev/angular-core';
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { BaseNgRxFacade } from '../../base/base-ngrx.facade';
|
|
4
|
+
import { CurrencySymbolStore } from './currency-symbol.store';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "./currency-symbol.store";
|
|
7
|
+
import * as i2 from "@wallfree-dev/angular-core";
|
|
8
|
+
export class CurrencySymbolNgRxFacade extends BaseNgRxFacade {
|
|
9
|
+
constructor(store, protocolService) {
|
|
10
|
+
super(store);
|
|
11
|
+
this.protocolService = protocolService;
|
|
12
|
+
this.symbolSrc$ = this.store.select((state) => state.src);
|
|
13
|
+
}
|
|
14
|
+
initWithSymbol(symbol, protocolIdentifier) {
|
|
15
|
+
this.getSymbolInputs(symbol, protocolIdentifier)
|
|
16
|
+
.then((symbolInputs) => this.store.setInitialSrc(symbolInputs))
|
|
17
|
+
.catch(console.error);
|
|
18
|
+
}
|
|
19
|
+
onSymbolChanged(symbol, protocolIdentifier) {
|
|
20
|
+
this.getSymbolInputs(symbol, protocolIdentifier)
|
|
21
|
+
.then((symbolInputs) => this.store.setInitialSrc(symbolInputs))
|
|
22
|
+
.catch(console.error);
|
|
23
|
+
}
|
|
24
|
+
onError(_symbol, _protocolIdentifier, _src) {
|
|
25
|
+
this.store.onError$();
|
|
26
|
+
}
|
|
27
|
+
async getSymbolInputs(symbol, protocolIdentifier) {
|
|
28
|
+
let assetSymbol;
|
|
29
|
+
try {
|
|
30
|
+
const protocol = await this.protocolService.getProtocol(protocolIdentifier);
|
|
31
|
+
const [protocolSymbol, protocolAssetSymbol] = await Promise.all([
|
|
32
|
+
protocol.getSymbol(),
|
|
33
|
+
protocol.getAssetSymbol()
|
|
34
|
+
]);
|
|
35
|
+
assetSymbol = protocolSymbol.toLowerCase() === symbol.toLowerCase() ? protocolAssetSymbol : undefined;
|
|
36
|
+
}
|
|
37
|
+
catch (e) {
|
|
38
|
+
console.warn(e);
|
|
39
|
+
}
|
|
40
|
+
assetSymbol = assetSymbol ?? symbol;
|
|
41
|
+
const symbolInput = assetSymbol ? { value: assetSymbol, caseSensitive: false } : undefined;
|
|
42
|
+
const protocolIdentifierInput = protocolIdentifier
|
|
43
|
+
? { value: protocolIdentifier, caseSensitive: true }
|
|
44
|
+
: undefined;
|
|
45
|
+
const symbolInputs = protocolIdentifier && this.protocolService.isKnownProtocolSymbol(protocolIdentifier)
|
|
46
|
+
? [symbolInput, protocolIdentifierInput]
|
|
47
|
+
: [protocolIdentifierInput, symbolInput];
|
|
48
|
+
return symbolInputs.filter((symbolInputOrUndefined) => symbolInputOrUndefined !== undefined);
|
|
49
|
+
}
|
|
50
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CurrencySymbolNgRxFacade, deps: [{ token: i1.CurrencySymbolStore }, { token: i2.ProtocolService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
51
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CurrencySymbolNgRxFacade }); }
|
|
52
|
+
}
|
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CurrencySymbolNgRxFacade, decorators: [{
|
|
54
|
+
type: Injectable
|
|
55
|
+
}], ctorParameters: () => [{ type: i1.CurrencySymbolStore }, { type: i2.ProtocolService }] });
|
|
56
|
+
export const currencySymbolNgRxFacade = (injector) => {
|
|
57
|
+
return new CurrencySymbolNgRxFacade(new CurrencySymbolStore(injector.get(FilesystemService)), injector.get(ProtocolService));
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3ktc3ltYm9sLmZhY2FkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9jdXJyZW5jeS1zeW1ib2wvY3VycmVuY3ktc3ltYm9sLmZhY2FkZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQXlCLGVBQWUsRUFBZSxNQUFNLDRCQUE0QixDQUFBO0FBRW5ILE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUE7QUFFcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFBO0FBRTVELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFBOzs7O0FBRzdELE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxjQUFtQztJQUcvRSxZQUFZLEtBQTBCLEVBQW1CLGVBQWdDO1FBQ3ZGLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUQyQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFFdkYsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQzNELENBQUM7SUFFTSxjQUFjLENBQUMsTUFBMEIsRUFBRSxrQkFBK0M7UUFDL0YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLENBQUM7YUFDN0MsSUFBSSxDQUFDLENBQUMsWUFBMkIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDN0UsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUN6QixDQUFDO0lBRU0sZUFBZSxDQUFDLE1BQTBCLEVBQUUsa0JBQStDO1FBQ2hHLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLGtCQUFrQixDQUFDO2FBQzdDLElBQUksQ0FBQyxDQUFDLFlBQTJCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQzdFLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDekIsQ0FBQztJQUVNLE9BQU8sQ0FBQyxPQUEyQixFQUFFLG1CQUFnRCxFQUFFLElBQWE7UUFDekcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQTtJQUN2QixDQUFDO0lBRU8sS0FBSyxDQUFDLGVBQWUsQ0FBQyxNQUEwQixFQUFFLGtCQUErQztRQUN2RyxJQUFJLFdBQStCLENBQUE7UUFDbkMsSUFBSSxDQUFDO1lBQ0gsTUFBTSxRQUFRLEdBQWtCLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtZQUMxRixNQUFNLENBQUMsY0FBYyxFQUFFLG1CQUFtQixDQUFDLEdBQWlDLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQztnQkFDNUYsUUFBUSxDQUFDLFNBQVMsRUFBRTtnQkFDcEIsUUFBUSxDQUFDLGNBQWMsRUFBRTthQUMxQixDQUFDLENBQUE7WUFFRixXQUFXLEdBQUcsY0FBYyxDQUFDLFdBQVcsRUFBRSxLQUFLLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQTtRQUN2RyxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDakIsQ0FBQztRQUVELFdBQVcsR0FBRyxXQUFXLElBQUksTUFBTSxDQUFBO1FBRW5DLE1BQU0sV0FBVyxHQUE0QixXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQTtRQUNuSCxNQUFNLHVCQUF1QixHQUE0QixrQkFBa0I7WUFDekUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUU7WUFDcEQsQ0FBQyxDQUFDLFNBQVMsQ0FBQTtRQUViLE1BQU0sWUFBWSxHQUNoQixrQkFBa0IsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLHFCQUFxQixDQUFDLGtCQUFrQixDQUFDO1lBQ2xGLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSx1QkFBdUIsQ0FBQztZQUN4QyxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsRUFBRSxXQUFXLENBQUMsQ0FBQTtRQUU1QyxPQUFPLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxzQkFBK0MsRUFBRSxFQUFFLENBQUMsc0JBQXNCLEtBQUssU0FBUyxDQUFDLENBQUE7SUFDdkgsQ0FBQzsrR0FuRFUsd0JBQXdCO21IQUF4Qix3QkFBd0I7OzRGQUF4Qix3QkFBd0I7a0JBRHBDLFVBQVU7O0FBdURYLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBQUMsUUFBa0IsRUFBNEIsRUFBRTtJQUN2RixPQUFPLElBQUksd0JBQXdCLENBQUMsSUFBSSxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUE7QUFDOUgsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmlsZXN5c3RlbVNlcnZpY2UsIElDdXJyZW5jeVN5bWJvbEZhY2FkZSwgUHJvdG9jb2xTZXJ2aWNlLCBTeW1ib2xJbnB1dCB9IGZyb20gJ0B3YWxsZnJlZS1kZXYvYW5ndWxhci1jb3JlJ1xuaW1wb3J0IHsgSUNvaW5Qcm90b2NvbCwgUHJvdG9jb2xTeW1ib2xzIH0gZnJvbSAnQHdhbGxmcmVlLWRldi9jb2lubGliLWNvcmUnXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IEJhc2VOZ1J4RmFjYWRlIH0gZnJvbSAnLi4vLi4vYmFzZS9iYXNlLW5ncnguZmFjYWRlJ1xuXG5pbXBvcnQgeyBDdXJyZW5jeVN5bWJvbFN0b3JlIH0gZnJvbSAnLi9jdXJyZW5jeS1zeW1ib2wuc3RvcmUnXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDdXJyZW5jeVN5bWJvbE5nUnhGYWNhZGUgZXh0ZW5kcyBCYXNlTmdSeEZhY2FkZTxDdXJyZW5jeVN5bWJvbFN0b3JlPiBpbXBsZW1lbnRzIElDdXJyZW5jeVN5bWJvbEZhY2FkZSB7XG4gIHB1YmxpYyByZWFkb25seSBzeW1ib2xTcmMkOiBPYnNlcnZhYmxlPHN0cmluZz5cblxuICBjb25zdHJ1Y3RvcihzdG9yZTogQ3VycmVuY3lTeW1ib2xTdG9yZSwgcHJpdmF0ZSByZWFkb25seSBwcm90b2NvbFNlcnZpY2U6IFByb3RvY29sU2VydmljZSkge1xuICAgIHN1cGVyKHN0b3JlKVxuICAgIHRoaXMuc3ltYm9sU3JjJCA9IHRoaXMuc3RvcmUuc2VsZWN0KChzdGF0ZSkgPT4gc3RhdGUuc3JjKVxuICB9XG5cbiAgcHVibGljIGluaXRXaXRoU3ltYm9sKHN5bWJvbDogc3RyaW5nIHwgdW5kZWZpbmVkLCBwcm90b2NvbElkZW50aWZpZXI6IFByb3RvY29sU3ltYm9scyB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0U3ltYm9sSW5wdXRzKHN5bWJvbCwgcHJvdG9jb2xJZGVudGlmaWVyKVxuICAgICAgLnRoZW4oKHN5bWJvbElucHV0czogU3ltYm9sSW5wdXRbXSkgPT4gdGhpcy5zdG9yZS5zZXRJbml0aWFsU3JjKHN5bWJvbElucHV0cykpXG4gICAgICAuY2F0Y2goY29uc29sZS5lcnJvcilcbiAgfVxuXG4gIHB1YmxpYyBvblN5bWJvbENoYW5nZWQoc3ltYm9sOiBzdHJpbmcgfCB1bmRlZmluZWQsIHByb3RvY29sSWRlbnRpZmllcjogUHJvdG9jb2xTeW1ib2xzIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgdGhpcy5nZXRTeW1ib2xJbnB1dHMoc3ltYm9sLCBwcm90b2NvbElkZW50aWZpZXIpXG4gICAgICAudGhlbigoc3ltYm9sSW5wdXRzOiBTeW1ib2xJbnB1dFtdKSA9PiB0aGlzLnN0b3JlLnNldEluaXRpYWxTcmMoc3ltYm9sSW5wdXRzKSlcbiAgICAgIC5jYXRjaChjb25zb2xlLmVycm9yKVxuICB9XG5cbiAgcHVibGljIG9uRXJyb3IoX3N5bWJvbDogc3RyaW5nIHwgdW5kZWZpbmVkLCBfcHJvdG9jb2xJZGVudGlmaWVyOiBQcm90b2NvbFN5bWJvbHMgfCB1bmRlZmluZWQsIF9zcmM/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnN0b3JlLm9uRXJyb3IkKClcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0U3ltYm9sSW5wdXRzKHN5bWJvbDogc3RyaW5nIHwgdW5kZWZpbmVkLCBwcm90b2NvbElkZW50aWZpZXI6IFByb3RvY29sU3ltYm9scyB8IHVuZGVmaW5lZCk6IFByb21pc2U8U3ltYm9sSW5wdXRbXT4ge1xuICAgIGxldCBhc3NldFN5bWJvbDogc3RyaW5nIHwgdW5kZWZpbmVkXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHByb3RvY29sOiBJQ29pblByb3RvY29sID0gYXdhaXQgdGhpcy5wcm90b2NvbFNlcnZpY2UuZ2V0UHJvdG9jb2wocHJvdG9jb2xJZGVudGlmaWVyKVxuICAgICAgY29uc3QgW3Byb3RvY29sU3ltYm9sLCBwcm90b2NvbEFzc2V0U3ltYm9sXTogW3N0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkXSA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgICAgcHJvdG9jb2wuZ2V0U3ltYm9sKCksXG4gICAgICAgIHByb3RvY29sLmdldEFzc2V0U3ltYm9sKClcbiAgICAgIF0pXG5cbiAgICAgIGFzc2V0U3ltYm9sID0gcHJvdG9jb2xTeW1ib2wudG9Mb3dlckNhc2UoKSA9PT0gc3ltYm9sLnRvTG93ZXJDYXNlKCkgPyBwcm90b2NvbEFzc2V0U3ltYm9sIDogdW5kZWZpbmVkXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS53YXJuKGUpXG4gICAgfVxuXG4gICAgYXNzZXRTeW1ib2wgPSBhc3NldFN5bWJvbCA/PyBzeW1ib2xcblxuICAgIGNvbnN0IHN5bWJvbElucHV0OiBTeW1ib2xJbnB1dCB8IHVuZGVmaW5lZCA9IGFzc2V0U3ltYm9sID8geyB2YWx1ZTogYXNzZXRTeW1ib2wsIGNhc2VTZW5zaXRpdmU6IGZhbHNlIH0gOiB1bmRlZmluZWRcbiAgICBjb25zdCBwcm90b2NvbElkZW50aWZpZXJJbnB1dDogU3ltYm9sSW5wdXQgfCB1bmRlZmluZWQgPSBwcm90b2NvbElkZW50aWZpZXJcbiAgICAgID8geyB2YWx1ZTogcHJvdG9jb2xJZGVudGlmaWVyLCBjYXNlU2Vuc2l0aXZlOiB0cnVlIH1cbiAgICAgIDogdW5kZWZpbmVkXG5cbiAgICBjb25zdCBzeW1ib2xJbnB1dHM6IChTeW1ib2xJbnB1dCB8IHVuZGVmaW5lZClbXSA9XG4gICAgICBwcm90b2NvbElkZW50aWZpZXIgJiYgdGhpcy5wcm90b2NvbFNlcnZpY2UuaXNLbm93blByb3RvY29sU3ltYm9sKHByb3RvY29sSWRlbnRpZmllcilcbiAgICAgICAgPyBbc3ltYm9sSW5wdXQsIHByb3RvY29sSWRlbnRpZmllcklucHV0XVxuICAgICAgICA6IFtwcm90b2NvbElkZW50aWZpZXJJbnB1dCwgc3ltYm9sSW5wdXRdXG5cbiAgICByZXR1cm4gc3ltYm9sSW5wdXRzLmZpbHRlcigoc3ltYm9sSW5wdXRPclVuZGVmaW5lZDogU3ltYm9sSW5wdXQgfCB1bmRlZmluZWQpID0+IHN5bWJvbElucHV0T3JVbmRlZmluZWQgIT09IHVuZGVmaW5lZClcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgY3VycmVuY3lTeW1ib2xOZ1J4RmFjYWRlID0gKGluamVjdG9yOiBJbmplY3Rvcik6IEN1cnJlbmN5U3ltYm9sTmdSeEZhY2FkZSA9PiB7XG4gIHJldHVybiBuZXcgQ3VycmVuY3lTeW1ib2xOZ1J4RmFjYWRlKG5ldyBDdXJyZW5jeVN5bWJvbFN0b3JlKGluamVjdG9yLmdldChGaWxlc3lzdGVtU2VydmljZSkpLCBpbmplY3Rvci5nZXQoUHJvdG9jb2xTZXJ2aWNlKSlcbn1cbiJdfQ==
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { DEFAULT_CURRENCY_SYMBOL_URL } from '@wallfree-dev/angular-core';
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { ComponentStore, tapResponse } from '@ngrx/component-store';
|
|
4
|
+
import { Observable } from 'rxjs';
|
|
5
|
+
import { map, repeat, switchMap, withLatestFrom } from 'rxjs/operators';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@wallfree-dev/angular-core";
|
|
8
|
+
const initialStore = {
|
|
9
|
+
src: DEFAULT_CURRENCY_SYMBOL_URL,
|
|
10
|
+
input: undefined,
|
|
11
|
+
fallbackInput: undefined,
|
|
12
|
+
inputs: []
|
|
13
|
+
};
|
|
14
|
+
export class CurrencySymbolStore extends ComponentStore {
|
|
15
|
+
constructor(filesystemService) {
|
|
16
|
+
super(initialStore);
|
|
17
|
+
this.filesystemService = filesystemService;
|
|
18
|
+
this.onError$ = this.effect((trigger$) => {
|
|
19
|
+
return trigger$.pipe(withLatestFrom(this.state$), switchMap(([, state]) => {
|
|
20
|
+
return this.loadFallbackImage(state).pipe(map((value) => {
|
|
21
|
+
if (value.kind === 'lazy' && value.url === undefined) {
|
|
22
|
+
return !state.fallbackInput || value.symbolInput === state.fallbackInput
|
|
23
|
+
? { kind: 'default' }
|
|
24
|
+
: { kind: 'asset', symbolInput: state.fallbackInput, extension: 'svg' }; // try again with fallback symbol
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
return value;
|
|
28
|
+
}
|
|
29
|
+
}), tapResponse((value) => this.setSrc(value), () => this.setSrc({ kind: 'default' })));
|
|
30
|
+
}), repeat());
|
|
31
|
+
});
|
|
32
|
+
this.setInitialSrc = this.updater((state, inputs) => {
|
|
33
|
+
const input = inputs[0];
|
|
34
|
+
const fallbackInput = inputs[1];
|
|
35
|
+
return {
|
|
36
|
+
...state,
|
|
37
|
+
src: input ? this.getSymbolAssetURL(input, 'svg') /* use .svg by default */ : state.src,
|
|
38
|
+
fallbackType: input ? { kind: 'asset', symbolInput: input, extension: 'png' } /* use .png as a fallback */ : state.fallbackType,
|
|
39
|
+
input,
|
|
40
|
+
fallbackInput,
|
|
41
|
+
inputs
|
|
42
|
+
};
|
|
43
|
+
});
|
|
44
|
+
this.setSrc = this.updater((state, value) => {
|
|
45
|
+
switch (value.kind) {
|
|
46
|
+
case 'default':
|
|
47
|
+
return {
|
|
48
|
+
...state,
|
|
49
|
+
src: DEFAULT_CURRENCY_SYMBOL_URL,
|
|
50
|
+
input: undefined,
|
|
51
|
+
fallbackInput: undefined
|
|
52
|
+
};
|
|
53
|
+
case 'asset':
|
|
54
|
+
const { current: assetCurrent, fallback: assetFallback } = this.getNextInputs(state, value.symbolInput);
|
|
55
|
+
return {
|
|
56
|
+
...state,
|
|
57
|
+
src: this.getSymbolAssetURL(value.symbolInput, value.extension),
|
|
58
|
+
fallbackType: value.extension === 'svg'
|
|
59
|
+
? { kind: 'asset', symbolInput: value.symbolInput, extension: 'png' } /* use .png as a fallback */
|
|
60
|
+
: { kind: 'isolated', symbolInput: value.symbolInput } /* try loading external isolated image as a fallback */,
|
|
61
|
+
input: assetCurrent,
|
|
62
|
+
fallbackInput: assetFallback
|
|
63
|
+
};
|
|
64
|
+
case 'isolated':
|
|
65
|
+
const { current: isolatedCurrent, fallback: isolatedFallback } = this.getNextInputs(state, value.symbolInput);
|
|
66
|
+
return {
|
|
67
|
+
...state,
|
|
68
|
+
src: value.url ?? '',
|
|
69
|
+
fallbackType: !state.fallbackInput || value.symbolInput === state.fallbackInput
|
|
70
|
+
? { kind: 'lazy', symbolInput: value.symbolInput } /* try loading external image as a fallback */
|
|
71
|
+
: { kind: 'asset', symbolInput: state.fallbackInput, extension: 'svg' } /* try again with fallback symbol */,
|
|
72
|
+
input: isolatedCurrent,
|
|
73
|
+
fallbackInput: isolatedFallback
|
|
74
|
+
};
|
|
75
|
+
case 'lazy':
|
|
76
|
+
const { current: lazyCurrent, fallback: lazyFallback } = this.getNextInputs(state, value.symbolInput);
|
|
77
|
+
return {
|
|
78
|
+
...state,
|
|
79
|
+
src: value.url ?? '',
|
|
80
|
+
fallbackType: !state.fallbackInput || value.symbolInput === state.fallbackInput
|
|
81
|
+
? { kind: 'default' }
|
|
82
|
+
: { kind: 'asset', symbolInput: state.fallbackInput, extension: 'svg' } /* try again with fallback symbol */,
|
|
83
|
+
input: lazyCurrent,
|
|
84
|
+
fallbackInput: lazyFallback
|
|
85
|
+
};
|
|
86
|
+
default:
|
|
87
|
+
return state;
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
getNextInputs(state, input) {
|
|
92
|
+
if (!input) {
|
|
93
|
+
return {};
|
|
94
|
+
}
|
|
95
|
+
const index = state.inputs.indexOf(input);
|
|
96
|
+
return index > -1 ? { current: state.inputs[index], fallback: state.inputs[index + 1] } : {};
|
|
97
|
+
}
|
|
98
|
+
loadFallbackImage(state) {
|
|
99
|
+
return new Observable((subscriber) => {
|
|
100
|
+
new Promise(async (resolve, reject) => {
|
|
101
|
+
try {
|
|
102
|
+
subscriber.next({ kind: 'default' });
|
|
103
|
+
if (state.fallbackType?.kind === 'asset') {
|
|
104
|
+
subscriber.next({ kind: 'asset', symbolInput: state.fallbackType.symbolInput, extension: state.fallbackType.extension });
|
|
105
|
+
}
|
|
106
|
+
else if (state.fallbackType?.kind === 'isolated') {
|
|
107
|
+
const imageURI = await this.loadIsolatedImage(state.fallbackType.symbolInput);
|
|
108
|
+
subscriber.next({ kind: 'isolated', symbolInput: state.fallbackType.symbolInput, url: imageURI });
|
|
109
|
+
}
|
|
110
|
+
else if (state.fallbackType?.kind === 'lazy') {
|
|
111
|
+
// try loading external image
|
|
112
|
+
const imageURI = await this.loadLazyImage(state.fallbackType.symbolInput);
|
|
113
|
+
subscriber.next({ kind: 'lazy', symbolInput: state.fallbackType.symbolInput, url: imageURI });
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
// no image was found for the symbol, use the generic image
|
|
117
|
+
subscriber.next({ kind: 'default' });
|
|
118
|
+
}
|
|
119
|
+
resolve();
|
|
120
|
+
}
|
|
121
|
+
catch (error) {
|
|
122
|
+
reject(error);
|
|
123
|
+
}
|
|
124
|
+
}).finally(() => {
|
|
125
|
+
subscriber.complete();
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
async loadIsolatedImage(symbolInput) {
|
|
130
|
+
return this.filesystemService.readIsolatedSymbol(symbolInput.caseSensitive ? symbolInput.value : symbolInput.value.toLocaleLowerCase());
|
|
131
|
+
}
|
|
132
|
+
async loadLazyImage(symbolInput) {
|
|
133
|
+
const imagePath = this.getSymbolImagePath(symbolInput);
|
|
134
|
+
return this.filesystemService.readLazyImage(imagePath);
|
|
135
|
+
}
|
|
136
|
+
getSymbolAssetURL(symbolInput, extension) {
|
|
137
|
+
return `./assets/symbols/${symbolInput.caseSensitive ? symbolInput.value : symbolInput.value.toLowerCase()}.${extension}`;
|
|
138
|
+
}
|
|
139
|
+
getSymbolImagePath(symbolInput) {
|
|
140
|
+
return `/images/symbols/${symbolInput.caseSensitive ? symbolInput.value : symbolInput.value.toLowerCase()}`;
|
|
141
|
+
}
|
|
142
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CurrencySymbolStore, deps: [{ token: i1.FilesystemService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
143
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CurrencySymbolStore }); }
|
|
144
|
+
}
|
|
145
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CurrencySymbolStore, decorators: [{
|
|
146
|
+
type: Injectable
|
|
147
|
+
}], ctorParameters: () => [{ type: i1.FilesystemService }] });
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3ktc3ltYm9sLnN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2N1cnJlbmN5LXN5bWJvbC9jdXJyZW5jeS1zeW1ib2wuc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDJCQUEyQixFQUErQyxNQUFNLDRCQUE0QixDQUFBO0FBQ3JILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUNuRSxPQUFPLEVBQUUsVUFBVSxFQUFjLE1BQU0sTUFBTSxDQUFBO0FBQzdDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTs7O0FBSXZFLE1BQU0sWUFBWSxHQUF3QjtJQUN4QyxHQUFHLEVBQUUsMkJBQTJCO0lBRWhDLEtBQUssRUFBRSxTQUFTO0lBQ2hCLGFBQWEsRUFBRSxTQUFTO0lBQ3hCLE1BQU0sRUFBRSxFQUFFO0NBQ1gsQ0FBQTtBQUdELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxjQUFtQztJQUMxRSxZQUE2QixpQkFBb0M7UUFDL0QsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFBO1FBRFEsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUlqRCxhQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQTBCLEVBQUUsRUFBRTtZQUNwRSxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQ2xCLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQzNCLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQThCLEVBQUUsRUFBRTtnQkFDbkQsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUN2QyxHQUFHLENBQUMsQ0FBQyxLQUFrQixFQUFFLEVBQUU7b0JBQ3pCLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQzt3QkFDckQsT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLElBQUksS0FBSyxDQUFDLFdBQVcsS0FBSyxLQUFLLENBQUMsYUFBYTs0QkFDdEUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTs0QkFDckIsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUEsQ0FBQyxpQ0FBaUM7b0JBQzdHLENBQUM7eUJBQU0sQ0FBQzt3QkFDTixPQUFPLEtBQUssQ0FBQTtvQkFDZCxDQUFDO2dCQUNILENBQUMsQ0FBQyxFQUNGLFdBQVcsQ0FDVCxDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQzFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FDdkMsQ0FDRixDQUFBO1lBQ0gsQ0FBQyxDQUFDLEVBQ0YsTUFBTSxFQUFFLENBQ1QsQ0FBQTtRQUNILENBQUMsQ0FBQyxDQUFBO1FBRWMsa0JBQWEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBMEIsRUFBRSxNQUFxQixFQUFFLEVBQUU7WUFDakcsTUFBTSxLQUFLLEdBQTRCLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUNoRCxNQUFNLGFBQWEsR0FBNEIsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBRXhELE9BQU87Z0JBQ0wsR0FBRyxLQUFLO2dCQUNSLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHO2dCQUN2RixZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxZQUFZO2dCQUUvSCxLQUFLO2dCQUNMLGFBQWE7Z0JBQ2IsTUFBTTthQUNQLENBQUE7UUFDSCxDQUFDLENBQUMsQ0FBQTtRQUVlLFdBQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBMEIsRUFBRSxLQUFrQixFQUFFLEVBQUU7WUFDeEYsUUFBUSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ25CLEtBQUssU0FBUztvQkFDWixPQUFPO3dCQUNMLEdBQUcsS0FBSzt3QkFDUixHQUFHLEVBQUUsMkJBQTJCO3dCQUVoQyxLQUFLLEVBQUUsU0FBUzt3QkFDaEIsYUFBYSxFQUFFLFNBQVM7cUJBQ3pCLENBQUE7Z0JBQ0gsS0FBSyxPQUFPO29CQUNWLE1BQU0sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUE7b0JBRXZHLE9BQU87d0JBQ0wsR0FBRyxLQUFLO3dCQUNSLEdBQUcsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDO3dCQUMvRCxZQUFZLEVBQ1YsS0FBSyxDQUFDLFNBQVMsS0FBSyxLQUFLOzRCQUN2QixDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyw0QkFBNEI7NEJBQ2xHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyx1REFBdUQ7d0JBRWxILEtBQUssRUFBRSxZQUFZO3dCQUNuQixhQUFhLEVBQUUsYUFBYTtxQkFDN0IsQ0FBQTtnQkFDSCxLQUFLLFVBQVU7b0JBQ2IsTUFBTSxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFBO29CQUU3RyxPQUFPO3dCQUNMLEdBQUcsS0FBSzt3QkFDUixHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUcsSUFBSSxFQUFFO3dCQUNwQixZQUFZLEVBQ1YsQ0FBQyxLQUFLLENBQUMsYUFBYSxJQUFJLEtBQUssQ0FBQyxXQUFXLEtBQUssS0FBSyxDQUFDLGFBQWE7NEJBQy9ELENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyw4Q0FBOEM7NEJBQ2pHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLG9DQUFvQzt3QkFFaEgsS0FBSyxFQUFFLGVBQWU7d0JBQ3RCLGFBQWEsRUFBRSxnQkFBZ0I7cUJBQ2hDLENBQUE7Z0JBQ0gsS0FBSyxNQUFNO29CQUNULE1BQU0sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUE7b0JBRXJHLE9BQU87d0JBQ0wsR0FBRyxLQUFLO3dCQUNSLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxJQUFJLEVBQUU7d0JBQ3BCLFlBQVksRUFDVixDQUFDLEtBQUssQ0FBQyxhQUFhLElBQUksS0FBSyxDQUFDLFdBQVcsS0FBSyxLQUFLLENBQUMsYUFBYTs0QkFDL0QsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTs0QkFDckIsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsb0NBQW9DO3dCQUVoSCxLQUFLLEVBQUUsV0FBVzt3QkFDbEIsYUFBYSxFQUFFLFlBQVk7cUJBQzVCLENBQUE7Z0JBQ0g7b0JBQ0UsT0FBTyxLQUFLLENBQUE7WUFDaEIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFBO0lBaEdGLENBQUM7SUFrR08sYUFBYSxDQUFDLEtBQTBCLEVBQUUsS0FBbUI7UUFDbkUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1gsT0FBTyxFQUFFLENBQUE7UUFDWCxDQUFDO1FBRUQsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7UUFFekMsT0FBTyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtJQUM5RixDQUFDO0lBRU8saUJBQWlCLENBQUMsS0FBMEI7UUFDbEQsT0FBTyxJQUFJLFVBQVUsQ0FBQyxDQUFDLFVBQW1DLEVBQUUsRUFBRTtZQUM1RCxJQUFJLE9BQU8sQ0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUMxQyxJQUFJLENBQUM7b0JBQ0gsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFBO29CQUNwQyxJQUFJLEtBQUssQ0FBQyxZQUFZLEVBQUUsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO3dCQUN6QyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtvQkFDMUgsQ0FBQzt5QkFBTSxJQUFJLEtBQUssQ0FBQyxZQUFZLEVBQUUsSUFBSSxLQUFLLFVBQVUsRUFBRSxDQUFDO3dCQUNuRCxNQUFNLFFBQVEsR0FBdUIsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQTt3QkFDakcsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFBO29CQUNuRyxDQUFDO3lCQUFNLElBQUksS0FBSyxDQUFDLFlBQVksRUFBRSxJQUFJLEtBQUssTUFBTSxFQUFFLENBQUM7d0JBQy9DLDZCQUE2Qjt3QkFDN0IsTUFBTSxRQUFRLEdBQXVCLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFBO3dCQUM3RixVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUE7b0JBQy9GLENBQUM7eUJBQU0sQ0FBQzt3QkFDTiwyREFBMkQ7d0JBQzNELFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQTtvQkFDdEMsQ0FBQztvQkFFRCxPQUFPLEVBQUUsQ0FBQTtnQkFDWCxDQUFDO2dCQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7b0JBQ2YsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBO2dCQUNmLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFO2dCQUNkLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQTtZQUN2QixDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVPLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxXQUF3QjtRQUN0RCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQTtJQUN6SSxDQUFDO0lBRU8sS0FBSyxDQUFDLGFBQWEsQ0FBQyxXQUF3QjtRQUNsRCxNQUFNLFNBQVMsR0FBVyxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUE7UUFFOUQsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ3hELENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxXQUF3QixFQUFFLFNBQXdCO1FBQzFFLE9BQU8sb0JBQW9CLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLElBQUksU0FBUyxFQUFFLENBQUE7SUFDM0gsQ0FBQztJQUVPLGtCQUFrQixDQUFDLFdBQXdCO1FBQ2pELE9BQU8sbUJBQW1CLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQTtJQUM3RyxDQUFDOytHQTVKVSxtQkFBbUI7bUhBQW5CLG1CQUFtQjs7NEZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERFRkFVTFRfQ1VSUkVOQ1lfU1lNQk9MX1VSTCwgRmlsZXN5c3RlbVNlcnZpY2UsIFN5bWJvbElucHV0LCBTeW1ib2xWYWx1ZSB9IGZyb20gJ0B3YWxsZnJlZS1kZXYvYW5ndWxhci1jb3JlJ1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb21wb25lbnRTdG9yZSwgdGFwUmVzcG9uc2UgfSBmcm9tICdAbmdyeC9jb21wb25lbnQtc3RvcmUnXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpYmVyIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IG1hcCwgcmVwZWF0LCBzd2l0Y2hNYXAsIHdpdGhMYXRlc3RGcm9tIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5cbmltcG9ydCB7IEN1cnJlbmN5U3ltYm9sU3RhdGUgfSBmcm9tICcuL2N1cnJlbmN5LXN5bWJvbC50eXBlcydcblxuY29uc3QgaW5pdGlhbFN0b3JlOiBDdXJyZW5jeVN5bWJvbFN0YXRlID0ge1xuICBzcmM6IERFRkFVTFRfQ1VSUkVOQ1lfU1lNQk9MX1VSTCxcblxuICBpbnB1dDogdW5kZWZpbmVkLFxuICBmYWxsYmFja0lucHV0OiB1bmRlZmluZWQsXG4gIGlucHV0czogW11cbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEN1cnJlbmN5U3ltYm9sU3RvcmUgZXh0ZW5kcyBDb21wb25lbnRTdG9yZTxDdXJyZW5jeVN5bWJvbFN0YXRlPiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZmlsZXN5c3RlbVNlcnZpY2U6IEZpbGVzeXN0ZW1TZXJ2aWNlKSB7XG4gICAgc3VwZXIoaW5pdGlhbFN0b3JlKVxuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IG9uRXJyb3IkID0gdGhpcy5lZmZlY3QoKHRyaWdnZXIkOiBPYnNlcnZhYmxlPHZvaWQ+KSA9PiB7XG4gICAgcmV0dXJuIHRyaWdnZXIkLnBpcGUoXG4gICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0YXRlJCksXG4gICAgICBzd2l0Y2hNYXAoKFssIHN0YXRlXTogW3ZvaWQsIEN1cnJlbmN5U3ltYm9sU3RhdGVdKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRGYWxsYmFja0ltYWdlKHN0YXRlKS5waXBlKFxuICAgICAgICAgIG1hcCgodmFsdWU6IFN5bWJvbFZhbHVlKSA9PiB7XG4gICAgICAgICAgICBpZiAodmFsdWUua2luZCA9PT0gJ2xhenknICYmIHZhbHVlLnVybCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgIHJldHVybiAhc3RhdGUuZmFsbGJhY2tJbnB1dCB8fCB2YWx1ZS5zeW1ib2xJbnB1dCA9PT0gc3RhdGUuZmFsbGJhY2tJbnB1dFxuICAgICAgICAgICAgICAgID8geyBraW5kOiAnZGVmYXVsdCcgfVxuICAgICAgICAgICAgICAgIDogeyBraW5kOiAnYXNzZXQnLCBzeW1ib2xJbnB1dDogc3RhdGUuZmFsbGJhY2tJbnB1dCwgZXh0ZW5zaW9uOiAnc3ZnJyB9IC8vIHRyeSBhZ2FpbiB3aXRoIGZhbGxiYWNrIHN5bWJvbFxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSksXG4gICAgICAgICAgdGFwUmVzcG9uc2UoXG4gICAgICAgICAgICAodmFsdWU6IFN5bWJvbFZhbHVlKSA9PiB0aGlzLnNldFNyYyh2YWx1ZSksXG4gICAgICAgICAgICAoKSA9PiB0aGlzLnNldFNyYyh7IGtpbmQ6ICdkZWZhdWx0JyB9KVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgfSksXG4gICAgICByZXBlYXQoKVxuICAgIClcbiAgfSlcblxuICBwdWJsaWMgcmVhZG9ubHkgc2V0SW5pdGlhbFNyYyA9IHRoaXMudXBkYXRlcigoc3RhdGU6IEN1cnJlbmN5U3ltYm9sU3RhdGUsIGlucHV0czogU3ltYm9sSW5wdXRbXSkgPT4ge1xuICAgIGNvbnN0IGlucHV0OiBTeW1ib2xJbnB1dCB8IHVuZGVmaW5lZCA9IGlucHV0c1swXVxuICAgIGNvbnN0IGZhbGxiYWNrSW5wdXQ6IFN5bWJvbElucHV0IHwgdW5kZWZpbmVkID0gaW5wdXRzWzFdXG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBzcmM6IGlucHV0ID8gdGhpcy5nZXRTeW1ib2xBc3NldFVSTChpbnB1dCwgJ3N2ZycpIC8qIHVzZSAuc3ZnIGJ5IGRlZmF1bHQgKi8gOiBzdGF0ZS5zcmMsXG4gICAgICBmYWxsYmFja1R5cGU6IGlucHV0ID8geyBraW5kOiAnYXNzZXQnLCBzeW1ib2xJbnB1dDogaW5wdXQsIGV4dGVuc2lvbjogJ3BuZycgfSAvKiB1c2UgLnBuZyBhcyBhIGZhbGxiYWNrICovIDogc3RhdGUuZmFsbGJhY2tUeXBlLFxuXG4gICAgICBpbnB1dCxcbiAgICAgIGZhbGxiYWNrSW5wdXQsXG4gICAgICBpbnB1dHNcbiAgICB9XG4gIH0pXG5cbiAgcHJpdmF0ZSByZWFkb25seSBzZXRTcmMgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlOiBDdXJyZW5jeVN5bWJvbFN0YXRlLCB2YWx1ZTogU3ltYm9sVmFsdWUpID0+IHtcbiAgICBzd2l0Y2ggKHZhbHVlLmtpbmQpIHtcbiAgICAgIGNhc2UgJ2RlZmF1bHQnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgIHNyYzogREVGQVVMVF9DVVJSRU5DWV9TWU1CT0xfVVJMLFxuXG4gICAgICAgICAgaW5wdXQ6IHVuZGVmaW5lZCxcbiAgICAgICAgICBmYWxsYmFja0lucHV0OiB1bmRlZmluZWRcbiAgICAgICAgfVxuICAgICAgY2FzZSAnYXNzZXQnOlxuICAgICAgICBjb25zdCB7IGN1cnJlbnQ6IGFzc2V0Q3VycmVudCwgZmFsbGJhY2s6IGFzc2V0RmFsbGJhY2sgfSA9IHRoaXMuZ2V0TmV4dElucHV0cyhzdGF0ZSwgdmFsdWUuc3ltYm9sSW5wdXQpXG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICBzcmM6IHRoaXMuZ2V0U3ltYm9sQXNzZXRVUkwodmFsdWUuc3ltYm9sSW5wdXQsIHZhbHVlLmV4dGVuc2lvbiksXG4gICAgICAgICAgZmFsbGJhY2tUeXBlOlxuICAgICAgICAgICAgdmFsdWUuZXh0ZW5zaW9uID09PSAnc3ZnJ1xuICAgICAgICAgICAgICA/IHsga2luZDogJ2Fzc2V0Jywgc3ltYm9sSW5wdXQ6IHZhbHVlLnN5bWJvbElucHV0LCBleHRlbnNpb246ICdwbmcnIH0gLyogdXNlIC5wbmcgYXMgYSBmYWxsYmFjayAqL1xuICAgICAgICAgICAgICA6IHsga2luZDogJ2lzb2xhdGVkJywgc3ltYm9sSW5wdXQ6IHZhbHVlLnN5bWJvbElucHV0IH0gLyogdHJ5IGxvYWRpbmcgZXh0ZXJuYWwgaXNvbGF0ZWQgaW1hZ2UgYXMgYSBmYWxsYmFjayAqLyxcblxuICAgICAgICAgIGlucHV0OiBhc3NldEN1cnJlbnQsXG4gICAgICAgICAgZmFsbGJhY2tJbnB1dDogYXNzZXRGYWxsYmFja1xuICAgICAgICB9XG4gICAgICBjYXNlICdpc29sYXRlZCc6XG4gICAgICAgIGNvbnN0IHsgY3VycmVudDogaXNvbGF0ZWRDdXJyZW50LCBmYWxsYmFjazogaXNvbGF0ZWRGYWxsYmFjayB9ID0gdGhpcy5nZXROZXh0SW5wdXRzKHN0YXRlLCB2YWx1ZS5zeW1ib2xJbnB1dClcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgIHNyYzogdmFsdWUudXJsID8/ICcnLFxuICAgICAgICAgIGZhbGxiYWNrVHlwZTpcbiAgICAgICAgICAgICFzdGF0ZS5mYWxsYmFja0lucHV0IHx8IHZhbHVlLnN5bWJvbElucHV0ID09PSBzdGF0ZS5mYWxsYmFja0lucHV0XG4gICAgICAgICAgICAgID8geyBraW5kOiAnbGF6eScsIHN5bWJvbElucHV0OiB2YWx1ZS5zeW1ib2xJbnB1dCB9IC8qIHRyeSBsb2FkaW5nIGV4dGVybmFsIGltYWdlIGFzIGEgZmFsbGJhY2sgKi9cbiAgICAgICAgICAgICAgOiB7IGtpbmQ6ICdhc3NldCcsIHN5bWJvbElucHV0OiBzdGF0ZS5mYWxsYmFja0lucHV0LCBleHRlbnNpb246ICdzdmcnIH0gLyogdHJ5IGFnYWluIHdpdGggZmFsbGJhY2sgc3ltYm9sICovLFxuXG4gICAgICAgICAgaW5wdXQ6IGlzb2xhdGVkQ3VycmVudCxcbiAgICAgICAgICBmYWxsYmFja0lucHV0OiBpc29sYXRlZEZhbGxiYWNrXG4gICAgICAgIH1cbiAgICAgIGNhc2UgJ2xhenknOlxuICAgICAgICBjb25zdCB7IGN1cnJlbnQ6IGxhenlDdXJyZW50LCBmYWxsYmFjazogbGF6eUZhbGxiYWNrIH0gPSB0aGlzLmdldE5leHRJbnB1dHMoc3RhdGUsIHZhbHVlLnN5bWJvbElucHV0KVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgc3JjOiB2YWx1ZS51cmwgPz8gJycsXG4gICAgICAgICAgZmFsbGJhY2tUeXBlOlxuICAgICAgICAgICAgIXN0YXRlLmZhbGxiYWNrSW5wdXQgfHwgdmFsdWUuc3ltYm9sSW5wdXQgPT09IHN0YXRlLmZhbGxiYWNrSW5wdXRcbiAgICAgICAgICAgICAgPyB7IGtpbmQ6ICdkZWZhdWx0JyB9XG4gICAgICAgICAgICAgIDogeyBraW5kOiAnYXNzZXQnLCBzeW1ib2xJbnB1dDogc3RhdGUuZmFsbGJhY2tJbnB1dCwgZXh0ZW5zaW9uOiAnc3ZnJyB9IC8qIHRyeSBhZ2FpbiB3aXRoIGZhbGxiYWNrIHN5bWJvbCAqLyxcblxuICAgICAgICAgIGlucHV0OiBsYXp5Q3VycmVudCxcbiAgICAgICAgICBmYWxsYmFja0lucHV0OiBsYXp5RmFsbGJhY2tcbiAgICAgICAgfVxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHN0YXRlXG4gICAgfVxuICB9KVxuXG4gIHByaXZhdGUgZ2V0TmV4dElucHV0cyhzdGF0ZTogQ3VycmVuY3lTeW1ib2xTdGF0ZSwgaW5wdXQ/OiBTeW1ib2xJbnB1dCk6IHsgY3VycmVudD86IFN5bWJvbElucHV0OyBmYWxsYmFjaz86IFN5bWJvbElucHV0IH0ge1xuICAgIGlmICghaW5wdXQpIHtcbiAgICAgIHJldHVybiB7fVxuICAgIH1cblxuICAgIGNvbnN0IGluZGV4ID0gc3RhdGUuaW5wdXRzLmluZGV4T2YoaW5wdXQpXG5cbiAgICByZXR1cm4gaW5kZXggPiAtMSA/IHsgY3VycmVudDogc3RhdGUuaW5wdXRzW2luZGV4XSwgZmFsbGJhY2s6IHN0YXRlLmlucHV0c1tpbmRleCArIDFdIH0gOiB7fVxuICB9XG5cbiAgcHJpdmF0ZSBsb2FkRmFsbGJhY2tJbWFnZShzdGF0ZTogQ3VycmVuY3lTeW1ib2xTdGF0ZSk6IE9ic2VydmFibGU8U3ltYm9sVmFsdWU+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKHN1YnNjcmliZXI6IFN1YnNjcmliZXI8U3ltYm9sVmFsdWU+KSA9PiB7XG4gICAgICBuZXcgUHJvbWlzZTx2b2lkPihhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHsga2luZDogJ2RlZmF1bHQnIH0pXG4gICAgICAgICAgaWYgKHN0YXRlLmZhbGxiYWNrVHlwZT8ua2luZCA9PT0gJ2Fzc2V0Jykge1xuICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHsga2luZDogJ2Fzc2V0Jywgc3ltYm9sSW5wdXQ6IHN0YXRlLmZhbGxiYWNrVHlwZS5zeW1ib2xJbnB1dCwgZXh0ZW5zaW9uOiBzdGF0ZS5mYWxsYmFja1R5cGUuZXh0ZW5zaW9uIH0pXG4gICAgICAgICAgfSBlbHNlIGlmIChzdGF0ZS5mYWxsYmFja1R5cGU/LmtpbmQgPT09ICdpc29sYXRlZCcpIHtcbiAgICAgICAgICAgIGNvbnN0IGltYWdlVVJJOiBzdHJpbmcgfCB1bmRlZmluZWQgPSBhd2FpdCB0aGlzLmxvYWRJc29sYXRlZEltYWdlKHN0YXRlLmZhbGxiYWNrVHlwZS5zeW1ib2xJbnB1dClcbiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh7IGtpbmQ6ICdpc29sYXRlZCcsIHN5bWJvbElucHV0OiBzdGF0ZS5mYWxsYmFja1R5cGUuc3ltYm9sSW5wdXQsIHVybDogaW1hZ2VVUkkgfSlcbiAgICAgICAgICB9IGVsc2UgaWYgKHN0YXRlLmZhbGxiYWNrVHlwZT8ua2luZCA9PT0gJ2xhenknKSB7XG4gICAgICAgICAgICAvLyB0cnkgbG9hZGluZyBleHRlcm5hbCBpbWFnZVxuICAgICAgICAgICAgY29uc3QgaW1hZ2VVUkk6IHN0cmluZyB8IHVuZGVmaW5lZCA9IGF3YWl0IHRoaXMubG9hZExhenlJbWFnZShzdGF0ZS5mYWxsYmFja1R5cGUuc3ltYm9sSW5wdXQpXG4gICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQoeyBraW5kOiAnbGF6eScsIHN5bWJvbElucHV0OiBzdGF0ZS5mYWxsYmFja1R5cGUuc3ltYm9sSW5wdXQsIHVybDogaW1hZ2VVUkkgfSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gbm8gaW1hZ2Ugd2FzIGZvdW5kIGZvciB0aGUgc3ltYm9sLCB1c2UgdGhlIGdlbmVyaWMgaW1hZ2VcbiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh7IGtpbmQ6ICdkZWZhdWx0JyB9KVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJlc29sdmUoKVxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIHJlamVjdChlcnJvcilcbiAgICAgICAgfVxuICAgICAgfSkuZmluYWxseSgoKSA9PiB7XG4gICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKVxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsb2FkSXNvbGF0ZWRJbWFnZShzeW1ib2xJbnB1dDogU3ltYm9sSW5wdXQpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiB0aGlzLmZpbGVzeXN0ZW1TZXJ2aWNlLnJlYWRJc29sYXRlZFN5bWJvbChzeW1ib2xJbnB1dC5jYXNlU2Vuc2l0aXZlID8gc3ltYm9sSW5wdXQudmFsdWUgOiBzeW1ib2xJbnB1dC52YWx1ZS50b0xvY2FsZUxvd2VyQ2FzZSgpKVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsb2FkTGF6eUltYWdlKHN5bWJvbElucHV0OiBTeW1ib2xJbnB1dCk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgY29uc3QgaW1hZ2VQYXRoOiBzdHJpbmcgPSB0aGlzLmdldFN5bWJvbEltYWdlUGF0aChzeW1ib2xJbnB1dClcblxuICAgIHJldHVybiB0aGlzLmZpbGVzeXN0ZW1TZXJ2aWNlLnJlYWRMYXp5SW1hZ2UoaW1hZ2VQYXRoKVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRTeW1ib2xBc3NldFVSTChzeW1ib2xJbnB1dDogU3ltYm9sSW5wdXQsIGV4dGVuc2lvbjogJ3N2ZycgfCAncG5nJyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAuL2Fzc2V0cy9zeW1ib2xzLyR7c3ltYm9sSW5wdXQuY2FzZVNlbnNpdGl2ZSA/IHN5bWJvbElucHV0LnZhbHVlIDogc3ltYm9sSW5wdXQudmFsdWUudG9Mb3dlckNhc2UoKX0uJHtleHRlbnNpb259YFxuICB9XG5cbiAgcHJpdmF0ZSBnZXRTeW1ib2xJbWFnZVBhdGgoc3ltYm9sSW5wdXQ6IFN5bWJvbElucHV0KTogc3RyaW5nIHtcbiAgICByZXR1cm4gYC9pbWFnZXMvc3ltYm9scy8ke3N5bWJvbElucHV0LmNhc2VTZW5zaXRpdmUgPyBzeW1ib2xJbnB1dC52YWx1ZSA6IHN5bWJvbElucHV0LnZhbHVlLnRvTG93ZXJDYXNlKCl9YFxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3ktc3ltYm9sLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2N1cnJlbmN5LXN5bWJvbC9jdXJyZW5jeS1zeW1ib2wudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN5bWJvbElucHV0LCBTeW1ib2xUeXBlIH0gZnJvbSAnQHdhbGxmcmVlLWRldi9hbmd1bGFyLWNvcmUnXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VycmVuY3lTeW1ib2xTdGF0ZSB7XG4gIHNyYzogc3RyaW5nXG4gIGZhbGxiYWNrVHlwZT86IFN5bWJvbFR5cGVcblxuICBpbnB1dDogU3ltYm9sSW5wdXQgfCB1bmRlZmluZWRcbiAgZmFsbGJhY2tJbnB1dDogU3ltYm9sSW5wdXQgfCB1bmRlZmluZWRcbiAgaW5wdXRzOiBTeW1ib2xJbnB1dFtdXG59XG4iXX0=
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ISOLATED_MODULES_PLUGIN } from '@wallfree-dev/angular-core';
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { BaseNgRxFacade } from '../../base/base-ngrx.facade';
|
|
4
|
+
import { IsolatedModulesDetailsStore } from './isolated-modules-details.store';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "./isolated-modules-details.store";
|
|
7
|
+
export class IsolatedModulesDetailsNgRxFacade extends BaseNgRxFacade {
|
|
8
|
+
constructor(store) {
|
|
9
|
+
super(store);
|
|
10
|
+
this.manifest$ = this.store.select((state) => state.manifest);
|
|
11
|
+
this.isVerified$ = this.store.select((state) => state.isVerified);
|
|
12
|
+
}
|
|
13
|
+
initWithData(metadata) {
|
|
14
|
+
this.store.loadModuleData(metadata);
|
|
15
|
+
}
|
|
16
|
+
onDataChanged(metadata) {
|
|
17
|
+
this.store.loadModuleData(metadata);
|
|
18
|
+
}
|
|
19
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IsolatedModulesDetailsNgRxFacade, deps: [{ token: i1.IsolatedModulesDetailsStore }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
20
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IsolatedModulesDetailsNgRxFacade }); }
|
|
21
|
+
}
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IsolatedModulesDetailsNgRxFacade, decorators: [{
|
|
23
|
+
type: Injectable
|
|
24
|
+
}], ctorParameters: () => [{ type: i1.IsolatedModulesDetailsStore }] });
|
|
25
|
+
export const isolatedModulesDetailsNgRxFacade = (injector) => {
|
|
26
|
+
return new IsolatedModulesDetailsNgRxFacade(new IsolatedModulesDetailsStore(injector.get(ISOLATED_MODULES_PLUGIN)));
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNvbGF0ZWQtbW9kdWxlcy1kZXRhaWxzLmZhY2FkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9pc29sYXRlZC1tb2R1bGVzLWRldGFpbHMvaXNvbGF0ZWQtbW9kdWxlcy1kZXRhaWxzLmZhY2FkZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBS0wsdUJBQXVCLEVBRXhCLE1BQU0sNEJBQTRCLENBQUE7QUFDbkMsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQTtBQUVwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUE7QUFDNUQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUE7OztBQUc5RSxNQUFNLE9BQU8sZ0NBQWlDLFNBQVEsY0FBMkM7SUFJL0YsWUFBWSxLQUFrQztRQUM1QyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUE7UUFFWixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDN0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQ25FLENBQUM7SUFFTSxZQUFZLENBQUMsUUFBZ0M7UUFDbEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDckMsQ0FBQztJQUVNLGFBQWEsQ0FBQyxRQUFnQztRQUNuRCxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUNyQyxDQUFDOytHQWpCVSxnQ0FBZ0M7bUhBQWhDLGdDQUFnQzs7NEZBQWhDLGdDQUFnQztrQkFENUMsVUFBVTs7QUFxQlgsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQUcsQ0FBQyxRQUFrQixFQUFnQyxFQUFFO0lBQ25HLE9BQU8sSUFBSSxnQ0FBZ0MsQ0FBQyxJQUFJLDJCQUEyQixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDckgsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSUlzb2xhdGVkTW9kdWxlc0xpc3REZXRhaWxzLFxuICBJc29sYXRlZE1vZHVsZU1hbmlmZXN0LFxuICBJc29sYXRlZE1vZHVsZU1ldGFkYXRhLFxuICBJc29sYXRlZE1vZHVsZXNEZXRhaWxzRmFjYWRlLFxuICBJU09MQVRFRF9NT0RVTEVTX1BMVUdJTixcbiAgVUlSZXNvdXJjZVxufSBmcm9tICdAd2FsbGZyZWUtZGV2L2FuZ3VsYXItY29yZSdcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgQmFzZU5nUnhGYWNhZGUgfSBmcm9tICcuLi8uLi9iYXNlL2Jhc2UtbmdyeC5mYWNhZGUnXG5pbXBvcnQgeyBJc29sYXRlZE1vZHVsZXNEZXRhaWxzU3RvcmUgfSBmcm9tICcuL2lzb2xhdGVkLW1vZHVsZXMtZGV0YWlscy5zdG9yZSdcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIElzb2xhdGVkTW9kdWxlc0RldGFpbHNOZ1J4RmFjYWRlIGV4dGVuZHMgQmFzZU5nUnhGYWNhZGU8SXNvbGF0ZWRNb2R1bGVzRGV0YWlsc1N0b3JlPiBpbXBsZW1lbnRzIElJc29sYXRlZE1vZHVsZXNMaXN0RGV0YWlscyB7XG4gIHB1YmxpYyByZWFkb25seSBtYW5pZmVzdCQ6IE9ic2VydmFibGU8VUlSZXNvdXJjZTxJc29sYXRlZE1vZHVsZU1hbmlmZXN0Pj5cbiAgcHVibGljIHJlYWRvbmx5IGlzVmVyaWZpZWQkOiBPYnNlcnZhYmxlPFVJUmVzb3VyY2U8Ym9vbGVhbj4+XG5cbiAgY29uc3RydWN0b3Ioc3RvcmU6IElzb2xhdGVkTW9kdWxlc0RldGFpbHNTdG9yZSkge1xuICAgIHN1cGVyKHN0b3JlKVxuXG4gICAgdGhpcy5tYW5pZmVzdCQgPSB0aGlzLnN0b3JlLnNlbGVjdCgoc3RhdGUpID0+IHN0YXRlLm1hbmlmZXN0KVxuICAgIHRoaXMuaXNWZXJpZmllZCQgPSB0aGlzLnN0b3JlLnNlbGVjdCgoc3RhdGUpID0+IHN0YXRlLmlzVmVyaWZpZWQpXG4gIH1cblxuICBwdWJsaWMgaW5pdFdpdGhEYXRhKG1ldGFkYXRhOiBJc29sYXRlZE1vZHVsZU1ldGFkYXRhKTogdm9pZCB7XG4gICAgdGhpcy5zdG9yZS5sb2FkTW9kdWxlRGF0YShtZXRhZGF0YSlcbiAgfVxuXG4gIHB1YmxpYyBvbkRhdGFDaGFuZ2VkKG1ldGFkYXRhOiBJc29sYXRlZE1vZHVsZU1ldGFkYXRhKTogdm9pZCB7XG4gICAgdGhpcy5zdG9yZS5sb2FkTW9kdWxlRGF0YShtZXRhZGF0YSlcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgaXNvbGF0ZWRNb2R1bGVzRGV0YWlsc05nUnhGYWNhZGUgPSAoaW5qZWN0b3I6IEluamVjdG9yKTogSXNvbGF0ZWRNb2R1bGVzRGV0YWlsc0ZhY2FkZSA9PiB7XG4gIHJldHVybiBuZXcgSXNvbGF0ZWRNb2R1bGVzRGV0YWlsc05nUnhGYWNhZGUobmV3IElzb2xhdGVkTW9kdWxlc0RldGFpbHNTdG9yZShpbmplY3Rvci5nZXQoSVNPTEFURURfTU9EVUxFU19QTFVHSU4pKSlcbn1cbiJdfQ==
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { ISOLATED_MODULES_PLUGIN, UIResourceStatus } from '@wallfree-dev/angular-core';
|
|
2
|
+
import { Inject, Injectable } from '@angular/core';
|
|
3
|
+
import { ComponentStore } from '@ngrx/component-store';
|
|
4
|
+
import { from, of } from 'rxjs';
|
|
5
|
+
import { first, map, switchMap, tap } from 'rxjs/operators';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
const initialState = {
|
|
8
|
+
manifest: {
|
|
9
|
+
status: UIResourceStatus.IDLE,
|
|
10
|
+
value: undefined
|
|
11
|
+
},
|
|
12
|
+
path: {
|
|
13
|
+
status: UIResourceStatus.IDLE,
|
|
14
|
+
value: undefined
|
|
15
|
+
},
|
|
16
|
+
isVerified: {
|
|
17
|
+
status: UIResourceStatus.IDLE,
|
|
18
|
+
value: undefined
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
export class IsolatedModulesDetailsStore extends ComponentStore {
|
|
22
|
+
constructor(isolatedModules) {
|
|
23
|
+
super(initialState);
|
|
24
|
+
this.isolatedModules = isolatedModules;
|
|
25
|
+
this.loadModuleData = this.effect((metadata$) => {
|
|
26
|
+
return metadata$.pipe(switchMap((metadata) => metadata.type === 'preview'
|
|
27
|
+
? from(this.verifyModule(metadata)).pipe(first(), map((isVerified) => ({ manifest: metadata.manifest, isVerified })))
|
|
28
|
+
: of({ manifest: metadata.manifest, isVerified: true })), tap({
|
|
29
|
+
next: ({ manifest, isVerified }) => this.setData({ manifest, isVerified }),
|
|
30
|
+
error: () => this.onError()
|
|
31
|
+
}));
|
|
32
|
+
});
|
|
33
|
+
this.setData = this.updater((state, data) => {
|
|
34
|
+
return {
|
|
35
|
+
...state,
|
|
36
|
+
manifest: {
|
|
37
|
+
status: UIResourceStatus.SUCCESS,
|
|
38
|
+
value: data.manifest
|
|
39
|
+
},
|
|
40
|
+
isVerified: {
|
|
41
|
+
status: UIResourceStatus.SUCCESS,
|
|
42
|
+
value: data.isVerified
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
});
|
|
46
|
+
this.onError = this.updater((state) => {
|
|
47
|
+
return {
|
|
48
|
+
...state,
|
|
49
|
+
manifest: {
|
|
50
|
+
status: UIResourceStatus.ERROR,
|
|
51
|
+
value: state.manifest.value
|
|
52
|
+
},
|
|
53
|
+
isVerified: {
|
|
54
|
+
status: UIResourceStatus.ERROR,
|
|
55
|
+
value: state.isVerified.value
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
async verifyModule(metadata) {
|
|
61
|
+
const { verified } = await this.isolatedModules.verifyDynamicModule({
|
|
62
|
+
path: `${metadata.path}/${metadata.root}`.replace(/\/+$/, ''),
|
|
63
|
+
directory: metadata.directory
|
|
64
|
+
});
|
|
65
|
+
return verified;
|
|
66
|
+
}
|
|
67
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IsolatedModulesDetailsStore, deps: [{ token: ISOLATED_MODULES_PLUGIN }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
68
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IsolatedModulesDetailsStore }); }
|
|
69
|
+
}
|
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IsolatedModulesDetailsStore, decorators: [{
|
|
71
|
+
type: Injectable
|
|
72
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
73
|
+
type: Inject,
|
|
74
|
+
args: [ISOLATED_MODULES_PLUGIN]
|
|
75
|
+
}] }] });
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNvbGF0ZWQtbW9kdWxlcy1kZXRhaWxzLnN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2lzb2xhdGVkLW1vZHVsZXMtZGV0YWlscy9pc29sYXRlZC1tb2R1bGVzLWRldGFpbHMuc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUtMLHVCQUF1QixFQUN2QixnQkFBZ0IsRUFFakIsTUFBTSw0QkFBNEIsQ0FBQTtBQUNuQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDdEQsT0FBTyxFQUFFLElBQUksRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBOztBQUczRCxNQUFNLFlBQVksR0FBZ0M7SUFDaEQsUUFBUSxFQUFFO1FBQ1IsTUFBTSxFQUFFLGdCQUFnQixDQUFDLElBQUk7UUFDN0IsS0FBSyxFQUFFLFNBQVM7S0FDakI7SUFDRCxJQUFJLEVBQUU7UUFDSixNQUFNLEVBQUUsZ0JBQWdCLENBQUMsSUFBSTtRQUM3QixLQUFLLEVBQUUsU0FBUztLQUNqQjtJQUNELFVBQVUsRUFBRTtRQUNWLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJO1FBQzdCLEtBQUssRUFBRSxTQUFTO0tBQ2pCO0NBQ0YsQ0FBQTtBQUdELE1BQU0sT0FBTywyQkFBNEIsU0FBUSxjQUEyQztJQUMxRixZQUE4RCxlQUFzQztRQUNsRyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUE7UUFEeUMsb0JBQWUsR0FBZixlQUFlLENBQXVCO1FBSXBGLG1CQUFjLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQTZDLEVBQUUsRUFBRTtZQUM3RixPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQ25CLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQ3JCLFFBQVEsQ0FBQyxJQUFJLEtBQUssU0FBUztnQkFDekIsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNwQyxLQUFLLEVBQUUsRUFDUCxHQUFHLENBQUMsQ0FBQyxVQUFtQixFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUM1RTtnQkFDSCxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQzFELEVBQ0QsR0FBRyxDQUFDO2dCQUNGLElBQUksRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxDQUFDO2dCQUMxRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTthQUM1QixDQUFDLENBQ0gsQ0FBQTtRQUNILENBQUMsQ0FBQyxDQUFBO1FBRWUsWUFBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQ3JDLENBQUMsS0FBa0MsRUFBRSxJQUErRCxFQUFFLEVBQUU7WUFDdEcsT0FBTztnQkFDTCxHQUFHLEtBQUs7Z0JBQ1IsUUFBUSxFQUFFO29CQUNSLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxPQUFPO29CQUNoQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVE7aUJBQ3JCO2dCQUNELFVBQVUsRUFBRTtvQkFDVixNQUFNLEVBQUUsZ0JBQWdCLENBQUMsT0FBTztvQkFDaEMsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVO2lCQUN2QjthQUNGLENBQUE7UUFDSCxDQUFDLENBQ0YsQ0FBQTtRQUVnQixZQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQWtDLEVBQUUsRUFBRTtZQUM3RSxPQUFPO2dCQUNMLEdBQUcsS0FBSztnQkFDUixRQUFRLEVBQUU7b0JBQ1IsTUFBTSxFQUFFLGdCQUFnQixDQUFDLEtBQUs7b0JBQzlCLEtBQUssRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUs7aUJBQzVCO2dCQUNELFVBQVUsRUFBRTtvQkFDVixNQUFNLEVBQUUsZ0JBQWdCLENBQUMsS0FBSztvQkFDOUIsS0FBSyxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBSztpQkFDOUI7YUFDRixDQUFBO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUEvQ0YsQ0FBQztJQWlETyxLQUFLLENBQUMsWUFBWSxDQUFDLFFBQXVDO1FBQ2hFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBOEIsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLG1CQUFtQixDQUFDO1lBQzdGLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO1lBQzdELFNBQVMsRUFBRSxRQUFRLENBQUMsU0FBUztTQUM5QixDQUFDLENBQUE7UUFFRixPQUFPLFFBQVEsQ0FBQTtJQUNqQixDQUFDOytHQTNEVSwyQkFBMkIsa0JBQ2xCLHVCQUF1QjttSEFEaEMsMkJBQTJCOzs0RkFBM0IsMkJBQTJCO2tCQUR2QyxVQUFVOzswQkFFSSxNQUFNOzJCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIElzb2xhdGVkTW9kdWxlTWFuaWZlc3QsXG4gIElzb2xhdGVkTW9kdWxlTWV0YWRhdGEsXG4gIElzb2xhdGVkTW9kdWxlUHJldmlld01ldGFkYXRhLFxuICBJc29sYXRlZE1vZHVsZXNQbHVnaW4sXG4gIElTT0xBVEVEX01PRFVMRVNfUExVR0lOLFxuICBVSVJlc291cmNlU3RhdHVzLFxuICBWZXJpZnlEeW5hbWljTW9kdWxlUmVzdWx0XG59IGZyb20gJ0B3YWxsZnJlZS1kZXYvYW5ndWxhci1jb3JlJ1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IENvbXBvbmVudFN0b3JlIH0gZnJvbSAnQG5ncngvY29tcG9uZW50LXN0b3JlJ1xuaW1wb3J0IHsgZnJvbSwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgZmlyc3QsIG1hcCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IElzb2xhdGVkTW9kdWxlc0RldGFpbHNTdGF0ZSB9IGZyb20gJy4vaXNvbGF0ZWQtbW9kdWxlcy1kZXRhaWxzLnR5cGVzJ1xuXG5jb25zdCBpbml0aWFsU3RhdGU6IElzb2xhdGVkTW9kdWxlc0RldGFpbHNTdGF0ZSA9IHtcbiAgbWFuaWZlc3Q6IHtcbiAgICBzdGF0dXM6IFVJUmVzb3VyY2VTdGF0dXMuSURMRSxcbiAgICB2YWx1ZTogdW5kZWZpbmVkXG4gIH0sXG4gIHBhdGg6IHtcbiAgICBzdGF0dXM6IFVJUmVzb3VyY2VTdGF0dXMuSURMRSxcbiAgICB2YWx1ZTogdW5kZWZpbmVkXG4gIH0sXG4gIGlzVmVyaWZpZWQ6IHtcbiAgICBzdGF0dXM6IFVJUmVzb3VyY2VTdGF0dXMuSURMRSxcbiAgICB2YWx1ZTogdW5kZWZpbmVkXG4gIH1cbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIElzb2xhdGVkTW9kdWxlc0RldGFpbHNTdG9yZSBleHRlbmRzIENvbXBvbmVudFN0b3JlPElzb2xhdGVkTW9kdWxlc0RldGFpbHNTdGF0ZT4ge1xuICBjb25zdHJ1Y3RvcihASW5qZWN0KElTT0xBVEVEX01PRFVMRVNfUExVR0lOKSBwcml2YXRlIHJlYWRvbmx5IGlzb2xhdGVkTW9kdWxlczogSXNvbGF0ZWRNb2R1bGVzUGx1Z2luKSB7XG4gICAgc3VwZXIoaW5pdGlhbFN0YXRlKVxuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IGxvYWRNb2R1bGVEYXRhID0gdGhpcy5lZmZlY3QoKG1ldGFkYXRhJDogT2JzZXJ2YWJsZTxJc29sYXRlZE1vZHVsZU1ldGFkYXRhPikgPT4ge1xuICAgIHJldHVybiBtZXRhZGF0YSQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgobWV0YWRhdGEpID0+XG4gICAgICAgIG1ldGFkYXRhLnR5cGUgPT09ICdwcmV2aWV3J1xuICAgICAgICAgID8gZnJvbSh0aGlzLnZlcmlmeU1vZHVsZShtZXRhZGF0YSkpLnBpcGUoXG4gICAgICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgICAgIG1hcCgoaXNWZXJpZmllZDogYm9vbGVhbikgPT4gKHsgbWFuaWZlc3Q6IG1ldGFkYXRhLm1hbmlmZXN0LCBpc1ZlcmlmaWVkIH0pKVxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogb2YoeyBtYW5pZmVzdDogbWV0YWRhdGEubWFuaWZlc3QsIGlzVmVyaWZpZWQ6IHRydWUgfSlcbiAgICAgICksXG4gICAgICB0YXAoe1xuICAgICAgICBuZXh0OiAoeyBtYW5pZmVzdCwgaXNWZXJpZmllZCB9KSA9PiB0aGlzLnNldERhdGEoeyBtYW5pZmVzdCwgaXNWZXJpZmllZCB9KSxcbiAgICAgICAgZXJyb3I6ICgpID0+IHRoaXMub25FcnJvcigpXG4gICAgICB9KVxuICAgIClcbiAgfSlcblxuICBwcml2YXRlIHJlYWRvbmx5IHNldERhdGEgPSB0aGlzLnVwZGF0ZXIoXG4gICAgKHN0YXRlOiBJc29sYXRlZE1vZHVsZXNEZXRhaWxzU3RhdGUsIGRhdGE6IHsgbWFuaWZlc3Q6IElzb2xhdGVkTW9kdWxlTWFuaWZlc3Q7IGlzVmVyaWZpZWQ6IGJvb2xlYW4gfSkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgICAgc3RhdHVzOiBVSVJlc291cmNlU3RhdHVzLlNVQ0NFU1MsXG4gICAgICAgICAgdmFsdWU6IGRhdGEubWFuaWZlc3RcbiAgICAgICAgfSxcbiAgICAgICAgaXNWZXJpZmllZDoge1xuICAgICAgICAgIHN0YXR1czogVUlSZXNvdXJjZVN0YXR1cy5TVUNDRVNTLFxuICAgICAgICAgIHZhbHVlOiBkYXRhLmlzVmVyaWZpZWRcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgKVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgb25FcnJvciA9IHRoaXMudXBkYXRlcigoc3RhdGU6IElzb2xhdGVkTW9kdWxlc0RldGFpbHNTdGF0ZSkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgIHN0YXR1czogVUlSZXNvdXJjZVN0YXR1cy5FUlJPUixcbiAgICAgICAgdmFsdWU6IHN0YXRlLm1hbmlmZXN0LnZhbHVlXG4gICAgICB9LFxuICAgICAgaXNWZXJpZmllZDoge1xuICAgICAgICBzdGF0dXM6IFVJUmVzb3VyY2VTdGF0dXMuRVJST1IsXG4gICAgICAgIHZhbHVlOiBzdGF0ZS5pc1ZlcmlmaWVkLnZhbHVlXG4gICAgICB9XG4gICAgfVxuICB9KVxuXG4gIHByaXZhdGUgYXN5bmMgdmVyaWZ5TW9kdWxlKG1ldGFkYXRhOiBJc29sYXRlZE1vZHVsZVByZXZpZXdNZXRhZGF0YSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHsgdmVyaWZpZWQgfTogVmVyaWZ5RHluYW1pY01vZHVsZVJlc3VsdCA9IGF3YWl0IHRoaXMuaXNvbGF0ZWRNb2R1bGVzLnZlcmlmeUR5bmFtaWNNb2R1bGUoe1xuICAgICAgcGF0aDogYCR7bWV0YWRhdGEucGF0aH0vJHttZXRhZGF0YS5yb290fWAucmVwbGFjZSgvXFwvKyQvLCAnJyksXG4gICAgICBkaXJlY3Rvcnk6IG1ldGFkYXRhLmRpcmVjdG9yeVxuICAgIH0pXG5cbiAgICByZXR1cm4gdmVyaWZpZWRcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNvbGF0ZWQtbW9kdWxlcy1kZXRhaWxzLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2lzb2xhdGVkLW1vZHVsZXMtZGV0YWlscy9pc29sYXRlZC1tb2R1bGVzLWRldGFpbHMudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElzb2xhdGVkTW9kdWxlTWFuaWZlc3QsIFVJUmVzb3VyY2UgfSBmcm9tICdAd2FsbGZyZWUtZGV2L2FuZ3VsYXItY29yZSdcblxuZXhwb3J0IGludGVyZmFjZSBJc29sYXRlZE1vZHVsZXNEZXRhaWxzU3RhdGUge1xuICBtYW5pZmVzdDogVUlSZXNvdXJjZTxJc29sYXRlZE1vZHVsZU1hbmlmZXN0PlxuICBwYXRoOiBVSVJlc291cmNlPHN0cmluZz5cbiAgaXNWZXJpZmllZDogVUlSZXNvdXJjZTxib29sZWFuPlxufVxuIl19
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { BaseNgRxFacade } from '../../base/base-ngrx.facade';
|
|
3
|
+
import { IsolatedModulesListStore } from './isolated-modules-list.store';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "./isolated-modules-list.store";
|
|
6
|
+
export class IsolatedModulesListNgRxFacade extends BaseNgRxFacade {
|
|
7
|
+
constructor(store) {
|
|
8
|
+
super(store);
|
|
9
|
+
this.modules$ = this.store.select((state) => state.filteredModules);
|
|
10
|
+
}
|
|
11
|
+
updateModules(modules, query) {
|
|
12
|
+
this.store.setModules({ modules, query });
|
|
13
|
+
}
|
|
14
|
+
filterModules(query) {
|
|
15
|
+
this.store.filterModules(query);
|
|
16
|
+
}
|
|
17
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IsolatedModulesListNgRxFacade, deps: [{ token: i1.IsolatedModulesListStore }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
18
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IsolatedModulesListNgRxFacade }); }
|
|
19
|
+
}
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IsolatedModulesListNgRxFacade, decorators: [{
|
|
21
|
+
type: Injectable
|
|
22
|
+
}], ctorParameters: () => [{ type: i1.IsolatedModulesListStore }] });
|
|
23
|
+
export const isolatedModulesListNgRxFacade = (_injector) => {
|
|
24
|
+
return new IsolatedModulesListNgRxFacade(new IsolatedModulesListStore());
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNvbGF0ZWQtbW9kdWxlcy1saXN0LmZhY2FkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9pc29sYXRlZC1tb2R1bGVzLWxpc3QvaXNvbGF0ZWQtbW9kdWxlcy1saXN0LmZhY2FkZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFBO0FBRXBELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTtBQUM1RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTs7O0FBSXhFLE1BQU0sT0FBTyw2QkFBOEIsU0FBUSxjQUF3QztJQUd6RixZQUFZLEtBQStCO1FBQ3pDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUVaLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUErQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUE7SUFDL0YsQ0FBQztJQUVNLGFBQWEsQ0FBQyxPQUE2QyxFQUFFLEtBQWE7UUFDL0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQTtJQUMzQyxDQUFDO0lBRU0sYUFBYSxDQUFDLEtBQXlCO1FBQzVDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2pDLENBQUM7K0dBZlUsNkJBQTZCO21IQUE3Qiw2QkFBNkI7OzRGQUE3Qiw2QkFBNkI7a0JBRHpDLFVBQVU7O0FBbUJYLE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLENBQUMsU0FBbUIsRUFBNkIsRUFBRTtJQUM5RixPQUFPLElBQUksNkJBQTZCLENBQUMsSUFBSSx3QkFBd0IsRUFBRSxDQUFDLENBQUE7QUFDMUUsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUlzb2xhdGVkTW9kdWxlc0xpc3RGYWNhZGUsIElzb2xhdGVkTW9kdWxlTWV0YWRhdGEsIElzb2xhdGVkTW9kdWxlc0xpc3RGYWNhZGUsIFVJUmVzb3VyY2UgfSBmcm9tICdAd2FsbGZyZWUtZGV2L2FuZ3VsYXItY29yZSdcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgQmFzZU5nUnhGYWNhZGUgfSBmcm9tICcuLi8uLi9iYXNlL2Jhc2UtbmdyeC5mYWNhZGUnXG5pbXBvcnQgeyBJc29sYXRlZE1vZHVsZXNMaXN0U3RvcmUgfSBmcm9tICcuL2lzb2xhdGVkLW1vZHVsZXMtbGlzdC5zdG9yZSdcbmltcG9ydCB7IElzb2xhdGVkTW9kdWxlc0xpc3RTdGF0ZSB9IGZyb20gJy4vaXNvbGF0ZWQtbW9kdWxlcy1saXN0LnR5cGVzJ1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSXNvbGF0ZWRNb2R1bGVzTGlzdE5nUnhGYWNhZGUgZXh0ZW5kcyBCYXNlTmdSeEZhY2FkZTxJc29sYXRlZE1vZHVsZXNMaXN0U3RvcmU+IGltcGxlbWVudHMgSUlzb2xhdGVkTW9kdWxlc0xpc3RGYWNhZGUge1xuICBwdWJsaWMgcmVhZG9ubHkgbW9kdWxlcyQ6IE9ic2VydmFibGU8VUlSZXNvdXJjZTxJc29sYXRlZE1vZHVsZU1ldGFkYXRhW10+PlxuXG4gIGNvbnN0cnVjdG9yKHN0b3JlOiBJc29sYXRlZE1vZHVsZXNMaXN0U3RvcmUpIHtcbiAgICBzdXBlcihzdG9yZSlcblxuICAgIHRoaXMubW9kdWxlcyQgPSB0aGlzLnN0b3JlLnNlbGVjdCgoc3RhdGU6IElzb2xhdGVkTW9kdWxlc0xpc3RTdGF0ZSkgPT4gc3RhdGUuZmlsdGVyZWRNb2R1bGVzKVxuICB9XG5cbiAgcHVibGljIHVwZGF0ZU1vZHVsZXMobW9kdWxlczogVUlSZXNvdXJjZTxJc29sYXRlZE1vZHVsZU1ldGFkYXRhW10+LCBxdWVyeTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zdG9yZS5zZXRNb2R1bGVzKHsgbW9kdWxlcywgcXVlcnkgfSlcbiAgfVxuXG4gIHB1YmxpYyBmaWx0ZXJNb2R1bGVzKHF1ZXJ5OiBzdHJpbmcgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICB0aGlzLnN0b3JlLmZpbHRlck1vZHVsZXMocXVlcnkpXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGlzb2xhdGVkTW9kdWxlc0xpc3ROZ1J4RmFjYWRlID0gKF9pbmplY3RvcjogSW5qZWN0b3IpOiBJc29sYXRlZE1vZHVsZXNMaXN0RmFjYWRlID0+IHtcbiAgcmV0dXJuIG5ldyBJc29sYXRlZE1vZHVsZXNMaXN0TmdSeEZhY2FkZShuZXcgSXNvbGF0ZWRNb2R1bGVzTGlzdFN0b3JlKCkpXG59XG4iXX0=
|