@daffodil/checkout 0.91.0 → 0.92.3-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -0
- package/fesm2022/daffodil-checkout-routing.mjs +7 -7
- package/fesm2022/daffodil-checkout-routing.mjs.map +1 -1
- package/fesm2022/daffodil-checkout-state-testing.mjs +7 -7
- package/fesm2022/daffodil-checkout-state-testing.mjs.map +1 -1
- package/fesm2022/daffodil-checkout-state.mjs +12 -18
- package/fesm2022/daffodil-checkout-state.mjs.map +1 -1
- package/package.json +1 -1
package/README.md
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# @daffodil/checkout
|
|
2
|
+
`@daffodil/checkout` provides features for building an ecommerce checkout in Angular.
|
|
3
|
+
|
|
4
|
+
## Overview
|
|
5
|
+
It provides state management and routing features for managing checkout flow.
|
|
6
|
+
|
|
7
|
+
## Installation
|
|
8
|
+
To install `@daffodil/checkout`, use the following commands in your terminal.
|
|
9
|
+
|
|
10
|
+
Install with npm:
|
|
11
|
+
```bash
|
|
12
|
+
npm install @daffodil/checkout --save
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Install with yarn:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
yarn add @daffodil/checkout
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
> Note that many checkout features are in the process of being migrated from `@daffodil/cart` to this package.
|
|
22
|
+
|
|
@@ -28,10 +28,10 @@ class DaffCheckoutPlacedOrderGuard {
|
|
|
28
28
|
}
|
|
29
29
|
}));
|
|
30
30
|
}
|
|
31
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
32
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
31
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffCheckoutPlacedOrderGuard, deps: [{ token: i1.DaffCheckoutPlacedOrderFacade }, { token: i2.Router }, { token: DaffCheckoutPlacedOrderGuardRedirectUrl }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
32
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffCheckoutPlacedOrderGuard, providedIn: 'root' }); }
|
|
33
33
|
}
|
|
34
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffCheckoutPlacedOrderGuard, decorators: [{
|
|
35
35
|
type: Injectable,
|
|
36
36
|
args: [{
|
|
37
37
|
providedIn: 'root',
|
|
@@ -42,13 +42,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
|
|
|
42
42
|
}] }] });
|
|
43
43
|
|
|
44
44
|
class DaffCheckoutRoutingModule {
|
|
45
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
46
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
47
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
45
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffCheckoutRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
46
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.18", ngImport: i0, type: DaffCheckoutRoutingModule }); }
|
|
47
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffCheckoutRoutingModule, providers: [
|
|
48
48
|
{ provide: DaffCheckoutPlacedOrderGuardRedirectUrl, useValue: '/' },
|
|
49
49
|
] }); }
|
|
50
50
|
}
|
|
51
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffCheckoutRoutingModule, decorators: [{
|
|
52
52
|
type: NgModule,
|
|
53
53
|
args: [{
|
|
54
54
|
providers: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daffodil-checkout-routing.mjs","sources":["../../../libs/checkout/routing/src/guards/placed-order/placed-order-guard-redirect.token.ts","../../../libs/checkout/routing/src/guards/placed-order/placed-order.guard.ts","../../../libs/checkout/routing/src/checkout-routing.module.ts","../../../libs/checkout/routing/src/daffodil-checkout-routing.ts"],"sourcesContent":["import { createSingleInjectionToken } from '@daffodil/core';\n\nexport const {\n token: DaffCheckoutPlacedOrderGuardRedirectUrl,\n /**\n * Provider function for {@link DaffCheckoutPlacedOrderGuardRedirectUrl}.\n */\n provider: provideDaffCheckoutPlacedOrderGuardRedirectUrl,\n} = createSingleInjectionToken<string>('DaffCheckoutPlacedOrderGuardRedirectUrl', { factory: () => '/' });\n","import {\n Injectable,\n Inject,\n} from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { tap } from 'rxjs/operators';\n\nimport { DaffCheckoutPlacedOrderFacade } from '@daffodil/checkout/state';\n\nimport { DaffCheckoutPlacedOrderGuardRedirectUrl } from './placed-order-guard-redirect.token';\n\n/**\n * A routing guard that will redirect to a given url if the placed order is not defined.\n * The url is `/` by default, but can be overridden with the DaffCheckoutPlacedOrderGuardRedirectUrl injection token.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffCheckoutPlacedOrderGuard {\n constructor(\n private facade: DaffCheckoutPlacedOrderFacade,\n private router: Router,\n @Inject(DaffCheckoutPlacedOrderGuardRedirectUrl) private redirectUrl: string,\n ) {}\n\n canActivate(): Observable<boolean> {\n return this.facade.hasPlacedOrder$.pipe(\n tap(hasPlacedOrder => {\n if (!hasPlacedOrder) {\n this.router.navigateByUrl(this.redirectUrl);\n }\n }),\n );\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { DaffCheckoutPlacedOrderGuardRedirectUrl } from './guards/public_api';\n\n@NgModule({\n providers: [\n { provide: DaffCheckoutPlacedOrderGuardRedirectUrl, useValue: '/' },\n ],\n})\nexport class DaffCheckoutRoutingModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAEO,MAAM,EACX,KAAK,EAAE,uCAAuC;AAC9C;;AAEG;AACH,QAAQ,EAAE,8CAA8C,GACzD,GAAG,0BAA0B,CAAS,yCAAyC,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,EAAE;;ACIxG;;;AAGG;MAIU,4BAA4B,CAAA;AACvC,IAAA,WAAA,CACU,MAAqC,EACrC,MAAc,EACmC,WAAmB,EAAA;QAFpE,IAAA,CAAA,MAAM,GAAN,MAAM;QACN,IAAA,CAAA,MAAM,GAAN,MAAM;QAC2C,IAAA,CAAA,WAAW,GAAX,WAAW;IACnE;IAEH,WAAW,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CACrC,GAAG,CAAC,cAAc,IAAG;YACnB,IAAI,CAAC,cAAc,EAAE;gBACnB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;YAC7C;QACF,CAAC,CAAC,CACH;IACH;AAfW,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,
|
|
1
|
+
{"version":3,"file":"daffodil-checkout-routing.mjs","sources":["../../../libs/checkout/routing/src/guards/placed-order/placed-order-guard-redirect.token.ts","../../../libs/checkout/routing/src/guards/placed-order/placed-order.guard.ts","../../../libs/checkout/routing/src/checkout-routing.module.ts","../../../libs/checkout/routing/src/daffodil-checkout-routing.ts"],"sourcesContent":["import { createSingleInjectionToken } from '@daffodil/core';\n\nexport const {\n token: DaffCheckoutPlacedOrderGuardRedirectUrl,\n /**\n * Provider function for {@link DaffCheckoutPlacedOrderGuardRedirectUrl}.\n */\n provider: provideDaffCheckoutPlacedOrderGuardRedirectUrl,\n} = createSingleInjectionToken<string>('DaffCheckoutPlacedOrderGuardRedirectUrl', { factory: () => '/' });\n","import {\n Injectable,\n Inject,\n} from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { tap } from 'rxjs/operators';\n\nimport { DaffCheckoutPlacedOrderFacade } from '@daffodil/checkout/state';\n\nimport { DaffCheckoutPlacedOrderGuardRedirectUrl } from './placed-order-guard-redirect.token';\n\n/**\n * A routing guard that will redirect to a given url if the placed order is not defined.\n * The url is `/` by default, but can be overridden with the DaffCheckoutPlacedOrderGuardRedirectUrl injection token.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffCheckoutPlacedOrderGuard {\n constructor(\n private facade: DaffCheckoutPlacedOrderFacade,\n private router: Router,\n @Inject(DaffCheckoutPlacedOrderGuardRedirectUrl) private redirectUrl: string,\n ) {}\n\n canActivate(): Observable<boolean> {\n return this.facade.hasPlacedOrder$.pipe(\n tap(hasPlacedOrder => {\n if (!hasPlacedOrder) {\n this.router.navigateByUrl(this.redirectUrl);\n }\n }),\n );\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { DaffCheckoutPlacedOrderGuardRedirectUrl } from './guards/public_api';\n\n@NgModule({\n providers: [\n { provide: DaffCheckoutPlacedOrderGuardRedirectUrl, useValue: '/' },\n ],\n})\nexport class DaffCheckoutRoutingModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAEO,MAAM,EACX,KAAK,EAAE,uCAAuC;AAC9C;;AAEG;AACH,QAAQ,EAAE,8CAA8C,GACzD,GAAG,0BAA0B,CAAS,yCAAyC,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,EAAE;;ACIxG;;;AAGG;MAIU,4BAA4B,CAAA;AACvC,IAAA,WAAA,CACU,MAAqC,EACrC,MAAc,EACmC,WAAmB,EAAA;QAFpE,IAAA,CAAA,MAAM,GAAN,MAAM;QACN,IAAA,CAAA,MAAM,GAAN,MAAM;QAC2C,IAAA,CAAA,WAAW,GAAX,WAAW;IACnE;IAEH,WAAW,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CACrC,GAAG,CAAC,cAAc,IAAG;YACnB,IAAI,CAAC,cAAc,EAAE;gBACnB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;YAC7C;QACF,CAAC,CAAC,CACH;IACH;AAfW,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,qFAI7B,uCAAuC,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAJtC,uBAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,cAF3B,MAAM,EAAA,CAAA,CAAA;;4FAEP,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAHxC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;0BAKI,MAAM;2BAAC,uCAAuC;;;MCdtC,yBAAyB,CAAA;kIAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;mIAAzB,yBAAyB,EAAA,CAAA,CAAA;AAAzB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,EAAA,SAAA,EAJzB;AACT,YAAA,EAAE,OAAO,EAAE,uCAAuC,EAAE,QAAQ,EAAE,GAAG,EAAE;AACpE,SAAA,EAAA,CAAA,CAAA;;4FAEU,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,SAAS,EAAE;AACT,wBAAA,EAAE,OAAO,EAAE,uCAAuC,EAAE,QAAQ,EAAE,GAAG,EAAE;AACpE,qBAAA;AACF,iBAAA;;;ACRD;;AAEG;;;;"}
|
|
@@ -13,10 +13,10 @@ class MockDaffCheckoutPlacedOrderFacade {
|
|
|
13
13
|
}
|
|
14
14
|
dispatch(action) { }
|
|
15
15
|
;
|
|
16
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
17
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
16
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: MockDaffCheckoutPlacedOrderFacade, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
17
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: MockDaffCheckoutPlacedOrderFacade, providedIn: 'root' }); }
|
|
18
18
|
}
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: MockDaffCheckoutPlacedOrderFacade, decorators: [{
|
|
20
20
|
type: Injectable,
|
|
21
21
|
args: [{ providedIn: 'root' }]
|
|
22
22
|
}] });
|
|
@@ -25,13 +25,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
|
|
|
25
25
|
* Mocks the `@daffodil/checkout/state` facades for testing purposes.
|
|
26
26
|
*/
|
|
27
27
|
class DaffCheckoutStateTestingModule {
|
|
28
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
29
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
30
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
28
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffCheckoutStateTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
29
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.18", ngImport: i0, type: DaffCheckoutStateTestingModule }); }
|
|
30
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffCheckoutStateTestingModule, providers: [
|
|
31
31
|
{ provide: DaffCheckoutPlacedOrderFacade, useExisting: MockDaffCheckoutPlacedOrderFacade },
|
|
32
32
|
] }); }
|
|
33
33
|
}
|
|
34
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffCheckoutStateTestingModule, decorators: [{
|
|
35
35
|
type: NgModule,
|
|
36
36
|
args: [{
|
|
37
37
|
providers: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daffodil-checkout-state-testing.mjs","sources":["../../../libs/checkout/state/testing/src/mock-placed-order-facade.ts","../../../libs/checkout/state/testing/src/checkout-testing.module.ts","../../../libs/checkout/state/testing/src/daffodil-checkout-state-testing.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Action } from '@ngrx/store';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { DaffCheckoutPlacedOrderFacadeInterface } from '@daffodil/checkout/state';\nimport { DaffOrder } from '@daffodil/order';\n\n/**\n * @inheritdoc\n */\n@Injectable({ providedIn: 'root' })\nexport class MockDaffCheckoutPlacedOrderFacade implements DaffCheckoutPlacedOrderFacadeInterface {\n placedOrder$: BehaviorSubject<DaffOrder> = new BehaviorSubject(null);\n hasPlacedOrder$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n dispatch(action: Action) {};\n}\n","import { NgModule } from '@angular/core';\n\nimport { DaffCheckoutPlacedOrderFacade } from '@daffodil/checkout/state';\n\nimport { MockDaffCheckoutPlacedOrderFacade } from './mock-placed-order-facade';\n\n/**\n * Mocks the `@daffodil/checkout/state` facades for testing purposes.\n */\n@NgModule({\n providers: [\n { provide: DaffCheckoutPlacedOrderFacade, useExisting: MockDaffCheckoutPlacedOrderFacade },\n ],\n})\nexport class DaffCheckoutStateTestingModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAOA;;AAEG;MAEU,iCAAiC,CAAA;AAD9C,IAAA,WAAA,GAAA;AAEE,QAAA,IAAA,CAAA,YAAY,GAA+B,IAAI,eAAe,CAAC,IAAI,CAAC;AACpE,QAAA,IAAA,CAAA,eAAe,GAA6B,IAAI,eAAe,CAAC,KAAK,CAAC;AAGvE,IAAA;IADC,QAAQ,CAAC,MAAc,EAAA,EAAG;;
|
|
1
|
+
{"version":3,"file":"daffodil-checkout-state-testing.mjs","sources":["../../../libs/checkout/state/testing/src/mock-placed-order-facade.ts","../../../libs/checkout/state/testing/src/checkout-testing.module.ts","../../../libs/checkout/state/testing/src/daffodil-checkout-state-testing.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Action } from '@ngrx/store';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { DaffCheckoutPlacedOrderFacadeInterface } from '@daffodil/checkout/state';\nimport { DaffOrder } from '@daffodil/order';\n\n/**\n * @inheritdoc\n */\n@Injectable({ providedIn: 'root' })\nexport class MockDaffCheckoutPlacedOrderFacade implements DaffCheckoutPlacedOrderFacadeInterface {\n placedOrder$: BehaviorSubject<DaffOrder> = new BehaviorSubject(null);\n hasPlacedOrder$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n dispatch(action: Action) {};\n}\n","import { NgModule } from '@angular/core';\n\nimport { DaffCheckoutPlacedOrderFacade } from '@daffodil/checkout/state';\n\nimport { MockDaffCheckoutPlacedOrderFacade } from './mock-placed-order-facade';\n\n/**\n * Mocks the `@daffodil/checkout/state` facades for testing purposes.\n */\n@NgModule({\n providers: [\n { provide: DaffCheckoutPlacedOrderFacade, useExisting: MockDaffCheckoutPlacedOrderFacade },\n ],\n})\nexport class DaffCheckoutStateTestingModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAOA;;AAEG;MAEU,iCAAiC,CAAA;AAD9C,IAAA,WAAA,GAAA;AAEE,QAAA,IAAA,CAAA,YAAY,GAA+B,IAAI,eAAe,CAAC,IAAI,CAAC;AACpE,QAAA,IAAA,CAAA,eAAe,GAA6B,IAAI,eAAe,CAAC,KAAK,CAAC;AAGvE,IAAA;IADC,QAAQ,CAAC,MAAc,EAAA,EAAG;;kIAJf,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAjC,uBAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iCAAiC,cADpB,MAAM,EAAA,CAAA,CAAA;;4FACnB,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAD7C,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACJlC;;AAEG;MAMU,8BAA8B,CAAA;kIAA9B,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;mIAA9B,8BAA8B,EAAA,CAAA,CAAA;AAA9B,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,8BAA8B,EAAA,SAAA,EAJ9B;AACT,YAAA,EAAE,OAAO,EAAE,6BAA6B,EAAE,WAAW,EAAE,iCAAiC,EAAE;AAC3F,SAAA,EAAA,CAAA,CAAA;;4FAEU,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAL1C,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,SAAS,EAAE;AACT,wBAAA,EAAE,OAAO,EAAE,6BAA6B,EAAE,WAAW,EAAE,iCAAiC,EAAE;AAC3F,qBAAA;AACF,iBAAA;;;ACbD;;AAEG;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i1 from '@ngrx/store';
|
|
2
|
-
import { createSelector, select } from '@ngrx/store';
|
|
2
|
+
import { createSelector, defaultMemoize, select } from '@ngrx/store';
|
|
3
3
|
import { getDaffCartSelectors, DaffCartStateModule } from '@daffodil/cart/state';
|
|
4
4
|
import { getDaffOrderSelectors, DaffOrderStateModule } from '@daffodil/order/state';
|
|
5
5
|
import * as i0 from '@angular/core';
|
|
@@ -18,20 +18,14 @@ const createCheckoutPlacedOrderSelectors = () => {
|
|
|
18
18
|
/**
|
|
19
19
|
* Gets the placed order selectors.
|
|
20
20
|
*/
|
|
21
|
-
const getCheckoutPlacedOrderSelectors = (() =>
|
|
22
|
-
let cache;
|
|
23
|
-
return () => cache = cache || createCheckoutPlacedOrderSelectors();
|
|
24
|
-
})();
|
|
21
|
+
const getCheckoutPlacedOrderSelectors = defaultMemoize(() => createCheckoutPlacedOrderSelectors()).memoized;
|
|
25
22
|
|
|
26
23
|
/**
|
|
27
24
|
* Gets all of `@daffodil/checkout/state` selectors.
|
|
28
25
|
*/
|
|
29
|
-
const getDaffCheckoutSelectors = (() => {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
...getCheckoutPlacedOrderSelectors(),
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
26
|
+
const getDaffCheckoutSelectors = defaultMemoize(() => ({
|
|
27
|
+
...getCheckoutPlacedOrderSelectors(),
|
|
28
|
+
})).memoized;
|
|
35
29
|
|
|
36
30
|
/**
|
|
37
31
|
* @inheritdoc
|
|
@@ -46,10 +40,10 @@ class DaffCheckoutPlacedOrderFacade {
|
|
|
46
40
|
dispatch(action) {
|
|
47
41
|
this.store.dispatch(action);
|
|
48
42
|
}
|
|
49
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
50
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
43
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffCheckoutPlacedOrderFacade, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
44
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffCheckoutPlacedOrderFacade, providedIn: 'root' }); }
|
|
51
45
|
}
|
|
52
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffCheckoutPlacedOrderFacade, decorators: [{
|
|
53
47
|
type: Injectable,
|
|
54
48
|
args: [{
|
|
55
49
|
providedIn: 'root',
|
|
@@ -60,13 +54,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
|
|
|
60
54
|
* The module for `@daffodil/checkout/state`.
|
|
61
55
|
*/
|
|
62
56
|
class DaffCheckoutStateModule {
|
|
63
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
64
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
57
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffCheckoutStateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
58
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.18", ngImport: i0, type: DaffCheckoutStateModule, imports: [DaffCartStateModule,
|
|
65
59
|
DaffOrderStateModule] }); }
|
|
66
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
60
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffCheckoutStateModule, imports: [DaffCartStateModule,
|
|
67
61
|
DaffOrderStateModule] }); }
|
|
68
62
|
}
|
|
69
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
63
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffCheckoutStateModule, decorators: [{
|
|
70
64
|
type: NgModule,
|
|
71
65
|
args: [{
|
|
72
66
|
imports: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daffodil-checkout-state.mjs","sources":["../../../libs/checkout/state/src/selectors/placed-order.selector.ts","../../../libs/checkout/state/src/selectors/checkout-all.selector.ts","../../../libs/checkout/state/src/facades/placed-order/placed-order.facade.ts","../../../libs/checkout/state/src/checkout-state.module.ts","../../../libs/checkout/state/src/daffodil-checkout-state.ts"],"sourcesContent":["import {\n createSelector,\n MemoizedSelector,\n} from '@ngrx/store';\n\nimport { getDaffCartSelectors } from '@daffodil/cart/state';\nimport { DaffOrder } from '@daffodil/order';\nimport { getDaffOrderSelectors } from '@daffodil/order/state';\n\nimport { DaffCheckoutStateRootSlice } from '../reducers/public_api';\n\n/**\n * Selectors for the most recently placed order.\n */\nexport interface DaffCheckoutPlacedOrderSelectors<T extends DaffOrder = DaffOrder> {\n /**\n * Selector for the most recently placed order (if any).\n */\n selectPlacedOrder: MemoizedSelector<DaffCheckoutStateRootSlice<T>, T>;\n /**\n * Selector for the existence of the most recently placed order.\n */\n selectHasPlacedOrder: MemoizedSelector<DaffCheckoutStateRootSlice<T>, boolean>;\n}\n\nconst createCheckoutPlacedOrderSelectors = <T extends DaffOrder = DaffOrder>(): DaffCheckoutPlacedOrderSelectors<T> => {\n const { selectCartOrderId } = getDaffCartSelectors();\n const { selectOrder, selectOrderEntities } = getDaffOrderSelectors<T>();\n\n const selectPlacedOrder = createSelector(\n selectOrderEntities,\n selectCartOrderId,\n (orders, orderId) => orderId ? selectOrder(orderId).projector(orders) : null,\n );\n\n const selectHasPlacedOrder = createSelector(\n selectPlacedOrder,\n placedOrder => !!placedOrder,\n );\n\n return {\n selectPlacedOrder,\n selectHasPlacedOrder,\n };\n};\n\n/**\n * Gets the placed order selectors.\n */\nexport const getCheckoutPlacedOrderSelectors = (
|
|
1
|
+
{"version":3,"file":"daffodil-checkout-state.mjs","sources":["../../../libs/checkout/state/src/selectors/placed-order.selector.ts","../../../libs/checkout/state/src/selectors/checkout-all.selector.ts","../../../libs/checkout/state/src/facades/placed-order/placed-order.facade.ts","../../../libs/checkout/state/src/checkout-state.module.ts","../../../libs/checkout/state/src/daffodil-checkout-state.ts"],"sourcesContent":["import {\n createSelector,\n MemoizedSelector,\n defaultMemoize,\n} from '@ngrx/store';\n\nimport { getDaffCartSelectors } from '@daffodil/cart/state';\nimport { DaffOrder } from '@daffodil/order';\nimport { getDaffOrderSelectors } from '@daffodil/order/state';\n\nimport { DaffCheckoutStateRootSlice } from '../reducers/public_api';\n\n/**\n * Selectors for the most recently placed order.\n */\nexport interface DaffCheckoutPlacedOrderSelectors<T extends DaffOrder = DaffOrder> {\n /**\n * Selector for the most recently placed order (if any).\n */\n selectPlacedOrder: MemoizedSelector<DaffCheckoutStateRootSlice<T>, T>;\n /**\n * Selector for the existence of the most recently placed order.\n */\n selectHasPlacedOrder: MemoizedSelector<DaffCheckoutStateRootSlice<T>, boolean>;\n}\n\nconst createCheckoutPlacedOrderSelectors = <T extends DaffOrder = DaffOrder>(): DaffCheckoutPlacedOrderSelectors<T> => {\n const { selectCartOrderId } = getDaffCartSelectors();\n const { selectOrder, selectOrderEntities } = getDaffOrderSelectors<T>();\n\n const selectPlacedOrder = createSelector(\n selectOrderEntities,\n selectCartOrderId,\n (orders, orderId) => orderId ? selectOrder(orderId).projector(orders) : null,\n );\n\n const selectHasPlacedOrder = createSelector(\n selectPlacedOrder,\n placedOrder => !!placedOrder,\n );\n\n return {\n selectPlacedOrder,\n selectHasPlacedOrder,\n };\n};\n\n/**\n * Gets the placed order selectors.\n */\nexport const getCheckoutPlacedOrderSelectors: <T extends DaffOrder = DaffOrder>() => DaffCheckoutPlacedOrderSelectors<T> = defaultMemoize(<T extends DaffOrder = DaffOrder>() => createCheckoutPlacedOrderSelectors<T>()).memoized;\n","import { defaultMemoize } from '@ngrx/store';\n\nimport { DaffOrder } from '@daffodil/order';\n\nimport {\n DaffCheckoutPlacedOrderSelectors,\n getCheckoutPlacedOrderSelectors,\n} from './placed-order.selector';\n\nexport type DaffCheckoutSelectors<T extends DaffOrder = DaffOrder> = DaffCheckoutPlacedOrderSelectors<T>;\n\n/**\n * Gets all of `@daffodil/checkout/state` selectors.\n */\nexport const getDaffCheckoutSelectors: <T extends DaffOrder = DaffOrder>() => DaffCheckoutSelectors<T> = defaultMemoize(<T extends DaffOrder = DaffOrder>() => ({\n ...getCheckoutPlacedOrderSelectors<T>(),\n})).memoized;\n","import { Injectable } from '@angular/core';\nimport {\n Action,\n Store,\n select,\n} from '@ngrx/store';\nimport { Observable } from 'rxjs';\n\nimport { DaffOrder } from '@daffodil/order';\n\nimport { DaffCheckoutPlacedOrderFacadeInterface } from './placed-order-facade.interface';\nimport { DaffCheckoutStateRootSlice } from '../../reducers/public_api';\nimport { getDaffCheckoutSelectors } from '../../selectors/public_api';\n\n/**\n * @inheritdoc\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffCheckoutPlacedOrderFacade<T extends DaffOrder = DaffOrder> implements DaffCheckoutPlacedOrderFacadeInterface<T> {\n placedOrder$: Observable<T>;\n hasPlacedOrder$: Observable<boolean>;\n\n constructor(private store: Store<DaffCheckoutStateRootSlice<T>>) {\n const {\n selectPlacedOrder,\n selectHasPlacedOrder,\n } = getDaffCheckoutSelectors<T>();\n\n this.placedOrder$ = this.store.pipe(select(selectPlacedOrder));\n this.hasPlacedOrder$ = this.store.pipe(select(selectHasPlacedOrder));\n }\n\n dispatch(action: Action) {\n this.store.dispatch(action);\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { DaffCartStateModule } from '@daffodil/cart/state';\nimport { DaffOrderStateModule } from '@daffodil/order/state';\n\n/**\n * The module for `@daffodil/checkout/state`.\n */\n@NgModule({\n imports: [\n DaffCartStateModule,\n DaffOrderStateModule,\n ],\n})\nexport class DaffCheckoutStateModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@daffodil/checkout","nx":{"targets":{"build":{"outputs":["{workspaceRoot}/dist/checkout"]}}},"version":"0.
|
|
1
|
+
{"name":"@daffodil/checkout","nx":{"targets":{"build":{"outputs":["{workspaceRoot}/dist/checkout"]}}},"version":"0.92.3-rc.0","description":"State management and routing for ecommerce checkout flows. Part of the Daffodil ecommerce framework.","repository":{"type":"git","url":"https://github.com/graycoreio/daffodil"},"author":"Graycore LLC","license":"MIT","bugs":{"url":"https://github.com/graycoreio/daffodil/issues"},"homepage":"https://github.com/graycoreio/daffodil","peerDependencies":{"@angular/common":"^20.0.0","@angular/core":"^20.0.0","@daffodil/cart":"0.92.3-rc.0","@daffodil/core":"0.92.3-rc.0","@daffodil/order":"0.92.3-rc.0","@daffodil/product":"0.92.3-rc.0","@ngrx/effects":"^20.0.0","@ngrx/entity":"^20.0.0","@ngrx/store":"^20.0.0","rxjs":"^7.0.0"},"optionalDependencies":{"@faker-js/faker":"^10.3.0","angular-in-memory-web-api":"^0.20.0"},"module":"fesm2022/daffodil-checkout.mjs","typings":"index.d.ts","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","default":"./fesm2022/daffodil-checkout.mjs"},"./routing":{"types":"./routing/index.d.ts","default":"./fesm2022/daffodil-checkout-routing.mjs"},"./state":{"types":"./state/index.d.ts","default":"./fesm2022/daffodil-checkout-state.mjs"},"./state/testing":{"types":"./state/testing/index.d.ts","default":"./fesm2022/daffodil-checkout-state-testing.mjs"}},"sideEffects":false,"dependencies":{"tslib":"^2.6.2"}}
|