@daffodil/product-composite 0.85.0 → 0.87.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/driver/magento/fragments/bundled-product.d.ts +2 -1
- package/driver/magento/injection-tokens/fragments/item.token.d.ts +2 -0
- package/driver/magento/injection-tokens/fragments/option.token.d.ts +2 -0
- package/driver/magento/injection-tokens/public_api.d.ts +4 -0
- package/driver/magento/injection-tokens/transforms/item/extra.token.d.ts +21 -0
- package/driver/magento/injection-tokens/transforms/item/token.d.ts +2 -0
- package/driver/magento/injection-tokens/transforms/option/extra.token.d.ts +21 -0
- package/driver/magento/injection-tokens/transforms/option/token.d.ts +2 -0
- package/driver/magento/interfaces/item-extra-transform.type.d.ts +3 -0
- package/driver/magento/interfaces/item-transform.type.d.ts +3 -0
- package/driver/magento/interfaces/option-extra-transform.type.d.ts +3 -0
- package/driver/magento/interfaces/option-transform.type.d.ts +3 -0
- package/driver/magento/interfaces/public_api.d.ts +4 -0
- package/driver/magento/public_api.d.ts +2 -0
- package/driver/magento/transforms/item-transformer.service.d.ts +11 -0
- package/driver/magento/transforms/option.d.ts +3 -0
- package/driver/magento/transforms/product-transformer.service.d.ts +17 -0
- package/driver/magento/transforms/public_api.d.ts +3 -1
- package/fesm2022/daffodil-product-composite-driver-magento-testing.mjs.map +1 -1
- package/fesm2022/daffodil-product-composite-driver-magento.mjs +220 -31
- package/fesm2022/daffodil-product-composite-driver-magento.mjs.map +1 -1
- package/package.json +1 -1
- package/driver/magento/transforms/bundled-product-transformers.d.ts +0 -9
@@ -1 +1,2 @@
|
|
1
|
-
|
1
|
+
import { DocumentNode } from 'graphql';
|
2
|
+
export declare const magentoBundledProductFragment: (extraItemFragments?: Array<DocumentNode>, extraOptionFragments?: Array<DocumentNode>) => import("apollo-angular").TypedDocumentNode<unknown, unknown>;
|
@@ -0,0 +1,2 @@
|
|
1
|
+
import { DocumentNode } from 'graphql';
|
2
|
+
export declare const DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_ITEM_FRAGMENTS: import("@angular/core").InjectionToken<DocumentNode[]>, provideDaffProductCompositeMagentoExtraItemFragments: <R extends DocumentNode = DocumentNode>(...values: R[]) => Array<import("@angular/core").ValueProvider>;
|
@@ -0,0 +1,2 @@
|
|
1
|
+
import { DocumentNode } from 'graphql';
|
2
|
+
export declare const DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_OPTION_FRAGMENTS: import("@angular/core").InjectionToken<DocumentNode[]>, provideDaffProductCompositeMagentoExtraOptionFragments: <R extends DocumentNode = DocumentNode>(...values: R[]) => Array<import("@angular/core").ValueProvider>;
|
@@ -0,0 +1,21 @@
|
|
1
|
+
import { Provider } from '@angular/core';
|
2
|
+
import { DaffCompositeProductItem } from '@daffodil/product-composite';
|
3
|
+
import { MagentoBundleProductItemExtraTransform } from '../../../interfaces/item-extra-transform.type';
|
4
|
+
import { MagentoBundledProductItem } from '../../../models/public_api';
|
5
|
+
declare const DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_ITEM_TRANSFORMS: import("@angular/core").InjectionToken<MagentoBundleProductItemExtraTransform[]>;
|
6
|
+
/**
|
7
|
+
* Provides extra product preview transforms for the Magento product driver.
|
8
|
+
*
|
9
|
+
* See {@link DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_ITEM_TRANSFORMS}.
|
10
|
+
*
|
11
|
+
* @example
|
12
|
+
* ```ts
|
13
|
+
* providers: [
|
14
|
+
* ...provideDaffProductCompositeMagentoExtraItemTransforms(
|
15
|
+
* myExtraProductTransform
|
16
|
+
* )
|
17
|
+
* ]
|
18
|
+
* ```
|
19
|
+
*/
|
20
|
+
export declare function provideDaffProductCompositeMagentoExtraItemTransforms<T extends MagentoBundledProductItem = MagentoBundledProductItem, V extends DaffCompositeProductItem = DaffCompositeProductItem>(...transforms: MagentoBundleProductItemExtraTransform<T, V>[]): Provider[];
|
21
|
+
export { DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_ITEM_TRANSFORMS };
|
@@ -0,0 +1,2 @@
|
|
1
|
+
import { MagentoBundleProductItemTransform } from '../../../interfaces/public_api';
|
2
|
+
export declare const DAFF_PRODUCT_COMPOSITE_MAGENTO_ITEM_TRANSFORM: import("@angular/core").InjectionToken<MagentoBundleProductItemTransform>, provideDaffProductMagentoProductTransform: <R extends MagentoBundleProductItemTransform = MagentoBundleProductItemTransform>(value: R) => import("@angular/core").ValueProvider;
|
@@ -0,0 +1,21 @@
|
|
1
|
+
import { Provider } from '@angular/core';
|
2
|
+
import { DaffCompositeProductItemOption } from '@daffodil/product-composite';
|
3
|
+
import { MagentoBundleProductOptionExtraTransform } from '../../../interfaces/option-extra-transform.type';
|
4
|
+
import { MagentoBundledProductItemOption } from '../../../models/public_api';
|
5
|
+
declare const DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_OPTION_TRANSFORMS: import("@angular/core").InjectionToken<MagentoBundleProductOptionExtraTransform[]>;
|
6
|
+
/**
|
7
|
+
* Provides extra product preview transforms for the Magento product driver.
|
8
|
+
*
|
9
|
+
* See {@link DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_OPTION_TRANSFORMS}.
|
10
|
+
*
|
11
|
+
* @example
|
12
|
+
* ```ts
|
13
|
+
* providers: [
|
14
|
+
* ...provideDaffProductCompositeMagentoExtraOptionTransforms(
|
15
|
+
* myExtraProductTransform
|
16
|
+
* )
|
17
|
+
* ]
|
18
|
+
* ```
|
19
|
+
*/
|
20
|
+
export declare function provideDaffProductCompositeMagentoExtraOptionTransforms<T extends MagentoBundledProductItemOption = MagentoBundledProductItemOption, V extends DaffCompositeProductItemOption = DaffCompositeProductItemOption>(...transforms: MagentoBundleProductOptionExtraTransform<T, V>[]): Provider[];
|
21
|
+
export { DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_OPTION_TRANSFORMS };
|
@@ -0,0 +1,2 @@
|
|
1
|
+
import { MagentoBundleProductOptionTransform } from '../../../interfaces/public_api';
|
2
|
+
export declare const DAFF_PRODUCT_COMPOSITE_MAGENTO_OPTION_TRANSFORM: import("@angular/core").InjectionToken<MagentoBundleProductOptionTransform>, provideDaffProductMagentoProductTransform: <R extends MagentoBundleProductOptionTransform = MagentoBundleProductOptionTransform>(value: R) => import("@angular/core").ValueProvider;
|
@@ -0,0 +1,3 @@
|
|
1
|
+
import { DaffCompositeProductItem } from '@daffodil/product-composite';
|
2
|
+
import { MagentoBundledProductItem } from '../models/bundled-product';
|
3
|
+
export type MagentoBundleProductItemExtraTransform<T extends MagentoBundledProductItem = MagentoBundledProductItem, V extends DaffCompositeProductItem = DaffCompositeProductItem> = (daffItem: DaffCompositeProductItem, magentoItem: T) => V;
|
@@ -0,0 +1,3 @@
|
|
1
|
+
import { DaffCompositeProductItem } from '@daffodil/product-composite';
|
2
|
+
import { MagentoBundledProductItem } from '../models/bundled-product';
|
3
|
+
export type MagentoBundleProductItemTransform<T extends MagentoBundledProductItem = MagentoBundledProductItem, V extends DaffCompositeProductItem = DaffCompositeProductItem> = (magentoItem: T) => V;
|
@@ -0,0 +1,3 @@
|
|
1
|
+
import { DaffCompositeProductItemOption } from '@daffodil/product-composite';
|
2
|
+
import { MagentoBundledProductItemOption } from '../models/bundled-product';
|
3
|
+
export type MagentoBundleProductOptionExtraTransform<T extends MagentoBundledProductItemOption = MagentoBundledProductItemOption, V extends DaffCompositeProductItemOption = DaffCompositeProductItemOption> = (daffOption: DaffCompositeProductItemOption, magentoOption: T) => V;
|
@@ -0,0 +1,3 @@
|
|
1
|
+
import { DaffCompositeProductItemOption } from '@daffodil/product-composite';
|
2
|
+
import { MagentoBundledProductItemOption } from '../models/bundled-product';
|
3
|
+
export type MagentoBundleProductOptionTransform<T extends MagentoBundledProductItemOption = MagentoBundledProductItemOption, V extends DaffCompositeProductItemOption = DaffCompositeProductItemOption> = (magentoOption: T) => V;
|
@@ -2,3 +2,5 @@ export { magentoBundledProductFragment } from './fragments/bundled-product';
|
|
2
2
|
export { DaffCompositeProductMagentoDriverModule } from './composite-product-driver.module';
|
3
3
|
export * from './transforms/public_api';
|
4
4
|
export * from './models/public_api';
|
5
|
+
export * from './injection-tokens/public_api';
|
6
|
+
export * from './interfaces/public_api';
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import { DaffCompositeProductItem } from '@daffodil/product-composite';
|
2
|
+
import { MagentoBundleProductOptionTransform } from '../interfaces/public_api';
|
3
|
+
import { MagentoBundledProductItem } from '../models/bundled-product';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
export declare class MagentoBundledProductItemTransformer {
|
6
|
+
private optionTransform;
|
7
|
+
constructor(optionTransform: MagentoBundleProductOptionTransform);
|
8
|
+
transform(item: MagentoBundledProductItem): DaffCompositeProductItem;
|
9
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MagentoBundledProductItemTransformer, never>;
|
10
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<MagentoBundledProductItemTransformer>;
|
11
|
+
}
|
@@ -0,0 +1,3 @@
|
|
1
|
+
import { DaffCompositeProductItemOption } from '@daffodil/product-composite';
|
2
|
+
import { MagentoBundledProductItemOption } from '../models/bundled-product';
|
3
|
+
export declare function transformMagentoBundledProductItemOption(option: MagentoBundledProductItemOption): DaffCompositeProductItemOption;
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import { DaffProduct } from '@daffodil/product';
|
2
|
+
import { DaffCompositeProduct } from '@daffodil/product-composite';
|
3
|
+
import { MagentoBundleProductItemTransform } from '../interfaces/public_api';
|
4
|
+
import { MagentoBundledProduct } from '../models/bundled-product';
|
5
|
+
import * as i0 from "@angular/core";
|
6
|
+
export declare class MagentoBundledProductTransformer {
|
7
|
+
private itemTransform;
|
8
|
+
constructor(itemTransform: MagentoBundleProductItemTransform);
|
9
|
+
/**
|
10
|
+
* Transforms the magento MagentoProduct from the magento product query into a DaffProduct.
|
11
|
+
*
|
12
|
+
* @param response the response from a magento product query.
|
13
|
+
*/
|
14
|
+
transform(daffProduct: DaffProduct, { items }: MagentoBundledProduct): DaffCompositeProduct;
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MagentoBundledProductTransformer, never>;
|
16
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<MagentoBundledProductTransformer>;
|
17
|
+
}
|
@@ -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 { faker } from '@faker-js/faker/locale/en_US';\n\nimport { DaffModelFactory } from '@daffodil/core/testing';\nimport { MagentoSimpleProduct } from '@daffodil/product/driver/magento';\nimport { MagentoSimpleProductFactory } from '@daffodil/product/driver/magento/testing';\nimport { MagentoBundledProductItemOption } from '@daffodil/product-composite/driver/magento';\n\n\nexport class MockMagentoBundledProductItemOption implements MagentoBundledProductItemOption {\n constructor(\n private simpleFactory: MagentoSimpleProductFactory,\n ) {}\n\n uid = faker.string.uuid();\n label = faker.lorem.word();\n quantity = faker.number.int({ min: 1, max: 20 });\n is_default = faker.datatype.boolean();\n position = faker.number.int({ 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 { 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.lorem.word();\n type = faker.lorem.word();\n options = this.createOptions();\n option_id = faker.number.int({ min: 1, max: 9999 });\n\n protected createOptions(): MagentoBundledProductItemOption[] {\n return this.optionFactory.createMany(faker.number.int({ 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 { faker } from '@faker-js/faker/locale/en_US';\n\nimport { DaffModelFactory } from '@daffodil/core/testing';\nimport { MagentoProductTypeEnum } from '@daffodil/product/driver/magento';\nimport { MockMagentoCoreProduct } from '@daffodil/product/driver/magento/testing';\nimport {\n MagentoBundledProduct,\n MagentoBundledProductItem,\n} from '@daffodil/product-composite/driver/magento';\n\nimport { MagentoBundledProductItemFactory } from './bundle-item.factory';\n\
|
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 { faker } from '@faker-js/faker/locale/en_US';\n\nimport { DaffModelFactory } from '@daffodil/core/testing';\nimport { MagentoSimpleProduct } from '@daffodil/product/driver/magento';\nimport { MagentoSimpleProductFactory } from '@daffodil/product/driver/magento/testing';\nimport { MagentoBundledProductItemOption } from '@daffodil/product-composite/driver/magento';\n\n\nexport class MockMagentoBundledProductItemOption implements MagentoBundledProductItemOption {\n constructor(\n private simpleFactory: MagentoSimpleProductFactory,\n ) {}\n\n uid = faker.string.uuid();\n label = faker.lorem.word();\n quantity = faker.number.int({ min: 1, max: 20 });\n is_default = faker.datatype.boolean();\n position = faker.number.int({ 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 { 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.lorem.word();\n type = faker.lorem.word();\n options = this.createOptions();\n option_id = faker.number.int({ min: 1, max: 9999 });\n\n protected createOptions(): MagentoBundledProductItemOption[] {\n return this.optionFactory.createMany(faker.number.int({ 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 { faker } from '@faker-js/faker/locale/en_US';\n\nimport { DaffModelFactory } from '@daffodil/core/testing';\nimport { MagentoProductTypeEnum } from '@daffodil/product/driver/magento';\nimport { MockMagentoCoreProduct } from '@daffodil/product/driver/magento/testing';\nimport {\n MagentoBundledProduct,\n MagentoBundledProductItem,\n} from '@daffodil/product-composite/driver/magento';\n\nimport { MagentoBundledProductItemFactory } from './bundle-item.factory';\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.number.int({ 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,18 +1,24 @@
|
|
1
1
|
import { gql } from 'apollo-angular';
|
2
|
+
import { daffBuildFragmentNameSpread, daffBuildFragmentDefinition } from '@daffodil/core/graphql';
|
2
3
|
import { CommonModule } from '@angular/common';
|
3
4
|
import * as i0 from '@angular/core';
|
4
|
-
import { NgModule } from '@angular/core';
|
5
|
-
import { MagentoProductStockStatusEnum,
|
5
|
+
import { inject, Inject, Injectable, NgModule } from '@angular/core';
|
6
|
+
import { MagentoProductStockStatusEnum, DAFF_PRODUCT_MAGENTO_EXTRA_PRODUCT_FRAGMENTS, DAFF_PRODUCT_MAGENTO_EXTRA_PRODUCT_TRANSFORMS, provideDaffProductMagentoExtraProductPreviewTransforms, MagentoProductTypeEnum } from '@daffodil/product/driver/magento';
|
7
|
+
import { createMultiInjectionToken, createSingleInjectionToken } from '@daffodil/core';
|
6
8
|
import { DaffProductTypeEnum } from '@daffodil/product';
|
7
9
|
|
8
|
-
const magentoBundledProductFragment = gql `
|
10
|
+
const magentoBundledProductFragment = (extraItemFragments = [], extraOptionFragments = []) => gql `
|
9
11
|
fragment magentoBundledProduct on BundleProduct {
|
10
12
|
items {
|
13
|
+
${daffBuildFragmentNameSpread(...extraItemFragments)}
|
14
|
+
|
11
15
|
option_id
|
12
16
|
required
|
13
17
|
title
|
14
18
|
type
|
15
19
|
options {
|
20
|
+
${daffBuildFragmentNameSpread(...extraOptionFragments)}
|
21
|
+
|
16
22
|
uid
|
17
23
|
is_default
|
18
24
|
label
|
@@ -36,36 +42,206 @@ fragment magentoBundledProduct on BundleProduct {
|
|
36
42
|
}
|
37
43
|
}
|
38
44
|
}
|
45
|
+
${daffBuildFragmentDefinition(...extraItemFragments, ...extraOptionFragments)}
|
39
46
|
`;
|
40
47
|
|
48
|
+
const {
|
41
49
|
/**
|
42
|
-
*
|
50
|
+
* A multi-provider injection token for providing extra GraphQL fragments that will be spread into product queries.
|
51
|
+
* This can be used to retrieve additional data that is not covered by the standard Daffodil interfaces.
|
43
52
|
*
|
44
|
-
*
|
53
|
+
* Fragment structure is platform-specific and this feature should be used with care.
|
54
|
+
*
|
55
|
+
* This can increase query complexity above the Magento default of 300.
|
56
|
+
* Daffodil only guarantees that stock queries don't exceed the limit of 300.
|
57
|
+
* Apps using this token should therefore increase the query complexity limit
|
58
|
+
* to accommodate the extra complexity contributed by the provided fragments.
|
45
59
|
*/
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
60
|
+
token: DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_ITEM_FRAGMENTS,
|
61
|
+
/**
|
62
|
+
* Provides extra GraphQL fragments for the Magento product driver.
|
63
|
+
*
|
64
|
+
* See {@link DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_ITEM_FRAGMENTS}.
|
65
|
+
*
|
66
|
+
* @example
|
67
|
+
* ```ts
|
68
|
+
* providers: [
|
69
|
+
* ...provideDaffProductCompositeMagentoExtraItemFragments(
|
70
|
+
* myExtraProductFragment
|
71
|
+
* )
|
72
|
+
* ]
|
73
|
+
* ```
|
74
|
+
*/
|
75
|
+
provider: provideDaffProductCompositeMagentoExtraItemFragments, } = createMultiInjectionToken('DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_ITEM_FRAGMENTS');
|
76
|
+
|
77
|
+
const {
|
78
|
+
/**
|
79
|
+
* A multi-provider injection token for providing extra GraphQL fragments that will be spread into product queries.
|
80
|
+
* This can be used to retrieve additional data that is not covered by the standard Daffodil interfaces.
|
81
|
+
*
|
82
|
+
* Fragment structure is platform-specific and this feature should be used with care.
|
83
|
+
*
|
84
|
+
* This can increase query complexity above the Magento default of 300.
|
85
|
+
* Daffodil only guarantees that stock queries don't exceed the limit of 300.
|
86
|
+
* Apps using this token should therefore increase the query complexity limit
|
87
|
+
* to accommodate the extra complexity contributed by the provided fragments.
|
88
|
+
*/
|
89
|
+
token: DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_OPTION_FRAGMENTS,
|
90
|
+
/**
|
91
|
+
* Provides extra GraphQL fragments for the Magento product driver.
|
92
|
+
*
|
93
|
+
* See {@link DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_OPTION_FRAGMENTS}.
|
94
|
+
*
|
95
|
+
* @example
|
96
|
+
* ```ts
|
97
|
+
* providers: [
|
98
|
+
* ...provideDaffProductCompositeMagentoExtraOptionFragments(
|
99
|
+
* myExtraProductFragment
|
100
|
+
* )
|
101
|
+
* ]
|
102
|
+
* ```
|
103
|
+
*/
|
104
|
+
provider: provideDaffProductCompositeMagentoExtraOptionFragments, } = createMultiInjectionToken('DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_OPTION_FRAGMENTS');
|
105
|
+
|
106
|
+
const {
|
107
|
+
/**
|
108
|
+
* A multi-provider injection token for providing extra transform logic in the Product Magento driver.
|
109
|
+
* It is run after the standard transforms for each product preview and passed both the current transformed Daffodil product and the Magento product.
|
110
|
+
*
|
111
|
+
* See {@link MagentoBundledProductItem} for more info.
|
112
|
+
*/
|
113
|
+
token: DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_ITEM_TRANSFORMS, provider: provider$1, } = createMultiInjectionToken('DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_ITEM_TRANSFORMS');
|
114
|
+
/**
|
115
|
+
* Provides extra product preview transforms for the Magento product driver.
|
116
|
+
*
|
117
|
+
* See {@link DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_ITEM_TRANSFORMS}.
|
118
|
+
*
|
119
|
+
* @example
|
120
|
+
* ```ts
|
121
|
+
* providers: [
|
122
|
+
* ...provideDaffProductCompositeMagentoExtraItemTransforms(
|
123
|
+
* myExtraProductTransform
|
124
|
+
* )
|
125
|
+
* ]
|
126
|
+
* ```
|
127
|
+
*/
|
128
|
+
function provideDaffProductCompositeMagentoExtraItemTransforms(...transforms) {
|
129
|
+
return provider$1(...transforms);
|
59
130
|
}
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
131
|
+
|
132
|
+
const {
|
133
|
+
/**
|
134
|
+
* A multi-provider injection token for providing extra transform logic in the Product Magento driver.
|
135
|
+
* It is run after the standard transforms for each product preview and passed both the current transformed Daffodil product and the Magento product.
|
136
|
+
*
|
137
|
+
* See {@link MagentoBundledProductItemOption} for more info.
|
138
|
+
*/
|
139
|
+
token: DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_OPTION_TRANSFORMS, provider, } = createMultiInjectionToken('DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_OPTION_TRANSFORMS');
|
140
|
+
/**
|
141
|
+
* Provides extra product preview transforms for the Magento product driver.
|
142
|
+
*
|
143
|
+
* See {@link DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_OPTION_TRANSFORMS}.
|
144
|
+
*
|
145
|
+
* @example
|
146
|
+
* ```ts
|
147
|
+
* providers: [
|
148
|
+
* ...provideDaffProductCompositeMagentoExtraOptionTransforms(
|
149
|
+
* myExtraProductTransform
|
150
|
+
* )
|
151
|
+
* ]
|
152
|
+
* ```
|
153
|
+
*/
|
154
|
+
function provideDaffProductCompositeMagentoExtraOptionTransforms(...transforms) {
|
155
|
+
return provider(...transforms);
|
156
|
+
}
|
157
|
+
|
158
|
+
const {
|
159
|
+
/**
|
160
|
+
* An internal token to combine the Magento preview transform with the injected transforms.
|
161
|
+
*/
|
162
|
+
token: DAFF_PRODUCT_COMPOSITE_MAGENTO_ITEM_TRANSFORM,
|
163
|
+
/**
|
164
|
+
* Provider function for {@link DAFF_PRODUCT_COMPOSITE_MAGENTO_ITEM_TRANSFORM}.
|
165
|
+
*/
|
166
|
+
provider: provideDaffProductMagentoProductTransform$1, } = createSingleInjectionToken('DAFF_PRODUCT_COMPOSITE_MAGENTO_ITEM_TRANSFORM', {
|
167
|
+
factory: () => {
|
168
|
+
const transforms = inject(DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_ITEM_TRANSFORMS);
|
169
|
+
const transformer = inject(MagentoBundledProductItemTransformer);
|
170
|
+
return (magentoProduct) => transforms.reduce((daffProduct, transform) => transform(daffProduct, magentoProduct), transformer.transform(magentoProduct));
|
171
|
+
},
|
172
|
+
});
|
173
|
+
|
174
|
+
class MagentoBundledProductTransformer {
|
175
|
+
constructor(itemTransform) {
|
176
|
+
this.itemTransform = itemTransform;
|
177
|
+
}
|
178
|
+
/**
|
179
|
+
* Transforms the magento MagentoProduct from the magento product query into a DaffProduct.
|
180
|
+
*
|
181
|
+
* @param response the response from a magento product query.
|
182
|
+
*/
|
183
|
+
transform(daffProduct, { items }) {
|
184
|
+
return {
|
185
|
+
...daffProduct,
|
186
|
+
...items.length > 0 ? {
|
187
|
+
price: 0,
|
188
|
+
discount: {
|
189
|
+
amount: 0,
|
190
|
+
percent: 0,
|
191
|
+
},
|
192
|
+
} : {},
|
193
|
+
type: DaffProductTypeEnum.Composite,
|
194
|
+
items: items.map(this.itemTransform),
|
195
|
+
};
|
196
|
+
}
|
197
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: MagentoBundledProductTransformer, deps: [{ token: DAFF_PRODUCT_COMPOSITE_MAGENTO_ITEM_TRANSFORM }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
198
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: MagentoBundledProductTransformer }); }
|
68
199
|
}
|
200
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: MagentoBundledProductTransformer, decorators: [{
|
201
|
+
type: Injectable
|
202
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
203
|
+
type: Inject,
|
204
|
+
args: [DAFF_PRODUCT_COMPOSITE_MAGENTO_ITEM_TRANSFORM]
|
205
|
+
}] }] });
|
206
|
+
|
207
|
+
const {
|
208
|
+
/**
|
209
|
+
* An internal token to combine the Magento preview transform with the injected transforms.
|
210
|
+
*/
|
211
|
+
token: DAFF_PRODUCT_COMPOSITE_MAGENTO_OPTION_TRANSFORM,
|
212
|
+
/**
|
213
|
+
* Provider function for {@link DAFF_PRODUCT_COMPOSITE_MAGENTO_OPTION_TRANSFORM}.
|
214
|
+
*/
|
215
|
+
provider: provideDaffProductMagentoProductTransform, } = createSingleInjectionToken('DAFF_PRODUCT_COMPOSITE_MAGENTO_OPTION_TRANSFORM', {
|
216
|
+
factory: () => {
|
217
|
+
const transforms = inject(DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_OPTION_TRANSFORMS);
|
218
|
+
return (magentoProduct) => transforms.reduce((daffProduct, transform) => transform(daffProduct, magentoProduct), transformMagentoBundledProductItemOption(magentoProduct));
|
219
|
+
},
|
220
|
+
});
|
221
|
+
|
222
|
+
class MagentoBundledProductItemTransformer {
|
223
|
+
constructor(optionTransform) {
|
224
|
+
this.optionTransform = optionTransform;
|
225
|
+
}
|
226
|
+
transform(item) {
|
227
|
+
return {
|
228
|
+
id: item.option_id.toString(),
|
229
|
+
required: item.required,
|
230
|
+
title: item.title,
|
231
|
+
input_type: item.type,
|
232
|
+
options: Array.from(item.options).sort((a, b) => a.position - b.position).map(this.optionTransform),
|
233
|
+
};
|
234
|
+
}
|
235
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: MagentoBundledProductItemTransformer, deps: [{ token: DAFF_PRODUCT_COMPOSITE_MAGENTO_OPTION_TRANSFORM }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
236
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: MagentoBundledProductItemTransformer }); }
|
237
|
+
}
|
238
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: MagentoBundledProductItemTransformer, decorators: [{
|
239
|
+
type: Injectable
|
240
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
241
|
+
type: Inject,
|
242
|
+
args: [DAFF_PRODUCT_COMPOSITE_MAGENTO_OPTION_TRANSFORM]
|
243
|
+
}] }] });
|
244
|
+
|
69
245
|
function transformMagentoBundledProductItemOption(option) {
|
70
246
|
return {
|
71
247
|
id: option.uid.toString(),
|
@@ -103,10 +279,23 @@ class DaffCompositeProductMagentoDriverModule {
|
|
103
279
|
return {
|
104
280
|
ngModule: DaffCompositeProductMagentoDriverModule,
|
105
281
|
providers: [
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
:
|
282
|
+
MagentoBundledProductTransformer,
|
283
|
+
MagentoBundledProductItemTransformer,
|
284
|
+
{
|
285
|
+
provide: DAFF_PRODUCT_MAGENTO_EXTRA_PRODUCT_FRAGMENTS,
|
286
|
+
useFactory: () => magentoBundledProductFragment(inject(DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_ITEM_FRAGMENTS), inject(DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_OPTION_FRAGMENTS)),
|
287
|
+
multi: true,
|
288
|
+
},
|
289
|
+
{
|
290
|
+
provide: DAFF_PRODUCT_MAGENTO_EXTRA_PRODUCT_TRANSFORMS,
|
291
|
+
useFactory: () => {
|
292
|
+
const transformer = inject(MagentoBundledProductTransformer);
|
293
|
+
return (daffProduct, magentoProduct) => magentoProduct.__typename === MagentoProductTypeEnum.BundledProduct
|
294
|
+
? transformer.transform(daffProduct, magentoProduct)
|
295
|
+
: daffProduct;
|
296
|
+
},
|
297
|
+
multi: true,
|
298
|
+
},
|
110
299
|
// stub out composite fields for a preview
|
111
300
|
...provideDaffProductMagentoExtraProductPreviewTransforms((daffProduct, magentoProduct) => magentoProduct.__typename === MagentoProductTypeEnum.BundledProduct
|
112
301
|
? {
|
@@ -146,5 +335,5 @@ var MagentoPriceTypeEnum;
|
|
146
335
|
* Generated bundle index. Do not edit.
|
147
336
|
*/
|
148
337
|
|
149
|
-
export { DaffCompositeProductMagentoDriverModule, MagentoPriceTypeEnum, magentoBundledProductFragment,
|
338
|
+
export { DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_ITEM_FRAGMENTS, DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_ITEM_TRANSFORMS, DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_OPTION_FRAGMENTS, DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_OPTION_TRANSFORMS, DaffCompositeProductMagentoDriverModule, MagentoBundledProductItemTransformer, MagentoBundledProductTransformer, MagentoPriceTypeEnum, magentoBundledProductFragment, provideDaffProductCompositeMagentoExtraItemFragments, provideDaffProductCompositeMagentoExtraItemTransforms, provideDaffProductCompositeMagentoExtraOptionFragments, provideDaffProductCompositeMagentoExtraOptionTransforms, transformMagentoBundledProductItemOption };
|
150
339
|
//# sourceMappingURL=daffodil-product-composite-driver-magento.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"daffodil-product-composite-driver-magento.mjs","sources":["../../../libs/product-composite/driver/magento/src/fragments/bundled-product.ts","../../../libs/product-composite/driver/magento/src/transforms/bundled-product-transformers.ts","../../../libs/product-composite/driver/magento/src/composite-product-driver.module.ts","../../../libs/product-composite/driver/magento/src/models/bundled-product.ts","../../../libs/product-composite/driver/magento/src/daffodil-product-composite-driver-magento.ts"],"sourcesContent":["import { gql } from 'apollo-angular';\n\nexport const magentoBundledProductFragment = gql`\nfragment magentoBundledProduct on BundleProduct {\n\titems {\n\t\toption_id\n\t\trequired\n\t\ttitle\n\t\ttype\n\t\toptions {\n\t\t\tuid\n\t\t\tis_default\n\t\t\tlabel\n\t\t\tquantity\n position\n\t\t\tproduct {\n\t\t\t\tstock_status\n\t\t\t\tprice_range {\n\t\t\t\t\tmaximum_price {\n\t\t\t\t\t\tregular_price {\n\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t\tcurrency\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdiscount {\n\t\t\t\t\t\t\tamount_off\n\t\t\t\t\t\t\tpercent_off\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n`;\n","import {\n DaffProductDiscount,\n DaffProductTypeEnum,\n DaffProduct,\n} from '@daffodil/product';\nimport { MagentoProductStockStatusEnum } from '@daffodil/product/driver/magento';\nimport {\n DaffCompositeProduct,\n DaffCompositeProductItemOption,\n DaffCompositeProductItem,\n DaffCompositeProductItemInputEnum,\n} from '@daffodil/product-composite';\n\nimport {\n MagentoBundledProduct,\n MagentoBundledProductItem,\n MagentoBundledProductItemOption,\n MagentoBundledProductItemOptionProduct,\n} from '../models/bundled-product';\n\n/**\n * Transforms the magento MagentoProduct from the magento product query into a DaffProduct.\n *\n * @param response the response from a magento product query.\n */\nexport function transformMagentoBundledProduct(\n daffProduct: DaffProduct,\n { items }: MagentoBundledProduct,\n): DaffCompositeProduct {\n return {\n ...daffProduct,\n ...items.length > 0 ? {\n price: 0,\n discount: {\n amount: 0,\n percent: 0,\n },\n } : {},\n type: DaffProductTypeEnum.Composite,\n items: items.map(transformMagentoBundledProductItem),\n };\n}\n\nfunction transformMagentoBundledProductItem(item: MagentoBundledProductItem): DaffCompositeProductItem {\n return {\n id: item.option_id.toString(),\n required: item.required,\n title: item.title,\n input_type: <DaffCompositeProductItemInputEnum>item.type,\n options: Array.from(item.options).sort((a, b) => a.position - b.position).map(transformMagentoBundledProductItemOption),\n };\n}\n\nfunction transformMagentoBundledProductItemOption(option: MagentoBundledProductItemOption): DaffCompositeProductItemOption {\n return {\n id: option.uid.toString(),\n type: DaffProductTypeEnum.Simple,\n url: null,\n name: option.label,\n price: getPrice(option.product),\n images: [],\n thumbnail: null,\n discount: getDiscount(option.product),\n quantity: option.quantity,\n is_default: option.is_default,\n in_stock: option.product.stock_status === MagentoProductStockStatusEnum.InStock,\n };\n}\n\n/**\n * A function for null checking an object.\n */\nfunction getPrice(product: MagentoBundledProductItemOptionProduct): number {\n return product.price_range?.maximum_price?.regular_price?.value || null;\n}\n\nfunction getDiscount(product: MagentoBundledProductItemOptionProduct): DaffProductDiscount {\n return product.price_range?.maximum_price?.discount\n ? {\n amount: product.price_range.maximum_price.discount.amount_off,\n percent: product.price_range.maximum_price.discount.percent_off,\n } : { amount: null, percent: null };\n}\n","import { CommonModule } from '@angular/common';\nimport {\n NgModule,\n ModuleWithProviders,\n} from '@angular/core';\n\nimport {\n provideDaffProductMagentoExtraProductTransforms,\n MagentoProductTypeEnum,\n provideDaffProductMagentoExtraProductFragments,\n provideDaffProductMagentoExtraProductPreviewTransforms,\n} from '@daffodil/product/driver/magento';\n\nimport { magentoBundledProductFragment } from './fragments/bundled-product';\nimport { MagentoBundledProduct } from './public_api';\nimport { transformMagentoBundledProduct } from './transforms/bundled-product-transformers';\n\n/**\n * A module that provides the product fragment for composite products along with a composite product transformer.\n */\n@NgModule({\n imports: [\n CommonModule,\n ],\n})\nexport class DaffCompositeProductMagentoDriverModule {\n static forRoot(): ModuleWithProviders<DaffCompositeProductMagentoDriverModule> {\n return {\n ngModule: DaffCompositeProductMagentoDriverModule,\n providers: [\n ...provideDaffProductMagentoExtraProductFragments(magentoBundledProductFragment),\n ...provideDaffProductMagentoExtraProductTransforms<MagentoBundledProduct>(\n (daffProduct, magentoProduct) =>\n magentoProduct.__typename === MagentoProductTypeEnum.BundledProduct\n ? transformMagentoBundledProduct(daffProduct, magentoProduct)\n : daffProduct,\n ),\n // stub out composite fields for a preview\n ...provideDaffProductMagentoExtraProductPreviewTransforms<MagentoBundledProduct>(\n (daffProduct, magentoProduct) =>\n magentoProduct.__typename === MagentoProductTypeEnum.BundledProduct\n ? {\n ...daffProduct,\n items: [],\n price: 0,\n discount: {\n amount: 0,\n percent: 0,\n },\n }\n : daffProduct,\n ),\n ],\n };\n }\n}\n","import {\n MagentoProduct,\n MagentoProductStockStatusEnum,\n} from '@daffodil/product/driver/magento';\n\nexport enum MagentoPriceTypeEnum {\n fixed = 'FIXED',\n percent = 'PERCENT',\n dynamic = 'DYNAMIC'\n}\n\nexport interface MagentoBundledProduct extends MagentoProduct {\n items: MagentoBundledProductItem[];\n}\n\nexport interface MagentoBundledProductItem {\n required: boolean;\n title: string;\n type: string;\n options: MagentoBundledProductItemOption[];\n option_id?: number;\n}\n\nexport interface MagentoBundledProductItemOption {\n uid: string;\n label: string;\n quantity: number;\n is_default: boolean;\n position: number;\n product: MagentoBundledProductItemOptionProduct;\n}\n\nexport interface MagentoBundledProductItemOptionProduct {\n stock_status?: MagentoProductStockStatusEnum;\n price_range: {\n maximum_price: {\n regular_price: {\n value: number;\n currency: any;\n };\n discount: {\n amount_off: number;\n percent_off: number;\n };\n };\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"daffodil-product-composite-driver-magento.mjs","sources":["../../../libs/product-composite/driver/magento/src/fragments/bundled-product.ts","../../../libs/product-composite/driver/magento/src/injection-tokens/fragments/item.token.ts","../../../libs/product-composite/driver/magento/src/injection-tokens/fragments/option.token.ts","../../../libs/product-composite/driver/magento/src/injection-tokens/transforms/item/extra.token.ts","../../../libs/product-composite/driver/magento/src/injection-tokens/transforms/option/extra.token.ts","../../../libs/product-composite/driver/magento/src/injection-tokens/transforms/item/token.ts","../../../libs/product-composite/driver/magento/src/transforms/product-transformer.service.ts","../../../libs/product-composite/driver/magento/src/injection-tokens/transforms/option/token.ts","../../../libs/product-composite/driver/magento/src/transforms/item-transformer.service.ts","../../../libs/product-composite/driver/magento/src/transforms/option.ts","../../../libs/product-composite/driver/magento/src/composite-product-driver.module.ts","../../../libs/product-composite/driver/magento/src/models/bundled-product.ts","../../../libs/product-composite/driver/magento/src/daffodil-product-composite-driver-magento.ts"],"sourcesContent":["import { gql } from 'apollo-angular';\nimport { DocumentNode } from 'graphql';\n\nimport {\n daffBuildFragmentDefinition,\n daffBuildFragmentNameSpread,\n} from '@daffodil/core/graphql';\n\nexport const magentoBundledProductFragment = (extraItemFragments: Array<DocumentNode> = [], extraOptionFragments: Array<DocumentNode> = []) => gql`\nfragment magentoBundledProduct on BundleProduct {\n\titems {\n\t\t${daffBuildFragmentNameSpread(...extraItemFragments)}\n\n\t\toption_id\n\t\trequired\n\t\ttitle\n\t\ttype\n\t\toptions {\n\t\t\t${daffBuildFragmentNameSpread(...extraOptionFragments)}\n\n\t\t\tuid\n\t\t\tis_default\n\t\t\tlabel\n\t\t\tquantity\n position\n\t\t\tproduct {\n\t\t\t\tstock_status\n\t\t\t\tprice_range {\n\t\t\t\t\tmaximum_price {\n\t\t\t\t\t\tregular_price {\n\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t\tcurrency\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdiscount {\n\t\t\t\t\t\t\tamount_off\n\t\t\t\t\t\t\tpercent_off\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n${daffBuildFragmentDefinition(...extraItemFragments, ...extraOptionFragments)}\n`;\n","import { DocumentNode } from 'graphql';\n\nimport { createMultiInjectionToken } from '@daffodil/core';\n\nexport const {\n /**\n * A multi-provider injection token for providing extra GraphQL fragments that will be spread into product queries.\n * This can be used to retrieve additional data that is not covered by the standard Daffodil interfaces.\n *\n * Fragment structure is platform-specific and this feature should be used with care.\n *\n * This can increase query complexity above the Magento default of 300.\n * Daffodil only guarantees that stock queries don't exceed the limit of 300.\n * Apps using this token should therefore increase the query complexity limit\n * to accommodate the extra complexity contributed by the provided fragments.\n */\n token: DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_ITEM_FRAGMENTS,\n\n /**\n * Provides extra GraphQL fragments for the Magento product driver.\n *\n * See {@link DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_ITEM_FRAGMENTS}.\n *\n * @example\n * ```ts\n * providers: [\n * ...provideDaffProductCompositeMagentoExtraItemFragments(\n * myExtraProductFragment\n * )\n * ]\n * ```\n */\n provider: provideDaffProductCompositeMagentoExtraItemFragments,\n} = createMultiInjectionToken<DocumentNode>('DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_ITEM_FRAGMENTS');\n","import { DocumentNode } from 'graphql';\n\nimport { createMultiInjectionToken } from '@daffodil/core';\n\nexport const {\n /**\n * A multi-provider injection token for providing extra GraphQL fragments that will be spread into product queries.\n * This can be used to retrieve additional data that is not covered by the standard Daffodil interfaces.\n *\n * Fragment structure is platform-specific and this feature should be used with care.\n *\n * This can increase query complexity above the Magento default of 300.\n * Daffodil only guarantees that stock queries don't exceed the limit of 300.\n * Apps using this token should therefore increase the query complexity limit\n * to accommodate the extra complexity contributed by the provided fragments.\n */\n token: DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_OPTION_FRAGMENTS,\n\n /**\n * Provides extra GraphQL fragments for the Magento product driver.\n *\n * See {@link DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_OPTION_FRAGMENTS}.\n *\n * @example\n * ```ts\n * providers: [\n * ...provideDaffProductCompositeMagentoExtraOptionFragments(\n * myExtraProductFragment\n * )\n * ]\n * ```\n */\n provider: provideDaffProductCompositeMagentoExtraOptionFragments,\n} = createMultiInjectionToken<DocumentNode>('DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_OPTION_FRAGMENTS');\n","import { Provider } from '@angular/core';\n\nimport { createMultiInjectionToken } from '@daffodil/core';\nimport { DaffCompositeProductItem } from '@daffodil/product-composite';\n\nimport { MagentoBundleProductItemExtraTransform } from '../../../interfaces/item-extra-transform.type';\nimport { MagentoBundledProductItem } from '../../../models/public_api';\n\nconst {\n /**\n * A multi-provider injection token for providing extra transform logic in the Product Magento driver.\n * It is run after the standard transforms for each product preview and passed both the current transformed Daffodil product and the Magento product.\n *\n * See {@link MagentoBundledProductItem} for more info.\n */\n token: DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_ITEM_TRANSFORMS,\n provider,\n} = createMultiInjectionToken<MagentoBundleProductItemExtraTransform>('DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_ITEM_TRANSFORMS');\n\n/**\n * Provides extra product preview transforms for the Magento product driver.\n *\n * See {@link DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_ITEM_TRANSFORMS}.\n *\n * @example\n * ```ts\n * providers: [\n * ...provideDaffProductCompositeMagentoExtraItemTransforms(\n * myExtraProductTransform\n * )\n * ]\n * ```\n */\nexport function provideDaffProductCompositeMagentoExtraItemTransforms<T extends MagentoBundledProductItem = MagentoBundledProductItem, V extends DaffCompositeProductItem = DaffCompositeProductItem>(...transforms: MagentoBundleProductItemExtraTransform<T, V>[]): Provider[] {\n return provider<MagentoBundleProductItemExtraTransform<T, V>>(...transforms);\n}\n\nexport { DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_ITEM_TRANSFORMS };\n","import { Provider } from '@angular/core';\n\nimport { createMultiInjectionToken } from '@daffodil/core';\nimport { DaffCompositeProductItemOption } from '@daffodil/product-composite';\n\nimport { MagentoBundleProductOptionExtraTransform } from '../../../interfaces/option-extra-transform.type';\nimport { MagentoBundledProductItemOption } from '../../../models/public_api';\n\nconst {\n /**\n * A multi-provider injection token for providing extra transform logic in the Product Magento driver.\n * It is run after the standard transforms for each product preview and passed both the current transformed Daffodil product and the Magento product.\n *\n * See {@link MagentoBundledProductItemOption} for more info.\n */\n token: DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_OPTION_TRANSFORMS,\n provider,\n} = createMultiInjectionToken<MagentoBundleProductOptionExtraTransform>('DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_OPTION_TRANSFORMS');\n\n/**\n * Provides extra product preview transforms for the Magento product driver.\n *\n * See {@link DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_OPTION_TRANSFORMS}.\n *\n * @example\n * ```ts\n * providers: [\n * ...provideDaffProductCompositeMagentoExtraOptionTransforms(\n * myExtraProductTransform\n * )\n * ]\n * ```\n */\nexport function provideDaffProductCompositeMagentoExtraOptionTransforms<T extends MagentoBundledProductItemOption = MagentoBundledProductItemOption, V extends DaffCompositeProductItemOption = DaffCompositeProductItemOption>(...transforms: MagentoBundleProductOptionExtraTransform<T, V>[]): Provider[] {\n return provider<MagentoBundleProductOptionExtraTransform<T, V>>(...transforms);\n}\n\nexport { DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_OPTION_TRANSFORMS };\n","import { inject } from '@angular/core';\n\nimport { createSingleInjectionToken } from '@daffodil/core';\n\nimport { DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_ITEM_TRANSFORMS } from './extra.token';\nimport { MagentoBundleProductItemTransform } from '../../../interfaces/public_api';\nimport { MagentoBundledProductItem } from '../../../models/public_api';\nimport { MagentoBundledProductItemTransformer } from '../../../transforms/public_api';\n\nexport const {\n /**\n * An internal token to combine the Magento preview transform with the injected transforms.\n */\n token: DAFF_PRODUCT_COMPOSITE_MAGENTO_ITEM_TRANSFORM,\n /**\n * Provider function for {@link DAFF_PRODUCT_COMPOSITE_MAGENTO_ITEM_TRANSFORM}.\n */\n provider: provideDaffProductMagentoProductTransform,\n} = createSingleInjectionToken<MagentoBundleProductItemTransform>(\n 'DAFF_PRODUCT_COMPOSITE_MAGENTO_ITEM_TRANSFORM',\n {\n factory: () => {\n const transforms = inject(DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_ITEM_TRANSFORMS);\n const transformer = inject(MagentoBundledProductItemTransformer);\n return (magentoProduct: MagentoBundledProductItem) =>\n transforms.reduce(\n (daffProduct, transform) => transform(daffProduct, magentoProduct),\n transformer.transform(magentoProduct),\n );\n },\n },\n);\n","import {\n Inject,\n Injectable,\n} from '@angular/core';\n\nimport {\n DaffProductTypeEnum,\n DaffProduct,\n} from '@daffodil/product';\nimport { DaffCompositeProduct } from '@daffodil/product-composite';\n\nimport { DAFF_PRODUCT_COMPOSITE_MAGENTO_ITEM_TRANSFORM } from '../injection-tokens/transforms/item/token';\nimport { MagentoBundleProductItemTransform } from '../interfaces/public_api';\nimport { MagentoBundledProduct } from '../models/bundled-product';\n\n@Injectable()\nexport class MagentoBundledProductTransformer {\n constructor(\n @Inject(DAFF_PRODUCT_COMPOSITE_MAGENTO_ITEM_TRANSFORM) private itemTransform: MagentoBundleProductItemTransform,\n ) {}\n\n /**\n * Transforms the magento MagentoProduct from the magento product query into a DaffProduct.\n *\n * @param response the response from a magento product query.\n */\n transform(\n daffProduct: DaffProduct,\n { items }: MagentoBundledProduct,\n ): DaffCompositeProduct {\n return {\n ...daffProduct,\n ...items.length > 0 ? {\n price: 0,\n discount: {\n amount: 0,\n percent: 0,\n },\n } : {},\n type: DaffProductTypeEnum.Composite,\n items: items.map(this.itemTransform),\n };\n }\n}\n","import { inject } from '@angular/core';\n\nimport { createSingleInjectionToken } from '@daffodil/core';\n\nimport { DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_OPTION_TRANSFORMS } from './extra.token';\nimport { MagentoBundleProductOptionTransform } from '../../../interfaces/public_api';\nimport { MagentoBundledProductItemOption } from '../../../models/public_api';\nimport { transformMagentoBundledProductItemOption } from '../../../transforms/public_api';\n\nexport const {\n /**\n * An internal token to combine the Magento preview transform with the injected transforms.\n */\n token: DAFF_PRODUCT_COMPOSITE_MAGENTO_OPTION_TRANSFORM,\n /**\n * Provider function for {@link DAFF_PRODUCT_COMPOSITE_MAGENTO_OPTION_TRANSFORM}.\n */\n provider: provideDaffProductMagentoProductTransform,\n} = createSingleInjectionToken<MagentoBundleProductOptionTransform>(\n 'DAFF_PRODUCT_COMPOSITE_MAGENTO_OPTION_TRANSFORM',\n {\n factory: () => {\n const transforms = inject(DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_OPTION_TRANSFORMS);\n return (magentoProduct: MagentoBundledProductItemOption) =>\n transforms.reduce(\n (daffProduct, transform) => transform(daffProduct, magentoProduct),\n transformMagentoBundledProductItemOption(magentoProduct),\n );\n },\n },\n);\n","import {\n Inject,\n Injectable,\n} from '@angular/core';\n\nimport {\n DaffCompositeProductItem,\n DaffCompositeProductItemInputEnum,\n} from '@daffodil/product-composite';\n\nimport { DAFF_PRODUCT_COMPOSITE_MAGENTO_OPTION_TRANSFORM } from '../injection-tokens/transforms/option/token';\nimport { MagentoBundleProductOptionTransform } from '../interfaces/public_api';\nimport { MagentoBundledProductItem } from '../models/bundled-product';\n\n@Injectable()\nexport class MagentoBundledProductItemTransformer {\n constructor(\n @Inject(DAFF_PRODUCT_COMPOSITE_MAGENTO_OPTION_TRANSFORM) private optionTransform: MagentoBundleProductOptionTransform,\n ) {}\n\n transform(item: MagentoBundledProductItem): DaffCompositeProductItem {\n return {\n id: item.option_id.toString(),\n required: item.required,\n title: item.title,\n input_type: <DaffCompositeProductItemInputEnum>item.type,\n options: Array.from(item.options).sort((a, b) => a.position - b.position).map(this.optionTransform),\n };\n }\n}\n","\nimport {\n DaffProductDiscount,\n DaffProductTypeEnum,\n} from '@daffodil/product';\nimport { MagentoProductStockStatusEnum } from '@daffodil/product/driver/magento';\nimport { DaffCompositeProductItemOption } from '@daffodil/product-composite';\n\nimport {\n MagentoBundledProductItemOption,\n MagentoBundledProductItemOptionProduct,\n} from '../models/bundled-product';\n\nexport function transformMagentoBundledProductItemOption(option: MagentoBundledProductItemOption): DaffCompositeProductItemOption {\n return {\n id: option.uid.toString(),\n type: DaffProductTypeEnum.Simple,\n url: null,\n name: option.label,\n price: getPrice(option.product),\n images: [],\n thumbnail: null,\n discount: getDiscount(option.product),\n quantity: option.quantity,\n is_default: option.is_default,\n in_stock: option.product.stock_status === MagentoProductStockStatusEnum.InStock,\n };\n}\n\n/**\n * A function for null checking an object.\n */\nfunction getPrice(product: MagentoBundledProductItemOptionProduct): number {\n return product.price_range?.maximum_price?.regular_price?.value || null;\n}\n\nfunction getDiscount(product: MagentoBundledProductItemOptionProduct): DaffProductDiscount {\n return product.price_range?.maximum_price?.discount\n ? {\n amount: product.price_range.maximum_price.discount.amount_off,\n percent: product.price_range.maximum_price.discount.percent_off,\n } : { amount: null, percent: null };\n}\n","import { CommonModule } from '@angular/common';\nimport {\n NgModule,\n ModuleWithProviders,\n inject,\n} from '@angular/core';\n\nimport {\n MagentoProductTypeEnum,\n provideDaffProductMagentoExtraProductPreviewTransforms,\n DAFF_PRODUCT_MAGENTO_EXTRA_PRODUCT_TRANSFORMS,\n DAFF_PRODUCT_MAGENTO_EXTRA_PRODUCT_FRAGMENTS,\n} from '@daffodil/product/driver/magento';\n\nimport { magentoBundledProductFragment } from './fragments/bundled-product';\nimport {\n DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_ITEM_FRAGMENTS,\n DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_OPTION_FRAGMENTS,\n} from './injection-tokens/public_api';\nimport { MagentoBundledProduct } from './models/public_api';\nimport {\n MagentoBundledProductItemTransformer,\n MagentoBundledProductTransformer,\n} from './transforms/public_api';\n\n/**\n * A module that provides the product fragment for composite products along with a composite product transformer.\n */\n@NgModule({\n imports: [\n CommonModule,\n ],\n})\nexport class DaffCompositeProductMagentoDriverModule {\n static forRoot(): ModuleWithProviders<DaffCompositeProductMagentoDriverModule> {\n return {\n ngModule: DaffCompositeProductMagentoDriverModule,\n providers: [\n MagentoBundledProductTransformer,\n MagentoBundledProductItemTransformer,\n {\n provide: DAFF_PRODUCT_MAGENTO_EXTRA_PRODUCT_FRAGMENTS,\n useFactory: () => magentoBundledProductFragment(\n inject(DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_ITEM_FRAGMENTS),\n inject(DAFF_PRODUCT_COMPOSITE_MAGENTO_EXTRA_OPTION_FRAGMENTS),\n ),\n multi: true,\n },\n {\n provide: DAFF_PRODUCT_MAGENTO_EXTRA_PRODUCT_TRANSFORMS,\n useFactory: () => {\n const transformer = inject(MagentoBundledProductTransformer);\n return (daffProduct, magentoProduct) =>\n magentoProduct.__typename === MagentoProductTypeEnum.BundledProduct\n ? transformer.transform(daffProduct, magentoProduct)\n : daffProduct;\n },\n multi: true,\n },\n // stub out composite fields for a preview\n ...provideDaffProductMagentoExtraProductPreviewTransforms<MagentoBundledProduct>(\n (daffProduct, magentoProduct) =>\n magentoProduct.__typename === MagentoProductTypeEnum.BundledProduct\n ? {\n ...daffProduct,\n items: [],\n price: 0,\n discount: {\n amount: 0,\n percent: 0,\n },\n }\n : daffProduct,\n ),\n ],\n };\n }\n}\n","import {\n MagentoProduct,\n MagentoProductStockStatusEnum,\n} from '@daffodil/product/driver/magento';\n\nexport enum MagentoPriceTypeEnum {\n fixed = 'FIXED',\n percent = 'PERCENT',\n dynamic = 'DYNAMIC'\n}\n\nexport interface MagentoBundledProduct extends MagentoProduct {\n items: MagentoBundledProductItem[];\n}\n\nexport interface MagentoBundledProductItem {\n required: boolean;\n title: string;\n type: string;\n options: MagentoBundledProductItemOption[];\n option_id?: number;\n}\n\nexport interface MagentoBundledProductItemOption {\n uid: string;\n label: string;\n quantity: number;\n is_default: boolean;\n position: number;\n product: MagentoBundledProductItemOptionProduct;\n}\n\nexport interface MagentoBundledProductItemOptionProduct {\n stock_status?: MagentoProductStockStatusEnum;\n price_range: {\n maximum_price: {\n regular_price: {\n value: number;\n currency: any;\n };\n discount: {\n amount_off: number;\n percent_off: number;\n };\n };\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["provider","provideDaffProductMagentoProductTransform"],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"name":"@daffodil/product-composite","nx":{"targets":{"build":{"outputs":["{workspaceRoot}/dist/product-composite"]}}},"version":"0.
|
1
|
+
{"name":"@daffodil/product-composite","nx":{"targets":{"build":{"outputs":["{workspaceRoot}/dist/product-composite"]}}},"version":"0.87.0","description":"Interfaces built for daffodil/state","repository":{"type":"git","url":"https://github.com/graycoreio/daffodil"},"author":"Graycore LLC","license":"MIT","bugs":{"url":"https://github.com/graycoreio/daffodil/issues"},"publishConfig":{"directory":"../../dist/product-composite"},"homepage":"https://github.com/graycoreio/daffodil","peerDependencies":{"@angular/common":"^19.0.0","@angular/core":"^19.0.0","@daffodil/core":"0.87.0","@daffodil/product":"0.87.0","@ngrx/effects":"^19.0.0","@ngrx/entity":"^19.0.0","@ngrx/store":"^19.0.0","rxjs":"7.8.1"},"optionalDependencies":{"@apollo/client":"^3.12.6","@daffodil/driver":"0.87.0","@daffodil/product":"0.87.0","angular-in-memory-web-api":"^0.19.0","apollo-angular":"^10.0.3","@faker-js/faker":"^9.8.0"},"module":"fesm2022/daffodil-product-composite.mjs","typings":"index.d.ts","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","default":"./fesm2022/daffodil-product-composite.mjs"},"./routing":{"types":"./routing/index.d.ts","default":"./fesm2022/daffodil-product-composite-routing.mjs"},"./state":{"types":"./state/index.d.ts","default":"./fesm2022/daffodil-product-composite-state.mjs"},"./testing":{"types":"./testing/index.d.ts","default":"./fesm2022/daffodil-product-composite-testing.mjs"},"./driver/in-memory":{"types":"./driver/in-memory/index.d.ts","default":"./fesm2022/daffodil-product-composite-driver-in-memory.mjs"},"./driver/magento":{"types":"./driver/magento/index.d.ts","default":"./fesm2022/daffodil-product-composite-driver-magento.mjs"},"./driver/testing":{"types":"./driver/testing/index.d.ts","default":"./fesm2022/daffodil-product-composite-driver-testing.mjs"},"./state/testing":{"types":"./state/testing/index.d.ts","default":"./fesm2022/daffodil-product-composite-state-testing.mjs"},"./driver/magento/testing":{"types":"./driver/magento/testing/index.d.ts","default":"./fesm2022/daffodil-product-composite-driver-magento-testing.mjs"}},"sideEffects":false,"dependencies":{"tslib":"^2.3.0"}}
|
@@ -1,9 +0,0 @@
|
|
1
|
-
import { DaffProduct } from '@daffodil/product';
|
2
|
-
import { DaffCompositeProduct } from '@daffodil/product-composite';
|
3
|
-
import { MagentoBundledProduct } from '../models/bundled-product';
|
4
|
-
/**
|
5
|
-
* Transforms the magento MagentoProduct from the magento product query into a DaffProduct.
|
6
|
-
*
|
7
|
-
* @param response the response from a magento product query.
|
8
|
-
*/
|
9
|
-
export declare function transformMagentoBundledProduct(daffProduct: DaffProduct, { items }: MagentoBundledProduct): DaffCompositeProduct;
|