@daffodil/product-composite 0.44.0 → 0.45.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/esm2020/driver/in-memory/in-memory.module.mjs +4 -4
  2. package/esm2020/driver/magento/composite-product-driver.module.mjs +4 -4
  3. package/esm2020/driver/magento/testing/factories/bundle/bundle-item-option.factory.mjs +3 -3
  4. package/esm2020/driver/magento/testing/factories/bundle/bundle-item.factory.mjs +3 -3
  5. package/esm2020/driver/magento/testing/factories/bundle/bundle.factory.mjs +3 -3
  6. package/esm2020/driver/testing/testing.module.mjs +4 -4
  7. package/esm2020/state/composite-product-state.module.mjs +4 -4
  8. package/esm2020/state/facades/composite-product/composite-product.facade.mjs +3 -3
  9. package/esm2020/state/testing/mock-composite-product-facade.mjs +3 -3
  10. package/esm2020/state/testing/product-testing.module.mjs +4 -4
  11. package/esm2020/testing/factories/composite-product.factory.mjs +3 -3
  12. package/fesm2015/daffodil-product-composite-driver-in-memory.mjs +3 -3
  13. package/fesm2015/daffodil-product-composite-driver-in-memory.mjs.map +1 -1
  14. package/fesm2015/daffodil-product-composite-driver-magento-testing.mjs +6 -6
  15. package/fesm2015/daffodil-product-composite-driver-magento-testing.mjs.map +1 -1
  16. package/fesm2015/daffodil-product-composite-driver-magento.mjs +3 -3
  17. package/fesm2015/daffodil-product-composite-driver-magento.mjs.map +1 -1
  18. package/fesm2015/daffodil-product-composite-driver-testing.mjs +3 -3
  19. package/fesm2015/daffodil-product-composite-driver-testing.mjs.map +1 -1
  20. package/fesm2015/daffodil-product-composite-state-testing.mjs +5 -5
  21. package/fesm2015/daffodil-product-composite-state-testing.mjs.map +1 -1
  22. package/fesm2015/daffodil-product-composite-state.mjs +5 -5
  23. package/fesm2015/daffodil-product-composite-state.mjs.map +1 -1
  24. package/fesm2015/daffodil-product-composite-testing.mjs +2 -2
  25. package/fesm2015/daffodil-product-composite-testing.mjs.map +1 -1
  26. package/fesm2020/daffodil-product-composite-driver-in-memory.mjs +3 -3
  27. package/fesm2020/daffodil-product-composite-driver-in-memory.mjs.map +1 -1
  28. package/fesm2020/daffodil-product-composite-driver-magento-testing.mjs +6 -6
  29. package/fesm2020/daffodil-product-composite-driver-magento-testing.mjs.map +1 -1
  30. package/fesm2020/daffodil-product-composite-driver-magento.mjs +3 -3
  31. package/fesm2020/daffodil-product-composite-driver-magento.mjs.map +1 -1
  32. package/fesm2020/daffodil-product-composite-driver-testing.mjs +3 -3
  33. package/fesm2020/daffodil-product-composite-driver-testing.mjs.map +1 -1
  34. package/fesm2020/daffodil-product-composite-state-testing.mjs +5 -5
  35. package/fesm2020/daffodil-product-composite-state-testing.mjs.map +1 -1
  36. package/fesm2020/daffodil-product-composite-state.mjs +5 -5
  37. package/fesm2020/daffodil-product-composite-state.mjs.map +1 -1
  38. package/fesm2020/daffodil-product-composite-testing.mjs +2 -2
  39. package/fesm2020/daffodil-product-composite-testing.mjs.map +1 -1
  40. package/package.json +5 -5
@@ -21,9 +21,9 @@ class DaffCompositeProductTestingDriverModule {
21
21
  };
22
22
  }
23
23
  }
24
- /** @nocollapse */ /** @nocollapse */ DaffCompositeProductTestingDriverModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductTestingDriverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
25
- /** @nocollapse */ /** @nocollapse */ DaffCompositeProductTestingDriverModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductTestingDriverModule, imports: [CommonModule] });
26
- /** @nocollapse */ /** @nocollapse */ DaffCompositeProductTestingDriverModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductTestingDriverModule, imports: [[
24
+ /** @nocollapse */ DaffCompositeProductTestingDriverModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductTestingDriverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
25
+ /** @nocollapse */ DaffCompositeProductTestingDriverModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductTestingDriverModule, imports: [CommonModule] });
26
+ /** @nocollapse */ DaffCompositeProductTestingDriverModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductTestingDriverModule, imports: [[
27
27
  CommonModule,
28
28
  ]] });
29
29
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductTestingDriverModule, decorators: [{
@@ -1 +1 @@
1
- {"version":3,"file":"daffodil-product-composite-driver-testing.mjs","sources":["../../../libs/product-composite/driver/testing/src/testing.module.ts","../../../libs/product-composite/driver/testing/src/daffodil-product-composite-driver-testing.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {\n NgModule,\n ModuleWithProviders,\n} from '@angular/core';\n\nimport { DaffCompositeProductFactory } from '@daffodil/product-composite/testing';\nimport { DAFF_PRODUCT_TYPE_FACTORIES } from '@daffodil/product/testing';\n\n/**\n * Module for providing the composite product factory to the product kind factory.\n */\n@NgModule({\n imports: [\n CommonModule,\n ],\n})\nexport class DaffCompositeProductTestingDriverModule {\n static forRoot(): ModuleWithProviders<DaffCompositeProductTestingDriverModule> {\n return {\n ngModule: DaffCompositeProductTestingDriverModule,\n providers: [\n {\n provide: DAFF_PRODUCT_TYPE_FACTORIES,\n useExisting: DaffCompositeProductFactory,\n multi: true,\n },\n ],\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AASA;;AAEG;MAMU,uCAAuC,CAAA;AAClD,IAAA,OAAO,OAAO,GAAA;QACZ,OAAO;AACL,YAAA,QAAQ,EAAE,uCAAuC;AACjD,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,OAAO,EAAE,2BAA2B;AACpC,oBAAA,WAAW,EAAE,2BAA2B;AACxC,oBAAA,KAAK,EAAE,IAAI;AACZ,iBAAA;AACF,aAAA;SACF,CAAC;KACH;;0KAZU,uCAAuC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAvC,sCAAA,uCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uCAAuC,YAHhD,YAAY,CAAA,EAAA,CAAA,CAAA;AAGH,sCAAA,uCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uCAAuC,EAJzC,OAAA,EAAA,CAAA;YACP,YAAY;SACb,CAAA,EAAA,CAAA,CAAA;2FAEU,uCAAuC,EAAA,UAAA,EAAA,CAAA;kBALnD,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;iBACF,CAAA;;;AChBD;;AAEG;;;;"}
1
+ {"version":3,"file":"daffodil-product-composite-driver-testing.mjs","sources":["../../../libs/product-composite/driver/testing/src/testing.module.ts","../../../libs/product-composite/driver/testing/src/daffodil-product-composite-driver-testing.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {\n NgModule,\n ModuleWithProviders,\n} from '@angular/core';\n\nimport { DaffCompositeProductFactory } from '@daffodil/product-composite/testing';\nimport { DAFF_PRODUCT_TYPE_FACTORIES } from '@daffodil/product/testing';\n\n/**\n * Module for providing the composite product factory to the product kind factory.\n */\n@NgModule({\n imports: [\n CommonModule,\n ],\n})\nexport class DaffCompositeProductTestingDriverModule {\n static forRoot(): ModuleWithProviders<DaffCompositeProductTestingDriverModule> {\n return {\n ngModule: DaffCompositeProductTestingDriverModule,\n providers: [\n {\n provide: DAFF_PRODUCT_TYPE_FACTORIES,\n useExisting: DaffCompositeProductFactory,\n multi: true,\n },\n ],\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AASA;;AAEG;MAMU,uCAAuC,CAAA;AAClD,IAAA,OAAO,OAAO,GAAA;QACZ,OAAO;AACL,YAAA,QAAQ,EAAE,uCAAuC;AACjD,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,OAAO,EAAE,2BAA2B;AACpC,oBAAA,WAAW,EAAE,2BAA2B;AACxC,oBAAA,KAAK,EAAE,IAAI;AACZ,iBAAA;AACF,aAAA;SACF,CAAC;KACH;;uJAZU,uCAAuC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAvC,mBAAA,uCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uCAAuC,YAHhD,YAAY,CAAA,EAAA,CAAA,CAAA;AAGH,mBAAA,uCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uCAAuC,EAJzC,OAAA,EAAA,CAAA;YACP,YAAY;SACb,CAAA,EAAA,CAAA,CAAA;2FAEU,uCAAuC,EAAA,UAAA,EAAA,CAAA;kBALnD,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;iBACF,CAAA;;;AChBD;;AAEG;;;;"}
@@ -39,8 +39,8 @@ class MockDaffCompositeProductFacade {
39
39
  }
40
40
  ;
41
41
  }
42
- /** @nocollapse */ /** @nocollapse */ MockDaffCompositeProductFacade.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: MockDaffCompositeProductFacade, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
43
- /** @nocollapse */ /** @nocollapse */ MockDaffCompositeProductFacade.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: MockDaffCompositeProductFacade, providedIn: 'root' });
42
+ /** @nocollapse */ MockDaffCompositeProductFacade.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: MockDaffCompositeProductFacade, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
43
+ /** @nocollapse */ MockDaffCompositeProductFacade.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: MockDaffCompositeProductFacade, providedIn: 'root' });
44
44
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: MockDaffCompositeProductFacade, decorators: [{
45
45
  type: Injectable,
46
46
  args: [{ providedIn: 'root' }]
@@ -48,9 +48,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
48
48
 
49
49
  class DaffCompositeProductStateTestingModule {
50
50
  }
51
- /** @nocollapse */ /** @nocollapse */ DaffCompositeProductStateTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductStateTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
52
- /** @nocollapse */ /** @nocollapse */ DaffCompositeProductStateTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductStateTestingModule });
53
- /** @nocollapse */ /** @nocollapse */ DaffCompositeProductStateTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductStateTestingModule, providers: [
51
+ /** @nocollapse */ DaffCompositeProductStateTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductStateTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
52
+ /** @nocollapse */ DaffCompositeProductStateTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductStateTestingModule });
53
+ /** @nocollapse */ DaffCompositeProductStateTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductStateTestingModule, providers: [
54
54
  { provide: DaffCompositeProductFacade, useExisting: MockDaffCompositeProductFacade },
55
55
  ] });
56
56
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductStateTestingModule, decorators: [{
@@ -1 +1 @@
1
- {"version":3,"file":"daffodil-product-composite-state-testing.mjs","sources":["../../../libs/product-composite/state/testing/src/mock-composite-product-facade.ts","../../../libs/product-composite/state/testing/src/product-testing.module.ts","../../../libs/product-composite/state/testing/src/daffodil-product-composite-state-testing.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Dictionary } from '@ngrx/entity';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { DaffPriceRange } from '@daffodil/product';\nimport {\n DaffCompositeProductItemOption,\n DaffCompositeProduct,\n DaffCompositeProductItem,\n DaffCompositeConfigurationItem,\n} from '@daffodil/product-composite';\nimport { DaffCompositeProductFacadeInterface } from '@daffodil/product-composite/state';\n\n/**\n * @inheritdoc\n */\n@Injectable({ providedIn: 'root' })\nexport class MockDaffCompositeProductFacade implements DaffCompositeProductFacadeInterface {\n getRequiredItemPricesForConfiguration(id: DaffCompositeProduct['id'], configuration?: Dictionary<DaffCompositeConfigurationItem>): BehaviorSubject<DaffPriceRange> {\n return new BehaviorSubject(null);\n }\n getOptionalItemPricesForConfiguration(id: DaffCompositeProduct['id'], configuration?: Dictionary<DaffCompositeConfigurationItem>): BehaviorSubject<DaffPriceRange> {\n return new BehaviorSubject(null);\n }\n getPricesAsCurrentlyConfigured(id: DaffCompositeProduct['id']): BehaviorSubject<DaffPriceRange> {\n return new BehaviorSubject(null);\n }\n getAppliedOptions(id: DaffCompositeProduct['id']): BehaviorSubject<Dictionary<DaffCompositeProductItemOption>> {\n return new BehaviorSubject({});\n }\n getDiscountAmount(id: DaffCompositeProduct['id']): BehaviorSubject<number> {\n return new BehaviorSubject(null);\n }\n getDiscountPercent(id: DaffCompositeProduct['id']): BehaviorSubject<number> {\n return new BehaviorSubject(null);\n }\n isItemRequired(id: DaffCompositeProduct['id'], item_id: DaffCompositeProductItem['id']): BehaviorSubject<boolean> {\n return new BehaviorSubject(false);\n }\n dispatch(action) {};\n hasDiscount(priceRange: DaffPriceRange): boolean {\n return false;\n };\n hasPriceRange(priceRange: DaffPriceRange): boolean {\n return false;\n };\n}\n","import { NgModule } from '@angular/core';\n\nimport { DaffCompositeProductFacade } from '@daffodil/product-composite/state';\n\nimport { MockDaffCompositeProductFacade } from './mock-composite-product-facade';\n\n@NgModule({\n providers: [\n { provide: DaffCompositeProductFacade, useExisting: MockDaffCompositeProductFacade },\n ],\n})\nexport class DaffCompositeProductStateTestingModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAaA;;AAEG;MAEU,8BAA8B,CAAA;IACzC,qCAAqC,CAAC,EAA8B,EAAE,aAA0D,EAAA;AAC9H,QAAA,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;KAClC;IACD,qCAAqC,CAAC,EAA8B,EAAE,aAA0D,EAAA;AAC9H,QAAA,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;KAClC;AACD,IAAA,8BAA8B,CAAC,EAA8B,EAAA;AAC3D,QAAA,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;KAClC;AACD,IAAA,iBAAiB,CAAC,EAA8B,EAAA;AAC9C,QAAA,OAAO,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;KAChC;AACD,IAAA,iBAAiB,CAAC,EAA8B,EAAA;AAC9C,QAAA,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;KAClC;AACD,IAAA,kBAAkB,CAAC,EAA8B,EAAA;AAC/C,QAAA,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;KAClC;IACD,cAAc,CAAC,EAA8B,EAAE,OAAuC,EAAA;AACpF,QAAA,OAAO,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;KACnC;IACD,QAAQ,CAAC,MAAM,EAAA,GAAI;;AACnB,IAAA,WAAW,CAAC,UAA0B,EAAA;AACpC,QAAA,OAAO,KAAK,CAAC;KACd;;AACD,IAAA,aAAa,CAAC,UAA0B,EAAA;AACtC,QAAA,OAAO,KAAK,CAAC;KACd;;;iKA5BU,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA9B,sCAAA,8BAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,8BAA8B,cADjB,MAAM,EAAA,CAAA,CAAA;2FACnB,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAD1C,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;MCLrB,sCAAsC,CAAA;;yKAAtC,sCAAsC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;0KAAtC,sCAAsC,EAAA,CAAA,CAAA;AAAtC,sCAAA,sCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sCAAsC,EAJtC,SAAA,EAAA;AACT,QAAA,EAAE,OAAO,EAAE,0BAA0B,EAAE,WAAW,EAAE,8BAA8B,EAAE;AACrF,KAAA,EAAA,CAAA,CAAA;2FAEU,sCAAsC,EAAA,UAAA,EAAA,CAAA;kBALlD,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,SAAS,EAAE;AACT,wBAAA,EAAE,OAAO,EAAE,0BAA0B,EAAE,WAAW,EAAE,8BAA8B,EAAE;AACrF,qBAAA;iBACF,CAAA;;;ACVD;;AAEG;;;;"}
1
+ {"version":3,"file":"daffodil-product-composite-state-testing.mjs","sources":["../../../libs/product-composite/state/testing/src/mock-composite-product-facade.ts","../../../libs/product-composite/state/testing/src/product-testing.module.ts","../../../libs/product-composite/state/testing/src/daffodil-product-composite-state-testing.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Dictionary } from '@ngrx/entity';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { DaffPriceRange } from '@daffodil/product';\nimport {\n DaffCompositeProductItemOption,\n DaffCompositeProduct,\n DaffCompositeProductItem,\n DaffCompositeConfigurationItem,\n} from '@daffodil/product-composite';\nimport { DaffCompositeProductFacadeInterface } from '@daffodil/product-composite/state';\n\n/**\n * @inheritdoc\n */\n@Injectable({ providedIn: 'root' })\nexport class MockDaffCompositeProductFacade implements DaffCompositeProductFacadeInterface {\n getRequiredItemPricesForConfiguration(id: DaffCompositeProduct['id'], configuration?: Dictionary<DaffCompositeConfigurationItem>): BehaviorSubject<DaffPriceRange> {\n return new BehaviorSubject(null);\n }\n getOptionalItemPricesForConfiguration(id: DaffCompositeProduct['id'], configuration?: Dictionary<DaffCompositeConfigurationItem>): BehaviorSubject<DaffPriceRange> {\n return new BehaviorSubject(null);\n }\n getPricesAsCurrentlyConfigured(id: DaffCompositeProduct['id']): BehaviorSubject<DaffPriceRange> {\n return new BehaviorSubject(null);\n }\n getAppliedOptions(id: DaffCompositeProduct['id']): BehaviorSubject<Dictionary<DaffCompositeProductItemOption>> {\n return new BehaviorSubject({});\n }\n getDiscountAmount(id: DaffCompositeProduct['id']): BehaviorSubject<number> {\n return new BehaviorSubject(null);\n }\n getDiscountPercent(id: DaffCompositeProduct['id']): BehaviorSubject<number> {\n return new BehaviorSubject(null);\n }\n isItemRequired(id: DaffCompositeProduct['id'], item_id: DaffCompositeProductItem['id']): BehaviorSubject<boolean> {\n return new BehaviorSubject(false);\n }\n dispatch(action) {};\n hasDiscount(priceRange: DaffPriceRange): boolean {\n return false;\n };\n hasPriceRange(priceRange: DaffPriceRange): boolean {\n return false;\n };\n}\n","import { NgModule } from '@angular/core';\n\nimport { DaffCompositeProductFacade } from '@daffodil/product-composite/state';\n\nimport { MockDaffCompositeProductFacade } from './mock-composite-product-facade';\n\n@NgModule({\n providers: [\n { provide: DaffCompositeProductFacade, useExisting: MockDaffCompositeProductFacade },\n ],\n})\nexport class DaffCompositeProductStateTestingModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAaA;;AAEG;MAEU,8BAA8B,CAAA;IACzC,qCAAqC,CAAC,EAA8B,EAAE,aAA0D,EAAA;AAC9H,QAAA,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;KAClC;IACD,qCAAqC,CAAC,EAA8B,EAAE,aAA0D,EAAA;AAC9H,QAAA,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;KAClC;AACD,IAAA,8BAA8B,CAAC,EAA8B,EAAA;AAC3D,QAAA,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;KAClC;AACD,IAAA,iBAAiB,CAAC,EAA8B,EAAA;AAC9C,QAAA,OAAO,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;KAChC;AACD,IAAA,iBAAiB,CAAC,EAA8B,EAAA;AAC9C,QAAA,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;KAClC;AACD,IAAA,kBAAkB,CAAC,EAA8B,EAAA;AAC/C,QAAA,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;KAClC;IACD,cAAc,CAAC,EAA8B,EAAE,OAAuC,EAAA;AACpF,QAAA,OAAO,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;KACnC;IACD,QAAQ,CAAC,MAAM,EAAA,GAAI;;AACnB,IAAA,WAAW,CAAC,UAA0B,EAAA;AACpC,QAAA,OAAO,KAAK,CAAC;KACd;;AACD,IAAA,aAAa,CAAC,UAA0B,EAAA;AACtC,QAAA,OAAO,KAAK,CAAC;KACd;;;8IA5BU,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA9B,mBAAA,8BAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,8BAA8B,cADjB,MAAM,EAAA,CAAA,CAAA;2FACnB,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAD1C,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;MCLrB,sCAAsC,CAAA;;sJAAtC,sCAAsC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;uJAAtC,sCAAsC,EAAA,CAAA,CAAA;AAAtC,mBAAA,sCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sCAAsC,EAJtC,SAAA,EAAA;AACT,QAAA,EAAE,OAAO,EAAE,0BAA0B,EAAE,WAAW,EAAE,8BAA8B,EAAE;AACrF,KAAA,EAAA,CAAA,CAAA;2FAEU,sCAAsC,EAAA,UAAA,EAAA,CAAA;kBALlD,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,SAAS,EAAE;AACT,wBAAA,EAAE,OAAO,EAAE,0BAA0B,EAAE,WAAW,EAAE,8BAA8B,EAAE;AACrF,qBAAA;iBACF,CAAA;;;ACVD;;AAEG;;;;"}
@@ -385,8 +385,8 @@ class DaffCompositeProductFacade {
385
385
  this.store.dispatch(action);
386
386
  }
387
387
  }
388
- /** @nocollapse */ /** @nocollapse */ DaffCompositeProductFacade.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductFacade, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable });
389
- /** @nocollapse */ /** @nocollapse */ DaffCompositeProductFacade.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductFacade, providedIn: 'root' });
388
+ /** @nocollapse */ DaffCompositeProductFacade.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductFacade, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable });
389
+ /** @nocollapse */ DaffCompositeProductFacade.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductFacade, providedIn: 'root' });
390
390
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductFacade, decorators: [{
391
391
  type: Injectable,
392
392
  args: [{
@@ -468,9 +468,9 @@ const DAFF_PRODUCT_COMPOSITE_REDUCERS = new InjectionToken('DAFF_PRODUCT_COMPOSI
468
468
  */
469
469
  class DaffCompositeProductStateModule {
470
470
  }
471
- /** @nocollapse */ /** @nocollapse */ DaffCompositeProductStateModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductStateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
472
- /** @nocollapse */ /** @nocollapse */ DaffCompositeProductStateModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductStateModule, imports: [i1.StoreFeatureModule] });
473
- /** @nocollapse */ /** @nocollapse */ DaffCompositeProductStateModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductStateModule, imports: [[
471
+ /** @nocollapse */ DaffCompositeProductStateModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductStateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
472
+ /** @nocollapse */ DaffCompositeProductStateModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductStateModule, imports: [i1.StoreFeatureModule] });
473
+ /** @nocollapse */ DaffCompositeProductStateModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductStateModule, imports: [[
474
474
  StoreModule.forFeature(DAFF_COMPOSITE_PRODUCT_STORE_FEATURE_KEY, DAFF_PRODUCT_COMPOSITE_REDUCERS),
475
475
  ]] });
476
476
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductStateModule, decorators: [{
@@ -1 +1 @@
1
- {"version":3,"file":"daffodil-product-composite-state.mjs","sources":["../../../libs/product-composite/state/src/actions/composite-product.actions.ts","../../../libs/product-composite/state/src/reducers/composite-product-entities/composite-product-entities-reducer-adapter.ts","../../../libs/product-composite/state/src/reducers/composite-product-store-feature-key.ts","../../../libs/product-composite/state/src/selectors/feature.selector.ts","../../../libs/product-composite/state/src/selectors/composite-product-entities/composite-product-entities.selectors.ts","../../../libs/product-composite/state/src/selectors/composite-product/composite-product.selectors.ts","../../../libs/product-composite/state/src/selectors/all.selector.ts","../../../libs/product-composite/state/src/facades/composite-product/composite-product.facade.ts","../../../libs/product-composite/state/src/reducers/composite-product-entities/composite-product-entities.reducer.ts","../../../libs/product-composite/state/src/reducers/composite-product-reducers.ts","../../../libs/product-composite/state/src/reducers/injection-tokens/extra.token.ts","../../../libs/product-composite/state/src/reducers/injection-tokens/reducers.token.ts","../../../libs/product-composite/state/src/composite-product-state.module.ts","../../../libs/product-composite/state/src/daffodil-product-composite-state.ts"],"sourcesContent":["import { Action } from '@ngrx/store';\n\nimport {\n DaffCompositeProduct,\n DaffCompositeProductItem,\n DaffCompositeProductItemOption,\n} from '@daffodil/product-composite';\n\n/**\n * Action types for Composite Product Actions.\n */\nexport enum DaffCompositeProductActionTypes {\n CompositeProductApplyOptionAction = '[Composite Product] Composite Product Apply Option Action'\n}\n\n/**\n * Applies a product option to a particular composite product.\n *\n * @param id - Id of the Composite Product\n * @param itemId - Id of the product item.\n * @param optionId - Id of the option of the product item that is chosen.\n */\nexport class DaffCompositeProductApplyOption<T extends DaffCompositeProduct> implements Action {\n readonly type = DaffCompositeProductActionTypes.CompositeProductApplyOptionAction;\n\n constructor(public id: T['id'], public itemId: DaffCompositeProductItem['id'], public optionId: DaffCompositeProductItemOption['id'], public qty?: number) {}\n}\n\nexport type DaffCompositeProductActions<T extends DaffCompositeProduct = DaffCompositeProduct> =\n\t| DaffCompositeProductApplyOption<T>;\n","import {\n createEntityAdapter,\n EntityState,\n} from '@ngrx/entity';\nimport { defaultMemoize } from '@ngrx/store';\n\nimport { DaffProductTypeEnum } from '@daffodil/product';\nimport {\n DaffCompositeProduct,\n DaffCompositeProductItem,\n DaffCompositeConfigurationItem,\n DaffCompositeProductItemOption,\n} from '@daffodil/product-composite';\n\nimport { DaffCompositeProductEntity } from './composite-product-entity';\n\n/**\n * Composite Product Item Options Adapter for changing/overwriting entity state.\n */\nexport class DaffCompositeProductAppliedOptionsEntitiesAdapter<T extends EntityState<DaffCompositeProductEntity> = EntityState<DaffCompositeProductEntity>> {\n /**\n * @docs-private\n */\n private _adapter = createEntityAdapter<DaffCompositeProductEntity>();\n\n /**\n * Gets the initial entity state.\n */\n getInitialState() {\n return this._adapter.getInitialState();\n }\n\n /**\n * Get the entity selectors.\n */\n getSelectors() {\n return this._adapter.getSelectors();\n }\n\n /**\n * Upserts the given composite products into state.\n */\n upsertProducts(state: T, ...products: DaffCompositeProduct[]): T {\n return this._adapter.upsertMany(\n this.mapOptionsEntities(products),\n state,\n );\n };\n\n /**\n * Apply the specified option for the given composite product item.\n */\n applyOption(state: T, productId: DaffCompositeProduct['id'], itemId: DaffCompositeProductItem['id'], optionId: DaffCompositeProductItemOption['id'], qty?: number) {\n return this._adapter.upsertOne(\n {\n id: productId,\n items: {\n ...state.entities[productId].items,\n [itemId]: {\n value: optionId,\n qty: qty ?? 1,\n },\n },\n },\n state,\n );\n }\n\n /**\n * @docs-private\n */\n private mapOptionsEntities(products: DaffCompositeProduct[]): DaffCompositeProductEntity[] {\n return products.filter(product => product.type === DaffProductTypeEnum.Composite)\n .map(product => this.buildCompositeProductAppliedOptionsEntity(product));\n }\n\n /**\n * @docs-private\n */\n private buildCompositeProductAppliedOptionsEntity(product: DaffCompositeProduct): DaffCompositeProductEntity {\n return {\n id: product.id,\n items: product.items.reduce((acc, item) => ({\n ...acc,\n [item.id]: this.getDefaultOption(item),\n }), {}),\n };\n }\n\n /**\n * Sets the default item option to the specified default option if it is in stock.\n * Does not set a default option if a default is not specified.\n * Does not set a default option but does set a default qty if the default is out of stock.\n *\n * @param item a DaffCompositeProductItem\n * @docs-private\n */\n private getDefaultOption(item: DaffCompositeProductItem): DaffCompositeConfigurationItem {\n const defaultOptionIndex = item.options.findIndex(option => option.is_default);\n\n if(defaultOptionIndex > -1) {\n return {\n value: item.options[defaultOptionIndex].in_stock ? item.options[defaultOptionIndex].id : null,\n qty: item.options[defaultOptionIndex].quantity,\n };\n } else {\n return { value: null, qty: null };\n }\n }\n}\n\n/**\n * Gets the composite product entity adapter singleton.\n */\nexport const daffCompositeProductAppliedOptionsEntitiesAdapter: () => DaffCompositeProductAppliedOptionsEntitiesAdapter = defaultMemoize(() => new DaffCompositeProductAppliedOptionsEntitiesAdapter()).memoized;\n","export const DAFF_COMPOSITE_PRODUCT_STORE_FEATURE_KEY = 'daffCompositeProduct';\n","import {\n createFeatureSelector,\n MemoizedSelector,\n} from '@ngrx/store';\n\nimport { DaffCompositeProductReducersState } from '../reducers/composite-product-reducers-state.interface';\nimport { DAFF_COMPOSITE_PRODUCT_STORE_FEATURE_KEY } from '../reducers/composite-product-store-feature-key';\n\n/**\n * An interface for the composite product feature state.\n */\nexport interface DaffCompositeProductFeatureMemoizedSelector {\n selectCompositeProductState: MemoizedSelector<Record<string, any>, DaffCompositeProductReducersState>;\n}\n\n/**\n * A function that returns a selector for the composite product feature state.\n */\nexport const getDaffCompositeProductFeatureSelector = (() => {\n let cache;\n return (): DaffCompositeProductFeatureMemoizedSelector => cache = cache\n ? cache\n : { selectCompositeProductState: createFeatureSelector<DaffCompositeProductReducersState>(DAFF_COMPOSITE_PRODUCT_STORE_FEATURE_KEY) };\n})();\n","import {\n EntityState,\n Dictionary,\n} from '@ngrx/entity';\nimport {\n createSelector,\n MemoizedSelector,\n defaultMemoize,\n} from '@ngrx/store';\n\nimport {\n DaffProduct,\n DaffProductTypeEnum,\n} from '@daffodil/product';\nimport {\n DaffCompositeProductItemOption,\n DaffCompositeProductItem,\n DaffCompositeProduct,\n} from '@daffodil/product-composite';\nimport { getDaffProductEntitiesSelectors } from '@daffodil/product/state';\n\nimport { daffCompositeProductAppliedOptionsEntitiesAdapter } from '../../reducers/composite-product-entities/composite-product-entities-reducer-adapter';\nimport { DaffCompositeProductEntity } from '../../reducers/composite-product-entities/composite-product-entity';\nimport {\n DaffCompositeProductReducersState,\n DaffCompositeProductStateRootSlice,\n} from '../../reducers/composite-product-reducers-state.interface';\nimport { getDaffCompositeProductFeatureSelector } from '../feature.selector';\n\n/**\n * An interface for selectors related to the composite product applied options.\n */\nexport interface DaffCompositeProductEntitiesMemoizedSelectors<T extends DaffProduct = DaffProduct> {\n /**\n * The ngrx entities state for composite product applied options.\n */\n selectCompositeProductAppliedOptionsEntitiesState: MemoizedSelector<DaffCompositeProductStateRootSlice<T>, EntityState<DaffCompositeProductEntity>>;\n /**\n * A selector for all composite product ids in state.\n */\n selectCompositeProductIds: MemoizedSelector<DaffCompositeProductStateRootSlice<T>, EntityState<DaffCompositeProductEntity>['ids']>;\n /**\n * The ngrx entities for the composite product appllied options.\n */\n selectCompositeProductAppliedOptionsEntities: MemoizedSelector<DaffCompositeProductStateRootSlice<T>, EntityState<DaffCompositeProductEntity>['entities']>;\n /**\n * The total number of composite products in state.\n */\n selectCompositeProductTotal: MemoizedSelector<DaffCompositeProductStateRootSlice<T>, number>;\n /**\n * Selects the applied options for a composite product.\n *\n * @param id the id of the composite product.\n */\n selectCompositeProductAppliedOptions: (id: T['id']) => MemoizedSelector<DaffCompositeProductStateRootSlice<T>, Dictionary<DaffCompositeProductItemOption>>;\n /**\n * Selects whether the particular item of a composite product is required in order for the product to be valid, i.e. addable to the cart.\n *\n * @param id the id of the composite product.\n * @param item_id the id of the composite product item.\n */\n selectIsCompositeProductItemRequired: (id: T['id'], item_id: DaffCompositeProductItem['id']) => MemoizedSelector<DaffCompositeProductStateRootSlice<T>, boolean>;\n}\n\nconst createCompositeProductAppliedOptionsEntitiesSelectors = <T extends DaffProduct>(): DaffCompositeProductEntitiesMemoizedSelectors<T> => {\n const {\n selectCompositeProductState,\n } = getDaffCompositeProductFeatureSelector();\n const {\n selectProduct,\n } = getDaffProductEntitiesSelectors<T>();\n const adapterSelectors = daffCompositeProductAppliedOptionsEntitiesAdapter().getSelectors();\n\n const selectCompositeProductAppliedOptionsEntitiesState = createSelector(\n selectCompositeProductState,\n (state: DaffCompositeProductReducersState) => state.compositeProductOptions,\n );\n\n const selectCompositeProductIds = createSelector(\n selectCompositeProductAppliedOptionsEntitiesState,\n adapterSelectors.selectIds,\n );\n\n const selectCompositeProductAppliedOptionsEntities = createSelector(\n selectCompositeProductAppliedOptionsEntitiesState,\n adapterSelectors.selectEntities,\n );\n\n const selectCompositeProductTotal = createSelector(\n selectCompositeProductAppliedOptionsEntitiesState,\n adapterSelectors.selectTotal,\n );\n\n const selectCompositeProductAppliedOptions = defaultMemoize((id: T['id']) => createSelector(\n selectProduct(id),\n selectCompositeProductAppliedOptionsEntitiesState,\n (product: T, appliedOptions) => {\n if(product.type !== DaffProductTypeEnum.Composite) {\n return undefined;\n }\n\n return (<DaffCompositeProduct><any>product).items.reduce((acc, item) => ({\n ...acc,\n [item.id]: appliedOptions.entities[product.id].items[item.id].value ? {\n ...item.options.find(option => option.id === appliedOptions.entities[product.id].items[item.id].value),\n quantity: appliedOptions.entities[product.id].items[item.id].qty,\n } : null,\n }), {});\n },\n )).memoized;\n\n const selectIsCompositeProductItemRequired = defaultMemoize((id: T['id'], item_id: DaffCompositeProductItem['id']) => createSelector(\n selectProduct(id),\n (product: T) => {\n if(product.type !== DaffProductTypeEnum.Composite) {\n return undefined;\n }\n\n const productItem = (<DaffCompositeProduct><any>product).items.find(item => item.id === item_id);\n\n return productItem ? productItem.required : null;\n },\n )).memoized;\n\n\n return {\n selectCompositeProductAppliedOptionsEntitiesState,\n selectCompositeProductIds,\n selectCompositeProductAppliedOptionsEntities,\n selectCompositeProductTotal,\n selectCompositeProductAppliedOptions,\n selectIsCompositeProductItemRequired,\n };\n};\n\n/**\n * A function that returns all selectors related to composite product applied option entities.\n * Returns {@link DaffCompositeProductEntitiesMemoizedSelectors}.\n */\nexport const getDaffCompositeProductEntitiesSelectors = (() => {\n let cache;\n return <T extends DaffProduct>(): DaffCompositeProductEntitiesMemoizedSelectors<T> => cache = cache\n ? cache\n : createCompositeProductAppliedOptionsEntitiesSelectors<T>();\n})();\n","import {\n Dictionary,\n EntityState,\n} from '@ngrx/entity';\nimport {\n createSelector,\n MemoizedSelector,\n defaultMemoize,\n} from '@ngrx/store';\n\nimport {\n daffAdd,\n daffDivide,\n daffMultiply,\n daffSubtract,\n} from '@daffodil/core';\nimport {\n DaffProduct,\n DaffProductTypeEnum,\n DaffProductPrices,\n DaffPriceRange,\n} from '@daffodil/product';\nimport {\n DaffCompositeProduct,\n DaffCompositeConfigurationItem,\n DaffCompositeProductItem,\n DaffCompositeProductItemOption,\n} from '@daffodil/product-composite';\nimport { getDaffProductEntitiesSelectors } from '@daffodil/product/state';\n\nimport { DaffCompositeProductStateRootSlice } from '../../reducers/composite-product-reducers-state.interface';\nimport { DaffCompositeProductEntity } from '../../reducers/public_api';\nimport { getDaffCompositeProductEntitiesSelectors } from '../composite-product-entities/composite-product-entities.selectors';\n\n/**\n * An interface describing selectors unique to the composite product, such as pricing and discounts.\n */\nexport interface DaffCompositeProductMemoizedSelectors<T extends DaffProduct = DaffProduct> {\n /**\n * Get a DaffPriceRange for a composite product based on the configuration provided excluding unselected, optional item prices.\n */\n selectCompositeProductRequiredItemPricesForConfiguration: ( id: DaffCompositeProduct['id'], configuration?: Dictionary<DaffCompositeConfigurationItem> ) => MemoizedSelector<DaffCompositeProductStateRootSlice<T>, DaffPriceRange>;\n /**\n * Get the broadest possible DaffPriceRange for a composite product based on the configuration provided including optional item prices.\n */\n selectCompositeProductOptionalItemPricesForConfiguration: ( id: DaffCompositeProduct['id'], configuration?: Dictionary<DaffCompositeConfigurationItem> ) => MemoizedSelector<DaffCompositeProductStateRootSlice<T>, DaffPriceRange>;\n /**\n * Get the DaffPriceRange for a composite product based on the current configuration of selected item options in redux state and\n * excluding unselected, optional item prices.\n */\n selectCompositeProductPricesAsCurrentlyConfigured: ( id: DaffCompositeProduct['id'] ) => MemoizedSelector<DaffCompositeProductStateRootSlice<T>, DaffPriceRange>;\n /**\n * Get the discount amount for a composite product. This value will be undefined if all required options are not chosen.\n */\n selectCompositeProductDiscountAmount: ( id: DaffCompositeProduct['id'] ) => MemoizedSelector<DaffCompositeProductStateRootSlice<T>, number>;\n /**\n * Get the discount percent for a composite product. This value will be undefined if all required options are not chosen.\n * Note: this percent is computed client-side and should be treated as an estimate rather than an exact value.\n */\n selectCompositeProductDiscountPercent: ( id: DaffCompositeProduct['id'] ) => MemoizedSelector<DaffCompositeProductStateRootSlice<T>, number>;\n}\n\nconst createCompositeProductSelectors = <T extends DaffProduct>(): DaffCompositeProductMemoizedSelectors<T> => {\n\n const {\n selectProduct,\n } = getDaffProductEntitiesSelectors<T>();\n\n const {\n selectCompositeProductAppliedOptionsEntities,\n } = getDaffCompositeProductEntitiesSelectors();\n\n const selectCompositeProductRequiredItemPricesForConfiguration = defaultMemoize((id: DaffCompositeProduct['id'], configuration?: Dictionary<DaffCompositeConfigurationItem>) => createSelector(\n selectProduct(id),\n (product: T) => {\n if(product.type !== DaffProductTypeEnum.Composite) {\n return undefined;\n }\n\n const appliedOptions = configuration ? getAppliedOptionsForConfiguration(<DaffCompositeProduct><any>product, configuration) : {};\n return {\n minPrice: getMinPricesForConfiguration(<DaffCompositeProduct><any>product, appliedOptions),\n maxPrice: getMaxPricesForConfiguration(<DaffCompositeProduct><any>product, appliedOptions),\n };\n },\n )).memoized;\n\n const selectCompositeProductOptionalItemPricesForConfiguration = defaultMemoize((id: DaffCompositeProduct['id'], configuration?: Dictionary<DaffCompositeConfigurationItem>) => createSelector(\n selectProduct(id),\n (product: T) => {\n if(product.type !== DaffProductTypeEnum.Composite) {\n return undefined;\n }\n\n const appliedOptions = configuration ? getAppliedOptionsForConfiguration(<DaffCompositeProduct><any>product, configuration) : {};\n return {\n minPrice: getMinPricesForConfiguration(<DaffCompositeProduct><any>product, appliedOptions),\n maxPrice: getMaxPricesForConfigurationIncludingOptionalItems(<DaffCompositeProduct><any>product, appliedOptions),\n };\n },\n )).memoized;\n\n const selectCompositeProductPricesAsCurrentlyConfigured = defaultMemoize((id: T['id']) => createSelector<DaffCompositeProductStateRootSlice<T>, [T, EntityState<DaffCompositeProductEntity>['entities']], DaffPriceRange>(\n selectProduct(id),\n selectCompositeProductAppliedOptionsEntities,\n (product: T, appliedOptionsEntities) =>\n selectCompositeProductRequiredItemPricesForConfiguration(id, appliedOptionsEntities[id]?.items || null).projector(product),\n )).memoized;\n\n const selectCompositeProductDiscountAmount = defaultMemoize((id: DaffCompositeProduct['id']) => createSelector<DaffCompositeProductStateRootSlice<T>, [T, EntityState<DaffCompositeProductEntity>['entities']], number>(\n selectProduct(id),\n selectCompositeProductAppliedOptionsEntities,\n (product: T, appliedOptionsEntities) => {\n if(product.type !== DaffProductTypeEnum.Composite) {\n return undefined;\n }\n const appliedConfigurationItem = appliedOptionsEntities[product.id].items;\n if((<DaffCompositeProduct><any>product).items.filter(item => item.required && appliedConfigurationItem[item.id].value === null).length > 0) {\n return undefined;\n }\n const appliedOptions = getAppliedOptionsForConfiguration((<DaffCompositeProduct><any>product), appliedConfigurationItem);\n\n return (<DaffCompositeProduct><any>product).items.reduce((acc, item) =>\n appliedOptions[item.id]?.discount?.amount ? daffAdd(acc, daffMultiply(appliedOptions[item.id].discount.amount, appliedOptions[item.id].quantity)) : acc,\n product.discount.amount);\n },\n )).memoized;\n\n const selectCompositeProductDiscountPercent = defaultMemoize((id: DaffCompositeProduct['id']) => createSelector<DaffCompositeProductStateRootSlice<T>, [T, EntityState<DaffCompositeProductEntity>['entities']], number>(\n selectProduct(id),\n selectCompositeProductAppliedOptionsEntities,\n (product: T, appliedOptionsEntities) => {\n if(product.type !== DaffProductTypeEnum.Composite) {\n return undefined;\n }\n const appliedOptions = appliedOptionsEntities[product.id].items;\n if((<DaffCompositeProduct><any>product).items.filter(item => item.required && appliedOptions[item.id].value === null).length > 0) {\n return undefined;\n }\n\n const prices = getMinPricesForConfiguration(\n (<DaffCompositeProduct><any>product),\n getAppliedOptionsForConfiguration((<DaffCompositeProduct><any>product), appliedOptions),\n );\n\n return daffMultiply(\n daffDivide(\n daffSubtract(prices.originalPrice, prices.discountedPrice),\n prices.originalPrice,\n ),\n 100,\n );\n },\n )).memoized;\n\n return {\n selectCompositeProductRequiredItemPricesForConfiguration,\n selectCompositeProductOptionalItemPricesForConfiguration,\n selectCompositeProductPricesAsCurrentlyConfigured,\n selectCompositeProductDiscountAmount,\n selectCompositeProductDiscountPercent,\n };\n};\n\n/**\n * A function that returns all selectors related to the composite product feature.\n *\n * Returns {@link DaffCompositeProductMemoizedSelectors}.\n */\nexport const getDaffCompositeProductPriceSelectors = (() => {\n let cache;\n return <T extends DaffProduct = DaffProduct>(): DaffCompositeProductMemoizedSelectors<T> => cache = cache\n ? cache\n : createCompositeProductSelectors<T>();\n})();\n\n/**\n * The minimum price of an item is zero if the item is optional.\n *\n * @param item DaffCompositeProductItem\n */\nfunction getMinimumRequiredCompositeItemPrice(item: DaffCompositeProductItem, qty: number): number {\n return item.required ? daffMultiply(Math.min(...item.options.map(option => option.price)), qty) : 0;\n}\n\n/**\n * The maximum price for an item is zero if the item is optional.\n *\n * @param item DaffCompositeProductItem\n */\nfunction getMaximumRequiredCompositeItemPrice(item: DaffCompositeProductItem, qty: number): number {\n return item.required ? daffMultiply(Math.max(...item.options.map(option => option.price)), qty) : 0;\n}\n\n/**\n * The minimum discounted price of an item is zero if the item is optional.\n *\n * @param item DaffCompositeProductItem\n */\nfunction getMinimumRequiredCompositeItemDiscountedPrice(item: DaffCompositeProductItem, qty: number): number {\n return item.required ? daffMultiply(Math.min(...item.options.map(getDiscountedPrice)), qty) : 0;\n}\n/**\n * The maximum discounted price of an item is zero if the item is optional.\n *\n * @param item DaffCompositeProductItem\n */\nfunction getMaximumRequiredCompositeItemDiscountedPrice(item: DaffCompositeProductItem, qty: number): number {\n return item.required ? daffMultiply(Math.max(...item.options.map(getDiscountedPrice)), qty) : 0;\n}\n\n/**\n * Gets the minimum prices of a composite product for the configuration provided excluding unselected, optional item prices.\n *\n * @param product a DaffCompositeProduct\n * @param appliedOptions a Dictionary<DaffCompositeProductItemOption> that determines the current configuration of the composite product.\n */\nfunction getMinPricesForConfiguration(product: DaffCompositeProduct, appliedOptions: Dictionary<DaffCompositeProductItemOption>): DaffProductPrices {\n return {\n discountedPrice: product.items.reduce((acc, item) => daffAdd(\n acc,\n appliedOptionHasId(appliedOptions[item.id]) ?\n daffMultiply(getDiscountedPrice(appliedOptions[item.id]), appliedOptions[item.id].quantity) :\n getMinimumRequiredCompositeItemDiscountedPrice(item, getOptionQty(appliedOptions[item.id])),\n ), getDiscountedPrice(product)),\n discount: { amount: null, percent: null },\n originalPrice: product.items.reduce((acc, item) => daffAdd(\n acc,\n appliedOptionHasId(appliedOptions[item.id]) ?\n daffMultiply(appliedOptions[item.id].price, appliedOptions[item.id].quantity) :\n getMinimumRequiredCompositeItemPrice(item, getOptionQty(appliedOptions[item.id])),\n ), product.price),\n };\n}\n\n/**\n * Gets the maximum prices of a composite product for the configuration provided excluding unselected, optional item prices.\n *\n * @param product a DaffCompositeProduct\n * @param appliedOptions a Dictionary<DaffCompositeProductItemOption> that determines the current configuration of the composite product.\n */\nfunction getMaxPricesForConfiguration(product: DaffCompositeProduct, appliedOptions: Dictionary<DaffCompositeProductItemOption>): DaffProductPrices {\n return {\n discountedPrice: product.items.reduce((acc, item) => daffAdd(\n acc,\n appliedOptionHasId(appliedOptions[item.id]) ?\n daffMultiply(getDiscountedPrice(appliedOptions[item.id]), appliedOptions[item.id].quantity) :\n getMaximumRequiredCompositeItemDiscountedPrice(item, getOptionQty(appliedOptions[item.id])),\n ), getDiscountedPrice(product)),\n discount: { amount: null, percent: null },\n originalPrice: product.items.reduce((acc, item) => daffAdd(\n acc,\n appliedOptionHasId(appliedOptions[item.id]) ?\n daffMultiply(appliedOptions[item.id].price, appliedOptions[item.id].quantity) :\n getMaximumRequiredCompositeItemPrice(item, getOptionQty(appliedOptions[item.id])),\n ), product.price),\n };\n}\n\nfunction getDiscountedPrice(product: DaffProduct): number {\n return product.discount ? daffSubtract(product.price, product.discount.amount) : product.price;\n}\n\n/**\n * Gets the maximum prices of a composite product including optional item prices.\n *\n * @param product a DaffCompositeProduct\n */\nfunction getMaxPricesForConfigurationIncludingOptionalItems(product: DaffCompositeProduct, appliedOptions: Dictionary<DaffCompositeProductItemOption>): DaffProductPrices {\n return {\n discountedPrice: product.items.reduce((acc, item) => daffAdd(\n acc,\n appliedOptionHasId(appliedOptions[item.id]) ?\n daffMultiply(getDiscountedPrice(appliedOptions[item.id]), appliedOptions[item.id].quantity) :\n appliedOptionHasQty(appliedOptions[item.id]) ?\n daffMultiply(Math.max(...item.options.map(getDiscountedPrice)), appliedOptions[item.id].quantity) :\n Math.max(...item.options.map(getDiscountedPrice)),\n ), getDiscountedPrice(product)),\n discount: { amount: null, percent: null },\n originalPrice: product.items.reduce((acc, item) => daffAdd(\n acc,\n appliedOptionHasId(appliedOptions[item.id]) ?\n daffMultiply(appliedOptions[item.id].price, appliedOptions[item.id].quantity) :\n appliedOptionHasQty(appliedOptions[item.id]) ?\n daffMultiply(Math.max(...item.options.map(option => option.price)), appliedOptions[item.id].quantity) :\n Math.max(...item.options.map(option => option.price)),\n ), product.price),\n };\n}\n\n/**\n * Takes a product and a set of option configurations and convert it into a dictionary of the full option objects.\n *\n * @param product a DaffCompositeProduct\n * @param configuration a Dictionary<DaffCompositeConfigurationItem> used to build the appliedOptions object.\n */\nfunction getAppliedOptionsForConfiguration(product: DaffCompositeProduct, configuration: Dictionary<DaffCompositeConfigurationItem>): Dictionary<DaffCompositeProductItemOption> {\n return product.items.reduce((acc, item) => ({\n ...acc,\n [item.id]: configuration[item.id] ? {\n ...item.options.find(option => option.id === configuration[item.id].value),\n quantity: (configuration[item.id].qty === null || configuration[item.id].qty === undefined) ? 1 : configuration[item.id].qty,\n } : null,\n }), {});\n}\n\nfunction appliedOptionHasId(appliedOption: DaffCompositeProductItemOption): boolean {\n return !!appliedOption?.id;\n}\n\nfunction getOptionQty(appliedOption: DaffCompositeProductItemOption): number {\n return appliedOptionHasQty(appliedOption) ? appliedOption.quantity : 1;\n}\n\nfunction appliedOptionHasQty(appliedOption: DaffCompositeProductItemOption): boolean {\n return appliedOption?.quantity !== null && appliedOption?.quantity !== undefined;\n}\n","import { DaffProduct } from '@daffodil/product';\n\nimport {\n DaffCompositeProductEntitiesMemoizedSelectors,\n getDaffCompositeProductEntitiesSelectors,\n} from './composite-product-entities/composite-product-entities.selectors';\nimport {\n DaffCompositeProductMemoizedSelectors,\n getDaffCompositeProductPriceSelectors,\n} from './composite-product/composite-product.selectors';\n\n/**\n * An interface for all selectors in the composite product feature area.\n */\nexport interface DaffCompositeProductAllSelectors<T extends DaffProduct = DaffProduct> extends\n DaffCompositeProductEntitiesMemoizedSelectors<T>,\n DaffCompositeProductMemoizedSelectors<T> { }\n\n/**\n * A function that returns all selectors in the composite product feature area.\n * Returns {@link DaffCompositeProductAllSelectors}.\n */\nexport const getDaffCompositeProductSelectors = <T extends DaffProduct>(): DaffCompositeProductAllSelectors<T> => ({\n ...getDaffCompositeProductEntitiesSelectors<T>(),\n ...getDaffCompositeProductPriceSelectors<T>(),\n});\n","import { Injectable } from '@angular/core';\nimport { Dictionary } from '@ngrx/entity';\nimport {\n Store,\n select,\n Action,\n} from '@ngrx/store';\nimport { Observable } from 'rxjs';\n\nimport {\n DaffProduct,\n DaffPriceRange,\n productPriceRangeHasDiscount,\n productPriceRangeHasPriceRange,\n} from '@daffodil/product';\nimport {\n DaffCompositeConfigurationItem,\n DaffCompositeProductItemOption,\n DaffCompositeProductItem,\n} from '@daffodil/product-composite';\n\nimport { DaffCompositeProductStateRootSlice } from '../../reducers/composite-product-reducers-state.interface';\nimport { getDaffCompositeProductSelectors } from '../../selectors/public_api';\nimport { DaffCompositeProductFacadeInterface } from './composite-product-facade.interface';\n\n/**\n * A facade for interacting with the composite product state.\n * Exposes many parts of the state for easy access and allows dispatching of actions.\n *\n * @inheritdoc\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffCompositeProductFacade<T extends DaffProduct = DaffProduct> implements DaffCompositeProductFacadeInterface {\n\n constructor(private store: Store<DaffCompositeProductStateRootSlice<T>>) {}\n\n compositeProductSelectors = getDaffCompositeProductSelectors<T>();\n\n hasDiscount = productPriceRangeHasDiscount;\n\n hasPriceRange = productPriceRangeHasPriceRange;\n\n getRequiredItemPricesForConfiguration(id: T['id'], configuration?: Dictionary<DaffCompositeConfigurationItem>): Observable<DaffPriceRange> {\n\t return this.store.pipe(select(this.compositeProductSelectors.selectCompositeProductRequiredItemPricesForConfiguration(id, configuration)));\n }\n\n getOptionalItemPricesForConfiguration(id: T['id'], configuration?: Dictionary<DaffCompositeConfigurationItem>): Observable<DaffPriceRange> {\n\t return this.store.pipe(select(this.compositeProductSelectors.selectCompositeProductOptionalItemPricesForConfiguration(id, configuration)));\n }\n\n getPricesAsCurrentlyConfigured(id: T['id']): Observable<DaffPriceRange> {\n\t return this.store.pipe(select(this.compositeProductSelectors.selectCompositeProductPricesAsCurrentlyConfigured(id)));\n }\n\n getAppliedOptions(id: T['id']): Observable<Dictionary<DaffCompositeProductItemOption>> {\n\t return this.store.pipe(select(this.compositeProductSelectors.selectCompositeProductAppliedOptions(id)));\n }\n\n getDiscountAmount(id: T['id']): Observable<number> {\n\t return this.store.pipe(select(this.compositeProductSelectors.selectCompositeProductDiscountAmount(id)));\n }\n\n getDiscountPercent(id: T['id']): Observable<number> {\n\t return this.store.pipe(select(this.compositeProductSelectors.selectCompositeProductDiscountPercent(id)));\n }\n\n isItemRequired(id: T['id'], item_id: DaffCompositeProductItem['id']) {\n\t return this.store.pipe(select(this.compositeProductSelectors.selectIsCompositeProductItemRequired(id, item_id)));\n }\n\n dispatch(action: Action) {\n\t this.store.dispatch(action);\n }\n}\n","import { EntityState } from '@ngrx/entity';\n\nimport { DaffProduct } from '@daffodil/product';\nimport { DaffCompositeProduct } from '@daffodil/product-composite';\nimport {\n DaffProductPageActions,\n DaffProductPageActionTypes,\n DaffProductGridActionTypes,\n DaffProductGridActions,\n DaffBestSellersActions,\n DaffProductActions,\n DaffBestSellersActionTypes,\n DaffProductActionTypes,\n} from '@daffodil/product/state';\n\nimport {\n DaffCompositeProductActions,\n DaffCompositeProductActionTypes,\n} from '../../actions/public_api';\nimport { daffCompositeProductAppliedOptionsEntitiesAdapter } from './composite-product-entities-reducer-adapter';\nimport { DaffCompositeProductEntity } from './composite-product-entity';\n\n/**\n * Reducer function that catches actions and changes/overwrites composite product entities state.\n *\n * @param state current State of the redux store\n * @param action ProductGrid, BestSellers, Product, or Composite Product actions\n * @returns Product entities state\n */\nexport function daffCompositeProductEntitiesReducer<T extends DaffProduct, V extends DaffCompositeProduct>(\n state = daffCompositeProductAppliedOptionsEntitiesAdapter().getInitialState(),\n action: DaffProductGridActions<T> | DaffBestSellersActions<T> | DaffProductActions<T> | DaffProductPageActions<T> | DaffCompositeProductActions<V>): EntityState<DaffCompositeProductEntity> {\n const adapter = daffCompositeProductAppliedOptionsEntitiesAdapter();\n switch (action.type) {\n case DaffProductGridActionTypes.ProductGridLoadSuccessAction:\n case DaffBestSellersActionTypes.BestSellersLoadSuccessAction:\n return adapter.upsertProducts(state, ...(<V[]><unknown>action.payload));\n\n case DaffProductActionTypes.ProductLoadSuccessAction:\n case DaffProductPageActionTypes.ProductPageLoadSuccessAction:\n return adapter.upsertProducts(state, ...(<V[]><unknown>action.payload.products));\n\n case DaffCompositeProductActionTypes.CompositeProductApplyOptionAction:\n return adapter.applyOption(state, action.id, action.itemId, action.optionId, action.qty);\n\n default:\n return state;\n }\n}\n","import { daffCompositeProductEntitiesReducer } from './composite-product-entities/composite-product-entities.reducer';\n\n/**\n * Returns state values from all composite product related reducers.\n */\nexport const daffCompositeProductReducers = {\n compositeProductOptions: daffCompositeProductEntitiesReducer,\n};\n","import {\n InjectionToken,\n Provider,\n} from '@angular/core';\nimport { ActionReducer } from '@ngrx/store';\n\nimport { DaffCompositeProductReducersState } from '../composite-product-reducers-state.interface';\n\n/**\n * A token to hold the injectable extra reducers.\n *\n * Prefer using {@link daffProductCompositeProvideExtraReducers}.\n */\nexport const DAFF_PRODUCT_COMPOSITE_EXTRA_REDUCERS = new InjectionToken<ActionReducer<DaffCompositeProductReducersState>[]>(\n 'DAFF_PRODUCT_COMPOSITE_EXTRA_REDUCERS',\n { factory: () => []},\n);\n\n/**\n * Provides additional reducers that run after the standard Daffodil cart reducers.\n *\n * ```ts\n * providers: [\n * ...daffProductCompositeProvideExtraReducers(\n * myReducer1,\n * myReducer2\n * )\n * ]\n * ```\n */\nexport function daffProductCompositeProvideExtraReducers(\n ...reducers: ActionReducer<Partial<DaffCompositeProductReducersState>>[]\n): Provider[] {\n return reducers.map(reducer => ({\n provide: DAFF_PRODUCT_COMPOSITE_EXTRA_REDUCERS,\n useValue: reducer,\n multi: true,\n }));\n}\n","import {\n inject,\n InjectionToken,\n} from '@angular/core';\nimport {\n ActionReducer,\n combineReducers,\n} from '@ngrx/store';\n\nimport { daffComposeReducers } from '@daffodil/core/state';\n\nimport { daffCompositeProductReducers } from '../composite-product-reducers';\nimport { DaffCompositeProductReducersState } from '../composite-product-reducers-state.interface';\nimport { DAFF_PRODUCT_COMPOSITE_EXTRA_REDUCERS } from './extra.token';\n\n/**\n * An internal token to hold the Daffodil composite product reducers.\n * Includes the extra and standard reducers.\n *\n * @docs-private\n */\nexport const DAFF_PRODUCT_COMPOSITE_REDUCERS = new InjectionToken<ActionReducer<DaffCompositeProductReducersState>>(\n 'DAFF_PRODUCT_COMPOSITE_REDUCERS',\n {\n factory: () => daffComposeReducers([\n combineReducers(daffCompositeProductReducers),\n ...inject(DAFF_PRODUCT_COMPOSITE_EXTRA_REDUCERS),\n ]),\n },\n);\n","import { NgModule } from '@angular/core';\nimport { StoreModule } from '@ngrx/store';\n\nimport { DAFF_PRODUCT_COMPOSITE_REDUCERS } from './reducers/injection-tokens/reducers.token';\nimport { DAFF_COMPOSITE_PRODUCT_STORE_FEATURE_KEY } from './reducers/public_api';\n\n/**\n * A module that provides the default reducers and effects for composite product redux state.\n */\n@NgModule({\n imports: [\n StoreModule.forFeature(DAFF_COMPOSITE_PRODUCT_STORE_FEATURE_KEY, DAFF_PRODUCT_COMPOSITE_REDUCERS),\n ],\n})\nexport class DaffCompositeProductStateModule { }\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-state.mjs","sources":["../../../libs/product-composite/state/src/actions/composite-product.actions.ts","../../../libs/product-composite/state/src/reducers/composite-product-entities/composite-product-entities-reducer-adapter.ts","../../../libs/product-composite/state/src/reducers/composite-product-store-feature-key.ts","../../../libs/product-composite/state/src/selectors/feature.selector.ts","../../../libs/product-composite/state/src/selectors/composite-product-entities/composite-product-entities.selectors.ts","../../../libs/product-composite/state/src/selectors/composite-product/composite-product.selectors.ts","../../../libs/product-composite/state/src/selectors/all.selector.ts","../../../libs/product-composite/state/src/facades/composite-product/composite-product.facade.ts","../../../libs/product-composite/state/src/reducers/composite-product-entities/composite-product-entities.reducer.ts","../../../libs/product-composite/state/src/reducers/composite-product-reducers.ts","../../../libs/product-composite/state/src/reducers/injection-tokens/extra.token.ts","../../../libs/product-composite/state/src/reducers/injection-tokens/reducers.token.ts","../../../libs/product-composite/state/src/composite-product-state.module.ts","../../../libs/product-composite/state/src/daffodil-product-composite-state.ts"],"sourcesContent":["import { Action } from '@ngrx/store';\n\nimport {\n DaffCompositeProduct,\n DaffCompositeProductItem,\n DaffCompositeProductItemOption,\n} from '@daffodil/product-composite';\n\n/**\n * Action types for Composite Product Actions.\n */\nexport enum DaffCompositeProductActionTypes {\n CompositeProductApplyOptionAction = '[Composite Product] Composite Product Apply Option Action'\n}\n\n/**\n * Applies a product option to a particular composite product.\n *\n * @param id - Id of the Composite Product\n * @param itemId - Id of the product item.\n * @param optionId - Id of the option of the product item that is chosen.\n */\nexport class DaffCompositeProductApplyOption<T extends DaffCompositeProduct> implements Action {\n readonly type = DaffCompositeProductActionTypes.CompositeProductApplyOptionAction;\n\n constructor(public id: T['id'], public itemId: DaffCompositeProductItem['id'], public optionId: DaffCompositeProductItemOption['id'], public qty?: number) {}\n}\n\nexport type DaffCompositeProductActions<T extends DaffCompositeProduct = DaffCompositeProduct> =\n\t| DaffCompositeProductApplyOption<T>;\n","import {\n createEntityAdapter,\n EntityState,\n} from '@ngrx/entity';\nimport { defaultMemoize } from '@ngrx/store';\n\nimport { DaffProductTypeEnum } from '@daffodil/product';\nimport {\n DaffCompositeProduct,\n DaffCompositeProductItem,\n DaffCompositeConfigurationItem,\n DaffCompositeProductItemOption,\n} from '@daffodil/product-composite';\n\nimport { DaffCompositeProductEntity } from './composite-product-entity';\n\n/**\n * Composite Product Item Options Adapter for changing/overwriting entity state.\n */\nexport class DaffCompositeProductAppliedOptionsEntitiesAdapter<T extends EntityState<DaffCompositeProductEntity> = EntityState<DaffCompositeProductEntity>> {\n /**\n * @docs-private\n */\n private _adapter = createEntityAdapter<DaffCompositeProductEntity>();\n\n /**\n * Gets the initial entity state.\n */\n getInitialState() {\n return this._adapter.getInitialState();\n }\n\n /**\n * Get the entity selectors.\n */\n getSelectors() {\n return this._adapter.getSelectors();\n }\n\n /**\n * Upserts the given composite products into state.\n */\n upsertProducts(state: T, ...products: DaffCompositeProduct[]): T {\n return this._adapter.upsertMany(\n this.mapOptionsEntities(products),\n state,\n );\n };\n\n /**\n * Apply the specified option for the given composite product item.\n */\n applyOption(state: T, productId: DaffCompositeProduct['id'], itemId: DaffCompositeProductItem['id'], optionId: DaffCompositeProductItemOption['id'], qty?: number) {\n return this._adapter.upsertOne(\n {\n id: productId,\n items: {\n ...state.entities[productId].items,\n [itemId]: {\n value: optionId,\n qty: qty ?? 1,\n },\n },\n },\n state,\n );\n }\n\n /**\n * @docs-private\n */\n private mapOptionsEntities(products: DaffCompositeProduct[]): DaffCompositeProductEntity[] {\n return products.filter(product => product.type === DaffProductTypeEnum.Composite)\n .map(product => this.buildCompositeProductAppliedOptionsEntity(product));\n }\n\n /**\n * @docs-private\n */\n private buildCompositeProductAppliedOptionsEntity(product: DaffCompositeProduct): DaffCompositeProductEntity {\n return {\n id: product.id,\n items: product.items.reduce((acc, item) => ({\n ...acc,\n [item.id]: this.getDefaultOption(item),\n }), {}),\n };\n }\n\n /**\n * Sets the default item option to the specified default option if it is in stock.\n * Does not set a default option if a default is not specified.\n * Does not set a default option but does set a default qty if the default is out of stock.\n *\n * @param item a DaffCompositeProductItem\n * @docs-private\n */\n private getDefaultOption(item: DaffCompositeProductItem): DaffCompositeConfigurationItem {\n const defaultOptionIndex = item.options.findIndex(option => option.is_default);\n\n if(defaultOptionIndex > -1) {\n return {\n value: item.options[defaultOptionIndex].in_stock ? item.options[defaultOptionIndex].id : null,\n qty: item.options[defaultOptionIndex].quantity,\n };\n } else {\n return { value: null, qty: null };\n }\n }\n}\n\n/**\n * Gets the composite product entity adapter singleton.\n */\nexport const daffCompositeProductAppliedOptionsEntitiesAdapter: () => DaffCompositeProductAppliedOptionsEntitiesAdapter = defaultMemoize(() => new DaffCompositeProductAppliedOptionsEntitiesAdapter()).memoized;\n","export const DAFF_COMPOSITE_PRODUCT_STORE_FEATURE_KEY = 'daffCompositeProduct';\n","import {\n createFeatureSelector,\n MemoizedSelector,\n} from '@ngrx/store';\n\nimport { DaffCompositeProductReducersState } from '../reducers/composite-product-reducers-state.interface';\nimport { DAFF_COMPOSITE_PRODUCT_STORE_FEATURE_KEY } from '../reducers/composite-product-store-feature-key';\n\n/**\n * An interface for the composite product feature state.\n */\nexport interface DaffCompositeProductFeatureMemoizedSelector {\n selectCompositeProductState: MemoizedSelector<Record<string, any>, DaffCompositeProductReducersState>;\n}\n\n/**\n * A function that returns a selector for the composite product feature state.\n */\nexport const getDaffCompositeProductFeatureSelector = (() => {\n let cache;\n return (): DaffCompositeProductFeatureMemoizedSelector => cache = cache\n ? cache\n : { selectCompositeProductState: createFeatureSelector<DaffCompositeProductReducersState>(DAFF_COMPOSITE_PRODUCT_STORE_FEATURE_KEY) };\n})();\n","import {\n EntityState,\n Dictionary,\n} from '@ngrx/entity';\nimport {\n createSelector,\n MemoizedSelector,\n defaultMemoize,\n} from '@ngrx/store';\n\nimport {\n DaffProduct,\n DaffProductTypeEnum,\n} from '@daffodil/product';\nimport {\n DaffCompositeProductItemOption,\n DaffCompositeProductItem,\n DaffCompositeProduct,\n} from '@daffodil/product-composite';\nimport { getDaffProductEntitiesSelectors } from '@daffodil/product/state';\n\nimport { daffCompositeProductAppliedOptionsEntitiesAdapter } from '../../reducers/composite-product-entities/composite-product-entities-reducer-adapter';\nimport { DaffCompositeProductEntity } from '../../reducers/composite-product-entities/composite-product-entity';\nimport {\n DaffCompositeProductReducersState,\n DaffCompositeProductStateRootSlice,\n} from '../../reducers/composite-product-reducers-state.interface';\nimport { getDaffCompositeProductFeatureSelector } from '../feature.selector';\n\n/**\n * An interface for selectors related to the composite product applied options.\n */\nexport interface DaffCompositeProductEntitiesMemoizedSelectors<T extends DaffProduct = DaffProduct> {\n /**\n * The ngrx entities state for composite product applied options.\n */\n selectCompositeProductAppliedOptionsEntitiesState: MemoizedSelector<DaffCompositeProductStateRootSlice<T>, EntityState<DaffCompositeProductEntity>>;\n /**\n * A selector for all composite product ids in state.\n */\n selectCompositeProductIds: MemoizedSelector<DaffCompositeProductStateRootSlice<T>, EntityState<DaffCompositeProductEntity>['ids']>;\n /**\n * The ngrx entities for the composite product appllied options.\n */\n selectCompositeProductAppliedOptionsEntities: MemoizedSelector<DaffCompositeProductStateRootSlice<T>, EntityState<DaffCompositeProductEntity>['entities']>;\n /**\n * The total number of composite products in state.\n */\n selectCompositeProductTotal: MemoizedSelector<DaffCompositeProductStateRootSlice<T>, number>;\n /**\n * Selects the applied options for a composite product.\n *\n * @param id the id of the composite product.\n */\n selectCompositeProductAppliedOptions: (id: T['id']) => MemoizedSelector<DaffCompositeProductStateRootSlice<T>, Dictionary<DaffCompositeProductItemOption>>;\n /**\n * Selects whether the particular item of a composite product is required in order for the product to be valid, i.e. addable to the cart.\n *\n * @param id the id of the composite product.\n * @param item_id the id of the composite product item.\n */\n selectIsCompositeProductItemRequired: (id: T['id'], item_id: DaffCompositeProductItem['id']) => MemoizedSelector<DaffCompositeProductStateRootSlice<T>, boolean>;\n}\n\nconst createCompositeProductAppliedOptionsEntitiesSelectors = <T extends DaffProduct>(): DaffCompositeProductEntitiesMemoizedSelectors<T> => {\n const {\n selectCompositeProductState,\n } = getDaffCompositeProductFeatureSelector();\n const {\n selectProduct,\n } = getDaffProductEntitiesSelectors<T>();\n const adapterSelectors = daffCompositeProductAppliedOptionsEntitiesAdapter().getSelectors();\n\n const selectCompositeProductAppliedOptionsEntitiesState = createSelector(\n selectCompositeProductState,\n (state: DaffCompositeProductReducersState) => state.compositeProductOptions,\n );\n\n const selectCompositeProductIds = createSelector(\n selectCompositeProductAppliedOptionsEntitiesState,\n adapterSelectors.selectIds,\n );\n\n const selectCompositeProductAppliedOptionsEntities = createSelector(\n selectCompositeProductAppliedOptionsEntitiesState,\n adapterSelectors.selectEntities,\n );\n\n const selectCompositeProductTotal = createSelector(\n selectCompositeProductAppliedOptionsEntitiesState,\n adapterSelectors.selectTotal,\n );\n\n const selectCompositeProductAppliedOptions = defaultMemoize((id: T['id']) => createSelector(\n selectProduct(id),\n selectCompositeProductAppliedOptionsEntitiesState,\n (product: T, appliedOptions) => {\n if(product.type !== DaffProductTypeEnum.Composite) {\n return undefined;\n }\n\n return (<DaffCompositeProduct><any>product).items.reduce((acc, item) => ({\n ...acc,\n [item.id]: appliedOptions.entities[product.id].items[item.id].value ? {\n ...item.options.find(option => option.id === appliedOptions.entities[product.id].items[item.id].value),\n quantity: appliedOptions.entities[product.id].items[item.id].qty,\n } : null,\n }), {});\n },\n )).memoized;\n\n const selectIsCompositeProductItemRequired = defaultMemoize((id: T['id'], item_id: DaffCompositeProductItem['id']) => createSelector(\n selectProduct(id),\n (product: T) => {\n if(product.type !== DaffProductTypeEnum.Composite) {\n return undefined;\n }\n\n const productItem = (<DaffCompositeProduct><any>product).items.find(item => item.id === item_id);\n\n return productItem ? productItem.required : null;\n },\n )).memoized;\n\n\n return {\n selectCompositeProductAppliedOptionsEntitiesState,\n selectCompositeProductIds,\n selectCompositeProductAppliedOptionsEntities,\n selectCompositeProductTotal,\n selectCompositeProductAppliedOptions,\n selectIsCompositeProductItemRequired,\n };\n};\n\n/**\n * A function that returns all selectors related to composite product applied option entities.\n * Returns {@link DaffCompositeProductEntitiesMemoizedSelectors}.\n */\nexport const getDaffCompositeProductEntitiesSelectors = (() => {\n let cache;\n return <T extends DaffProduct>(): DaffCompositeProductEntitiesMemoizedSelectors<T> => cache = cache\n ? cache\n : createCompositeProductAppliedOptionsEntitiesSelectors<T>();\n})();\n","import {\n Dictionary,\n EntityState,\n} from '@ngrx/entity';\nimport {\n createSelector,\n MemoizedSelector,\n defaultMemoize,\n} from '@ngrx/store';\n\nimport {\n daffAdd,\n daffDivide,\n daffMultiply,\n daffSubtract,\n} from '@daffodil/core';\nimport {\n DaffProduct,\n DaffProductTypeEnum,\n DaffProductPrices,\n DaffPriceRange,\n} from '@daffodil/product';\nimport {\n DaffCompositeProduct,\n DaffCompositeConfigurationItem,\n DaffCompositeProductItem,\n DaffCompositeProductItemOption,\n} from '@daffodil/product-composite';\nimport { getDaffProductEntitiesSelectors } from '@daffodil/product/state';\n\nimport { DaffCompositeProductStateRootSlice } from '../../reducers/composite-product-reducers-state.interface';\nimport { DaffCompositeProductEntity } from '../../reducers/public_api';\nimport { getDaffCompositeProductEntitiesSelectors } from '../composite-product-entities/composite-product-entities.selectors';\n\n/**\n * An interface describing selectors unique to the composite product, such as pricing and discounts.\n */\nexport interface DaffCompositeProductMemoizedSelectors<T extends DaffProduct = DaffProduct> {\n /**\n * Get a DaffPriceRange for a composite product based on the configuration provided excluding unselected, optional item prices.\n */\n selectCompositeProductRequiredItemPricesForConfiguration: ( id: DaffCompositeProduct['id'], configuration?: Dictionary<DaffCompositeConfigurationItem> ) => MemoizedSelector<DaffCompositeProductStateRootSlice<T>, DaffPriceRange>;\n /**\n * Get the broadest possible DaffPriceRange for a composite product based on the configuration provided including optional item prices.\n */\n selectCompositeProductOptionalItemPricesForConfiguration: ( id: DaffCompositeProduct['id'], configuration?: Dictionary<DaffCompositeConfigurationItem> ) => MemoizedSelector<DaffCompositeProductStateRootSlice<T>, DaffPriceRange>;\n /**\n * Get the DaffPriceRange for a composite product based on the current configuration of selected item options in redux state and\n * excluding unselected, optional item prices.\n */\n selectCompositeProductPricesAsCurrentlyConfigured: ( id: DaffCompositeProduct['id'] ) => MemoizedSelector<DaffCompositeProductStateRootSlice<T>, DaffPriceRange>;\n /**\n * Get the discount amount for a composite product. This value will be undefined if all required options are not chosen.\n */\n selectCompositeProductDiscountAmount: ( id: DaffCompositeProduct['id'] ) => MemoizedSelector<DaffCompositeProductStateRootSlice<T>, number>;\n /**\n * Get the discount percent for a composite product. This value will be undefined if all required options are not chosen.\n * Note: this percent is computed client-side and should be treated as an estimate rather than an exact value.\n */\n selectCompositeProductDiscountPercent: ( id: DaffCompositeProduct['id'] ) => MemoizedSelector<DaffCompositeProductStateRootSlice<T>, number>;\n}\n\nconst createCompositeProductSelectors = <T extends DaffProduct>(): DaffCompositeProductMemoizedSelectors<T> => {\n\n const {\n selectProduct,\n } = getDaffProductEntitiesSelectors<T>();\n\n const {\n selectCompositeProductAppliedOptionsEntities,\n } = getDaffCompositeProductEntitiesSelectors();\n\n const selectCompositeProductRequiredItemPricesForConfiguration = defaultMemoize((id: DaffCompositeProduct['id'], configuration?: Dictionary<DaffCompositeConfigurationItem>) => createSelector(\n selectProduct(id),\n (product: T) => {\n if(product.type !== DaffProductTypeEnum.Composite) {\n return undefined;\n }\n\n const appliedOptions = configuration ? getAppliedOptionsForConfiguration(<DaffCompositeProduct><any>product, configuration) : {};\n return {\n minPrice: getMinPricesForConfiguration(<DaffCompositeProduct><any>product, appliedOptions),\n maxPrice: getMaxPricesForConfiguration(<DaffCompositeProduct><any>product, appliedOptions),\n };\n },\n )).memoized;\n\n const selectCompositeProductOptionalItemPricesForConfiguration = defaultMemoize((id: DaffCompositeProduct['id'], configuration?: Dictionary<DaffCompositeConfigurationItem>) => createSelector(\n selectProduct(id),\n (product: T) => {\n if(product.type !== DaffProductTypeEnum.Composite) {\n return undefined;\n }\n\n const appliedOptions = configuration ? getAppliedOptionsForConfiguration(<DaffCompositeProduct><any>product, configuration) : {};\n return {\n minPrice: getMinPricesForConfiguration(<DaffCompositeProduct><any>product, appliedOptions),\n maxPrice: getMaxPricesForConfigurationIncludingOptionalItems(<DaffCompositeProduct><any>product, appliedOptions),\n };\n },\n )).memoized;\n\n const selectCompositeProductPricesAsCurrentlyConfigured = defaultMemoize((id: T['id']) => createSelector<DaffCompositeProductStateRootSlice<T>, [T, EntityState<DaffCompositeProductEntity>['entities']], DaffPriceRange>(\n selectProduct(id),\n selectCompositeProductAppliedOptionsEntities,\n (product: T, appliedOptionsEntities) =>\n selectCompositeProductRequiredItemPricesForConfiguration(id, appliedOptionsEntities[id]?.items || null).projector(product),\n )).memoized;\n\n const selectCompositeProductDiscountAmount = defaultMemoize((id: DaffCompositeProduct['id']) => createSelector<DaffCompositeProductStateRootSlice<T>, [T, EntityState<DaffCompositeProductEntity>['entities']], number>(\n selectProduct(id),\n selectCompositeProductAppliedOptionsEntities,\n (product: T, appliedOptionsEntities) => {\n if(product.type !== DaffProductTypeEnum.Composite) {\n return undefined;\n }\n const appliedConfigurationItem = appliedOptionsEntities[product.id].items;\n if((<DaffCompositeProduct><any>product).items.filter(item => item.required && appliedConfigurationItem[item.id].value === null).length > 0) {\n return undefined;\n }\n const appliedOptions = getAppliedOptionsForConfiguration((<DaffCompositeProduct><any>product), appliedConfigurationItem);\n\n return (<DaffCompositeProduct><any>product).items.reduce((acc, item) =>\n appliedOptions[item.id]?.discount?.amount ? daffAdd(acc, daffMultiply(appliedOptions[item.id].discount.amount, appliedOptions[item.id].quantity)) : acc,\n product.discount.amount);\n },\n )).memoized;\n\n const selectCompositeProductDiscountPercent = defaultMemoize((id: DaffCompositeProduct['id']) => createSelector<DaffCompositeProductStateRootSlice<T>, [T, EntityState<DaffCompositeProductEntity>['entities']], number>(\n selectProduct(id),\n selectCompositeProductAppliedOptionsEntities,\n (product: T, appliedOptionsEntities) => {\n if(product.type !== DaffProductTypeEnum.Composite) {\n return undefined;\n }\n const appliedOptions = appliedOptionsEntities[product.id].items;\n if((<DaffCompositeProduct><any>product).items.filter(item => item.required && appliedOptions[item.id].value === null).length > 0) {\n return undefined;\n }\n\n const prices = getMinPricesForConfiguration(\n (<DaffCompositeProduct><any>product),\n getAppliedOptionsForConfiguration((<DaffCompositeProduct><any>product), appliedOptions),\n );\n\n return daffMultiply(\n daffDivide(\n daffSubtract(prices.originalPrice, prices.discountedPrice),\n prices.originalPrice,\n ),\n 100,\n );\n },\n )).memoized;\n\n return {\n selectCompositeProductRequiredItemPricesForConfiguration,\n selectCompositeProductOptionalItemPricesForConfiguration,\n selectCompositeProductPricesAsCurrentlyConfigured,\n selectCompositeProductDiscountAmount,\n selectCompositeProductDiscountPercent,\n };\n};\n\n/**\n * A function that returns all selectors related to the composite product feature.\n *\n * Returns {@link DaffCompositeProductMemoizedSelectors}.\n */\nexport const getDaffCompositeProductPriceSelectors = (() => {\n let cache;\n return <T extends DaffProduct = DaffProduct>(): DaffCompositeProductMemoizedSelectors<T> => cache = cache\n ? cache\n : createCompositeProductSelectors<T>();\n})();\n\n/**\n * The minimum price of an item is zero if the item is optional.\n *\n * @param item DaffCompositeProductItem\n */\nfunction getMinimumRequiredCompositeItemPrice(item: DaffCompositeProductItem, qty: number): number {\n return item.required ? daffMultiply(Math.min(...item.options.map(option => option.price)), qty) : 0;\n}\n\n/**\n * The maximum price for an item is zero if the item is optional.\n *\n * @param item DaffCompositeProductItem\n */\nfunction getMaximumRequiredCompositeItemPrice(item: DaffCompositeProductItem, qty: number): number {\n return item.required ? daffMultiply(Math.max(...item.options.map(option => option.price)), qty) : 0;\n}\n\n/**\n * The minimum discounted price of an item is zero if the item is optional.\n *\n * @param item DaffCompositeProductItem\n */\nfunction getMinimumRequiredCompositeItemDiscountedPrice(item: DaffCompositeProductItem, qty: number): number {\n return item.required ? daffMultiply(Math.min(...item.options.map(getDiscountedPrice)), qty) : 0;\n}\n/**\n * The maximum discounted price of an item is zero if the item is optional.\n *\n * @param item DaffCompositeProductItem\n */\nfunction getMaximumRequiredCompositeItemDiscountedPrice(item: DaffCompositeProductItem, qty: number): number {\n return item.required ? daffMultiply(Math.max(...item.options.map(getDiscountedPrice)), qty) : 0;\n}\n\n/**\n * Gets the minimum prices of a composite product for the configuration provided excluding unselected, optional item prices.\n *\n * @param product a DaffCompositeProduct\n * @param appliedOptions a Dictionary<DaffCompositeProductItemOption> that determines the current configuration of the composite product.\n */\nfunction getMinPricesForConfiguration(product: DaffCompositeProduct, appliedOptions: Dictionary<DaffCompositeProductItemOption>): DaffProductPrices {\n return {\n discountedPrice: product.items.reduce((acc, item) => daffAdd(\n acc,\n appliedOptionHasId(appliedOptions[item.id]) ?\n daffMultiply(getDiscountedPrice(appliedOptions[item.id]), appliedOptions[item.id].quantity) :\n getMinimumRequiredCompositeItemDiscountedPrice(item, getOptionQty(appliedOptions[item.id])),\n ), getDiscountedPrice(product)),\n discount: { amount: null, percent: null },\n originalPrice: product.items.reduce((acc, item) => daffAdd(\n acc,\n appliedOptionHasId(appliedOptions[item.id]) ?\n daffMultiply(appliedOptions[item.id].price, appliedOptions[item.id].quantity) :\n getMinimumRequiredCompositeItemPrice(item, getOptionQty(appliedOptions[item.id])),\n ), product.price),\n };\n}\n\n/**\n * Gets the maximum prices of a composite product for the configuration provided excluding unselected, optional item prices.\n *\n * @param product a DaffCompositeProduct\n * @param appliedOptions a Dictionary<DaffCompositeProductItemOption> that determines the current configuration of the composite product.\n */\nfunction getMaxPricesForConfiguration(product: DaffCompositeProduct, appliedOptions: Dictionary<DaffCompositeProductItemOption>): DaffProductPrices {\n return {\n discountedPrice: product.items.reduce((acc, item) => daffAdd(\n acc,\n appliedOptionHasId(appliedOptions[item.id]) ?\n daffMultiply(getDiscountedPrice(appliedOptions[item.id]), appliedOptions[item.id].quantity) :\n getMaximumRequiredCompositeItemDiscountedPrice(item, getOptionQty(appliedOptions[item.id])),\n ), getDiscountedPrice(product)),\n discount: { amount: null, percent: null },\n originalPrice: product.items.reduce((acc, item) => daffAdd(\n acc,\n appliedOptionHasId(appliedOptions[item.id]) ?\n daffMultiply(appliedOptions[item.id].price, appliedOptions[item.id].quantity) :\n getMaximumRequiredCompositeItemPrice(item, getOptionQty(appliedOptions[item.id])),\n ), product.price),\n };\n}\n\nfunction getDiscountedPrice(product: DaffProduct): number {\n return product.discount ? daffSubtract(product.price, product.discount.amount) : product.price;\n}\n\n/**\n * Gets the maximum prices of a composite product including optional item prices.\n *\n * @param product a DaffCompositeProduct\n */\nfunction getMaxPricesForConfigurationIncludingOptionalItems(product: DaffCompositeProduct, appliedOptions: Dictionary<DaffCompositeProductItemOption>): DaffProductPrices {\n return {\n discountedPrice: product.items.reduce((acc, item) => daffAdd(\n acc,\n appliedOptionHasId(appliedOptions[item.id]) ?\n daffMultiply(getDiscountedPrice(appliedOptions[item.id]), appliedOptions[item.id].quantity) :\n appliedOptionHasQty(appliedOptions[item.id]) ?\n daffMultiply(Math.max(...item.options.map(getDiscountedPrice)), appliedOptions[item.id].quantity) :\n Math.max(...item.options.map(getDiscountedPrice)),\n ), getDiscountedPrice(product)),\n discount: { amount: null, percent: null },\n originalPrice: product.items.reduce((acc, item) => daffAdd(\n acc,\n appliedOptionHasId(appliedOptions[item.id]) ?\n daffMultiply(appliedOptions[item.id].price, appliedOptions[item.id].quantity) :\n appliedOptionHasQty(appliedOptions[item.id]) ?\n daffMultiply(Math.max(...item.options.map(option => option.price)), appliedOptions[item.id].quantity) :\n Math.max(...item.options.map(option => option.price)),\n ), product.price),\n };\n}\n\n/**\n * Takes a product and a set of option configurations and convert it into a dictionary of the full option objects.\n *\n * @param product a DaffCompositeProduct\n * @param configuration a Dictionary<DaffCompositeConfigurationItem> used to build the appliedOptions object.\n */\nfunction getAppliedOptionsForConfiguration(product: DaffCompositeProduct, configuration: Dictionary<DaffCompositeConfigurationItem>): Dictionary<DaffCompositeProductItemOption> {\n return product.items.reduce((acc, item) => ({\n ...acc,\n [item.id]: configuration[item.id] ? {\n ...item.options.find(option => option.id === configuration[item.id].value),\n quantity: (configuration[item.id].qty === null || configuration[item.id].qty === undefined) ? 1 : configuration[item.id].qty,\n } : null,\n }), {});\n}\n\nfunction appliedOptionHasId(appliedOption: DaffCompositeProductItemOption): boolean {\n return !!appliedOption?.id;\n}\n\nfunction getOptionQty(appliedOption: DaffCompositeProductItemOption): number {\n return appliedOptionHasQty(appliedOption) ? appliedOption.quantity : 1;\n}\n\nfunction appliedOptionHasQty(appliedOption: DaffCompositeProductItemOption): boolean {\n return appliedOption?.quantity !== null && appliedOption?.quantity !== undefined;\n}\n","import { DaffProduct } from '@daffodil/product';\n\nimport {\n DaffCompositeProductEntitiesMemoizedSelectors,\n getDaffCompositeProductEntitiesSelectors,\n} from './composite-product-entities/composite-product-entities.selectors';\nimport {\n DaffCompositeProductMemoizedSelectors,\n getDaffCompositeProductPriceSelectors,\n} from './composite-product/composite-product.selectors';\n\n/**\n * An interface for all selectors in the composite product feature area.\n */\nexport interface DaffCompositeProductAllSelectors<T extends DaffProduct = DaffProduct> extends\n DaffCompositeProductEntitiesMemoizedSelectors<T>,\n DaffCompositeProductMemoizedSelectors<T> { }\n\n/**\n * A function that returns all selectors in the composite product feature area.\n * Returns {@link DaffCompositeProductAllSelectors}.\n */\nexport const getDaffCompositeProductSelectors = <T extends DaffProduct>(): DaffCompositeProductAllSelectors<T> => ({\n ...getDaffCompositeProductEntitiesSelectors<T>(),\n ...getDaffCompositeProductPriceSelectors<T>(),\n});\n","import { Injectable } from '@angular/core';\nimport { Dictionary } from '@ngrx/entity';\nimport {\n Store,\n select,\n Action,\n} from '@ngrx/store';\nimport { Observable } from 'rxjs';\n\nimport {\n DaffProduct,\n DaffPriceRange,\n productPriceRangeHasDiscount,\n productPriceRangeHasPriceRange,\n} from '@daffodil/product';\nimport {\n DaffCompositeConfigurationItem,\n DaffCompositeProductItemOption,\n DaffCompositeProductItem,\n} from '@daffodil/product-composite';\n\nimport { DaffCompositeProductStateRootSlice } from '../../reducers/composite-product-reducers-state.interface';\nimport { getDaffCompositeProductSelectors } from '../../selectors/public_api';\nimport { DaffCompositeProductFacadeInterface } from './composite-product-facade.interface';\n\n/**\n * A facade for interacting with the composite product state.\n * Exposes many parts of the state for easy access and allows dispatching of actions.\n *\n * @inheritdoc\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffCompositeProductFacade<T extends DaffProduct = DaffProduct> implements DaffCompositeProductFacadeInterface {\n\n constructor(private store: Store<DaffCompositeProductStateRootSlice<T>>) {}\n\n compositeProductSelectors = getDaffCompositeProductSelectors<T>();\n\n hasDiscount = productPriceRangeHasDiscount;\n\n hasPriceRange = productPriceRangeHasPriceRange;\n\n getRequiredItemPricesForConfiguration(id: T['id'], configuration?: Dictionary<DaffCompositeConfigurationItem>): Observable<DaffPriceRange> {\n\t return this.store.pipe(select(this.compositeProductSelectors.selectCompositeProductRequiredItemPricesForConfiguration(id, configuration)));\n }\n\n getOptionalItemPricesForConfiguration(id: T['id'], configuration?: Dictionary<DaffCompositeConfigurationItem>): Observable<DaffPriceRange> {\n\t return this.store.pipe(select(this.compositeProductSelectors.selectCompositeProductOptionalItemPricesForConfiguration(id, configuration)));\n }\n\n getPricesAsCurrentlyConfigured(id: T['id']): Observable<DaffPriceRange> {\n\t return this.store.pipe(select(this.compositeProductSelectors.selectCompositeProductPricesAsCurrentlyConfigured(id)));\n }\n\n getAppliedOptions(id: T['id']): Observable<Dictionary<DaffCompositeProductItemOption>> {\n\t return this.store.pipe(select(this.compositeProductSelectors.selectCompositeProductAppliedOptions(id)));\n }\n\n getDiscountAmount(id: T['id']): Observable<number> {\n\t return this.store.pipe(select(this.compositeProductSelectors.selectCompositeProductDiscountAmount(id)));\n }\n\n getDiscountPercent(id: T['id']): Observable<number> {\n\t return this.store.pipe(select(this.compositeProductSelectors.selectCompositeProductDiscountPercent(id)));\n }\n\n isItemRequired(id: T['id'], item_id: DaffCompositeProductItem['id']) {\n\t return this.store.pipe(select(this.compositeProductSelectors.selectIsCompositeProductItemRequired(id, item_id)));\n }\n\n dispatch(action: Action) {\n\t this.store.dispatch(action);\n }\n}\n","import { EntityState } from '@ngrx/entity';\n\nimport { DaffProduct } from '@daffodil/product';\nimport { DaffCompositeProduct } from '@daffodil/product-composite';\nimport {\n DaffProductPageActions,\n DaffProductPageActionTypes,\n DaffProductGridActionTypes,\n DaffProductGridActions,\n DaffBestSellersActions,\n DaffProductActions,\n DaffBestSellersActionTypes,\n DaffProductActionTypes,\n} from '@daffodil/product/state';\n\nimport {\n DaffCompositeProductActions,\n DaffCompositeProductActionTypes,\n} from '../../actions/public_api';\nimport { daffCompositeProductAppliedOptionsEntitiesAdapter } from './composite-product-entities-reducer-adapter';\nimport { DaffCompositeProductEntity } from './composite-product-entity';\n\n/**\n * Reducer function that catches actions and changes/overwrites composite product entities state.\n *\n * @param state current State of the redux store\n * @param action ProductGrid, BestSellers, Product, or Composite Product actions\n * @returns Product entities state\n */\nexport function daffCompositeProductEntitiesReducer<T extends DaffProduct, V extends DaffCompositeProduct>(\n state = daffCompositeProductAppliedOptionsEntitiesAdapter().getInitialState(),\n action: DaffProductGridActions<T> | DaffBestSellersActions<T> | DaffProductActions<T> | DaffProductPageActions<T> | DaffCompositeProductActions<V>): EntityState<DaffCompositeProductEntity> {\n const adapter = daffCompositeProductAppliedOptionsEntitiesAdapter();\n switch (action.type) {\n case DaffProductGridActionTypes.ProductGridLoadSuccessAction:\n case DaffBestSellersActionTypes.BestSellersLoadSuccessAction:\n return adapter.upsertProducts(state, ...(<V[]><unknown>action.payload));\n\n case DaffProductActionTypes.ProductLoadSuccessAction:\n case DaffProductPageActionTypes.ProductPageLoadSuccessAction:\n return adapter.upsertProducts(state, ...(<V[]><unknown>action.payload.products));\n\n case DaffCompositeProductActionTypes.CompositeProductApplyOptionAction:\n return adapter.applyOption(state, action.id, action.itemId, action.optionId, action.qty);\n\n default:\n return state;\n }\n}\n","import { daffCompositeProductEntitiesReducer } from './composite-product-entities/composite-product-entities.reducer';\n\n/**\n * Returns state values from all composite product related reducers.\n */\nexport const daffCompositeProductReducers = {\n compositeProductOptions: daffCompositeProductEntitiesReducer,\n};\n","import {\n InjectionToken,\n Provider,\n} from '@angular/core';\nimport { ActionReducer } from '@ngrx/store';\n\nimport { DaffCompositeProductReducersState } from '../composite-product-reducers-state.interface';\n\n/**\n * A token to hold the injectable extra reducers.\n *\n * Prefer using {@link daffProductCompositeProvideExtraReducers}.\n */\nexport const DAFF_PRODUCT_COMPOSITE_EXTRA_REDUCERS = new InjectionToken<ActionReducer<DaffCompositeProductReducersState>[]>(\n 'DAFF_PRODUCT_COMPOSITE_EXTRA_REDUCERS',\n { factory: () => []},\n);\n\n/**\n * Provides additional reducers that run after the standard Daffodil cart reducers.\n *\n * ```ts\n * providers: [\n * ...daffProductCompositeProvideExtraReducers(\n * myReducer1,\n * myReducer2\n * )\n * ]\n * ```\n */\nexport function daffProductCompositeProvideExtraReducers(\n ...reducers: ActionReducer<Partial<DaffCompositeProductReducersState>>[]\n): Provider[] {\n return reducers.map(reducer => ({\n provide: DAFF_PRODUCT_COMPOSITE_EXTRA_REDUCERS,\n useValue: reducer,\n multi: true,\n }));\n}\n","import {\n inject,\n InjectionToken,\n} from '@angular/core';\nimport {\n ActionReducer,\n combineReducers,\n} from '@ngrx/store';\n\nimport { daffComposeReducers } from '@daffodil/core/state';\n\nimport { daffCompositeProductReducers } from '../composite-product-reducers';\nimport { DaffCompositeProductReducersState } from '../composite-product-reducers-state.interface';\nimport { DAFF_PRODUCT_COMPOSITE_EXTRA_REDUCERS } from './extra.token';\n\n/**\n * An internal token to hold the Daffodil composite product reducers.\n * Includes the extra and standard reducers.\n *\n * @docs-private\n */\nexport const DAFF_PRODUCT_COMPOSITE_REDUCERS = new InjectionToken<ActionReducer<DaffCompositeProductReducersState>>(\n 'DAFF_PRODUCT_COMPOSITE_REDUCERS',\n {\n factory: () => daffComposeReducers([\n combineReducers(daffCompositeProductReducers),\n ...inject(DAFF_PRODUCT_COMPOSITE_EXTRA_REDUCERS),\n ]),\n },\n);\n","import { NgModule } from '@angular/core';\nimport { StoreModule } from '@ngrx/store';\n\nimport { DAFF_PRODUCT_COMPOSITE_REDUCERS } from './reducers/injection-tokens/reducers.token';\nimport { DAFF_COMPOSITE_PRODUCT_STORE_FEATURE_KEY } from './reducers/public_api';\n\n/**\n * A module that provides the default reducers and effects for composite product redux state.\n */\n@NgModule({\n imports: [\n StoreModule.forFeature(DAFF_COMPOSITE_PRODUCT_STORE_FEATURE_KEY, DAFF_PRODUCT_COMPOSITE_REDUCERS),\n ],\n})\nexport class DaffCompositeProductStateModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -117,8 +117,8 @@ class DaffCompositeProductFactory extends DaffModelFactory {
117
117
  super(MockCompositeProduct);
118
118
  }
119
119
  }
120
- /** @nocollapse */ /** @nocollapse */ DaffCompositeProductFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
121
- /** @nocollapse */ /** @nocollapse */ DaffCompositeProductFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductFactory, providedIn: 'root' });
120
+ /** @nocollapse */ DaffCompositeProductFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
121
+ /** @nocollapse */ DaffCompositeProductFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductFactory, providedIn: 'root' });
122
122
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductFactory, decorators: [{
123
123
  type: Injectable,
124
124
  args: [{
@@ -1 +1 @@
1
- {"version":3,"file":"daffodil-product-composite-testing.mjs","sources":["../../../libs/product-composite/testing/src/factories/composite-product.factory.ts","../../../libs/product-composite/testing/src/daffodil-product-composite-testing.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport * as faker from '@faker-js/faker/locale/en_US';\n\nimport { DaffModelFactory } from '@daffodil/core/testing';\nimport { DaffProductTypeEnum } from '@daffodil/product';\nimport {\n DaffCompositeProduct,\n DaffCompositeProductItemInputEnum,\n} from '@daffodil/product-composite';\nimport { MockProduct } from '@daffodil/product/testing';\n\n/**\n * Mocked DaffCompositeProduct object.\n *\n * @deprecated import from @daffodil/product-composite/testing instead.\n */\nexport class MockCompositeProduct extends MockProduct implements DaffCompositeProduct {\n type = DaffProductTypeEnum.Composite;\n items = [\n\t {\n\t id: faker.datatype.uuid(),\n\t url: `/${faker.internet.domainWord()}.html`,\n\t required: faker.datatype.boolean(),\n\t title: faker.commerce.productName(),\n\t input_type: DaffCompositeProductItemInputEnum.select,\n\t options: [\n\t {\n\t id: faker.datatype.uuid(),\n\t type: DaffProductTypeEnum.Simple,\n\t url: `/${faker.internet.domainWord()}.html`,\n\t name: faker.commerce.productMaterial(),\n\t price: faker.datatype.number({ min: 1, max: 100 }),\n\t images: [],\n\t thumbnail: null,\n\t discount: {\n\t amount: 0,\n\t percent: 0,\n\t },\n\t quantity: faker.datatype.number({ min: 1, max: 9 }),\n\t is_default: true,\n\t in_stock: true,\n\t related: [],\n\t upsell: [],\n\t },\n\t {\n\t id: faker.datatype.uuid(),\n\t type: DaffProductTypeEnum.Simple,\n\t url: `/${faker.internet.domainWord()}.html`,\n\t name: faker.commerce.productMaterial(),\n\t price: faker.datatype.number({ min: 1, max: 100 }),\n\t images: [],\n\t thumbnail: null,\n\t discount: {\n\t amount: 0,\n\t percent: 0,\n\t },\n\t quantity: faker.datatype.number({ min: 1, max: 9 }),\n\t is_default: false,\n\t in_stock: true,\n\t related: [],\n\t upsell: [],\n\t },\n\t ],\n\t },\n\t {\n\t id: faker.datatype.uuid(),\n\t url: `/${faker.internet.domainWord()}.html`,\n\t required: faker.datatype.boolean(),\n\t title: faker.commerce.productName(),\n\t input_type: DaffCompositeProductItemInputEnum.select,\n\t options: [\n\t {\n\t id: faker.datatype.uuid(),\n\t type: DaffProductTypeEnum.Simple,\n\t url: `/${faker.internet.domainWord()}.html`,\n\t name: faker.commerce.productMaterial(),\n\t price: faker.datatype.number({ min: 1, max: 100 }),\n\t images: [],\n\t thumbnail: null,\n\t discount: {\n\t amount: 0,\n\t percent: 0,\n\t },\n\t quantity: faker.datatype.number({ min: 1, max: 9 }),\n\t is_default: true,\n\t in_stock: true,\n\t related: [],\n\t upsell: [],\n\t },\n\t {\n\t id: faker.datatype.uuid(),\n\t type: DaffProductTypeEnum.Simple,\n\t url: `/${faker.internet.domainWord()}.html`,\n\t name: faker.commerce.productMaterial(),\n\t price: faker.datatype.number({ min: 1, max: 100 }),\n\t images: [],\n\t thumbnail: null,\n\t discount: {\n\t amount: 0,\n\t percent: 0,\n\t },\n\t quantity: faker.datatype.number({ min: 1, max: 9 }),\n\t is_default: false,\n\t in_stock: true,\n\t related: [],\n\t upsell: [],\n\t },\n\t ],\n\t },\n ];\n}\n\n/**\n * Factory for creating DaffCompositeProducts.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffCompositeProductFactory extends DaffModelFactory<DaffCompositeProduct>{\n constructor(){\n super(MockCompositeProduct);\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-testing.mjs","sources":["../../../libs/product-composite/testing/src/factories/composite-product.factory.ts","../../../libs/product-composite/testing/src/daffodil-product-composite-testing.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport * as faker from '@faker-js/faker/locale/en_US';\n\nimport { DaffModelFactory } from '@daffodil/core/testing';\nimport { DaffProductTypeEnum } from '@daffodil/product';\nimport {\n DaffCompositeProduct,\n DaffCompositeProductItemInputEnum,\n} from '@daffodil/product-composite';\nimport { MockProduct } from '@daffodil/product/testing';\n\n/**\n * Mocked DaffCompositeProduct object.\n *\n * @deprecated import from @daffodil/product-composite/testing instead.\n */\nexport class MockCompositeProduct extends MockProduct implements DaffCompositeProduct {\n type = DaffProductTypeEnum.Composite;\n items = [\n\t {\n\t id: faker.datatype.uuid(),\n\t url: `/${faker.internet.domainWord()}.html`,\n\t required: faker.datatype.boolean(),\n\t title: faker.commerce.productName(),\n\t input_type: DaffCompositeProductItemInputEnum.select,\n\t options: [\n\t {\n\t id: faker.datatype.uuid(),\n\t type: DaffProductTypeEnum.Simple,\n\t url: `/${faker.internet.domainWord()}.html`,\n\t name: faker.commerce.productMaterial(),\n\t price: faker.datatype.number({ min: 1, max: 100 }),\n\t images: [],\n\t thumbnail: null,\n\t discount: {\n\t amount: 0,\n\t percent: 0,\n\t },\n\t quantity: faker.datatype.number({ min: 1, max: 9 }),\n\t is_default: true,\n\t in_stock: true,\n\t related: [],\n\t upsell: [],\n\t },\n\t {\n\t id: faker.datatype.uuid(),\n\t type: DaffProductTypeEnum.Simple,\n\t url: `/${faker.internet.domainWord()}.html`,\n\t name: faker.commerce.productMaterial(),\n\t price: faker.datatype.number({ min: 1, max: 100 }),\n\t images: [],\n\t thumbnail: null,\n\t discount: {\n\t amount: 0,\n\t percent: 0,\n\t },\n\t quantity: faker.datatype.number({ min: 1, max: 9 }),\n\t is_default: false,\n\t in_stock: true,\n\t related: [],\n\t upsell: [],\n\t },\n\t ],\n\t },\n\t {\n\t id: faker.datatype.uuid(),\n\t url: `/${faker.internet.domainWord()}.html`,\n\t required: faker.datatype.boolean(),\n\t title: faker.commerce.productName(),\n\t input_type: DaffCompositeProductItemInputEnum.select,\n\t options: [\n\t {\n\t id: faker.datatype.uuid(),\n\t type: DaffProductTypeEnum.Simple,\n\t url: `/${faker.internet.domainWord()}.html`,\n\t name: faker.commerce.productMaterial(),\n\t price: faker.datatype.number({ min: 1, max: 100 }),\n\t images: [],\n\t thumbnail: null,\n\t discount: {\n\t amount: 0,\n\t percent: 0,\n\t },\n\t quantity: faker.datatype.number({ min: 1, max: 9 }),\n\t is_default: true,\n\t in_stock: true,\n\t related: [],\n\t upsell: [],\n\t },\n\t {\n\t id: faker.datatype.uuid(),\n\t type: DaffProductTypeEnum.Simple,\n\t url: `/${faker.internet.domainWord()}.html`,\n\t name: faker.commerce.productMaterial(),\n\t price: faker.datatype.number({ min: 1, max: 100 }),\n\t images: [],\n\t thumbnail: null,\n\t discount: {\n\t amount: 0,\n\t percent: 0,\n\t },\n\t quantity: faker.datatype.number({ min: 1, max: 9 }),\n\t is_default: false,\n\t in_stock: true,\n\t related: [],\n\t upsell: [],\n\t },\n\t ],\n\t },\n ];\n}\n\n/**\n * Factory for creating DaffCompositeProducts.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffCompositeProductFactory extends DaffModelFactory<DaffCompositeProduct>{\n constructor(){\n super(MockCompositeProduct);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -21,9 +21,9 @@ class DaffCompositeProductInMemoryDriverModule {
21
21
  };
22
22
  }
23
23
  }
24
- /** @nocollapse */ /** @nocollapse */ DaffCompositeProductInMemoryDriverModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductInMemoryDriverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
25
- /** @nocollapse */ /** @nocollapse */ DaffCompositeProductInMemoryDriverModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductInMemoryDriverModule, imports: [CommonModule] });
26
- /** @nocollapse */ /** @nocollapse */ DaffCompositeProductInMemoryDriverModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductInMemoryDriverModule, imports: [[
24
+ /** @nocollapse */ DaffCompositeProductInMemoryDriverModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductInMemoryDriverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
25
+ /** @nocollapse */ DaffCompositeProductInMemoryDriverModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductInMemoryDriverModule, imports: [CommonModule] });
26
+ /** @nocollapse */ DaffCompositeProductInMemoryDriverModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductInMemoryDriverModule, imports: [[
27
27
  CommonModule,
28
28
  ]] });
29
29
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductInMemoryDriverModule, decorators: [{
@@ -1 +1 @@
1
- {"version":3,"file":"daffodil-product-composite-driver-in-memory.mjs","sources":["../../../libs/product-composite/driver/in-memory/src/in-memory.module.ts","../../../libs/product-composite/driver/in-memory/src/daffodil-product-composite-driver-in-memory.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {\n NgModule,\n ModuleWithProviders,\n} from '@angular/core';\n\nimport { DaffCompositeProductFactory } from '@daffodil/product-composite/testing';\nimport { DAFF_PRODUCT_TYPE_FACTORIES } from '@daffodil/product/testing';\n\n/**\n * Module for providing the composite product factory to the product kind factory.\n */\n@NgModule({\n imports: [\n CommonModule,\n ],\n})\nexport class DaffCompositeProductInMemoryDriverModule {\n static forRoot(): ModuleWithProviders<DaffCompositeProductInMemoryDriverModule> {\n return {\n ngModule: DaffCompositeProductInMemoryDriverModule,\n providers: [\n {\n provide: DAFF_PRODUCT_TYPE_FACTORIES,\n useExisting: DaffCompositeProductFactory,\n multi: true,\n },\n ],\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AASA;;AAEG;MAMU,wCAAwC,CAAA;AACnD,IAAA,OAAO,OAAO,GAAA;QACZ,OAAO;AACL,YAAA,QAAQ,EAAE,wCAAwC;AAClD,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,OAAO,EAAE,2BAA2B;AACpC,oBAAA,WAAW,EAAE,2BAA2B;AACxC,oBAAA,KAAK,EAAE,IAAI;AACZ,iBAAA;AACF,aAAA;SACF,CAAC;KACH;;2KAZU,wCAAwC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAxC,sCAAA,wCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wCAAwC,YAHjD,YAAY,CAAA,EAAA,CAAA,CAAA;AAGH,sCAAA,wCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wCAAwC,EAJ1C,OAAA,EAAA,CAAA;YACP,YAAY;AACb,SAAA,CAAA,EAAA,CAAA,CAAA;2FAEU,wCAAwC,EAAA,UAAA,EAAA,CAAA;kBALpD,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;AACF,iBAAA,CAAA;;;AChBD;;AAEG;;;;"}
1
+ {"version":3,"file":"daffodil-product-composite-driver-in-memory.mjs","sources":["../../../libs/product-composite/driver/in-memory/src/in-memory.module.ts","../../../libs/product-composite/driver/in-memory/src/daffodil-product-composite-driver-in-memory.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {\n NgModule,\n ModuleWithProviders,\n} from '@angular/core';\n\nimport { DaffCompositeProductFactory } from '@daffodil/product-composite/testing';\nimport { DAFF_PRODUCT_TYPE_FACTORIES } from '@daffodil/product/testing';\n\n/**\n * Module for providing the composite product factory to the product kind factory.\n */\n@NgModule({\n imports: [\n CommonModule,\n ],\n})\nexport class DaffCompositeProductInMemoryDriverModule {\n static forRoot(): ModuleWithProviders<DaffCompositeProductInMemoryDriverModule> {\n return {\n ngModule: DaffCompositeProductInMemoryDriverModule,\n providers: [\n {\n provide: DAFF_PRODUCT_TYPE_FACTORIES,\n useExisting: DaffCompositeProductFactory,\n multi: true,\n },\n ],\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AASA;;AAEG;MAMU,wCAAwC,CAAA;AACnD,IAAA,OAAO,OAAO,GAAA;QACZ,OAAO;AACL,YAAA,QAAQ,EAAE,wCAAwC;AAClD,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,OAAO,EAAE,2BAA2B;AACpC,oBAAA,WAAW,EAAE,2BAA2B;AACxC,oBAAA,KAAK,EAAE,IAAI;AACZ,iBAAA;AACF,aAAA;SACF,CAAC;KACH;;wJAZU,wCAAwC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAxC,mBAAA,wCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wCAAwC,YAHjD,YAAY,CAAA,EAAA,CAAA,CAAA;AAGH,mBAAA,wCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wCAAwC,EAJ1C,OAAA,EAAA,CAAA;YACP,YAAY;AACb,SAAA,CAAA,EAAA,CAAA,CAAA;2FAEU,wCAAwC,EAAA,UAAA,EAAA,CAAA;kBALpD,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;AACF,iBAAA,CAAA;;;AChBD;;AAEG;;;;"}
@@ -28,8 +28,8 @@ class MagentoBundledProductItemOptionFactory extends DaffModelFactory {
28
28
  super(MockMagentoBundledProductItemOption, simpleFactory);
29
29
  }
30
30
  }
31
- /** @nocollapse */ /** @nocollapse */ MagentoBundledProductItemOptionFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: MagentoBundledProductItemOptionFactory, deps: [{ token: i1.MagentoSimpleProductFactory }], target: i0.ɵɵFactoryTarget.Injectable });
32
- /** @nocollapse */ /** @nocollapse */ MagentoBundledProductItemOptionFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: MagentoBundledProductItemOptionFactory, providedIn: 'root' });
31
+ /** @nocollapse */ MagentoBundledProductItemOptionFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: MagentoBundledProductItemOptionFactory, deps: [{ token: i1.MagentoSimpleProductFactory }], target: i0.ɵɵFactoryTarget.Injectable });
32
+ /** @nocollapse */ MagentoBundledProductItemOptionFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: MagentoBundledProductItemOptionFactory, providedIn: 'root' });
33
33
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: MagentoBundledProductItemOptionFactory, decorators: [{
34
34
  type: Injectable,
35
35
  args: [{
@@ -58,8 +58,8 @@ class MagentoBundledProductItemFactory extends DaffModelFactory {
58
58
  super(MockMagentoBundledProductItem, optionFactory);
59
59
  }
60
60
  }
61
- /** @nocollapse */ /** @nocollapse */ MagentoBundledProductItemFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: MagentoBundledProductItemFactory, deps: [{ token: MagentoBundledProductItemOptionFactory }], target: i0.ɵɵFactoryTarget.Injectable });
62
- /** @nocollapse */ /** @nocollapse */ MagentoBundledProductItemFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: MagentoBundledProductItemFactory, providedIn: 'root' });
61
+ /** @nocollapse */ MagentoBundledProductItemFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: MagentoBundledProductItemFactory, deps: [{ token: MagentoBundledProductItemOptionFactory }], target: i0.ɵɵFactoryTarget.Injectable });
62
+ /** @nocollapse */ MagentoBundledProductItemFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: MagentoBundledProductItemFactory, providedIn: 'root' });
63
63
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: MagentoBundledProductItemFactory, decorators: [{
64
64
  type: Injectable,
65
65
  args: [{
@@ -86,8 +86,8 @@ class MagentoBundledProductFactory extends DaffModelFactory {
86
86
  super(MockMagentoBundledProduct, bundleItemFactory);
87
87
  }
88
88
  }
89
- /** @nocollapse */ /** @nocollapse */ MagentoBundledProductFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: MagentoBundledProductFactory, deps: [{ token: MagentoBundledProductItemFactory }], target: i0.ɵɵFactoryTarget.Injectable });
90
- /** @nocollapse */ /** @nocollapse */ MagentoBundledProductFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: MagentoBundledProductFactory, providedIn: 'root' });
89
+ /** @nocollapse */ MagentoBundledProductFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: MagentoBundledProductFactory, deps: [{ token: MagentoBundledProductItemFactory }], target: i0.ɵɵFactoryTarget.Injectable });
90
+ /** @nocollapse */ MagentoBundledProductFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: MagentoBundledProductFactory, providedIn: 'root' });
91
91
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: MagentoBundledProductFactory, decorators: [{
92
92
  type: Injectable,
93
93
  args: [{
@@ -1 +1 @@
1
- {"version":3,"file":"daffodil-product-composite-driver-magento-testing.mjs","sources":["../../../libs/product-composite/driver/magento/testing/src/factories/bundle/bundle-item-option.factory.ts","../../../libs/product-composite/driver/magento/testing/src/factories/bundle/bundle-item.factory.ts","../../../libs/product-composite/driver/magento/testing/src/factories/bundle/bundle.factory.ts","../../../libs/product-composite/driver/magento/testing/src/daffodil-product-composite-driver-magento-testing.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport * as faker from '@faker-js/faker/locale/en_US';\n\nimport { DaffModelFactory } from '@daffodil/core/testing';\nimport { MagentoBundledProductItemOption } from '@daffodil/product-composite/driver/magento';\nimport { MagentoSimpleProduct } from '@daffodil/product/driver/magento';\nimport { MagentoSimpleProductFactory } from '@daffodil/product/driver/magento/testing';\n\n\nexport class MockMagentoBundledProductItemOption implements MagentoBundledProductItemOption {\n constructor(\n private simpleFactory: MagentoSimpleProductFactory,\n ) {}\n\n uid = faker.datatype.uuid();\n label = faker.random.word();\n quantity = faker.datatype.number({ min: 1, max: 20 });\n is_default = faker.random.boolean();\n position = faker.datatype.number({ min: 1, max: 10 });\n product = this.createProduct();\n\n protected createProduct(): MagentoSimpleProduct {\n return this.simpleFactory.create();\n }\n}\n\n/**\n * A factory for creating stub data for {@link MagentoBundledProduct}s.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class MagentoBundledProductItemOptionFactory extends DaffModelFactory<MagentoBundledProductItemOption> {\n constructor(\n simpleFactory: MagentoSimpleProductFactory,\n ) {\n super(MockMagentoBundledProductItemOption, simpleFactory);\n }\n}\n","import { Injectable } from '@angular/core';\nimport * as faker from '@faker-js/faker/locale/en_US';\n\nimport { DaffModelFactory } from '@daffodil/core/testing';\nimport {\n MagentoBundledProductItem,\n MagentoBundledProductItemOption,\n} from '@daffodil/product-composite/driver/magento';\n\nimport { MagentoBundledProductItemOptionFactory } from './bundle-item-option.factory';\n\n\nexport class MockMagentoBundledProductItem implements MagentoBundledProductItem {\n constructor(\n private optionFactory: MagentoBundledProductItemOptionFactory,\n ) {}\n required = faker.datatype.boolean();\n title = faker.random.word();\n type = faker.random.word();\n options = this.createOptions();\n option_id = faker.random.number({ min: 1, max: 9999 });\n\n protected createOptions(): MagentoBundledProductItemOption[] {\n\t return this.optionFactory.createMany(faker.datatype.number({ min: 1, max: 5 }));\n }\n}\n\n/**\n * A factory for creating stub data for {@link MagentoBundledProduct}s.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class MagentoBundledProductItemFactory extends DaffModelFactory<MagentoBundledProductItem> {\n constructor(\n optionFactory: MagentoBundledProductItemOptionFactory,\n ) {\n super(MockMagentoBundledProductItem, optionFactory);\n }\n}\n","import { Injectable } from '@angular/core';\nimport * as faker from '@faker-js/faker/locale/en_US';\n\nimport { DaffModelFactory } from '@daffodil/core/testing';\nimport {\n MagentoBundledProduct,\n MagentoBundledProductItem,\n} from '@daffodil/product-composite/driver/magento';\nimport { MagentoProductTypeEnum } from '@daffodil/product/driver/magento';\nimport { MockMagentoCoreProduct } from '@daffodil/product/driver/magento/testing';\n\nimport { MagentoBundledProductItemFactory } from './bundle-item.factory';\n\n\nexport class MockMagentoBundledProduct extends MockMagentoCoreProduct implements MagentoBundledProduct {\n constructor(\n private bundleItemFactory: MagentoBundledProductItemFactory,\n ) {\n super();\n }\n\n __typename = MagentoProductTypeEnum.BundledProduct;\n items = this.createBundleItems();\n\n protected createBundleItems(): MagentoBundledProductItem[] {\n return this.bundleItemFactory.createMany(faker.datatype.number({ min: 1, max: 5 }));\n }\n}\n\n/**\n * A factory for creating stub data for {@link MagentoBundledProduct}s.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class MagentoBundledProductFactory extends DaffModelFactory<MagentoBundledProduct> {\n constructor(\n bundleItemFactory: MagentoBundledProductItemFactory,\n ) {\n super(MockMagentoBundledProduct, bundleItemFactory);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.MagentoBundledProductItemOptionFactory","i1.MagentoBundledProductItemFactory"],"mappings":"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"}
1
+ {"version":3,"file":"daffodil-product-composite-driver-magento-testing.mjs","sources":["../../../libs/product-composite/driver/magento/testing/src/factories/bundle/bundle-item-option.factory.ts","../../../libs/product-composite/driver/magento/testing/src/factories/bundle/bundle-item.factory.ts","../../../libs/product-composite/driver/magento/testing/src/factories/bundle/bundle.factory.ts","../../../libs/product-composite/driver/magento/testing/src/daffodil-product-composite-driver-magento-testing.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport * as faker from '@faker-js/faker/locale/en_US';\n\nimport { DaffModelFactory } from '@daffodil/core/testing';\nimport { MagentoBundledProductItemOption } from '@daffodil/product-composite/driver/magento';\nimport { MagentoSimpleProduct } from '@daffodil/product/driver/magento';\nimport { MagentoSimpleProductFactory } from '@daffodil/product/driver/magento/testing';\n\n\nexport class MockMagentoBundledProductItemOption implements MagentoBundledProductItemOption {\n constructor(\n private simpleFactory: MagentoSimpleProductFactory,\n ) {}\n\n uid = faker.datatype.uuid();\n label = faker.random.word();\n quantity = faker.datatype.number({ min: 1, max: 20 });\n is_default = faker.random.boolean();\n position = faker.datatype.number({ min: 1, max: 10 });\n product = this.createProduct();\n\n protected createProduct(): MagentoSimpleProduct {\n return this.simpleFactory.create();\n }\n}\n\n/**\n * A factory for creating stub data for {@link MagentoBundledProduct}s.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class MagentoBundledProductItemOptionFactory extends DaffModelFactory<MagentoBundledProductItemOption> {\n constructor(\n simpleFactory: MagentoSimpleProductFactory,\n ) {\n super(MockMagentoBundledProductItemOption, simpleFactory);\n }\n}\n","import { Injectable } from '@angular/core';\nimport * as faker from '@faker-js/faker/locale/en_US';\n\nimport { DaffModelFactory } from '@daffodil/core/testing';\nimport {\n MagentoBundledProductItem,\n MagentoBundledProductItemOption,\n} from '@daffodil/product-composite/driver/magento';\n\nimport { MagentoBundledProductItemOptionFactory } from './bundle-item-option.factory';\n\n\nexport class MockMagentoBundledProductItem implements MagentoBundledProductItem {\n constructor(\n private optionFactory: MagentoBundledProductItemOptionFactory,\n ) {}\n required = faker.datatype.boolean();\n title = faker.random.word();\n type = faker.random.word();\n options = this.createOptions();\n option_id = faker.random.number({ min: 1, max: 9999 });\n\n protected createOptions(): MagentoBundledProductItemOption[] {\n\t return this.optionFactory.createMany(faker.datatype.number({ min: 1, max: 5 }));\n }\n}\n\n/**\n * A factory for creating stub data for {@link MagentoBundledProduct}s.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class MagentoBundledProductItemFactory extends DaffModelFactory<MagentoBundledProductItem> {\n constructor(\n optionFactory: MagentoBundledProductItemOptionFactory,\n ) {\n super(MockMagentoBundledProductItem, optionFactory);\n }\n}\n","import { Injectable } from '@angular/core';\nimport * as faker from '@faker-js/faker/locale/en_US';\n\nimport { DaffModelFactory } from '@daffodil/core/testing';\nimport {\n MagentoBundledProduct,\n MagentoBundledProductItem,\n} from '@daffodil/product-composite/driver/magento';\nimport { MagentoProductTypeEnum } from '@daffodil/product/driver/magento';\nimport { MockMagentoCoreProduct } from '@daffodil/product/driver/magento/testing';\n\nimport { MagentoBundledProductItemFactory } from './bundle-item.factory';\n\n\nexport class MockMagentoBundledProduct extends MockMagentoCoreProduct implements MagentoBundledProduct {\n constructor(\n private bundleItemFactory: MagentoBundledProductItemFactory,\n ) {\n super();\n }\n\n __typename = MagentoProductTypeEnum.BundledProduct;\n items = this.createBundleItems();\n\n protected createBundleItems(): MagentoBundledProductItem[] {\n return this.bundleItemFactory.createMany(faker.datatype.number({ min: 1, max: 5 }));\n }\n}\n\n/**\n * A factory for creating stub data for {@link MagentoBundledProduct}s.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class MagentoBundledProductFactory extends DaffModelFactory<MagentoBundledProduct> {\n constructor(\n bundleItemFactory: MagentoBundledProductItemFactory,\n ) {\n super(MockMagentoBundledProduct, bundleItemFactory);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.MagentoBundledProductItemOptionFactory","i1.MagentoBundledProductItemFactory"],"mappings":"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"}
@@ -122,9 +122,9 @@ class DaffCompositeProductMagentoDriverModule {
122
122
  };
123
123
  }
124
124
  }
125
- /** @nocollapse */ /** @nocollapse */ DaffCompositeProductMagentoDriverModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductMagentoDriverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
126
- /** @nocollapse */ /** @nocollapse */ DaffCompositeProductMagentoDriverModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductMagentoDriverModule, imports: [CommonModule] });
127
- /** @nocollapse */ /** @nocollapse */ DaffCompositeProductMagentoDriverModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductMagentoDriverModule, imports: [[
125
+ /** @nocollapse */ DaffCompositeProductMagentoDriverModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductMagentoDriverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
126
+ /** @nocollapse */ DaffCompositeProductMagentoDriverModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductMagentoDriverModule, imports: [CommonModule] });
127
+ /** @nocollapse */ DaffCompositeProductMagentoDriverModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductMagentoDriverModule, imports: [[
128
128
  CommonModule,
129
129
  ]] });
130
130
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffCompositeProductMagentoDriverModule, decorators: [{