@daffodil/product-composite 0.59.0 → 0.59.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,10 +1 @@
1
- {
2
- "name": "@daffodil/product-composite/driver/in-memory",
3
- "module": "../../fesm2015/daffodil-product-composite-driver-in-memory.mjs",
4
- "es2020": "../../fesm2020/daffodil-product-composite-driver-in-memory.mjs",
5
- "esm2020": "../../esm2020/driver/in-memory/daffodil-product-composite-driver-in-memory.mjs",
6
- "fesm2020": "../../fesm2020/daffodil-product-composite-driver-in-memory.mjs",
7
- "fesm2015": "../../fesm2015/daffodil-product-composite-driver-in-memory.mjs",
8
- "typings": "daffodil-product-composite-driver-in-memory.d.ts",
9
- "sideEffects": false
10
- }
1
+ {"name":"@daffodil/product-composite/driver/in-memory","module":"../../fesm2015/daffodil-product-composite-driver-in-memory.mjs","es2020":"../../fesm2020/daffodil-product-composite-driver-in-memory.mjs","esm2020":"../../esm2020/driver/in-memory/daffodil-product-composite-driver-in-memory.mjs","fesm2020":"../../fesm2020/daffodil-product-composite-driver-in-memory.mjs","fesm2015":"../../fesm2015/daffodil-product-composite-driver-in-memory.mjs","typings":"daffodil-product-composite-driver-in-memory.d.ts","sideEffects":false,"version":"0.59.1"}
@@ -1,10 +1 @@
1
- {
2
- "name": "@daffodil/product-composite/driver/magento",
3
- "module": "../../fesm2015/daffodil-product-composite-driver-magento.mjs",
4
- "es2020": "../../fesm2020/daffodil-product-composite-driver-magento.mjs",
5
- "esm2020": "../../esm2020/driver/magento/daffodil-product-composite-driver-magento.mjs",
6
- "fesm2020": "../../fesm2020/daffodil-product-composite-driver-magento.mjs",
7
- "fesm2015": "../../fesm2015/daffodil-product-composite-driver-magento.mjs",
8
- "typings": "daffodil-product-composite-driver-magento.d.ts",
9
- "sideEffects": false
10
- }
1
+ {"name":"@daffodil/product-composite/driver/magento","module":"../../fesm2015/daffodil-product-composite-driver-magento.mjs","es2020":"../../fesm2020/daffodil-product-composite-driver-magento.mjs","esm2020":"../../esm2020/driver/magento/daffodil-product-composite-driver-magento.mjs","fesm2020":"../../fesm2020/daffodil-product-composite-driver-magento.mjs","fesm2015":"../../fesm2015/daffodil-product-composite-driver-magento.mjs","typings":"daffodil-product-composite-driver-magento.d.ts","sideEffects":false,"version":"0.59.1"}
@@ -1,10 +1 @@
1
- {
2
- "name": "@daffodil/product-composite/driver/magento/testing",
3
- "module": "../../../fesm2015/daffodil-product-composite-driver-magento-testing.mjs",
4
- "es2020": "../../../fesm2020/daffodil-product-composite-driver-magento-testing.mjs",
5
- "esm2020": "../../../esm2020/driver/magento/testing/daffodil-product-composite-driver-magento-testing.mjs",
6
- "fesm2020": "../../../fesm2020/daffodil-product-composite-driver-magento-testing.mjs",
7
- "fesm2015": "../../../fesm2015/daffodil-product-composite-driver-magento-testing.mjs",
8
- "typings": "daffodil-product-composite-driver-magento-testing.d.ts",
9
- "sideEffects": false
10
- }
1
+ {"name":"@daffodil/product-composite/driver/magento/testing","module":"../../../fesm2015/daffodil-product-composite-driver-magento-testing.mjs","es2020":"../../../fesm2020/daffodil-product-composite-driver-magento-testing.mjs","esm2020":"../../../esm2020/driver/magento/testing/daffodil-product-composite-driver-magento-testing.mjs","fesm2020":"../../../fesm2020/daffodil-product-composite-driver-magento-testing.mjs","fesm2015":"../../../fesm2015/daffodil-product-composite-driver-magento-testing.mjs","typings":"daffodil-product-composite-driver-magento-testing.d.ts","sideEffects":false,"version":"0.59.1"}
@@ -1,10 +1 @@
1
- {
2
- "name": "@daffodil/product-composite/driver/testing",
3
- "module": "../../fesm2015/daffodil-product-composite-driver-testing.mjs",
4
- "es2020": "../../fesm2020/daffodil-product-composite-driver-testing.mjs",
5
- "esm2020": "../../esm2020/driver/testing/daffodil-product-composite-driver-testing.mjs",
6
- "fesm2020": "../../fesm2020/daffodil-product-composite-driver-testing.mjs",
7
- "fesm2015": "../../fesm2015/daffodil-product-composite-driver-testing.mjs",
8
- "typings": "daffodil-product-composite-driver-testing.d.ts",
9
- "sideEffects": false
10
- }
1
+ {"name":"@daffodil/product-composite/driver/testing","module":"../../fesm2015/daffodil-product-composite-driver-testing.mjs","es2020":"../../fesm2020/daffodil-product-composite-driver-testing.mjs","esm2020":"../../esm2020/driver/testing/daffodil-product-composite-driver-testing.mjs","fesm2020":"../../fesm2020/daffodil-product-composite-driver-testing.mjs","fesm2015":"../../fesm2015/daffodil-product-composite-driver-testing.mjs","typings":"daffodil-product-composite-driver-testing.d.ts","sideEffects":false,"version":"0.59.1"}
@@ -1,5 +1,4 @@
1
1
  import { Inject, Injectable, } from '@angular/core';
2
- import { ActivatedRoute } from '@angular/router';
3
2
  import { Actions, createEffect, ofType, } from '@ngrx/effects';
4
3
  import { EMPTY, of, } from 'rxjs';
5
4
  import { switchMap, } from 'rxjs/operators';
@@ -7,9 +6,10 @@ import { DaffProductTypeEnum, } from '@daffodil/product';
7
6
  import { DaffCompositeProductApplyOption } from '@daffodil/product-composite/state';
8
7
  import { DaffProductPageActionTypes, } from '@daffodil/product/state';
9
8
  import { DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG, } from '../config/public_api';
9
+ import { DaffProductCompositeQueryParamService } from '../services/query-param.service';
10
10
  import * as i0 from "@angular/core";
11
11
  import * as i1 from "@ngrx/effects";
12
- import * as i2 from "@angular/router";
12
+ import * as i2 from "../services/query-param.service";
13
13
  /**
14
14
  * Builds the apply actions from the list of selected options.
15
15
  */
@@ -27,15 +27,15 @@ function buildApplyActions(product, itemId, selectedOptions) {
27
27
  * Handles composite product specific actions for the product page.
28
28
  */
29
29
  export class DaffProductCompositePageEffects {
30
- constructor(actions$, route, config) {
30
+ constructor(actions$, paramGetter, config) {
31
31
  this.actions$ = actions$;
32
- this.route = route;
32
+ this.paramGetter = paramGetter;
33
33
  this.config = config;
34
34
  /**
35
35
  * Applies composite item options based on the value of the configured query param.
36
36
  */
37
37
  this.preselectCompositeOptions$ = createEffect(() => this.actions$.pipe(ofType(DaffProductPageActionTypes.ProductPageLoadSuccessAction), switchMap((action) => {
38
- const queryParam = this.getQueryParam();
38
+ const queryParam = this.paramGetter.get();
39
39
  // get the product corresponding to the current product page
40
40
  const product = action.payload.products.filter(({ id }) => id === action.payload.id)[0];
41
41
  // if we don't have a query param set or if the product isn't composite,
@@ -55,19 +55,13 @@ export class DaffProductCompositePageEffects {
55
55
  return of(...applyActions);
56
56
  })));
57
57
  }
58
- /**
59
- * Get the value of the configured composite selection query param.
60
- */
61
- getQueryParam() {
62
- return this.route.snapshot.queryParamMap.get(this.config.compositeSelectionQueryParam);
63
- }
64
58
  }
65
- /** @nocollapse */ DaffProductCompositePageEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffProductCompositePageEffects, deps: [{ token: i1.Actions }, { token: i2.ActivatedRoute }, { token: DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
59
+ /** @nocollapse */ DaffProductCompositePageEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffProductCompositePageEffects, deps: [{ token: i1.Actions }, { token: i2.DaffProductCompositeQueryParamService }, { token: DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
66
60
  /** @nocollapse */ DaffProductCompositePageEffects.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffProductCompositePageEffects });
67
61
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffProductCompositePageEffects, decorators: [{
68
62
  type: Injectable
69
- }], ctorParameters: function () { return [{ type: i1.Actions }, { type: i2.ActivatedRoute }, { type: undefined, decorators: [{
63
+ }], ctorParameters: function () { return [{ type: i1.Actions }, { type: i2.DaffProductCompositeQueryParamService }, { type: undefined, decorators: [{
70
64
  type: Inject,
71
65
  args: [DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG]
72
66
  }] }]; } });
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1wYWdlLmVmZmVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3Byb2R1Y3QtY29tcG9zaXRlL3JvdXRpbmcvc3JjL2VmZmVjdHMvcHJvZHVjdC1wYWdlLmVmZmVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLE1BQU0sRUFDTixVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFDTCxPQUFPLEVBRVAsWUFBWSxFQUNaLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsS0FBSyxFQUVMLEVBQUUsR0FDSCxNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFFTCxTQUFTLEdBQ1YsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBRUwsbUJBQW1CLEdBQ3BCLE1BQU0sbUJBQW1CLENBQUM7QUFPM0IsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDcEYsT0FBTyxFQUNMLDBCQUEwQixHQUUzQixNQUFNLHlCQUF5QixDQUFDO0FBRWpDLE9BQU8sRUFFTCxxQ0FBcUMsR0FDdEMsTUFBTSxzQkFBc0IsQ0FBQzs7OztBQUU5Qjs7R0FFRztBQUNILFNBQVMsaUJBQWlCLENBQXdELE9BQTZCLEVBQUUsTUFBc0MsRUFBRSxlQUF1RDtJQUM5TSxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxNQUFNLENBQUMsQ0FBQztJQUVwRSxPQUFPLGFBQWE7UUFDbEIsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsRUFBRTtZQUN4Qyw0Q0FBNEM7WUFDNUMsTUFBTSxHQUFHLEdBQUcsYUFBYSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssaUJBQWlCLENBQUMsRUFBRSxRQUFRLENBQUM7WUFFeEYsT0FBTyxJQUFJLCtCQUErQixDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3pGLENBQUMsQ0FBQztRQUNGLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDVCxDQUFDO0FBRUQ7O0dBRUc7QUFFSCxNQUFNLE9BQU8sK0JBQStCO0lBQzFDLFlBQ1UsUUFBaUIsRUFDakIsS0FBcUIsRUFDMEIsTUFBeUM7UUFGeEYsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUMwQixXQUFNLEdBQU4sTUFBTSxDQUFtQztRQVVsRzs7V0FFRztRQUNILCtCQUEwQixHQUFrRSxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQy9ILE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyw0QkFBNEIsQ0FBQyxFQUMvRCxTQUFTLENBQUMsQ0FBQyxNQUFxQyxFQUFFLEVBQUU7WUFDbEQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3hDLDREQUE0RDtZQUM1RCxNQUFNLE9BQU8sR0FBeUIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFOUcsd0VBQXdFO1lBQ3hFLHdCQUF3QjtZQUN4QixJQUFJLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRSxJQUFJLEtBQUssbUJBQW1CLENBQUMsU0FBUyxFQUFFO2dCQUNsRSxPQUFPLEtBQUssQ0FBQzthQUNkO1lBRUQsSUFBSSxTQUErQyxDQUFDO1lBRXBELElBQUk7Z0JBQ0YsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsa0NBQWtDLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO2FBQ2pGO1lBQUMsT0FBTyxLQUFLLEVBQUU7Z0JBQ2QsT0FBTyxLQUFLLENBQUM7YUFDZDtZQUVELE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUNoRCxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUMxRixFQUFFLENBQ0gsQ0FBQztZQUVGLDREQUE0RDtZQUM1RCxPQUFPLEVBQUUsQ0FBQyxHQUFHLFlBQVksQ0FBQyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUNILENBQUMsQ0FBQztJQXpDQSxDQUFDO0lBRUo7O09BRUc7SUFDSyxhQUFhO1FBQ25CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFDekYsQ0FBQzs7K0lBWlUsK0JBQStCLHVFQUloQyxxQ0FBcUM7bUpBSnBDLCtCQUErQjsyRkFBL0IsK0JBQStCO2tCQUQzQyxVQUFVOzswQkFLTixNQUFNOzJCQUFDLHFDQUFxQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEluamVjdCxcbiAgSW5qZWN0YWJsZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBBY3Rpb25zLFxuICBFZmZlY3QsXG4gIGNyZWF0ZUVmZmVjdCxcbiAgb2ZUeXBlLFxufSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7XG4gIEVNUFRZLFxuICBPYnNlcnZhYmxlLFxuICBvZixcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBtYXAsXG4gIHN3aXRjaE1hcCxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICBEYWZmUHJvZHVjdCxcbiAgRGFmZlByb2R1Y3RUeXBlRW51bSxcbn0gZnJvbSAnQGRhZmZvZGlsL3Byb2R1Y3QnO1xuaW1wb3J0IHtcbiAgRGFmZkNvbXBvc2l0ZVByb2R1Y3QsXG4gIERhZmZDb21wb3NpdGVQcm9kdWN0SXRlbSxcbiAgRGFmZkNvbXBvc2l0ZVByb2R1Y3RJdGVtT3B0aW9uLFxuICBEYWZmUHJvZHVjdENvbXBvc2l0ZVNlbGVjdGlvblBheWxvYWQsXG59IGZyb20gJ0BkYWZmb2RpbC9wcm9kdWN0LWNvbXBvc2l0ZSc7XG5pbXBvcnQgeyBEYWZmQ29tcG9zaXRlUHJvZHVjdEFwcGx5T3B0aW9uIH0gZnJvbSAnQGRhZmZvZGlsL3Byb2R1Y3QtY29tcG9zaXRlL3N0YXRlJztcbmltcG9ydCB7XG4gIERhZmZQcm9kdWN0UGFnZUFjdGlvblR5cGVzLFxuICBEYWZmUHJvZHVjdFBhZ2VMb2FkU3VjY2Vzcyxcbn0gZnJvbSAnQGRhZmZvZGlsL3Byb2R1Y3Qvc3RhdGUnO1xuXG5pbXBvcnQge1xuICBEYWZmUHJvZHVjdENvbXBvc2l0ZVJvdXRpbmdDb25maWcsXG4gIERBRkZfUFJPRFVDVF9DT01QT1NJVEVfUk9VVElOR19DT05GSUcsXG59IGZyb20gJy4uL2NvbmZpZy9wdWJsaWNfYXBpJztcblxuLyoqXG4gKiBCdWlsZHMgdGhlIGFwcGx5IGFjdGlvbnMgZnJvbSB0aGUgbGlzdCBvZiBzZWxlY3RlZCBvcHRpb25zLlxuICovXG5mdW5jdGlvbiBidWlsZEFwcGx5QWN0aW9uczxUIGV4dGVuZHMgRGFmZkNvbXBvc2l0ZVByb2R1Y3QgPSBEYWZmQ29tcG9zaXRlUHJvZHVjdD4ocHJvZHVjdDogRGFmZkNvbXBvc2l0ZVByb2R1Y3QsIGl0ZW1JZDogRGFmZkNvbXBvc2l0ZVByb2R1Y3RJdGVtWydpZCddLCBzZWxlY3RlZE9wdGlvbnM6IERhZmZDb21wb3NpdGVQcm9kdWN0SXRlbU9wdGlvblsnaWQnXVtdKTogRGFmZkNvbXBvc2l0ZVByb2R1Y3RBcHBseU9wdGlvbjxUPltdIHtcbiAgY29uc3Qgc2VsZWN0aW9uSXRlbSA9IHByb2R1Y3QuaXRlbXMuZmluZCgoeyBpZCB9KSA9PiBpZCA9PT0gaXRlbUlkKTtcblxuICByZXR1cm4gc2VsZWN0aW9uSXRlbVxuICAgID8gc2VsZWN0ZWRPcHRpb25zLm1hcChzZWxlY3Rpb25PcHRpb25JZCA9PiB7XG4gICAgICAvLyB1c2UgdGhlIHF1YW50aXR5IG9mIHRoZSByZWZlcmVuY2VkIG9wdGlvblxuICAgICAgY29uc3QgcXR5ID0gc2VsZWN0aW9uSXRlbT8ub3B0aW9ucy5maW5kKCh7IGlkIH0pID0+IGlkID09PSBzZWxlY3Rpb25PcHRpb25JZCk/LnF1YW50aXR5O1xuXG4gICAgICByZXR1cm4gbmV3IERhZmZDb21wb3NpdGVQcm9kdWN0QXBwbHlPcHRpb24ocHJvZHVjdC5pZCwgaXRlbUlkLCBzZWxlY3Rpb25PcHRpb25JZCwgcXR5KTtcbiAgICB9KVxuICAgIDogW107XG59XG5cbi8qKlxuICogSGFuZGxlcyBjb21wb3NpdGUgcHJvZHVjdCBzcGVjaWZpYyBhY3Rpb25zIGZvciB0aGUgcHJvZHVjdCBwYWdlLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRGFmZlByb2R1Y3RDb21wb3NpdGVQYWdlRWZmZWN0czxUIGV4dGVuZHMgRGFmZkNvbXBvc2l0ZVByb2R1Y3QgPSBEYWZmQ29tcG9zaXRlUHJvZHVjdD4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFjdGlvbnMkOiBBY3Rpb25zLFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIEBJbmplY3QoREFGRl9QUk9EVUNUX0NPTVBPU0lURV9ST1VUSU5HX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IERhZmZQcm9kdWN0Q29tcG9zaXRlUm91dGluZ0NvbmZpZyxcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHZhbHVlIG9mIHRoZSBjb25maWd1cmVkIGNvbXBvc2l0ZSBzZWxlY3Rpb24gcXVlcnkgcGFyYW0uXG4gICAqL1xuICBwcml2YXRlIGdldFF1ZXJ5UGFyYW0oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmdldCh0aGlzLmNvbmZpZy5jb21wb3NpdGVTZWxlY3Rpb25RdWVyeVBhcmFtKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBsaWVzIGNvbXBvc2l0ZSBpdGVtIG9wdGlvbnMgYmFzZWQgb24gdGhlIHZhbHVlIG9mIHRoZSBjb25maWd1cmVkIHF1ZXJ5IHBhcmFtLlxuICAgKi9cbiAgcHJlc2VsZWN0Q29tcG9zaXRlT3B0aW9ucyQ6IE9ic2VydmFibGU8dHlwZW9mIEVNUFRZIHwgRGFmZkNvbXBvc2l0ZVByb2R1Y3RBcHBseU9wdGlvbjxUPj4gPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgIG9mVHlwZShEYWZmUHJvZHVjdFBhZ2VBY3Rpb25UeXBlcy5Qcm9kdWN0UGFnZUxvYWRTdWNjZXNzQWN0aW9uKSxcbiAgICBzd2l0Y2hNYXAoKGFjdGlvbjogRGFmZlByb2R1Y3RQYWdlTG9hZFN1Y2Nlc3M8VD4pID0+IHtcbiAgICAgIGNvbnN0IHF1ZXJ5UGFyYW0gPSB0aGlzLmdldFF1ZXJ5UGFyYW0oKTtcbiAgICAgIC8vIGdldCB0aGUgcHJvZHVjdCBjb3JyZXNwb25kaW5nIHRvIHRoZSBjdXJyZW50IHByb2R1Y3QgcGFnZVxuICAgICAgY29uc3QgcHJvZHVjdDogRGFmZkNvbXBvc2l0ZVByb2R1Y3QgPSBhY3Rpb24ucGF5bG9hZC5wcm9kdWN0cy5maWx0ZXIoKHsgaWQgfSkgPT4gaWQgPT09IGFjdGlvbi5wYXlsb2FkLmlkKVswXTtcblxuICAgICAgLy8gaWYgd2UgZG9uJ3QgaGF2ZSBhIHF1ZXJ5IHBhcmFtIHNldCBvciBpZiB0aGUgcHJvZHVjdCBpc24ndCBjb21wb3NpdGUsXG4gICAgICAvLyB3ZSBoYXZlIG5vdGhpbmcgdG8gZG9cbiAgICAgIGlmICghcXVlcnlQYXJhbSB8fCBwcm9kdWN0Py50eXBlICE9PSBEYWZmUHJvZHVjdFR5cGVFbnVtLkNvbXBvc2l0ZSkge1xuICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICB9XG5cbiAgICAgIGxldCBzZWxlY3Rpb246IERhZmZQcm9kdWN0Q29tcG9zaXRlU2VsZWN0aW9uUGF5bG9hZDtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgc2VsZWN0aW9uID0gdGhpcy5jb25maWcuY29tcG9zaXRlU2VsZWN0aW9uUXVlcnlQYXJhbURlY29kZShxdWVyeVBhcmFtLCBwcm9kdWN0KTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHJldHVybiBFTVBUWTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgYXBwbHlBY3Rpb25zID0gT2JqZWN0LmtleXMoc2VsZWN0aW9uKS5yZWR1Y2U8RGFmZkNvbXBvc2l0ZVByb2R1Y3RBcHBseU9wdGlvbjxUPltdPihcbiAgICAgICAgKGFjdGlvbnMsIGl0ZW1JZCkgPT4gYWN0aW9ucy5jb25jYXQoYnVpbGRBcHBseUFjdGlvbnMocHJvZHVjdCwgaXRlbUlkLCBzZWxlY3Rpb25baXRlbUlkXSkpLFxuICAgICAgICBbXSxcbiAgICAgICk7XG5cbiAgICAgIC8vIGRpc3BhdGNoIGVhY2ggb2YgdGhlIGFwcGx5IGFjdGlvbnMgaW50byB0aGUgYWN0aW9uIHN0cmVhbVxuICAgICAgcmV0dXJuIG9mKC4uLmFwcGx5QWN0aW9ucyk7XG4gICAgfSksXG4gICkpO1xufVxuIl19
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1wYWdlLmVmZmVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3Byb2R1Y3QtY29tcG9zaXRlL3JvdXRpbmcvc3JjL2VmZmVjdHMvcHJvZHVjdC1wYWdlLmVmZmVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUNMLE1BQU0sRUFDTixVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUNMLE9BQU8sRUFFUCxZQUFZLEVBQ1osTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxLQUFLLEVBRUwsRUFBRSxHQUNILE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUVMLFNBQVMsR0FDVixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFFTCxtQkFBbUIsR0FDcEIsTUFBTSxtQkFBbUIsQ0FBQztBQU8zQixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRixPQUFPLEVBQ0wsMEJBQTBCLEdBRTNCLE1BQU0seUJBQXlCLENBQUM7QUFFakMsT0FBTyxFQUVMLHFDQUFxQyxHQUN0QyxNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7O0FBRXhGOztHQUVHO0FBQ0gsU0FBUyxpQkFBaUIsQ0FBd0QsT0FBNkIsRUFBRSxNQUFzQyxFQUFFLGVBQXVEO0lBQzlNLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLE1BQU0sQ0FBQyxDQUFDO0lBRXBFLE9BQU8sYUFBYTtRQUNsQixDQUFDLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFO1lBQ3hDLDRDQUE0QztZQUM1QyxNQUFNLEdBQUcsR0FBRyxhQUFhLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxpQkFBaUIsQ0FBQyxFQUFFLFFBQVEsQ0FBQztZQUV4RixPQUFPLElBQUksK0JBQStCLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDekYsQ0FBQyxDQUFDO1FBQ0YsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUNULENBQUM7QUFFRDs7R0FFRztBQUVILE1BQU0sT0FBTywrQkFBK0I7SUFDMUMsWUFDVSxRQUFpQixFQUNqQixXQUFrRCxFQUNILE1BQXlDO1FBRnhGLGFBQVEsR0FBUixRQUFRLENBQVM7UUFDakIsZ0JBQVcsR0FBWCxXQUFXLENBQXVDO1FBQ0gsV0FBTSxHQUFOLE1BQU0sQ0FBbUM7UUFHbEc7O1dBRUc7UUFDSCwrQkFBMEIsR0FBa0UsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUMvSCxNQUFNLENBQUMsMEJBQTBCLENBQUMsNEJBQTRCLENBQUMsRUFDL0QsU0FBUyxDQUFDLENBQUMsTUFBcUMsRUFBRSxFQUFFO1lBQ2xELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUM7WUFFMUMsNERBQTREO1lBQzVELE1BQU0sT0FBTyxHQUF5QixNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUU5Ryx3RUFBd0U7WUFDeEUsd0JBQXdCO1lBQ3hCLElBQUksQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFLElBQUksS0FBSyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUU7Z0JBQ2xFLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7WUFFRCxJQUFJLFNBQStDLENBQUM7WUFFcEQsSUFBSTtnQkFDRixTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7YUFDakY7WUFBQyxPQUFPLEtBQUssRUFBRTtnQkFDZCxPQUFPLEtBQUssQ0FBQzthQUNkO1lBRUQsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQ2hELENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQzFGLEVBQUUsQ0FDSCxDQUFDO1lBRUYsNERBQTREO1lBQzVELE9BQU8sRUFBRSxDQUFDLEdBQUcsWUFBWSxDQUFDLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQ0gsQ0FBQyxDQUFDO0lBbkNBLENBQUM7OytJQUxPLCtCQUErQiw4RkFJaEMscUNBQXFDO21KQUpwQywrQkFBK0I7MkZBQS9CLCtCQUErQjtrQkFEM0MsVUFBVTs7MEJBS04sTUFBTTsyQkFBQyxxQ0FBcUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBET0NVTUVOVCxcbiAgTG9jYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBJbmplY3QsXG4gIEluamVjdGFibGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgQWN0aW9ucyxcbiAgRWZmZWN0LFxuICBjcmVhdGVFZmZlY3QsXG4gIG9mVHlwZSxcbn0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XG5pbXBvcnQge1xuICBFTVBUWSxcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgbWFwLFxuICBzd2l0Y2hNYXAsXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtcbiAgRGFmZlByb2R1Y3QsXG4gIERhZmZQcm9kdWN0VHlwZUVudW0sXG59IGZyb20gJ0BkYWZmb2RpbC9wcm9kdWN0JztcbmltcG9ydCB7XG4gIERhZmZDb21wb3NpdGVQcm9kdWN0LFxuICBEYWZmQ29tcG9zaXRlUHJvZHVjdEl0ZW0sXG4gIERhZmZDb21wb3NpdGVQcm9kdWN0SXRlbU9wdGlvbixcbiAgRGFmZlByb2R1Y3RDb21wb3NpdGVTZWxlY3Rpb25QYXlsb2FkLFxufSBmcm9tICdAZGFmZm9kaWwvcHJvZHVjdC1jb21wb3NpdGUnO1xuaW1wb3J0IHsgRGFmZkNvbXBvc2l0ZVByb2R1Y3RBcHBseU9wdGlvbiB9IGZyb20gJ0BkYWZmb2RpbC9wcm9kdWN0LWNvbXBvc2l0ZS9zdGF0ZSc7XG5pbXBvcnQge1xuICBEYWZmUHJvZHVjdFBhZ2VBY3Rpb25UeXBlcyxcbiAgRGFmZlByb2R1Y3RQYWdlTG9hZFN1Y2Nlc3MsXG59IGZyb20gJ0BkYWZmb2RpbC9wcm9kdWN0L3N0YXRlJztcblxuaW1wb3J0IHtcbiAgRGFmZlByb2R1Y3RDb21wb3NpdGVSb3V0aW5nQ29uZmlnLFxuICBEQUZGX1BST0RVQ1RfQ09NUE9TSVRFX1JPVVRJTkdfQ09ORklHLFxufSBmcm9tICcuLi9jb25maWcvcHVibGljX2FwaSc7XG5pbXBvcnQgeyBEYWZmUHJvZHVjdENvbXBvc2l0ZVF1ZXJ5UGFyYW1TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvcXVlcnktcGFyYW0uc2VydmljZSc7XG5cbi8qKlxuICogQnVpbGRzIHRoZSBhcHBseSBhY3Rpb25zIGZyb20gdGhlIGxpc3Qgb2Ygc2VsZWN0ZWQgb3B0aW9ucy5cbiAqL1xuZnVuY3Rpb24gYnVpbGRBcHBseUFjdGlvbnM8VCBleHRlbmRzIERhZmZDb21wb3NpdGVQcm9kdWN0ID0gRGFmZkNvbXBvc2l0ZVByb2R1Y3Q+KHByb2R1Y3Q6IERhZmZDb21wb3NpdGVQcm9kdWN0LCBpdGVtSWQ6IERhZmZDb21wb3NpdGVQcm9kdWN0SXRlbVsnaWQnXSwgc2VsZWN0ZWRPcHRpb25zOiBEYWZmQ29tcG9zaXRlUHJvZHVjdEl0ZW1PcHRpb25bJ2lkJ11bXSk6IERhZmZDb21wb3NpdGVQcm9kdWN0QXBwbHlPcHRpb248VD5bXSB7XG4gIGNvbnN0IHNlbGVjdGlvbkl0ZW0gPSBwcm9kdWN0Lml0ZW1zLmZpbmQoKHsgaWQgfSkgPT4gaWQgPT09IGl0ZW1JZCk7XG5cbiAgcmV0dXJuIHNlbGVjdGlvbkl0ZW1cbiAgICA/IHNlbGVjdGVkT3B0aW9ucy5tYXAoc2VsZWN0aW9uT3B0aW9uSWQgPT4ge1xuICAgICAgLy8gdXNlIHRoZSBxdWFudGl0eSBvZiB0aGUgcmVmZXJlbmNlZCBvcHRpb25cbiAgICAgIGNvbnN0IHF0eSA9IHNlbGVjdGlvbkl0ZW0/Lm9wdGlvbnMuZmluZCgoeyBpZCB9KSA9PiBpZCA9PT0gc2VsZWN0aW9uT3B0aW9uSWQpPy5xdWFudGl0eTtcblxuICAgICAgcmV0dXJuIG5ldyBEYWZmQ29tcG9zaXRlUHJvZHVjdEFwcGx5T3B0aW9uKHByb2R1Y3QuaWQsIGl0ZW1JZCwgc2VsZWN0aW9uT3B0aW9uSWQsIHF0eSk7XG4gICAgfSlcbiAgICA6IFtdO1xufVxuXG4vKipcbiAqIEhhbmRsZXMgY29tcG9zaXRlIHByb2R1Y3Qgc3BlY2lmaWMgYWN0aW9ucyBmb3IgdGhlIHByb2R1Y3QgcGFnZS5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERhZmZQcm9kdWN0Q29tcG9zaXRlUGFnZUVmZmVjdHM8VCBleHRlbmRzIERhZmZDb21wb3NpdGVQcm9kdWN0ID0gRGFmZkNvbXBvc2l0ZVByb2R1Y3Q+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhY3Rpb25zJDogQWN0aW9ucyxcbiAgICBwcml2YXRlIHBhcmFtR2V0dGVyOiBEYWZmUHJvZHVjdENvbXBvc2l0ZVF1ZXJ5UGFyYW1TZXJ2aWNlLFxuICAgIEBJbmplY3QoREFGRl9QUk9EVUNUX0NPTVBPU0lURV9ST1VUSU5HX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IERhZmZQcm9kdWN0Q29tcG9zaXRlUm91dGluZ0NvbmZpZyxcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBBcHBsaWVzIGNvbXBvc2l0ZSBpdGVtIG9wdGlvbnMgYmFzZWQgb24gdGhlIHZhbHVlIG9mIHRoZSBjb25maWd1cmVkIHF1ZXJ5IHBhcmFtLlxuICAgKi9cbiAgcHJlc2VsZWN0Q29tcG9zaXRlT3B0aW9ucyQ6IE9ic2VydmFibGU8dHlwZW9mIEVNUFRZIHwgRGFmZkNvbXBvc2l0ZVByb2R1Y3RBcHBseU9wdGlvbjxUPj4gPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgIG9mVHlwZShEYWZmUHJvZHVjdFBhZ2VBY3Rpb25UeXBlcy5Qcm9kdWN0UGFnZUxvYWRTdWNjZXNzQWN0aW9uKSxcbiAgICBzd2l0Y2hNYXAoKGFjdGlvbjogRGFmZlByb2R1Y3RQYWdlTG9hZFN1Y2Nlc3M8VD4pID0+IHtcbiAgICAgIGNvbnN0IHF1ZXJ5UGFyYW0gPSB0aGlzLnBhcmFtR2V0dGVyLmdldCgpO1xuXG4gICAgICAvLyBnZXQgdGhlIHByb2R1Y3QgY29ycmVzcG9uZGluZyB0byB0aGUgY3VycmVudCBwcm9kdWN0IHBhZ2VcbiAgICAgIGNvbnN0IHByb2R1Y3Q6IERhZmZDb21wb3NpdGVQcm9kdWN0ID0gYWN0aW9uLnBheWxvYWQucHJvZHVjdHMuZmlsdGVyKCh7IGlkIH0pID0+IGlkID09PSBhY3Rpb24ucGF5bG9hZC5pZClbMF07XG5cbiAgICAgIC8vIGlmIHdlIGRvbid0IGhhdmUgYSBxdWVyeSBwYXJhbSBzZXQgb3IgaWYgdGhlIHByb2R1Y3QgaXNuJ3QgY29tcG9zaXRlLFxuICAgICAgLy8gd2UgaGF2ZSBub3RoaW5nIHRvIGRvXG4gICAgICBpZiAoIXF1ZXJ5UGFyYW0gfHwgcHJvZHVjdD8udHlwZSAhPT0gRGFmZlByb2R1Y3RUeXBlRW51bS5Db21wb3NpdGUpIHtcbiAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgfVxuXG4gICAgICBsZXQgc2VsZWN0aW9uOiBEYWZmUHJvZHVjdENvbXBvc2l0ZVNlbGVjdGlvblBheWxvYWQ7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHNlbGVjdGlvbiA9IHRoaXMuY29uZmlnLmNvbXBvc2l0ZVNlbGVjdGlvblF1ZXJ5UGFyYW1EZWNvZGUocXVlcnlQYXJhbSwgcHJvZHVjdCk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGFwcGx5QWN0aW9ucyA9IE9iamVjdC5rZXlzKHNlbGVjdGlvbikucmVkdWNlPERhZmZDb21wb3NpdGVQcm9kdWN0QXBwbHlPcHRpb248VD5bXT4oXG4gICAgICAgIChhY3Rpb25zLCBpdGVtSWQpID0+IGFjdGlvbnMuY29uY2F0KGJ1aWxkQXBwbHlBY3Rpb25zKHByb2R1Y3QsIGl0ZW1JZCwgc2VsZWN0aW9uW2l0ZW1JZF0pKSxcbiAgICAgICAgW10sXG4gICAgICApO1xuXG4gICAgICAvLyBkaXNwYXRjaCBlYWNoIG9mIHRoZSBhcHBseSBhY3Rpb25zIGludG8gdGhlIGFjdGlvbiBzdHJlYW1cbiAgICAgIHJldHVybiBvZiguLi5hcHBseUFjdGlvbnMpO1xuICAgIH0pLFxuICApKTtcbn1cbiJdfQ==
@@ -3,6 +3,7 @@ import { EffectsModule } from '@ngrx/effects';
3
3
  import { DaffBase64ServiceToken } from '@daffodil/core';
4
4
  import { daffProductCompositeRoutingConfigDefaultFactory, DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG, } from './config/public_api';
5
5
  import { DaffProductCompositePageEffects } from './effects/public_api';
6
+ import { DaffProductCompositeQueryParamService } from './services/query-param.service';
6
7
  import * as i0 from "@angular/core";
7
8
  import * as i1 from "@ngrx/effects";
8
9
  export class DaffProductCompositeRoutingModule {
@@ -23,7 +24,9 @@ export class DaffProductCompositeRoutingModule {
23
24
  }
24
25
  /** @nocollapse */ DaffProductCompositeRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffProductCompositeRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
25
26
  /** @nocollapse */ DaffProductCompositeRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffProductCompositeRoutingModule, imports: [i1.EffectsFeatureModule] });
26
- /** @nocollapse */ DaffProductCompositeRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffProductCompositeRoutingModule, imports: [[
27
+ /** @nocollapse */ DaffProductCompositeRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffProductCompositeRoutingModule, providers: [
28
+ DaffProductCompositeQueryParamService,
29
+ ], imports: [[
27
30
  EffectsModule.forFeature([DaffProductCompositePageEffects]),
28
31
  ]] });
29
32
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffProductCompositeRoutingModule, decorators: [{
@@ -32,6 +35,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
32
35
  imports: [
33
36
  EffectsModule.forFeature([DaffProductCompositePageEffects]),
34
37
  ],
38
+ providers: [
39
+ DaffProductCompositeQueryParamService,
40
+ ],
35
41
  }]
36
42
  }] });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy9wcm9kdWN0LWNvbXBvc2l0ZS9yb3V0aW5nL3NyYy9tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLE1BQU0sRUFFTixRQUFRLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4RCxPQUFPLEVBRUwsK0NBQStDLEVBQy9DLHFDQUFxQyxHQUN0QyxNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7QUFPdkUsTUFBTSxPQUFPLGlDQUFpQztJQUM1QyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQTBDO1FBQzFELE9BQU87WUFDTCxRQUFRLEVBQUUsaUNBQWlDO1lBQzNDLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUscUNBQXFDO29CQUM5QyxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQzt3QkFDakIsR0FBRywrQ0FBK0MsQ0FBQyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQzt3QkFDbEYsR0FBRyxNQUFNLElBQUksRUFBRTtxQkFDaEIsQ0FBQztpQkFDSDthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7O2lKQWRVLGlDQUFpQztrSkFBakMsaUNBQWlDO2tKQUFqQyxpQ0FBaUMsWUFKbkM7WUFDUCxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsK0JBQStCLENBQUMsQ0FBQztTQUM1RDsyRkFFVSxpQ0FBaUM7a0JBTDdDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO3FCQUM1RDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGluamVjdCxcbiAgTW9kdWxlV2l0aFByb3ZpZGVycyxcbiAgTmdNb2R1bGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRWZmZWN0c01vZHVsZSB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnO1xuXG5pbXBvcnQgeyBEYWZmQmFzZTY0U2VydmljZVRva2VuIH0gZnJvbSAnQGRhZmZvZGlsL2NvcmUnO1xuXG5pbXBvcnQge1xuICBEYWZmUHJvZHVjdENvbXBvc2l0ZVJvdXRpbmdDb25maWcsXG4gIGRhZmZQcm9kdWN0Q29tcG9zaXRlUm91dGluZ0NvbmZpZ0RlZmF1bHRGYWN0b3J5LFxuICBEQUZGX1BST0RVQ1RfQ09NUE9TSVRFX1JPVVRJTkdfQ09ORklHLFxufSBmcm9tICcuL2NvbmZpZy9wdWJsaWNfYXBpJztcbmltcG9ydCB7IERhZmZQcm9kdWN0Q29tcG9zaXRlUGFnZUVmZmVjdHMgfSBmcm9tICcuL2VmZmVjdHMvcHVibGljX2FwaSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBFZmZlY3RzTW9kdWxlLmZvckZlYXR1cmUoW0RhZmZQcm9kdWN0Q29tcG9zaXRlUGFnZUVmZmVjdHNdKSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRGFmZlByb2R1Y3RDb21wb3NpdGVSb3V0aW5nTW9kdWxlIHtcbiAgc3RhdGljIHdpdGhDb25maWcoY29uZmlnPzogRGFmZlByb2R1Y3RDb21wb3NpdGVSb3V0aW5nQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxEYWZmUHJvZHVjdENvbXBvc2l0ZVJvdXRpbmdNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IERhZmZQcm9kdWN0Q29tcG9zaXRlUm91dGluZ01vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogREFGRl9QUk9EVUNUX0NPTVBPU0lURV9ST1VUSU5HX0NPTkZJRyxcbiAgICAgICAgICB1c2VGYWN0b3J5OiAoKSA9PiAoe1xuICAgICAgICAgICAgLi4uZGFmZlByb2R1Y3RDb21wb3NpdGVSb3V0aW5nQ29uZmlnRGVmYXVsdEZhY3RvcnkoaW5qZWN0KERhZmZCYXNlNjRTZXJ2aWNlVG9rZW4pKSxcbiAgICAgICAgICAgIC4uLmNvbmZpZyB8fCB7fSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxufVxuIl19
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy9wcm9kdWN0LWNvbXBvc2l0ZS9yb3V0aW5nL3NyYy9tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLE1BQU0sRUFFTixRQUFRLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4RCxPQUFPLEVBRUwsK0NBQStDLEVBQy9DLHFDQUFxQyxHQUN0QyxNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7QUFVdkYsTUFBTSxPQUFPLGlDQUFpQztJQUM1QyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQTBDO1FBQzFELE9BQU87WUFDTCxRQUFRLEVBQUUsaUNBQWlDO1lBQzNDLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUscUNBQXFDO29CQUM5QyxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQzt3QkFDakIsR0FBRywrQ0FBK0MsQ0FBQyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQzt3QkFDbEYsR0FBRyxNQUFNLElBQUksRUFBRTtxQkFDaEIsQ0FBQztpQkFDSDthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7O2lKQWRVLGlDQUFpQztrSkFBakMsaUNBQWlDO2tKQUFqQyxpQ0FBaUMsYUFKakM7UUFDVCxxQ0FBcUM7S0FDdEMsWUFMUTtZQUNQLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1NBQzVEOzJGQUtVLGlDQUFpQztrQkFSN0MsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLCtCQUErQixDQUFDLENBQUM7cUJBQzVEO29CQUNELFNBQVMsRUFBRTt3QkFDVCxxQ0FBcUM7cUJBQ3RDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgaW5qZWN0LFxuICBNb2R1bGVXaXRoUHJvdmlkZXJzLFxuICBOZ01vZHVsZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFZmZlY3RzTW9kdWxlIH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XG5cbmltcG9ydCB7IERhZmZCYXNlNjRTZXJ2aWNlVG9rZW4gfSBmcm9tICdAZGFmZm9kaWwvY29yZSc7XG5cbmltcG9ydCB7XG4gIERhZmZQcm9kdWN0Q29tcG9zaXRlUm91dGluZ0NvbmZpZyxcbiAgZGFmZlByb2R1Y3RDb21wb3NpdGVSb3V0aW5nQ29uZmlnRGVmYXVsdEZhY3RvcnksXG4gIERBRkZfUFJPRFVDVF9DT01QT1NJVEVfUk9VVElOR19DT05GSUcsXG59IGZyb20gJy4vY29uZmlnL3B1YmxpY19hcGknO1xuaW1wb3J0IHsgRGFmZlByb2R1Y3RDb21wb3NpdGVQYWdlRWZmZWN0cyB9IGZyb20gJy4vZWZmZWN0cy9wdWJsaWNfYXBpJztcbmltcG9ydCB7IERhZmZQcm9kdWN0Q29tcG9zaXRlUXVlcnlQYXJhbVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3F1ZXJ5LXBhcmFtLnNlcnZpY2UnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgRWZmZWN0c01vZHVsZS5mb3JGZWF0dXJlKFtEYWZmUHJvZHVjdENvbXBvc2l0ZVBhZ2VFZmZlY3RzXSksXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIERhZmZQcm9kdWN0Q29tcG9zaXRlUXVlcnlQYXJhbVNlcnZpY2UsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIERhZmZQcm9kdWN0Q29tcG9zaXRlUm91dGluZ01vZHVsZSB7XG4gIHN0YXRpYyB3aXRoQ29uZmlnKGNvbmZpZz86IERhZmZQcm9kdWN0Q29tcG9zaXRlUm91dGluZ0NvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8RGFmZlByb2R1Y3RDb21wb3NpdGVSb3V0aW5nTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBEYWZmUHJvZHVjdENvbXBvc2l0ZVJvdXRpbmdNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IERBRkZfUFJPRFVDVF9DT01QT1NJVEVfUk9VVElOR19DT05GSUcsXG4gICAgICAgICAgdXNlRmFjdG9yeTogKCkgPT4gKHtcbiAgICAgICAgICAgIC4uLmRhZmZQcm9kdWN0Q29tcG9zaXRlUm91dGluZ0NvbmZpZ0RlZmF1bHRGYWN0b3J5KGluamVjdChEYWZmQmFzZTY0U2VydmljZVRva2VuKSksXG4gICAgICAgICAgICAuLi5jb25maWcgfHwge30sXG4gICAgICAgICAgfSksXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,28 @@
1
+ import { DOCUMENT } from '@angular/common';
2
+ import { Inject, Injectable, } from '@angular/core';
3
+ import { DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG, } from '../config/public_api';
4
+ import * as i0 from "@angular/core";
5
+ export class DaffProductCompositeQueryParamService {
6
+ constructor(document, config) {
7
+ this.document = document;
8
+ this.config = config;
9
+ }
10
+ /**
11
+ * Get the value of the configured composite selection query param.
12
+ */
13
+ get() {
14
+ return (new URL(this.document.location.toString())).searchParams.get(this.config.compositeSelectionQueryParam);
15
+ }
16
+ }
17
+ /** @nocollapse */ DaffProductCompositeQueryParamService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffProductCompositeQueryParamService, deps: [{ token: DOCUMENT }, { token: DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
18
+ /** @nocollapse */ DaffProductCompositeQueryParamService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffProductCompositeQueryParamService });
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffProductCompositeQueryParamService, decorators: [{
20
+ type: Injectable
21
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
22
+ type: Inject,
23
+ args: [DOCUMENT]
24
+ }] }, { type: undefined, decorators: [{
25
+ type: Inject,
26
+ args: [DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG]
27
+ }] }]; } });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktcGFyYW0uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcHJvZHVjdC1jb21wb3NpdGUvcm91dGluZy9zcmMvc2VydmljZXMvcXVlcnktcGFyYW0uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUNMLE1BQU0sRUFDTixVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUNMLHFDQUFxQyxHQUV0QyxNQUFNLHNCQUFzQixDQUFDOztBQUc5QixNQUFNLE9BQU8scUNBQXFDO0lBRWhELFlBQzRCLFFBQWEsRUFDZ0IsTUFBeUM7UUFEdEUsYUFBUSxHQUFSLFFBQVEsQ0FBSztRQUNnQixXQUFNLEdBQU4sTUFBTSxDQUFtQztJQUNsRyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxHQUFHO1FBQ1IsT0FBTyxDQUNMLElBQUksR0FBRyxDQUFPLElBQUksQ0FBQyxRQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQ2xELENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFDL0QsQ0FBQzs7cUpBZFUscUNBQXFDLGtCQUd0QyxRQUFRLGFBQ1IscUNBQXFDO3lKQUpwQyxxQ0FBcUM7MkZBQXJDLHFDQUFxQztrQkFEakQsVUFBVTs7MEJBSU4sTUFBTTsyQkFBQyxRQUFROzswQkFDZixNQUFNOzJCQUFDLHFDQUFxQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEluamVjdCxcbiAgSW5qZWN0YWJsZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIERBRkZfUFJPRFVDVF9DT01QT1NJVEVfUk9VVElOR19DT05GSUcsXG4gIERhZmZQcm9kdWN0Q29tcG9zaXRlUm91dGluZ0NvbmZpZyxcbn0gZnJvbSAnLi4vY29uZmlnL3B1YmxpY19hcGknO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRGFmZlByb2R1Y3RDb21wb3NpdGVRdWVyeVBhcmFtU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogYW55LFxuICAgIEBJbmplY3QoREFGRl9QUk9EVUNUX0NPTVBPU0lURV9ST1VUSU5HX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IERhZmZQcm9kdWN0Q29tcG9zaXRlUm91dGluZ0NvbmZpZykge1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgdmFsdWUgb2YgdGhlIGNvbmZpZ3VyZWQgY29tcG9zaXRlIHNlbGVjdGlvbiBxdWVyeSBwYXJhbS5cbiAgICovXG4gIHB1YmxpYyBnZXQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKFxuICAgICAgbmV3IFVSTCgoPGFueT50aGlzLmRvY3VtZW50KS5sb2NhdGlvbi50b1N0cmluZygpKVxuICAgICkuc2VhcmNoUGFyYW1zLmdldCh0aGlzLmNvbmZpZy5jb21wb3NpdGVTZWxlY3Rpb25RdWVyeVBhcmFtKTtcbiAgfVxufVxuIl19
@@ -8,7 +8,7 @@ import { switchMap } from 'rxjs/operators';
8
8
  import { DaffProductTypeEnum } from '@daffodil/product';
9
9
  import { DaffCompositeProductApplyOption } from '@daffodil/product-composite/state';
10
10
  import { DaffProductPageActionTypes } from '@daffodil/product/state';
11
- import * as i2 from '@angular/router';
11
+ import { DOCUMENT } from '@angular/common';
12
12
 
13
13
  /**
14
14
  * The default configuration for the {@link DaffProductCompositeRoutingConfig}.
@@ -34,6 +34,32 @@ function daffProductCompositeRoutingProvideConfig(config) {
34
34
  };
35
35
  }
36
36
 
37
+ class DaffProductCompositeQueryParamService {
38
+ constructor(document, config) {
39
+ this.document = document;
40
+ this.config = config;
41
+ }
42
+ /**
43
+ * Get the value of the configured composite selection query param.
44
+ */
45
+ get() {
46
+ return (new URL(this.document.location.toString())).searchParams.get(this.config.compositeSelectionQueryParam);
47
+ }
48
+ }
49
+ /** @nocollapse */ DaffProductCompositeQueryParamService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffProductCompositeQueryParamService, deps: [{ token: DOCUMENT }, { token: DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
50
+ /** @nocollapse */ DaffProductCompositeQueryParamService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffProductCompositeQueryParamService });
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffProductCompositeQueryParamService, decorators: [{
52
+ type: Injectable
53
+ }], ctorParameters: function () {
54
+ return [{ type: undefined, decorators: [{
55
+ type: Inject,
56
+ args: [DOCUMENT]
57
+ }] }, { type: undefined, decorators: [{
58
+ type: Inject,
59
+ args: [DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG]
60
+ }] }];
61
+ } });
62
+
37
63
  /**
38
64
  * Builds the apply actions from the list of selected options.
39
65
  */
@@ -52,15 +78,15 @@ function buildApplyActions(product, itemId, selectedOptions) {
52
78
  * Handles composite product specific actions for the product page.
53
79
  */
54
80
  class DaffProductCompositePageEffects {
55
- constructor(actions$, route, config) {
81
+ constructor(actions$, paramGetter, config) {
56
82
  this.actions$ = actions$;
57
- this.route = route;
83
+ this.paramGetter = paramGetter;
58
84
  this.config = config;
59
85
  /**
60
86
  * Applies composite item options based on the value of the configured query param.
61
87
  */
62
88
  this.preselectCompositeOptions$ = createEffect(() => this.actions$.pipe(ofType(DaffProductPageActionTypes.ProductPageLoadSuccessAction), switchMap((action) => {
63
- const queryParam = this.getQueryParam();
89
+ const queryParam = this.paramGetter.get();
64
90
  // get the product corresponding to the current product page
65
91
  const product = action.payload.products.filter(({ id }) => id === action.payload.id)[0];
66
92
  // if we don't have a query param set or if the product isn't composite,
@@ -80,19 +106,13 @@ class DaffProductCompositePageEffects {
80
106
  return of(...applyActions);
81
107
  })));
82
108
  }
83
- /**
84
- * Get the value of the configured composite selection query param.
85
- */
86
- getQueryParam() {
87
- return this.route.snapshot.queryParamMap.get(this.config.compositeSelectionQueryParam);
88
- }
89
109
  }
90
- /** @nocollapse */ DaffProductCompositePageEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffProductCompositePageEffects, deps: [{ token: i1.Actions }, { token: i2.ActivatedRoute }, { token: DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
110
+ /** @nocollapse */ DaffProductCompositePageEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffProductCompositePageEffects, deps: [{ token: i1.Actions }, { token: DaffProductCompositeQueryParamService }, { token: DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
91
111
  /** @nocollapse */ DaffProductCompositePageEffects.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffProductCompositePageEffects });
92
112
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffProductCompositePageEffects, decorators: [{
93
113
  type: Injectable
94
114
  }], ctorParameters: function () {
95
- return [{ type: i1.Actions }, { type: i2.ActivatedRoute }, { type: undefined, decorators: [{
115
+ return [{ type: i1.Actions }, { type: DaffProductCompositeQueryParamService }, { type: undefined, decorators: [{
96
116
  type: Inject,
97
117
  args: [DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG]
98
118
  }] }];
@@ -113,7 +133,9 @@ class DaffProductCompositeRoutingModule {
113
133
  }
114
134
  /** @nocollapse */ DaffProductCompositeRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffProductCompositeRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
115
135
  /** @nocollapse */ DaffProductCompositeRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffProductCompositeRoutingModule, imports: [i1.EffectsFeatureModule] });
116
- /** @nocollapse */ DaffProductCompositeRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffProductCompositeRoutingModule, imports: [[
136
+ /** @nocollapse */ DaffProductCompositeRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffProductCompositeRoutingModule, providers: [
137
+ DaffProductCompositeQueryParamService,
138
+ ], imports: [[
117
139
  EffectsModule.forFeature([DaffProductCompositePageEffects]),
118
140
  ]] });
119
141
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffProductCompositeRoutingModule, decorators: [{
@@ -122,6 +144,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
122
144
  imports: [
123
145
  EffectsModule.forFeature([DaffProductCompositePageEffects]),
124
146
  ],
147
+ providers: [
148
+ DaffProductCompositeQueryParamService,
149
+ ],
125
150
  }]
126
151
  }] });
127
152
 
@@ -1 +1 @@
1
- {"version":3,"file":"daffodil-product-composite-routing.mjs","sources":["../../../libs/product-composite/routing/src/config/default.ts","../../../libs/product-composite/routing/src/config/token.ts","../../../libs/product-composite/routing/src/effects/product-page.effects.ts","../../../libs/product-composite/routing/src/module.ts","../../../libs/product-composite/routing/src/daffodil-product-composite-routing.ts"],"sourcesContent":["import { DaffBase64Service } from '@daffodil/core';\n\nimport { DaffProductCompositeRoutingConfig } from './interface';\n\n/**\n * The default configuration for the {@link DaffProductCompositeRoutingConfig}.\n */\nexport const daffProductCompositeRoutingConfigDefaultFactory = (base64: DaffBase64Service): DaffProductCompositeRoutingConfig => ({\n compositeSelectionQueryParam: 'composite_selection',\n compositeSelectionQueryParamDecode: (queryParam: string) => JSON.parse(base64.decode(queryParam)),\n});\n","import {\n FactoryProvider,\n inject,\n InjectionToken,\n} from '@angular/core';\n\nimport { DaffBase64ServiceToken } from '@daffodil/core';\n\nimport { daffProductCompositeRoutingConfigDefaultFactory } from './default';\nimport { DaffProductCompositeRoutingConfig } from './interface';\n\n/**\n * The token used to provide @daffodil/product-composite/routing config data.\n */\nexport const DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG = new InjectionToken<DaffProductCompositeRoutingConfig>('DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG', {\n factory: () => daffProductCompositeRoutingConfigDefaultFactory(inject(DaffBase64ServiceToken)),\n});\n\n/**\n * Provides the {@link DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG} token.\n */\nexport function daffProductCompositeRoutingProvideConfig(config: Partial<DaffProductCompositeRoutingConfig>): FactoryProvider {\n return {\n provide: DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG,\n useFactory: () => ({\n ...daffProductCompositeRoutingConfigDefaultFactory(inject(DaffBase64ServiceToken)),\n ...config,\n }),\n };\n}\n","import { Location } from '@angular/common';\nimport {\n Inject,\n Injectable,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport {\n Actions,\n Effect,\n createEffect,\n ofType,\n} from '@ngrx/effects';\nimport {\n EMPTY,\n Observable,\n of,\n} from 'rxjs';\nimport {\n map,\n switchMap,\n} from 'rxjs/operators';\n\nimport {\n DaffProduct,\n DaffProductTypeEnum,\n} from '@daffodil/product';\nimport {\n DaffCompositeProduct,\n DaffCompositeProductItem,\n DaffCompositeProductItemOption,\n DaffProductCompositeSelectionPayload,\n} from '@daffodil/product-composite';\nimport { DaffCompositeProductApplyOption } from '@daffodil/product-composite/state';\nimport {\n DaffProductPageActionTypes,\n DaffProductPageLoadSuccess,\n} from '@daffodil/product/state';\n\nimport {\n DaffProductCompositeRoutingConfig,\n DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG,\n} from '../config/public_api';\n\n/**\n * Builds the apply actions from the list of selected options.\n */\nfunction buildApplyActions<T extends DaffCompositeProduct = DaffCompositeProduct>(product: DaffCompositeProduct, itemId: DaffCompositeProductItem['id'], selectedOptions: DaffCompositeProductItemOption['id'][]): DaffCompositeProductApplyOption<T>[] {\n const selectionItem = product.items.find(({ id }) => id === itemId);\n\n return selectionItem\n ? selectedOptions.map(selectionOptionId => {\n // use the quantity of the referenced option\n const qty = selectionItem?.options.find(({ id }) => id === selectionOptionId)?.quantity;\n\n return new DaffCompositeProductApplyOption(product.id, itemId, selectionOptionId, qty);\n })\n : [];\n}\n\n/**\n * Handles composite product specific actions for the product page.\n */\n@Injectable()\nexport class DaffProductCompositePageEffects<T extends DaffCompositeProduct = DaffCompositeProduct> {\n constructor(\n private actions$: Actions,\n private route: ActivatedRoute,\n @Inject(DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG) private config: DaffProductCompositeRoutingConfig,\n ) {}\n\n /**\n * Get the value of the configured composite selection query param.\n */\n private getQueryParam(): string {\n return this.route.snapshot.queryParamMap.get(this.config.compositeSelectionQueryParam);\n }\n\n /**\n * Applies composite item options based on the value of the configured query param.\n */\n preselectCompositeOptions$: Observable<typeof EMPTY | DaffCompositeProductApplyOption<T>> = createEffect(() => this.actions$.pipe(\n ofType(DaffProductPageActionTypes.ProductPageLoadSuccessAction),\n switchMap((action: DaffProductPageLoadSuccess<T>) => {\n const queryParam = this.getQueryParam();\n // get the product corresponding to the current product page\n const product: DaffCompositeProduct = action.payload.products.filter(({ id }) => id === action.payload.id)[0];\n\n // if we don't have a query param set or if the product isn't composite,\n // we have nothing to do\n if (!queryParam || product?.type !== DaffProductTypeEnum.Composite) {\n return EMPTY;\n }\n\n let selection: DaffProductCompositeSelectionPayload;\n\n try {\n selection = this.config.compositeSelectionQueryParamDecode(queryParam, product);\n } catch (error) {\n return EMPTY;\n }\n\n const applyActions = Object.keys(selection).reduce<DaffCompositeProductApplyOption<T>[]>(\n (actions, itemId) => actions.concat(buildApplyActions(product, itemId, selection[itemId])),\n [],\n );\n\n // dispatch each of the apply actions into the action stream\n return of(...applyActions);\n }),\n ));\n}\n","import {\n inject,\n ModuleWithProviders,\n NgModule,\n} from '@angular/core';\nimport { EffectsModule } from '@ngrx/effects';\n\nimport { DaffBase64ServiceToken } from '@daffodil/core';\n\nimport {\n DaffProductCompositeRoutingConfig,\n daffProductCompositeRoutingConfigDefaultFactory,\n DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG,\n} from './config/public_api';\nimport { DaffProductCompositePageEffects } from './effects/public_api';\n\n@NgModule({\n imports: [\n EffectsModule.forFeature([DaffProductCompositePageEffects]),\n ],\n})\nexport class DaffProductCompositeRoutingModule {\n static withConfig(config?: DaffProductCompositeRoutingConfig): ModuleWithProviders<DaffProductCompositeRoutingModule> {\n return {\n ngModule: DaffProductCompositeRoutingModule,\n providers: [\n {\n provide: DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG,\n useFactory: () => ({\n ...daffProductCompositeRoutingConfigDefaultFactory(inject(DaffBase64ServiceToken)),\n ...config || {},\n }),\n },\n ],\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daffodil-product-composite-routing.mjs","sources":["../../../libs/product-composite/routing/src/config/default.ts","../../../libs/product-composite/routing/src/config/token.ts","../../../libs/product-composite/routing/src/services/query-param.service.ts","../../../libs/product-composite/routing/src/effects/product-page.effects.ts","../../../libs/product-composite/routing/src/module.ts","../../../libs/product-composite/routing/src/daffodil-product-composite-routing.ts"],"sourcesContent":["import { DaffBase64Service } from '@daffodil/core';\n\nimport { DaffProductCompositeRoutingConfig } from './interface';\n\n/**\n * The default configuration for the {@link DaffProductCompositeRoutingConfig}.\n */\nexport const daffProductCompositeRoutingConfigDefaultFactory = (base64: DaffBase64Service): DaffProductCompositeRoutingConfig => ({\n compositeSelectionQueryParam: 'composite_selection',\n compositeSelectionQueryParamDecode: (queryParam: string) => JSON.parse(base64.decode(queryParam)),\n});\n","import {\n FactoryProvider,\n inject,\n InjectionToken,\n} from '@angular/core';\n\nimport { DaffBase64ServiceToken } from '@daffodil/core';\n\nimport { daffProductCompositeRoutingConfigDefaultFactory } from './default';\nimport { DaffProductCompositeRoutingConfig } from './interface';\n\n/**\n * The token used to provide @daffodil/product-composite/routing config data.\n */\nexport const DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG = new InjectionToken<DaffProductCompositeRoutingConfig>('DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG', {\n factory: () => daffProductCompositeRoutingConfigDefaultFactory(inject(DaffBase64ServiceToken)),\n});\n\n/**\n * Provides the {@link DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG} token.\n */\nexport function daffProductCompositeRoutingProvideConfig(config: Partial<DaffProductCompositeRoutingConfig>): FactoryProvider {\n return {\n provide: DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG,\n useFactory: () => ({\n ...daffProductCompositeRoutingConfigDefaultFactory(inject(DaffBase64ServiceToken)),\n ...config,\n }),\n };\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n Inject,\n Injectable,\n} from '@angular/core';\n\nimport {\n DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG,\n DaffProductCompositeRoutingConfig,\n} from '../config/public_api';\n\n@Injectable()\nexport class DaffProductCompositeQueryParamService {\n\n constructor(\n @Inject(DOCUMENT) private document: any,\n @Inject(DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG) private config: DaffProductCompositeRoutingConfig) {\n }\n\n /**\n * Get the value of the configured composite selection query param.\n */\n public get(): string {\n return (\n new URL((<any>this.document).location.toString())\n ).searchParams.get(this.config.compositeSelectionQueryParam);\n }\n}\n","import {\n DOCUMENT,\n Location,\n} from '@angular/common';\nimport {\n Inject,\n Injectable,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport {\n Actions,\n Effect,\n createEffect,\n ofType,\n} from '@ngrx/effects';\nimport {\n EMPTY,\n Observable,\n of,\n} from 'rxjs';\nimport {\n map,\n switchMap,\n} from 'rxjs/operators';\n\nimport {\n DaffProduct,\n DaffProductTypeEnum,\n} from '@daffodil/product';\nimport {\n DaffCompositeProduct,\n DaffCompositeProductItem,\n DaffCompositeProductItemOption,\n DaffProductCompositeSelectionPayload,\n} from '@daffodil/product-composite';\nimport { DaffCompositeProductApplyOption } from '@daffodil/product-composite/state';\nimport {\n DaffProductPageActionTypes,\n DaffProductPageLoadSuccess,\n} from '@daffodil/product/state';\n\nimport {\n DaffProductCompositeRoutingConfig,\n DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG,\n} from '../config/public_api';\nimport { DaffProductCompositeQueryParamService } from '../services/query-param.service';\n\n/**\n * Builds the apply actions from the list of selected options.\n */\nfunction buildApplyActions<T extends DaffCompositeProduct = DaffCompositeProduct>(product: DaffCompositeProduct, itemId: DaffCompositeProductItem['id'], selectedOptions: DaffCompositeProductItemOption['id'][]): DaffCompositeProductApplyOption<T>[] {\n const selectionItem = product.items.find(({ id }) => id === itemId);\n\n return selectionItem\n ? selectedOptions.map(selectionOptionId => {\n // use the quantity of the referenced option\n const qty = selectionItem?.options.find(({ id }) => id === selectionOptionId)?.quantity;\n\n return new DaffCompositeProductApplyOption(product.id, itemId, selectionOptionId, qty);\n })\n : [];\n}\n\n/**\n * Handles composite product specific actions for the product page.\n */\n@Injectable()\nexport class DaffProductCompositePageEffects<T extends DaffCompositeProduct = DaffCompositeProduct> {\n constructor(\n private actions$: Actions,\n private paramGetter: DaffProductCompositeQueryParamService,\n @Inject(DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG) private config: DaffProductCompositeRoutingConfig,\n ) {}\n\n /**\n * Applies composite item options based on the value of the configured query param.\n */\n preselectCompositeOptions$: Observable<typeof EMPTY | DaffCompositeProductApplyOption<T>> = createEffect(() => this.actions$.pipe(\n ofType(DaffProductPageActionTypes.ProductPageLoadSuccessAction),\n switchMap((action: DaffProductPageLoadSuccess<T>) => {\n const queryParam = this.paramGetter.get();\n\n // get the product corresponding to the current product page\n const product: DaffCompositeProduct = action.payload.products.filter(({ id }) => id === action.payload.id)[0];\n\n // if we don't have a query param set or if the product isn't composite,\n // we have nothing to do\n if (!queryParam || product?.type !== DaffProductTypeEnum.Composite) {\n return EMPTY;\n }\n\n let selection: DaffProductCompositeSelectionPayload;\n\n try {\n selection = this.config.compositeSelectionQueryParamDecode(queryParam, product);\n } catch (error) {\n return EMPTY;\n }\n\n const applyActions = Object.keys(selection).reduce<DaffCompositeProductApplyOption<T>[]>(\n (actions, itemId) => actions.concat(buildApplyActions(product, itemId, selection[itemId])),\n [],\n );\n\n // dispatch each of the apply actions into the action stream\n return of(...applyActions);\n }),\n ));\n}\n","import {\n inject,\n ModuleWithProviders,\n NgModule,\n} from '@angular/core';\nimport { EffectsModule } from '@ngrx/effects';\n\nimport { DaffBase64ServiceToken } from '@daffodil/core';\n\nimport {\n DaffProductCompositeRoutingConfig,\n daffProductCompositeRoutingConfigDefaultFactory,\n DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG,\n} from './config/public_api';\nimport { DaffProductCompositePageEffects } from './effects/public_api';\nimport { DaffProductCompositeQueryParamService } from './services/query-param.service';\n\n@NgModule({\n imports: [\n EffectsModule.forFeature([DaffProductCompositePageEffects]),\n ],\n providers: [\n DaffProductCompositeQueryParamService,\n ],\n})\nexport class DaffProductCompositeRoutingModule {\n static withConfig(config?: DaffProductCompositeRoutingConfig): ModuleWithProviders<DaffProductCompositeRoutingModule> {\n return {\n ngModule: DaffProductCompositeRoutingModule,\n providers: [\n {\n provide: DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG,\n useFactory: () => ({\n ...daffProductCompositeRoutingConfigDefaultFactory(inject(DaffBase64ServiceToken)),\n ...config || {},\n }),\n },\n ],\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { InjectionToken, inject, Injectable, Inject, NgModule } from '@angular/core';
3
3
  import { DaffBase64ServiceToken } from '@daffodil/core';
4
- import * as i2 from '@angular/router';
5
4
  import * as i1 from '@ngrx/effects';
6
5
  import { createEffect, ofType, EffectsModule } from '@ngrx/effects';
7
6
  import { EMPTY, of } from 'rxjs';
@@ -9,6 +8,7 @@ import { switchMap } from 'rxjs/operators';
9
8
  import { DaffProductTypeEnum } from '@daffodil/product';
10
9
  import { DaffCompositeProductApplyOption } from '@daffodil/product-composite/state';
11
10
  import { DaffProductPageActionTypes } from '@daffodil/product/state';
11
+ import { DOCUMENT } from '@angular/common';
12
12
 
13
13
  /**
14
14
  * The default configuration for the {@link DaffProductCompositeRoutingConfig}.
@@ -37,6 +37,30 @@ function daffProductCompositeRoutingProvideConfig(config) {
37
37
  };
38
38
  }
39
39
 
40
+ class DaffProductCompositeQueryParamService {
41
+ constructor(document, config) {
42
+ this.document = document;
43
+ this.config = config;
44
+ }
45
+ /**
46
+ * Get the value of the configured composite selection query param.
47
+ */
48
+ get() {
49
+ return (new URL(this.document.location.toString())).searchParams.get(this.config.compositeSelectionQueryParam);
50
+ }
51
+ }
52
+ /** @nocollapse */ DaffProductCompositeQueryParamService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffProductCompositeQueryParamService, deps: [{ token: DOCUMENT }, { token: DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
53
+ /** @nocollapse */ DaffProductCompositeQueryParamService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffProductCompositeQueryParamService });
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffProductCompositeQueryParamService, decorators: [{
55
+ type: Injectable
56
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
57
+ type: Inject,
58
+ args: [DOCUMENT]
59
+ }] }, { type: undefined, decorators: [{
60
+ type: Inject,
61
+ args: [DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG]
62
+ }] }]; } });
63
+
40
64
  /**
41
65
  * Builds the apply actions from the list of selected options.
42
66
  */
@@ -54,15 +78,15 @@ function buildApplyActions(product, itemId, selectedOptions) {
54
78
  * Handles composite product specific actions for the product page.
55
79
  */
56
80
  class DaffProductCompositePageEffects {
57
- constructor(actions$, route, config) {
81
+ constructor(actions$, paramGetter, config) {
58
82
  this.actions$ = actions$;
59
- this.route = route;
83
+ this.paramGetter = paramGetter;
60
84
  this.config = config;
61
85
  /**
62
86
  * Applies composite item options based on the value of the configured query param.
63
87
  */
64
88
  this.preselectCompositeOptions$ = createEffect(() => this.actions$.pipe(ofType(DaffProductPageActionTypes.ProductPageLoadSuccessAction), switchMap((action) => {
65
- const queryParam = this.getQueryParam();
89
+ const queryParam = this.paramGetter.get();
66
90
  // get the product corresponding to the current product page
67
91
  const product = action.payload.products.filter(({ id }) => id === action.payload.id)[0];
68
92
  // if we don't have a query param set or if the product isn't composite,
@@ -82,18 +106,12 @@ class DaffProductCompositePageEffects {
82
106
  return of(...applyActions);
83
107
  })));
84
108
  }
85
- /**
86
- * Get the value of the configured composite selection query param.
87
- */
88
- getQueryParam() {
89
- return this.route.snapshot.queryParamMap.get(this.config.compositeSelectionQueryParam);
90
- }
91
109
  }
92
- /** @nocollapse */ DaffProductCompositePageEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffProductCompositePageEffects, deps: [{ token: i1.Actions }, { token: i2.ActivatedRoute }, { token: DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
110
+ /** @nocollapse */ DaffProductCompositePageEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffProductCompositePageEffects, deps: [{ token: i1.Actions }, { token: DaffProductCompositeQueryParamService }, { token: DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
93
111
  /** @nocollapse */ DaffProductCompositePageEffects.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffProductCompositePageEffects });
94
112
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffProductCompositePageEffects, decorators: [{
95
113
  type: Injectable
96
- }], ctorParameters: function () { return [{ type: i1.Actions }, { type: i2.ActivatedRoute }, { type: undefined, decorators: [{
114
+ }], ctorParameters: function () { return [{ type: i1.Actions }, { type: DaffProductCompositeQueryParamService }, { type: undefined, decorators: [{
97
115
  type: Inject,
98
116
  args: [DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG]
99
117
  }] }]; } });
@@ -116,7 +134,9 @@ class DaffProductCompositeRoutingModule {
116
134
  }
117
135
  /** @nocollapse */ DaffProductCompositeRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffProductCompositeRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
118
136
  /** @nocollapse */ DaffProductCompositeRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffProductCompositeRoutingModule, imports: [i1.EffectsFeatureModule] });
119
- /** @nocollapse */ DaffProductCompositeRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffProductCompositeRoutingModule, imports: [[
137
+ /** @nocollapse */ DaffProductCompositeRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffProductCompositeRoutingModule, providers: [
138
+ DaffProductCompositeQueryParamService,
139
+ ], imports: [[
120
140
  EffectsModule.forFeature([DaffProductCompositePageEffects]),
121
141
  ]] });
122
142
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffProductCompositeRoutingModule, decorators: [{
@@ -125,6 +145,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
125
145
  imports: [
126
146
  EffectsModule.forFeature([DaffProductCompositePageEffects]),
127
147
  ],
148
+ providers: [
149
+ DaffProductCompositeQueryParamService,
150
+ ],
128
151
  }]
129
152
  }] });
130
153
 
@@ -1 +1 @@
1
- {"version":3,"file":"daffodil-product-composite-routing.mjs","sources":["../../../libs/product-composite/routing/src/config/default.ts","../../../libs/product-composite/routing/src/config/token.ts","../../../libs/product-composite/routing/src/effects/product-page.effects.ts","../../../libs/product-composite/routing/src/module.ts","../../../libs/product-composite/routing/src/daffodil-product-composite-routing.ts"],"sourcesContent":["import { DaffBase64Service } from '@daffodil/core';\n\nimport { DaffProductCompositeRoutingConfig } from './interface';\n\n/**\n * The default configuration for the {@link DaffProductCompositeRoutingConfig}.\n */\nexport const daffProductCompositeRoutingConfigDefaultFactory = (base64: DaffBase64Service): DaffProductCompositeRoutingConfig => ({\n compositeSelectionQueryParam: 'composite_selection',\n compositeSelectionQueryParamDecode: (queryParam: string) => JSON.parse(base64.decode(queryParam)),\n});\n","import {\n FactoryProvider,\n inject,\n InjectionToken,\n} from '@angular/core';\n\nimport { DaffBase64ServiceToken } from '@daffodil/core';\n\nimport { daffProductCompositeRoutingConfigDefaultFactory } from './default';\nimport { DaffProductCompositeRoutingConfig } from './interface';\n\n/**\n * The token used to provide @daffodil/product-composite/routing config data.\n */\nexport const DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG = new InjectionToken<DaffProductCompositeRoutingConfig>('DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG', {\n factory: () => daffProductCompositeRoutingConfigDefaultFactory(inject(DaffBase64ServiceToken)),\n});\n\n/**\n * Provides the {@link DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG} token.\n */\nexport function daffProductCompositeRoutingProvideConfig(config: Partial<DaffProductCompositeRoutingConfig>): FactoryProvider {\n return {\n provide: DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG,\n useFactory: () => ({\n ...daffProductCompositeRoutingConfigDefaultFactory(inject(DaffBase64ServiceToken)),\n ...config,\n }),\n };\n}\n","import { Location } from '@angular/common';\nimport {\n Inject,\n Injectable,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport {\n Actions,\n Effect,\n createEffect,\n ofType,\n} from '@ngrx/effects';\nimport {\n EMPTY,\n Observable,\n of,\n} from 'rxjs';\nimport {\n map,\n switchMap,\n} from 'rxjs/operators';\n\nimport {\n DaffProduct,\n DaffProductTypeEnum,\n} from '@daffodil/product';\nimport {\n DaffCompositeProduct,\n DaffCompositeProductItem,\n DaffCompositeProductItemOption,\n DaffProductCompositeSelectionPayload,\n} from '@daffodil/product-composite';\nimport { DaffCompositeProductApplyOption } from '@daffodil/product-composite/state';\nimport {\n DaffProductPageActionTypes,\n DaffProductPageLoadSuccess,\n} from '@daffodil/product/state';\n\nimport {\n DaffProductCompositeRoutingConfig,\n DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG,\n} from '../config/public_api';\n\n/**\n * Builds the apply actions from the list of selected options.\n */\nfunction buildApplyActions<T extends DaffCompositeProduct = DaffCompositeProduct>(product: DaffCompositeProduct, itemId: DaffCompositeProductItem['id'], selectedOptions: DaffCompositeProductItemOption['id'][]): DaffCompositeProductApplyOption<T>[] {\n const selectionItem = product.items.find(({ id }) => id === itemId);\n\n return selectionItem\n ? selectedOptions.map(selectionOptionId => {\n // use the quantity of the referenced option\n const qty = selectionItem?.options.find(({ id }) => id === selectionOptionId)?.quantity;\n\n return new DaffCompositeProductApplyOption(product.id, itemId, selectionOptionId, qty);\n })\n : [];\n}\n\n/**\n * Handles composite product specific actions for the product page.\n */\n@Injectable()\nexport class DaffProductCompositePageEffects<T extends DaffCompositeProduct = DaffCompositeProduct> {\n constructor(\n private actions$: Actions,\n private route: ActivatedRoute,\n @Inject(DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG) private config: DaffProductCompositeRoutingConfig,\n ) {}\n\n /**\n * Get the value of the configured composite selection query param.\n */\n private getQueryParam(): string {\n return this.route.snapshot.queryParamMap.get(this.config.compositeSelectionQueryParam);\n }\n\n /**\n * Applies composite item options based on the value of the configured query param.\n */\n preselectCompositeOptions$: Observable<typeof EMPTY | DaffCompositeProductApplyOption<T>> = createEffect(() => this.actions$.pipe(\n ofType(DaffProductPageActionTypes.ProductPageLoadSuccessAction),\n switchMap((action: DaffProductPageLoadSuccess<T>) => {\n const queryParam = this.getQueryParam();\n // get the product corresponding to the current product page\n const product: DaffCompositeProduct = action.payload.products.filter(({ id }) => id === action.payload.id)[0];\n\n // if we don't have a query param set or if the product isn't composite,\n // we have nothing to do\n if (!queryParam || product?.type !== DaffProductTypeEnum.Composite) {\n return EMPTY;\n }\n\n let selection: DaffProductCompositeSelectionPayload;\n\n try {\n selection = this.config.compositeSelectionQueryParamDecode(queryParam, product);\n } catch (error) {\n return EMPTY;\n }\n\n const applyActions = Object.keys(selection).reduce<DaffCompositeProductApplyOption<T>[]>(\n (actions, itemId) => actions.concat(buildApplyActions(product, itemId, selection[itemId])),\n [],\n );\n\n // dispatch each of the apply actions into the action stream\n return of(...applyActions);\n }),\n ));\n}\n","import {\n inject,\n ModuleWithProviders,\n NgModule,\n} from '@angular/core';\nimport { EffectsModule } from '@ngrx/effects';\n\nimport { DaffBase64ServiceToken } from '@daffodil/core';\n\nimport {\n DaffProductCompositeRoutingConfig,\n daffProductCompositeRoutingConfigDefaultFactory,\n DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG,\n} from './config/public_api';\nimport { DaffProductCompositePageEffects } from './effects/public_api';\n\n@NgModule({\n imports: [\n EffectsModule.forFeature([DaffProductCompositePageEffects]),\n ],\n})\nexport class DaffProductCompositeRoutingModule {\n static withConfig(config?: DaffProductCompositeRoutingConfig): ModuleWithProviders<DaffProductCompositeRoutingModule> {\n return {\n ngModule: DaffProductCompositeRoutingModule,\n providers: [\n {\n provide: DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG,\n useFactory: () => ({\n ...daffProductCompositeRoutingConfigDefaultFactory(inject(DaffBase64ServiceToken)),\n ...config || {},\n }),\n },\n ],\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daffodil-product-composite-routing.mjs","sources":["../../../libs/product-composite/routing/src/config/default.ts","../../../libs/product-composite/routing/src/config/token.ts","../../../libs/product-composite/routing/src/services/query-param.service.ts","../../../libs/product-composite/routing/src/effects/product-page.effects.ts","../../../libs/product-composite/routing/src/module.ts","../../../libs/product-composite/routing/src/daffodil-product-composite-routing.ts"],"sourcesContent":["import { DaffBase64Service } from '@daffodil/core';\n\nimport { DaffProductCompositeRoutingConfig } from './interface';\n\n/**\n * The default configuration for the {@link DaffProductCompositeRoutingConfig}.\n */\nexport const daffProductCompositeRoutingConfigDefaultFactory = (base64: DaffBase64Service): DaffProductCompositeRoutingConfig => ({\n compositeSelectionQueryParam: 'composite_selection',\n compositeSelectionQueryParamDecode: (queryParam: string) => JSON.parse(base64.decode(queryParam)),\n});\n","import {\n FactoryProvider,\n inject,\n InjectionToken,\n} from '@angular/core';\n\nimport { DaffBase64ServiceToken } from '@daffodil/core';\n\nimport { daffProductCompositeRoutingConfigDefaultFactory } from './default';\nimport { DaffProductCompositeRoutingConfig } from './interface';\n\n/**\n * The token used to provide @daffodil/product-composite/routing config data.\n */\nexport const DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG = new InjectionToken<DaffProductCompositeRoutingConfig>('DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG', {\n factory: () => daffProductCompositeRoutingConfigDefaultFactory(inject(DaffBase64ServiceToken)),\n});\n\n/**\n * Provides the {@link DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG} token.\n */\nexport function daffProductCompositeRoutingProvideConfig(config: Partial<DaffProductCompositeRoutingConfig>): FactoryProvider {\n return {\n provide: DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG,\n useFactory: () => ({\n ...daffProductCompositeRoutingConfigDefaultFactory(inject(DaffBase64ServiceToken)),\n ...config,\n }),\n };\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n Inject,\n Injectable,\n} from '@angular/core';\n\nimport {\n DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG,\n DaffProductCompositeRoutingConfig,\n} from '../config/public_api';\n\n@Injectable()\nexport class DaffProductCompositeQueryParamService {\n\n constructor(\n @Inject(DOCUMENT) private document: any,\n @Inject(DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG) private config: DaffProductCompositeRoutingConfig) {\n }\n\n /**\n * Get the value of the configured composite selection query param.\n */\n public get(): string {\n return (\n new URL((<any>this.document).location.toString())\n ).searchParams.get(this.config.compositeSelectionQueryParam);\n }\n}\n","import {\n DOCUMENT,\n Location,\n} from '@angular/common';\nimport {\n Inject,\n Injectable,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport {\n Actions,\n Effect,\n createEffect,\n ofType,\n} from '@ngrx/effects';\nimport {\n EMPTY,\n Observable,\n of,\n} from 'rxjs';\nimport {\n map,\n switchMap,\n} from 'rxjs/operators';\n\nimport {\n DaffProduct,\n DaffProductTypeEnum,\n} from '@daffodil/product';\nimport {\n DaffCompositeProduct,\n DaffCompositeProductItem,\n DaffCompositeProductItemOption,\n DaffProductCompositeSelectionPayload,\n} from '@daffodil/product-composite';\nimport { DaffCompositeProductApplyOption } from '@daffodil/product-composite/state';\nimport {\n DaffProductPageActionTypes,\n DaffProductPageLoadSuccess,\n} from '@daffodil/product/state';\n\nimport {\n DaffProductCompositeRoutingConfig,\n DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG,\n} from '../config/public_api';\nimport { DaffProductCompositeQueryParamService } from '../services/query-param.service';\n\n/**\n * Builds the apply actions from the list of selected options.\n */\nfunction buildApplyActions<T extends DaffCompositeProduct = DaffCompositeProduct>(product: DaffCompositeProduct, itemId: DaffCompositeProductItem['id'], selectedOptions: DaffCompositeProductItemOption['id'][]): DaffCompositeProductApplyOption<T>[] {\n const selectionItem = product.items.find(({ id }) => id === itemId);\n\n return selectionItem\n ? selectedOptions.map(selectionOptionId => {\n // use the quantity of the referenced option\n const qty = selectionItem?.options.find(({ id }) => id === selectionOptionId)?.quantity;\n\n return new DaffCompositeProductApplyOption(product.id, itemId, selectionOptionId, qty);\n })\n : [];\n}\n\n/**\n * Handles composite product specific actions for the product page.\n */\n@Injectable()\nexport class DaffProductCompositePageEffects<T extends DaffCompositeProduct = DaffCompositeProduct> {\n constructor(\n private actions$: Actions,\n private paramGetter: DaffProductCompositeQueryParamService,\n @Inject(DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG) private config: DaffProductCompositeRoutingConfig,\n ) {}\n\n /**\n * Applies composite item options based on the value of the configured query param.\n */\n preselectCompositeOptions$: Observable<typeof EMPTY | DaffCompositeProductApplyOption<T>> = createEffect(() => this.actions$.pipe(\n ofType(DaffProductPageActionTypes.ProductPageLoadSuccessAction),\n switchMap((action: DaffProductPageLoadSuccess<T>) => {\n const queryParam = this.paramGetter.get();\n\n // get the product corresponding to the current product page\n const product: DaffCompositeProduct = action.payload.products.filter(({ id }) => id === action.payload.id)[0];\n\n // if we don't have a query param set or if the product isn't composite,\n // we have nothing to do\n if (!queryParam || product?.type !== DaffProductTypeEnum.Composite) {\n return EMPTY;\n }\n\n let selection: DaffProductCompositeSelectionPayload;\n\n try {\n selection = this.config.compositeSelectionQueryParamDecode(queryParam, product);\n } catch (error) {\n return EMPTY;\n }\n\n const applyActions = Object.keys(selection).reduce<DaffCompositeProductApplyOption<T>[]>(\n (actions, itemId) => actions.concat(buildApplyActions(product, itemId, selection[itemId])),\n [],\n );\n\n // dispatch each of the apply actions into the action stream\n return of(...applyActions);\n }),\n ));\n}\n","import {\n inject,\n ModuleWithProviders,\n NgModule,\n} from '@angular/core';\nimport { EffectsModule } from '@ngrx/effects';\n\nimport { DaffBase64ServiceToken } from '@daffodil/core';\n\nimport {\n DaffProductCompositeRoutingConfig,\n daffProductCompositeRoutingConfigDefaultFactory,\n DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG,\n} from './config/public_api';\nimport { DaffProductCompositePageEffects } from './effects/public_api';\nimport { DaffProductCompositeQueryParamService } from './services/query-param.service';\n\n@NgModule({\n imports: [\n EffectsModule.forFeature([DaffProductCompositePageEffects]),\n ],\n providers: [\n DaffProductCompositeQueryParamService,\n ],\n})\nexport class DaffProductCompositeRoutingModule {\n static withConfig(config?: DaffProductCompositeRoutingConfig): ModuleWithProviders<DaffProductCompositeRoutingModule> {\n return {\n ngModule: DaffProductCompositeRoutingModule,\n providers: [\n {\n provide: DAFF_PRODUCT_COMPOSITE_ROUTING_CONFIG,\n useFactory: () => ({\n ...daffProductCompositeRoutingConfigDefaultFactory(inject(DaffBase64ServiceToken)),\n ...config || {},\n }),\n },\n ],\n };\n }\n}\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,132 +1 @@
1
- {
2
- "name": "@daffodil/product-composite",
3
- "nx": {
4
- "targets": {
5
- "build": {
6
- "outputs": [
7
- "{workspaceRoot}/dist/product-composite"
8
- ]
9
- }
10
- }
11
- },
12
- "version": "0.59.0",
13
- "description": "Interfaces built for daffodil/state",
14
- "repository": {
15
- "type": "git",
16
- "url": "https://github.com/graycoreio/daffodil"
17
- },
18
- "author": "Graycore LLC",
19
- "license": "MIT",
20
- "bugs": {
21
- "url": "https://github.com/graycoreio/daffodil/issues"
22
- },
23
- "publishConfig": {
24
- "directory": "../../dist/product-composite"
25
- },
26
- "homepage": "https://github.com/graycoreio/daffodil",
27
- "peerDependencies": {
28
- "@angular/common": "^13.0.0",
29
- "@angular/core": "^13.0.0",
30
- "@daffodil/core": "0.59.0",
31
- "@daffodil/product": "0.59.0",
32
- "@ngrx/effects": "^13.0.0",
33
- "@ngrx/entity": "^13.0.0",
34
- "@ngrx/store": "^13.0.0",
35
- "rxjs": "7.5.5"
36
- },
37
- "optionalDependencies": {
38
- "@apollo/client": "^3.0.0",
39
- "@daffodil/driver": "0.59.0",
40
- "@daffodil/product": "0.59.0",
41
- "angular-in-memory-web-api": "^0.13.0",
42
- "apollo-angular": "^3.0.1",
43
- "@faker-js/faker": "^7.6.0"
44
- },
45
- "module": "fesm2015/daffodil-product-composite.mjs",
46
- "es2020": "fesm2020/daffodil-product-composite.mjs",
47
- "esm2020": "esm2020/daffodil-product-composite.mjs",
48
- "fesm2020": "fesm2020/daffodil-product-composite.mjs",
49
- "fesm2015": "fesm2015/daffodil-product-composite.mjs",
50
- "typings": "daffodil-product-composite.d.ts",
51
- "exports": {
52
- "./package.json": {
53
- "default": "./package.json"
54
- },
55
- ".": {
56
- "types": "./daffodil-product-composite.d.ts",
57
- "esm2020": "./esm2020/daffodil-product-composite.mjs",
58
- "es2020": "./fesm2020/daffodil-product-composite.mjs",
59
- "es2015": "./fesm2015/daffodil-product-composite.mjs",
60
- "node": "./fesm2015/daffodil-product-composite.mjs",
61
- "default": "./fesm2020/daffodil-product-composite.mjs"
62
- },
63
- "./driver/in-memory": {
64
- "types": "./driver/in-memory/daffodil-product-composite-driver-in-memory.d.ts",
65
- "esm2020": "./esm2020/driver/in-memory/daffodil-product-composite-driver-in-memory.mjs",
66
- "es2020": "./fesm2020/daffodil-product-composite-driver-in-memory.mjs",
67
- "es2015": "./fesm2015/daffodil-product-composite-driver-in-memory.mjs",
68
- "node": "./fesm2015/daffodil-product-composite-driver-in-memory.mjs",
69
- "default": "./fesm2020/daffodil-product-composite-driver-in-memory.mjs"
70
- },
71
- "./driver/magento": {
72
- "types": "./driver/magento/daffodil-product-composite-driver-magento.d.ts",
73
- "esm2020": "./esm2020/driver/magento/daffodil-product-composite-driver-magento.mjs",
74
- "es2020": "./fesm2020/daffodil-product-composite-driver-magento.mjs",
75
- "es2015": "./fesm2015/daffodil-product-composite-driver-magento.mjs",
76
- "node": "./fesm2015/daffodil-product-composite-driver-magento.mjs",
77
- "default": "./fesm2020/daffodil-product-composite-driver-magento.mjs"
78
- },
79
- "./driver/magento/testing": {
80
- "types": "./driver/magento/testing/daffodil-product-composite-driver-magento-testing.d.ts",
81
- "esm2020": "./esm2020/driver/magento/testing/daffodil-product-composite-driver-magento-testing.mjs",
82
- "es2020": "./fesm2020/daffodil-product-composite-driver-magento-testing.mjs",
83
- "es2015": "./fesm2015/daffodil-product-composite-driver-magento-testing.mjs",
84
- "node": "./fesm2015/daffodil-product-composite-driver-magento-testing.mjs",
85
- "default": "./fesm2020/daffodil-product-composite-driver-magento-testing.mjs"
86
- },
87
- "./driver/testing": {
88
- "types": "./driver/testing/daffodil-product-composite-driver-testing.d.ts",
89
- "esm2020": "./esm2020/driver/testing/daffodil-product-composite-driver-testing.mjs",
90
- "es2020": "./fesm2020/daffodil-product-composite-driver-testing.mjs",
91
- "es2015": "./fesm2015/daffodil-product-composite-driver-testing.mjs",
92
- "node": "./fesm2015/daffodil-product-composite-driver-testing.mjs",
93
- "default": "./fesm2020/daffodil-product-composite-driver-testing.mjs"
94
- },
95
- "./routing": {
96
- "types": "./routing/daffodil-product-composite-routing.d.ts",
97
- "esm2020": "./esm2020/routing/daffodil-product-composite-routing.mjs",
98
- "es2020": "./fesm2020/daffodil-product-composite-routing.mjs",
99
- "es2015": "./fesm2015/daffodil-product-composite-routing.mjs",
100
- "node": "./fesm2015/daffodil-product-composite-routing.mjs",
101
- "default": "./fesm2020/daffodil-product-composite-routing.mjs"
102
- },
103
- "./state": {
104
- "types": "./state/daffodil-product-composite-state.d.ts",
105
- "esm2020": "./esm2020/state/daffodil-product-composite-state.mjs",
106
- "es2020": "./fesm2020/daffodil-product-composite-state.mjs",
107
- "es2015": "./fesm2015/daffodil-product-composite-state.mjs",
108
- "node": "./fesm2015/daffodil-product-composite-state.mjs",
109
- "default": "./fesm2020/daffodil-product-composite-state.mjs"
110
- },
111
- "./state/testing": {
112
- "types": "./state/testing/daffodil-product-composite-state-testing.d.ts",
113
- "esm2020": "./esm2020/state/testing/daffodil-product-composite-state-testing.mjs",
114
- "es2020": "./fesm2020/daffodil-product-composite-state-testing.mjs",
115
- "es2015": "./fesm2015/daffodil-product-composite-state-testing.mjs",
116
- "node": "./fesm2015/daffodil-product-composite-state-testing.mjs",
117
- "default": "./fesm2020/daffodil-product-composite-state-testing.mjs"
118
- },
119
- "./testing": {
120
- "types": "./testing/daffodil-product-composite-testing.d.ts",
121
- "esm2020": "./esm2020/testing/daffodil-product-composite-testing.mjs",
122
- "es2020": "./fesm2020/daffodil-product-composite-testing.mjs",
123
- "es2015": "./fesm2015/daffodil-product-composite-testing.mjs",
124
- "node": "./fesm2015/daffodil-product-composite-testing.mjs",
125
- "default": "./fesm2020/daffodil-product-composite-testing.mjs"
126
- }
127
- },
128
- "sideEffects": false,
129
- "dependencies": {
130
- "tslib": "^2.3.0"
131
- }
132
- }
1
+ {"name":"@daffodil/product-composite","nx":{"targets":{"build":{"outputs":["{workspaceRoot}/dist/product-composite"]}}},"version":"0.59.1","description":"Interfaces built for daffodil/state","repository":{"type":"git","url":"https://github.com/graycoreio/daffodil"},"author":"Graycore LLC","license":"MIT","bugs":{"url":"https://github.com/graycoreio/daffodil/issues"},"publishConfig":{"directory":"../../dist/product-composite"},"homepage":"https://github.com/graycoreio/daffodil","peerDependencies":{"@angular/common":"^13.0.0","@angular/core":"^13.0.0","@daffodil/core":"0.59.1","@daffodil/product":"0.59.1","@ngrx/effects":"^13.0.0","@ngrx/entity":"^13.0.0","@ngrx/store":"^13.0.0","rxjs":"7.5.5"},"optionalDependencies":{"@apollo/client":"^3.0.0","@daffodil/driver":"0.59.1","@daffodil/product":"0.59.1","angular-in-memory-web-api":"^0.13.0","apollo-angular":"^3.0.1","@faker-js/faker":"^7.6.0"},"module":"fesm2015/daffodil-product-composite.mjs","es2020":"fesm2020/daffodil-product-composite.mjs","esm2020":"esm2020/daffodil-product-composite.mjs","fesm2020":"fesm2020/daffodil-product-composite.mjs","fesm2015":"fesm2015/daffodil-product-composite.mjs","typings":"daffodil-product-composite.d.ts","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./daffodil-product-composite.d.ts","esm2020":"./esm2020/daffodil-product-composite.mjs","es2020":"./fesm2020/daffodil-product-composite.mjs","es2015":"./fesm2015/daffodil-product-composite.mjs","node":"./fesm2015/daffodil-product-composite.mjs","default":"./fesm2020/daffodil-product-composite.mjs"},"./driver/in-memory":{"types":"./driver/in-memory/daffodil-product-composite-driver-in-memory.d.ts","esm2020":"./esm2020/driver/in-memory/daffodil-product-composite-driver-in-memory.mjs","es2020":"./fesm2020/daffodil-product-composite-driver-in-memory.mjs","es2015":"./fesm2015/daffodil-product-composite-driver-in-memory.mjs","node":"./fesm2015/daffodil-product-composite-driver-in-memory.mjs","default":"./fesm2020/daffodil-product-composite-driver-in-memory.mjs"},"./driver/magento":{"types":"./driver/magento/daffodil-product-composite-driver-magento.d.ts","esm2020":"./esm2020/driver/magento/daffodil-product-composite-driver-magento.mjs","es2020":"./fesm2020/daffodil-product-composite-driver-magento.mjs","es2015":"./fesm2015/daffodil-product-composite-driver-magento.mjs","node":"./fesm2015/daffodil-product-composite-driver-magento.mjs","default":"./fesm2020/daffodil-product-composite-driver-magento.mjs"},"./driver/magento/testing":{"types":"./driver/magento/testing/daffodil-product-composite-driver-magento-testing.d.ts","esm2020":"./esm2020/driver/magento/testing/daffodil-product-composite-driver-magento-testing.mjs","es2020":"./fesm2020/daffodil-product-composite-driver-magento-testing.mjs","es2015":"./fesm2015/daffodil-product-composite-driver-magento-testing.mjs","node":"./fesm2015/daffodil-product-composite-driver-magento-testing.mjs","default":"./fesm2020/daffodil-product-composite-driver-magento-testing.mjs"},"./driver/testing":{"types":"./driver/testing/daffodil-product-composite-driver-testing.d.ts","esm2020":"./esm2020/driver/testing/daffodil-product-composite-driver-testing.mjs","es2020":"./fesm2020/daffodil-product-composite-driver-testing.mjs","es2015":"./fesm2015/daffodil-product-composite-driver-testing.mjs","node":"./fesm2015/daffodil-product-composite-driver-testing.mjs","default":"./fesm2020/daffodil-product-composite-driver-testing.mjs"},"./routing":{"types":"./routing/daffodil-product-composite-routing.d.ts","esm2020":"./esm2020/routing/daffodil-product-composite-routing.mjs","es2020":"./fesm2020/daffodil-product-composite-routing.mjs","es2015":"./fesm2015/daffodil-product-composite-routing.mjs","node":"./fesm2015/daffodil-product-composite-routing.mjs","default":"./fesm2020/daffodil-product-composite-routing.mjs"},"./state":{"types":"./state/daffodil-product-composite-state.d.ts","esm2020":"./esm2020/state/daffodil-product-composite-state.mjs","es2020":"./fesm2020/daffodil-product-composite-state.mjs","es2015":"./fesm2015/daffodil-product-composite-state.mjs","node":"./fesm2015/daffodil-product-composite-state.mjs","default":"./fesm2020/daffodil-product-composite-state.mjs"},"./state/testing":{"types":"./state/testing/daffodil-product-composite-state-testing.d.ts","esm2020":"./esm2020/state/testing/daffodil-product-composite-state-testing.mjs","es2020":"./fesm2020/daffodil-product-composite-state-testing.mjs","es2015":"./fesm2015/daffodil-product-composite-state-testing.mjs","node":"./fesm2015/daffodil-product-composite-state-testing.mjs","default":"./fesm2020/daffodil-product-composite-state-testing.mjs"},"./testing":{"types":"./testing/daffodil-product-composite-testing.d.ts","esm2020":"./esm2020/testing/daffodil-product-composite-testing.mjs","es2020":"./fesm2020/daffodil-product-composite-testing.mjs","es2015":"./fesm2015/daffodil-product-composite-testing.mjs","node":"./fesm2015/daffodil-product-composite-testing.mjs","default":"./fesm2020/daffodil-product-composite-testing.mjs"}},"sideEffects":false,"dependencies":{"tslib":"^2.3.0"}}
@@ -1,22 +1,18 @@
1
- import { ActivatedRoute } from '@angular/router';
2
1
  import { Actions } from '@ngrx/effects';
3
2
  import { EMPTY, Observable } from 'rxjs';
4
3
  import { DaffCompositeProduct } from '@daffodil/product-composite';
5
4
  import { DaffCompositeProductApplyOption } from '@daffodil/product-composite/state';
6
5
  import { DaffProductCompositeRoutingConfig } from '../config/public_api';
6
+ import { DaffProductCompositeQueryParamService } from '../services/query-param.service';
7
7
  import * as i0 from "@angular/core";
8
8
  /**
9
9
  * Handles composite product specific actions for the product page.
10
10
  */
11
11
  export declare class DaffProductCompositePageEffects<T extends DaffCompositeProduct = DaffCompositeProduct> {
12
12
  private actions$;
13
- private route;
13
+ private paramGetter;
14
14
  private config;
15
- constructor(actions$: Actions, route: ActivatedRoute, config: DaffProductCompositeRoutingConfig);
16
- /**
17
- * Get the value of the configured composite selection query param.
18
- */
19
- private getQueryParam;
15
+ constructor(actions$: Actions, paramGetter: DaffProductCompositeQueryParamService, config: DaffProductCompositeRoutingConfig);
20
16
  /**
21
17
  * Applies composite item options based on the value of the configured query param.
22
18
  */
@@ -1,10 +1 @@
1
- {
2
- "name": "@daffodil/product-composite/routing",
3
- "module": "../fesm2015/daffodil-product-composite-routing.mjs",
4
- "es2020": "../fesm2020/daffodil-product-composite-routing.mjs",
5
- "esm2020": "../esm2020/routing/daffodil-product-composite-routing.mjs",
6
- "fesm2020": "../fesm2020/daffodil-product-composite-routing.mjs",
7
- "fesm2015": "../fesm2015/daffodil-product-composite-routing.mjs",
8
- "typings": "daffodil-product-composite-routing.d.ts",
9
- "sideEffects": false
10
- }
1
+ {"name":"@daffodil/product-composite/routing","module":"../fesm2015/daffodil-product-composite-routing.mjs","es2020":"../fesm2020/daffodil-product-composite-routing.mjs","esm2020":"../esm2020/routing/daffodil-product-composite-routing.mjs","fesm2020":"../fesm2020/daffodil-product-composite-routing.mjs","fesm2015":"../fesm2015/daffodil-product-composite-routing.mjs","typings":"daffodil-product-composite-routing.d.ts","sideEffects":false,"version":"0.59.1"}
@@ -0,0 +1,13 @@
1
+ import { DaffProductCompositeRoutingConfig } from '../config/public_api';
2
+ import * as i0 from "@angular/core";
3
+ export declare class DaffProductCompositeQueryParamService {
4
+ private document;
5
+ private config;
6
+ constructor(document: any, config: DaffProductCompositeRoutingConfig);
7
+ /**
8
+ * Get the value of the configured composite selection query param.
9
+ */
10
+ get(): string;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<DaffProductCompositeQueryParamService, never>;
12
+ static ɵprov: i0.ɵɵInjectableDeclaration<DaffProductCompositeQueryParamService>;
13
+ }
@@ -1,10 +1 @@
1
- {
2
- "name": "@daffodil/product-composite/state",
3
- "module": "../fesm2015/daffodil-product-composite-state.mjs",
4
- "es2020": "../fesm2020/daffodil-product-composite-state.mjs",
5
- "esm2020": "../esm2020/state/daffodil-product-composite-state.mjs",
6
- "fesm2020": "../fesm2020/daffodil-product-composite-state.mjs",
7
- "fesm2015": "../fesm2015/daffodil-product-composite-state.mjs",
8
- "typings": "daffodil-product-composite-state.d.ts",
9
- "sideEffects": false
10
- }
1
+ {"name":"@daffodil/product-composite/state","module":"../fesm2015/daffodil-product-composite-state.mjs","es2020":"../fesm2020/daffodil-product-composite-state.mjs","esm2020":"../esm2020/state/daffodil-product-composite-state.mjs","fesm2020":"../fesm2020/daffodil-product-composite-state.mjs","fesm2015":"../fesm2015/daffodil-product-composite-state.mjs","typings":"daffodil-product-composite-state.d.ts","sideEffects":false,"version":"0.59.1"}
@@ -1,10 +1 @@
1
- {
2
- "name": "@daffodil/product-composite/state/testing",
3
- "module": "../../fesm2015/daffodil-product-composite-state-testing.mjs",
4
- "es2020": "../../fesm2020/daffodil-product-composite-state-testing.mjs",
5
- "esm2020": "../../esm2020/state/testing/daffodil-product-composite-state-testing.mjs",
6
- "fesm2020": "../../fesm2020/daffodil-product-composite-state-testing.mjs",
7
- "fesm2015": "../../fesm2015/daffodil-product-composite-state-testing.mjs",
8
- "typings": "daffodil-product-composite-state-testing.d.ts",
9
- "sideEffects": false
10
- }
1
+ {"name":"@daffodil/product-composite/state/testing","module":"../../fesm2015/daffodil-product-composite-state-testing.mjs","es2020":"../../fesm2020/daffodil-product-composite-state-testing.mjs","esm2020":"../../esm2020/state/testing/daffodil-product-composite-state-testing.mjs","fesm2020":"../../fesm2020/daffodil-product-composite-state-testing.mjs","fesm2015":"../../fesm2015/daffodil-product-composite-state-testing.mjs","typings":"daffodil-product-composite-state-testing.d.ts","sideEffects":false,"version":"0.59.1"}
@@ -1,10 +1 @@
1
- {
2
- "name": "@daffodil/product-composite/testing",
3
- "module": "../fesm2015/daffodil-product-composite-testing.mjs",
4
- "es2020": "../fesm2020/daffodil-product-composite-testing.mjs",
5
- "esm2020": "../esm2020/testing/daffodil-product-composite-testing.mjs",
6
- "fesm2020": "../fesm2020/daffodil-product-composite-testing.mjs",
7
- "fesm2015": "../fesm2015/daffodil-product-composite-testing.mjs",
8
- "typings": "daffodil-product-composite-testing.d.ts",
9
- "sideEffects": false
10
- }
1
+ {"name":"@daffodil/product-composite/testing","module":"../fesm2015/daffodil-product-composite-testing.mjs","es2020":"../fesm2020/daffodil-product-composite-testing.mjs","esm2020":"../esm2020/testing/daffodil-product-composite-testing.mjs","fesm2020":"../fesm2020/daffodil-product-composite-testing.mjs","fesm2015":"../fesm2015/daffodil-product-composite-testing.mjs","typings":"daffodil-product-composite-testing.d.ts","sideEffects":false,"version":"0.59.1"}