@colijnit/product 258.1.5 → 259.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/components/product-addtocart/product-addtocart.component.d.ts +5 -1
- package/app/components/product-page/product-page.component.d.ts +1 -0
- package/app/service/product-connector-adapter.service.d.ts +1 -0
- package/app/service/product-connector.service.d.ts +2 -0
- package/bundles/colijnit-product.umd.js +108 -32
- package/bundles/colijnit-product.umd.js.map +1 -1
- package/colijnit-product.metadata.json +1 -1
- package/esm2015/app/components/product-addtocart/product-addtocart.component.js +38 -8
- package/esm2015/app/components/product-info-tabs/product-info-tabs.component.js +2 -2
- package/esm2015/app/components/product-page/product-page.component.js +26 -13
- package/esm2015/app/components/product-price/product-price.component.js +1 -1
- package/esm2015/app/ione-product.component.js +2 -1
- package/esm2015/app/product-version.js +3 -3
- package/esm2015/app/service/product-connector-adapter.service.js +9 -1
- package/esm2015/app/service/product-connector.service.js +5 -1
- package/fesm2015/colijnit-product.js +77 -23
- package/fesm2015/colijnit-product.js.map +1 -1
- package/package.json +8 -8
|
@@ -6,11 +6,13 @@ import { ProductEventService } from '../../service/product-event.service';
|
|
|
6
6
|
import { ArticleFullObject } from '@colijnit/articleapi/build/model/article-full-object';
|
|
7
7
|
import { ProductSettingsService } from '../../service/product-settings.service';
|
|
8
8
|
import { ExternalSource } from '@colijnit/articleapi/build/model/external-source.bo';
|
|
9
|
+
import { ProductConnectorAdapterService } from '../../service/product-connector-adapter.service';
|
|
9
10
|
export declare class ProductAddtocartComponent implements OnInit, OnDestroy {
|
|
10
11
|
iconCache: IconCacheService;
|
|
11
12
|
private _ioneControllerService;
|
|
12
13
|
private _appEventService;
|
|
13
14
|
private _settingsService;
|
|
15
|
+
private _productConnectorAdapterService;
|
|
14
16
|
readonly icon: typeof IconEnum;
|
|
15
17
|
addToCartButton: ElementRef;
|
|
16
18
|
article: ArticleFullObject;
|
|
@@ -29,10 +31,12 @@ export declare class ProductAddtocartComponent implements OnInit, OnDestroy {
|
|
|
29
31
|
showRelatedPopup: EventEmitter<boolean>;
|
|
30
32
|
showQuoteButton: boolean;
|
|
31
33
|
private _quantity;
|
|
32
|
-
constructor(iconCache: IconCacheService, _ioneControllerService: ProductConnectorService, _appEventService: ProductEventService, _settingsService: ProductSettingsService);
|
|
34
|
+
constructor(iconCache: IconCacheService, _ioneControllerService: ProductConnectorService, _appEventService: ProductEventService, _settingsService: ProductSettingsService, _productConnectorAdapterService: ProductConnectorAdapterService);
|
|
33
35
|
ngOnInit(): void;
|
|
34
36
|
ngOnDestroy(): void;
|
|
35
37
|
handleAddToCartClick(quantity: number): Promise<void>;
|
|
36
38
|
handleAddToQuoteClick(quantity: number): Promise<void>;
|
|
37
39
|
private _getJSONFromArticleObject;
|
|
40
|
+
private _handleGeneratedArticleDirectly;
|
|
41
|
+
private _getGeneratedArtDirectly;
|
|
38
42
|
}
|
|
@@ -51,6 +51,7 @@ export declare class ProductPageComponent implements OnInit, OnDestroy, AfterVie
|
|
|
51
51
|
private _currentView;
|
|
52
52
|
private _subs;
|
|
53
53
|
private _settings;
|
|
54
|
+
private _pageLoadedSubscription;
|
|
54
55
|
constructor(_ione: ProductConnectorService, _renderer: Renderer2, _changeDetector: ChangeDetectorRef, iconCache: IconCacheService, settingsService: ProductSettingsService, appEventService: ProductEventService);
|
|
55
56
|
ngOnInit(): void;
|
|
56
57
|
ngAfterViewInit(): void;
|
|
@@ -29,6 +29,7 @@ export declare class ProductConnectorAdapterService implements OnDestroy {
|
|
|
29
29
|
getDeliveryDate2(goodId: number): Promise<DeliveryPrognosis>;
|
|
30
30
|
getJsonConfiguredArticles(configuratorStatistics?: ConfiguratorStatisticsEnvironment): Promise<string>;
|
|
31
31
|
getJsonArticleFlatTree(goodId: number, goodType: string, quantity: number, externalSource?: boolean, showLoader?: boolean, instanceId?: any, configuratorStatistics?: ConfiguratorStatisticsEnvironment): Promise<string>;
|
|
32
|
+
getGeneratedArtDirectly(goodId: number, showLoader: boolean): Promise<number>;
|
|
32
33
|
getGoodIdFromArticleNr(sku: string): Promise<number>;
|
|
33
34
|
getArticleFullObject(goodId: number, showLoader?: boolean): Promise<ArticleFullObject>;
|
|
34
35
|
getSuperArticle(id: string, branch?: string): Promise<SuperArticle>;
|
|
@@ -13,6 +13,7 @@ export declare class ProductConnectorService implements OnDestroy {
|
|
|
13
13
|
private _settingsService;
|
|
14
14
|
get shouldShowLoader(): boolean;
|
|
15
15
|
controllerInitialized: BehaviorSubject<boolean>;
|
|
16
|
+
articleLoaded: BehaviorSubject<boolean>;
|
|
16
17
|
private _shouldShowLoader;
|
|
17
18
|
private _initializing;
|
|
18
19
|
private _initialized;
|
|
@@ -33,6 +34,7 @@ export declare class ProductConnectorService implements OnDestroy {
|
|
|
33
34
|
getDeliveryDate2(goodId: number): Promise<DeliveryPrognosis>;
|
|
34
35
|
getSuperArticle(id: string): Promise<SuperArticle>;
|
|
35
36
|
getJsonArticleFlatTree(goodId: number, goodType: string, quantity: number, externalSource?: boolean, showLoader?: boolean, configuratorStatistics?: ConfiguratorStatisticsEnvironment): Promise<string>;
|
|
37
|
+
getGeneratedArtDirectly(goodId: number, showLoader?: boolean): Promise<number>;
|
|
36
38
|
addWebSessionTransactionLine(transactionUuid: string, sku: string, quantity: number): Promise<string>;
|
|
37
39
|
onShowLoaderChange(showLoader: boolean): void;
|
|
38
40
|
}
|
|
@@ -31,8 +31,8 @@
|
|
|
31
31
|
function Version() {
|
|
32
32
|
this.name = "@colijnit/product";
|
|
33
33
|
this.description = "Product detail page project for iOne";
|
|
34
|
-
this.symVer = "
|
|
35
|
-
this.publishDate = "9-7-2025
|
|
34
|
+
this.symVer = "259.1.1";
|
|
35
|
+
this.publishDate = "9-7-2025 11:53:26";
|
|
36
36
|
}
|
|
37
37
|
return Version;
|
|
38
38
|
}());
|
|
@@ -750,6 +750,17 @@
|
|
|
750
750
|
});
|
|
751
751
|
});
|
|
752
752
|
};
|
|
753
|
+
ProductConnectorAdapterService.prototype.getGeneratedArtDirectly = function (goodId, showLoader) {
|
|
754
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
755
|
+
var _this = this;
|
|
756
|
+
return __generator(this, function (_a) {
|
|
757
|
+
return [2 /*return*/, this.articleConnector.getGeneratedArtDirectly(goodId, showLoader).catch(function (messages) {
|
|
758
|
+
_this._eventService.errorMessage.next(messages);
|
|
759
|
+
return null;
|
|
760
|
+
})];
|
|
761
|
+
});
|
|
762
|
+
});
|
|
763
|
+
};
|
|
753
764
|
ProductConnectorAdapterService.prototype.getGoodIdFromArticleNr = function (sku) {
|
|
754
765
|
return __awaiter(this, void 0, void 0, function () {
|
|
755
766
|
var response;
|
|
@@ -1197,6 +1208,7 @@
|
|
|
1197
1208
|
this._adapterService = _adapterService;
|
|
1198
1209
|
this._settingsService = _settingsService;
|
|
1199
1210
|
this.controllerInitialized = new rxjs.BehaviorSubject(false);
|
|
1211
|
+
this.articleLoaded = new rxjs.BehaviorSubject(false);
|
|
1200
1212
|
this._initializing = false;
|
|
1201
1213
|
this._initialized = false;
|
|
1202
1214
|
this.connectorOptions = new options.Options();
|
|
@@ -1304,6 +1316,10 @@
|
|
|
1304
1316
|
if (showLoader === void 0) { showLoader = true; }
|
|
1305
1317
|
return this._adapterService.getJsonArticleFlatTree(goodId, goodType, quantity, externalSource, showLoader, this._instanceId, configuratorStatistics);
|
|
1306
1318
|
};
|
|
1319
|
+
ProductConnectorService.prototype.getGeneratedArtDirectly = function (goodId, showLoader) {
|
|
1320
|
+
if (showLoader === void 0) { showLoader = true; }
|
|
1321
|
+
return this._adapterService.getGeneratedArtDirectly(goodId, showLoader);
|
|
1322
|
+
};
|
|
1307
1323
|
ProductConnectorService.prototype.addWebSessionTransactionLine = function (transactionUuid, sku, quantity) {
|
|
1308
1324
|
return __awaiter(this, void 0, void 0, function () {
|
|
1309
1325
|
return __generator(this, function (_a) {
|
|
@@ -1388,6 +1404,7 @@
|
|
|
1388
1404
|
// this.sku = "1000610952";
|
|
1389
1405
|
// this.sku = "4387";
|
|
1390
1406
|
// this.sku = "1000612725";
|
|
1407
|
+
// this.sku = '1000610952'; // elix = 1000234793
|
|
1391
1408
|
this._appEventService = _appEventService;
|
|
1392
1409
|
this._settingsService = _settingsService;
|
|
1393
1410
|
this._productConnectorService = _productConnectorService;
|
|
@@ -1657,7 +1674,7 @@
|
|
|
1657
1674
|
this.isReturn = false;
|
|
1658
1675
|
this.showRelatedProductsPopup = false;
|
|
1659
1676
|
this.openStockEvent = new i0.EventEmitter();
|
|
1660
|
-
this.configurable =
|
|
1677
|
+
this.configurable = true;
|
|
1661
1678
|
this.threeD = false;
|
|
1662
1679
|
this.show2D = true;
|
|
1663
1680
|
this.show3D = false;
|
|
@@ -1671,9 +1688,19 @@
|
|
|
1671
1688
|
if (_this.selections.nativeElement) {
|
|
1672
1689
|
_this.selections.nativeElement.forceRenderImage();
|
|
1673
1690
|
}
|
|
1674
|
-
}), this.settingsService.settingsLoaded.subscribe(function (loaded) { return _this._handleSettingsLoaded(loaded); }), this.
|
|
1675
|
-
|
|
1676
|
-
|
|
1691
|
+
}), this.settingsService.settingsLoaded.subscribe(function (loaded) { return _this._handleSettingsLoaded(loaded); }), this._pageLoadedSubscription = rxjs.combineLatest([
|
|
1692
|
+
this._ione.controllerInitialized,
|
|
1693
|
+
this._ione.articleLoaded
|
|
1694
|
+
]).subscribe(function (_a) {
|
|
1695
|
+
var _b = __read(_a, 2), initialized = _b[0], articleLoaded = _b[1];
|
|
1696
|
+
if (initialized && articleLoaded) {
|
|
1697
|
+
_this.settingsLoaded = initialized;
|
|
1698
|
+
}
|
|
1699
|
+
}),
|
|
1700
|
+
// this._ione.controllerInitialized.subscribe((initialized: boolean) => {
|
|
1701
|
+
// this.settingsLoaded = initialized;
|
|
1702
|
+
// }),
|
|
1703
|
+
this.appEventService.onAnswersAvailable.subscribe(function (answers) {
|
|
1677
1704
|
if (answers && _this.configurable) {
|
|
1678
1705
|
_this.showAddToCart = false;
|
|
1679
1706
|
}
|
|
@@ -1773,6 +1800,7 @@
|
|
|
1773
1800
|
if (this._initializedSub) {
|
|
1774
1801
|
this._initializedSub.unsubscribe();
|
|
1775
1802
|
}
|
|
1803
|
+
this._pageLoadedSubscription.unsubscribe();
|
|
1776
1804
|
this.configurator = undefined;
|
|
1777
1805
|
this.selections = undefined;
|
|
1778
1806
|
this.fullscreenbutton = undefined;
|
|
@@ -1808,7 +1836,8 @@
|
|
|
1808
1836
|
this._ione.getFullArticle(this._sku).then(function (article) {
|
|
1809
1837
|
_this.article = article;
|
|
1810
1838
|
if (_this.article) {
|
|
1811
|
-
_this.configurable = _this.article.goodType === 'B';
|
|
1839
|
+
_this.configurable = _this.article.goodType === 'B' && (_this.article.isConfigurable || _this.article.isConfigurable === undefined);
|
|
1840
|
+
// this.configurable = this.article.goodType === 'B';
|
|
1812
1841
|
if (_this.configurable) {
|
|
1813
1842
|
_this.showAddToCart = false;
|
|
1814
1843
|
_this.currentView = SelectorType.TwoD;
|
|
@@ -1825,6 +1854,7 @@
|
|
|
1825
1854
|
});
|
|
1826
1855
|
_this._changeDetector.detectChanges();
|
|
1827
1856
|
}
|
|
1857
|
+
_this._ione.articleLoaded.next(true);
|
|
1828
1858
|
});
|
|
1829
1859
|
}
|
|
1830
1860
|
return [2 /*return*/];
|
|
@@ -1846,37 +1876,37 @@
|
|
|
1846
1876
|
ProductPageComponent.decorators = [
|
|
1847
1877
|
{ type: i0.Component, args: [{
|
|
1848
1878
|
selector: 'app-product-page',
|
|
1849
|
-
template: "<ng-container *ngIf=\"settingsLoaded\">\r\n <div class=\"page-wrapper\">\r\n <div class=\"page-wrapper-content\">\r\n <div class=\"page-wrapper-left\">\r\n <div class=\"product-image-container\">\r\n <div class=\"product-page-block-selector-type\">\r\n <app-product-selector-type class=\"default-padding\"\r\n [(currentType)]=\"currentView\"\r\n [show2D]=\"configurable\"\r\n [show3D]=\"threeD\"\r\n ></app-product-selector-type>\r\n </div>\r\n <div class=\"product-page-block-image default-padding\" [class.full]=\"fullScreen\">\r\n\r\n <app-image-carousel\r\n *ngIf=\"!enableRenderCarousel\"\r\n [@toggleVisibilityByState]=\"show2D ? 'show' : 'hide'\"\r\n [images]=\"article?.images\"\r\n [showRefresh]=\"configurable && threeD\">\r\n </app-image-carousel>\r\n\r\n <app-render-carousel\r\n *ngIf=\"enableRenderCarousel\"\r\n [@toggleVisibilityByState]=\"show2D ? 'show' : 'hide'\"\r\n [article]=\"article\">\r\n </app-render-carousel>\r\n\r\n <ng-container *ngIf=\"settingsLoaded\">\r\n <threed-configurator\r\n #configurator\r\n class=\"threed-configurator\"\r\n [class.configurator-full-screen]=\"fullScreen\"\r\n [@toggleVisibilityByState]=\"show3D ? 'show' : 'hide'\"\r\n [@toggleFullScreen]=\"fullScreen ? 'fullscreen' : 'halfscreen'\">\r\n </threed-configurator>\r\n </ng-container>\r\n\r\n <co-icon #fullscreenbutton class=\"fullscreen-button\" *ngIf=\"show3D\"\r\n [@toggleTopLeft]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\r\n [iconData]=\"iconCache.getIcon(fullScreenIcon)\"\r\n (click)=\"showFullScreen()\"></co-icon>\r\n <co-icon class=\"threed-watermark\" *ngIf=\"show3D && fullScreen\"\r\n [iconData]=\"iconCache.getIcon(icon.Logo)\"></co-icon>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"page-wrapper-right\">\r\n <div class=\"product-page-block-description\">\r\n <app-product-description class=\"default-padding\" [article]=\"article\"></app-product-description>\r\n </div>\r\n <div class=\"product-page-block-additional\">\r\n <div class=\"product-page-block-additional-description\">\r\n <app-product-additional-description class=\"default-padding\" [article]=\"article\"></app-product-additional-description>\r\n </div>\r\n <div class=\"product-page-block-price\" [class.full]=\"configuring\">\r\n <app-product-price class=\"s-padding\" *ngIf=\"!configuring\"\r\n [pricing]=\"article?.pricing\"\r\n [configurable]=\"configurable\"\r\n ></app-product-price>\r\n <ng-container *ngIf=\"settingsLoaded\">\r\n <threed-selections #selections class=\"threed-selections\"\r\n [class.show-selections]=\"configuring\"\r\n [@toggleFullScreenRight]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\r\n [class.default-padding]=\"!fullScreen\"\r\n [class.show-full-screen]=\"fullScreen\"\r\n [class.mini-scrollbar]=\"fullScreen\"\r\n [sku]=\"sku\"\r\n [settings]=\"settings\"\r\n (onUserActionFromThreeD)=\"configuring = true\"\r\n (instanceSet)=\"setInstance($event)\"\r\n (onImageReceived)=\"appEventService.onImageReceived.next($event)\"\r\n (onRenderStarted)=\"appEventService.onRenderStarted.next()\"\r\n (onDraftRenderImageReceived)=\"appEventService.onDraftRenderImageReceived.next($event)\"\r\n (onArticleReceived)=\"appEventService.onArticleReceived.next($event.detail)\"\r\n (onSelectionsReceived)=\"appEventService.onSelectionsReceived.next($event.detail)\"\r\n (onArticleInfoReceived)=\"appEventService.onArticleInfoReceived.next($event.detail)\"\r\n (onAnswersAvailable)=\"appEventService.onAnswersAvailable.next($event.detail)\"\r\n (onReadyToRender)=\"appEventService.onReadyToRender.next($event.detail)\"\r\n (onRenderImageReceived)=\"appEventService.onRenderImageReceived.next($event.detail)\"\r\n ></threed-selections>\r\n </ng-container>\r\n </div>\r\n <div class=\"product-page-block-addtocart no-padding product-action-buttons\" *ngIf=\"!configuring\" [@toggleTopRight]=\"fullScreen ? 'fullscreen' : 'halfscreen'\">\r\n <app-product-addtocart\r\n [configurable]=\"configurable\"\r\n [createFrozenArticle]=\"createFrozenArticle\"\r\n [configuring]=\"configuring\"\r\n [showAddToCart]=\"showAddToCart\"\r\n [article]=\"article\"\r\n [externalSource]=\"externalSource\"\r\n [isReturn]=\"isReturn\"\r\n (startConfiguration)=\"handleStartConfiguration()\"\r\n (showRelatedPopup)=\"handlePopUpChange($event)\"\r\n ></app-product-addtocart>\r\n </div>\r\n <div class=\"addtocart-reserved product-action-buttons\" *ngIf=\"configuring\" [class.full-screen]=\"fullScreen\">\r\n <app-product-addtocart class=\"default-padding\"\r\n [configurable]=\"false\"\r\n [fullscreen]=\"fullScreen\"\r\n [showAddToCart]=\"showAddToCart\"\r\n [configuring]=\"configuring\"\r\n [article]=\"article\"\r\n [externalSource]=\"externalSource\"\r\n [isReturn]=\"isReturn\"\r\n (startConfiguration)=\"handleStartConfiguration()\"\r\n ></app-product-addtocart>\r\n </div>\r\n <div class=\"product-page-block-variants\">\r\n <app-product-related class=\"no-padding\" *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\r\n [externalSource]=\"externalSource\"\r\n [articles]=\"article?.relatedArticles\" [refType]=\"64\" [label]=\"'VARIANTS' | localize\"></app-product-related>\r\n </div>\r\n <div class=\"product-page-block-stock\">\r\n <app-product-stock class=\"no-padding\" [goodId]=\"article?.goodId\" (openStockEvent)=\"openStock()\"></app-product-stock>\r\n </div>\r\n <div class=\"product-page-block-delivery\">\r\n <app-product-delivery class=\"no-padding\" [stockAndDelivery]=\"stockAndDelivery\"></app-product-delivery>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"page-wrapper-content\">\r\n <div class=\"page-wrapper-left\">\r\n <app-product-info-tabs class=\"no-padding\" [article]=\"article\"></app-product-info-tabs>\r\n </div>\r\n <div class=\"page-wrapper-right\">\r\n <div class=\"product-page-block-related s-padding\">\r\n <app-product-related\r\n *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\r\n [externalSource]=\"externalSource\"\r\n [articles]=\"article?.relatedArticles\"\r\n [refType]=\"1\"\r\n [label]=\"'RELATED_PRODUCTS' | localize\">\r\n </app-product-related>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"page-wrapper-content no-top-margin\">\r\n <div class=\"page-wrapper-full\">\r\n <div class=\"product-page-block-alternatives s-padding\">\r\n <app-product-related\r\n *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\r\n [externalSource]=\"externalSource\"\r\n [articles]=\"article?.relatedArticles\"\r\n [refType]=\"4\"\r\n [isSmallModus]=\"false\"\r\n [label]=\"'ALTERNATIVE_PRODUCTS' | localize\">\r\n </app-product-related>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <div *ngIf=\"showRelatedProductsPopup\">\r\n <co-product-dialog\r\n [mainArticle]=\"article\"\r\n [articles]=\"article?.relatedArticles\"\r\n [refType]=\"1\"\r\n (closeRelatedPopup)=\"handlePopUpChange($event)\"\r\n >\r\n </co-product-dialog>\r\n\r\n <!-- <app-product-related class=\"no-padding\" *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"-->\r\n <!-- [articles]=\"article?.relatedArticles\" [refType]=\"64\" [label]=\"'VARIANTS' | localize\"></app-product-related>-->\r\n </div>\r\n\r\n\r\n </div>\r\n</ng-container>\r\n",
|
|
1879
|
+
template: "<ng-container *ngIf=\"settingsLoaded\">\r\n <div class=\"page-wrapper\">\r\n <div class=\"page-wrapper-content\">\r\n <div class=\"page-wrapper-left\">\r\n <div class=\"product-image-container\">\r\n <div class=\"product-page-block-selector-type\">\r\n <app-product-selector-type class=\"default-padding\"\r\n [(currentType)]=\"currentView\"\r\n [show2D]=\"configurable\"\r\n [show3D]=\"threeD\"\r\n ></app-product-selector-type>\r\n </div>\r\n <div class=\"product-page-block-image default-padding\" [class.full]=\"fullScreen\">\r\n\r\n <app-image-carousel\r\n *ngIf=\"!enableRenderCarousel\"\r\n [@toggleVisibilityByState]=\"show2D ? 'show' : 'hide'\"\r\n [images]=\"article?.images\"\r\n [showRefresh]=\"configurable && threeD\">\r\n </app-image-carousel>\r\n\r\n <app-render-carousel\r\n *ngIf=\"enableRenderCarousel\"\r\n [@toggleVisibilityByState]=\"show2D ? 'show' : 'hide'\"\r\n [article]=\"article\">\r\n </app-render-carousel>\r\n\r\n <ng-container *ngIf=\"settingsLoaded && this.configurable\">\r\n <threed-configurator\r\n #configurator\r\n class=\"threed-configurator\"\r\n [class.configurator-full-screen]=\"fullScreen\"\r\n [@toggleVisibilityByState]=\"show3D ? 'show' : 'hide'\"\r\n [@toggleFullScreen]=\"fullScreen ? 'fullscreen' : 'halfscreen'\">\r\n </threed-configurator>\r\n </ng-container>\r\n\r\n <co-icon #fullscreenbutton class=\"fullscreen-button\" *ngIf=\"show3D\"\r\n [@toggleTopLeft]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\r\n [iconData]=\"iconCache.getIcon(fullScreenIcon)\"\r\n (click)=\"showFullScreen()\"></co-icon>\r\n <co-icon class=\"threed-watermark\" *ngIf=\"show3D && fullScreen\"\r\n [iconData]=\"iconCache.getIcon(icon.Logo)\"></co-icon>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"page-wrapper-right\">\r\n <div class=\"product-page-block-description\">\r\n <app-product-description class=\"default-padding\" [article]=\"article\"></app-product-description>\r\n </div>\r\n <div class=\"product-page-block-additional\">\r\n <div class=\"product-page-block-additional-description\">\r\n <app-product-additional-description class=\"default-padding\" [article]=\"article\"></app-product-additional-description>\r\n </div>\r\n <div class=\"product-page-block-price\" [class.full]=\"configuring\">\r\n <app-product-price class=\"s-padding\" *ngIf=\"!configuring\"\r\n [pricing]=\"article?.pricing\"\r\n [configurable]=\"configurable\"\r\n ></app-product-price>\r\n <ng-container *ngIf=\"settingsLoaded\">\r\n <threed-selections #selections class=\"threed-selections\"\r\n [class.show-selections]=\"configuring\"\r\n [@toggleFullScreenRight]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\r\n [class.default-padding]=\"!fullScreen\"\r\n [class.show-full-screen]=\"fullScreen\"\r\n [class.mini-scrollbar]=\"fullScreen\"\r\n [sku]=\"sku\"\r\n [settings]=\"settings\"\r\n (onUserActionFromThreeD)=\"configuring = true\"\r\n (instanceSet)=\"setInstance($event)\"\r\n (onImageReceived)=\"appEventService.onImageReceived.next($event)\"\r\n (onRenderStarted)=\"appEventService.onRenderStarted.next()\"\r\n (onDraftRenderImageReceived)=\"appEventService.onDraftRenderImageReceived.next($event)\"\r\n (onArticleReceived)=\"appEventService.onArticleReceived.next($event.detail)\"\r\n (onSelectionsReceived)=\"appEventService.onSelectionsReceived.next($event.detail)\"\r\n (onArticleInfoReceived)=\"appEventService.onArticleInfoReceived.next($event.detail)\"\r\n (onAnswersAvailable)=\"appEventService.onAnswersAvailable.next($event.detail)\"\r\n (onReadyToRender)=\"appEventService.onReadyToRender.next($event.detail)\"\r\n (onRenderImageReceived)=\"appEventService.onRenderImageReceived.next($event.detail)\"\r\n ></threed-selections>\r\n </ng-container>\r\n </div>\r\n <div class=\"product-page-block-addtocart no-padding product-action-buttons\" *ngIf=\"!configuring\" [@toggleTopRight]=\"fullScreen ? 'fullscreen' : 'halfscreen'\">\r\n <app-product-addtocart\r\n [configurable]=\"configurable\"\r\n [createFrozenArticle]=\"createFrozenArticle\"\r\n [configuring]=\"configuring\"\r\n [showAddToCart]=\"showAddToCart\"\r\n [article]=\"article\"\r\n [externalSource]=\"externalSource\"\r\n [isReturn]=\"isReturn\"\r\n (startConfiguration)=\"handleStartConfiguration()\"\r\n (showRelatedPopup)=\"handlePopUpChange($event)\"\r\n ></app-product-addtocart>\r\n </div>\r\n <div class=\"addtocart-reserved product-action-buttons\" *ngIf=\"configuring\" [class.full-screen]=\"fullScreen\">\r\n <app-product-addtocart class=\"default-padding\"\r\n [configurable]=\"false\"\r\n [fullscreen]=\"fullScreen\"\r\n [showAddToCart]=\"showAddToCart\"\r\n [configuring]=\"configuring\"\r\n [article]=\"article\"\r\n [externalSource]=\"externalSource\"\r\n [isReturn]=\"isReturn\"\r\n (startConfiguration)=\"handleStartConfiguration()\"\r\n ></app-product-addtocart>\r\n </div>\r\n <div class=\"product-page-block-variants\">\r\n <app-product-related class=\"no-padding\" *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\r\n [externalSource]=\"externalSource\"\r\n [articles]=\"article?.relatedArticles\" [refType]=\"64\" [label]=\"'VARIANTS' | localize\"></app-product-related>\r\n </div>\r\n <div class=\"product-page-block-stock\">\r\n <app-product-stock class=\"no-padding\" [goodId]=\"article?.goodId\" (openStockEvent)=\"openStock()\"></app-product-stock>\r\n </div>\r\n <div class=\"product-page-block-delivery\">\r\n <app-product-delivery class=\"no-padding\" [stockAndDelivery]=\"stockAndDelivery\"></app-product-delivery>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"page-wrapper-content\">\r\n <div class=\"page-wrapper-left\" *ngIf=\"article\">\r\n <app-product-info-tabs class=\"no-padding\" [article]=\"article\"></app-product-info-tabs>\r\n </div>\r\n <div class=\"page-wrapper-right\">\r\n <div class=\"product-page-block-related s-padding\">\r\n <app-product-related\r\n *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\r\n [externalSource]=\"externalSource\"\r\n [articles]=\"article?.relatedArticles\"\r\n [refType]=\"1\"\r\n [label]=\"'RELATED_PRODUCTS' | localize\">\r\n </app-product-related>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"page-wrapper-content no-top-margin\">\r\n <div class=\"page-wrapper-full\">\r\n <div class=\"product-page-block-alternatives s-padding\">\r\n <app-product-related\r\n *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\r\n [externalSource]=\"externalSource\"\r\n [articles]=\"article?.relatedArticles\"\r\n [refType]=\"4\"\r\n [isSmallModus]=\"false\"\r\n [label]=\"'ALTERNATIVE_PRODUCTS' | localize\">\r\n </app-product-related>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <div *ngIf=\"showRelatedProductsPopup\">\r\n <co-product-dialog\r\n [mainArticle]=\"article\"\r\n [articles]=\"article?.relatedArticles\"\r\n [refType]=\"1\"\r\n (closeRelatedPopup)=\"handlePopUpChange($event)\"\r\n >\r\n </co-product-dialog>\r\n\r\n <!-- <app-product-related class=\"no-padding\" *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"-->\r\n <!-- [articles]=\"article?.relatedArticles\" [refType]=\"64\" [label]=\"'VARIANTS' | localize\"></app-product-related>-->\r\n </div>\r\n\r\n\r\n </div>\r\n</ng-container>\r\n",
|
|
1850
1880
|
animations: [
|
|
1851
1881
|
animations.trigger('toggleFullScreen', [
|
|
1852
1882
|
animations.state('fullscreen', animations.style({ 'position': 'fixed', 'top': '0', 'left': '0', 'width': '100%', 'height': '100%' })),
|
|
1853
1883
|
animations.state('halfscreen', animations.style({ 'position': '*', 'top': '*', 'left': '*', 'width': '*', 'height': '*' })),
|
|
1854
|
-
animations.transition('halfscreen <=> fullscreen', animations.animate('200ms ease-in-out'))
|
|
1884
|
+
animations.transition('halfscreen <=> fullscreen', animations.animate('200ms ease-in-out'))
|
|
1855
1885
|
]),
|
|
1856
1886
|
animations.trigger('toggleTopLeft', [
|
|
1857
1887
|
animations.state('fullscreen', animations.style({ 'position': 'fixed', 'top': '0', 'left': '0' })),
|
|
1858
1888
|
animations.state('halfscreen', animations.style({ 'position': 'absolute', 'top': '*', 'left': '*' })),
|
|
1859
|
-
animations.transition('halfscreen <=> fullscreen', animations.animate('200ms ease-in-out'))
|
|
1889
|
+
animations.transition('halfscreen <=> fullscreen', animations.animate('200ms ease-in-out'))
|
|
1860
1890
|
]),
|
|
1861
1891
|
animations.trigger('toggleTopRight', [
|
|
1862
1892
|
animations.state('fullscreen', animations.style({ 'position': 'fixed', 'top': '0', 'right': '0' })),
|
|
1863
1893
|
animations.state('halfscreen', animations.style({ 'position': '*', 'top': '*', 'right': '*' })),
|
|
1864
|
-
animations.transition('halfscreen <=> fullscreen', animations.animate('200ms ease-in-out'))
|
|
1894
|
+
animations.transition('halfscreen <=> fullscreen', animations.animate('200ms ease-in-out'))
|
|
1865
1895
|
]),
|
|
1866
1896
|
animations.trigger('toggleFullScreenRight', [
|
|
1867
1897
|
animations.state('fullscreen', animations.style({ 'position': 'fixed', 'width': '400px', 'top': '0', 'right': '0' })),
|
|
1868
1898
|
animations.state('halfscreen', animations.style({ 'position': '*', 'width': '*', 'top': '*', 'right': '*' })),
|
|
1869
|
-
animations.transition('halfscreen <=> fullscreen', animations.animate('200ms ease-in-out'))
|
|
1899
|
+
animations.transition('halfscreen <=> fullscreen', animations.animate('200ms ease-in-out'))
|
|
1870
1900
|
]),
|
|
1871
1901
|
animations.trigger('toggleVisibilityByState', [
|
|
1872
1902
|
animations.state('hide', animations.style({ 'opacity': '0', 'display': 'none' })),
|
|
1873
1903
|
animations.state('show', animations.style({ 'display': 'block', 'opacity': '1' })),
|
|
1874
|
-
animations.transition('hide <=> show', animations.animate('200ms 100ms ease-in-out'))
|
|
1904
|
+
animations.transition('hide <=> show', animations.animate('200ms 100ms ease-in-out'))
|
|
1875
1905
|
]),
|
|
1876
1906
|
animations.trigger('toggleVisibility', [
|
|
1877
1907
|
animations.state('void', animations.style({ 'opacity': '0' })),
|
|
1878
1908
|
animations.state('*', animations.style({ 'opacity': '1' })),
|
|
1879
|
-
animations.transition('void => *', animations.animate('200ms ease-in-out'))
|
|
1909
|
+
animations.transition('void => *', animations.animate('200ms ease-in-out'))
|
|
1880
1910
|
])
|
|
1881
1911
|
],
|
|
1882
1912
|
styles: [".page-wrapper{font-family:iOneMontserrat;font-size:12px;display:flex;flex-direction:column;max-width:100%;padding:0 15px;margin:0 auto}.page-wrapper-content{display:flex;flex-direction:row;margin:40px 0}.page-wrapper-content:first-child{margin-top:0}.page-wrapper-content.no-top-margin{margin-top:0}.page-wrapper-left{display:flex;width:65%;flex-direction:column}.page-wrapper-right{display:flex;width:35%;flex-direction:column}.page-wrapper-full{display:flex;width:100%;flex-direction:column}.page-wrapper-66{display:flex;width:60%;flex-direction:column}.page-wrapper-33{display:flex;width:40%;flex-direction:column}.threed-selections{display:none}.threed-selections.show-selections{display:block}.threed-selections ::ng-deep .rp-lite-selector .rp-answers-slideout ::ng-deep co-slideout{width:480px;z-index:3}.threed-selections ::ng-deep .co-summary-line{cursor:pointer}.product-action-buttons{position:relative}.product-action-buttons.full-screen{z-index:10}.product-image-container{grid-column:1/7;grid-row:1/6;position:relative}.product-page-block-selector-type{width:auto;position:absolute;top:10px;right:10px;z-index:2}.product-page-block-image{box-sizing:border-box;width:100%;z-index:1;position:relative}.product-page-block-image .threed-configurator{border:none}.product-page-block-image .threed-configurator .layer .viewer canvas{height:100%;width:100%}.product-page-block-image .threed-configurator ::ng-deep .rp-element-toolbar{top:30px}.product-page-block-image app-image-carousel.show-animated,.product-page-block-image threed-configurator.show-animated{opacity:1;z-index:0;transition:all .2s ease-in-out}.product-page-block-image .fullscreen-button{cursor:pointer;height:50px;width:50px;position:absolute;left:30px;z-index:100;top:30px}.product-page-block-image.full{grid-column:1/11;grid-row:2/span 10;z-index:3}.product-page-block-description{grid-column:7/12;grid-row:1/1}.product-page-block-additional{width:100%}.product-page-block-additional-description{width:100%}.product-page-block-price{grid-column:1/3;grid-row:2/2;align-self:center}.product-page-block-price.full{grid-column:1/5}.product-page-block-addtocart{grid-column:3/5;grid-row:2/2;align-self:center;padding-top:30px!important}.product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button{cursor:pointer}.product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button:hover div.rippler{background:#f6f5f4}.product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button ::ng-deep co-icon{position:relative;z-index:2}.product-page-block-addtocart ::ng-deep co-button.cart-button{cursor:pointer}.product-page-block-addtocart ::ng-deep co-button.cart-button:hover{background:#74B77F}.addtocart-reserved{grid-column:1/3;grid-row:3/3}.product-page-block-stock{grid-column:1/3;grid-row:4/4}.product-page-block-delivery{grid-column:3/5;grid-row:4/4}::ng-deep co-scroll-container{overflow:hidden;position:relative}::ng-deep co-scroll-container .content-wrapper{padding:0}::ng-deep co-scroll-container .scroll-layer{left:0;top:0}::ng-deep co-scroll-container .scroll-layer .scroller{width:34px;height:34px;border-radius:36px;background:#fff;cursor:pointer;box-shadow:0 0 5px #0003}::ng-deep co-scroll-container .scroll-layer .scroller:hover{background:#f6f5f4}::ng-deep co-scroll-container .scroll-layer .scroller.left-scroll{left:5px}::ng-deep co-scroll-container .scroll-layer .scroller.left-scroll:before{border-width:0 3px 3px 0;padding:4px;margin-left:13px;margin-top:11px}::ng-deep co-scroll-container .scroll-layer .scroller.right-scroll{right:5px}::ng-deep co-scroll-container .scroll-layer .scroller.right-scroll:after{border-width:0 3px 3px 0;padding:4px;margin-left:9px;margin-top:11px}.product-page-block-variants{margin:20px 0 0}.product-page-block-variants ::ng-deep app-product-related>div{display:flex;grid-gap:15px;gap:15px;align-items:center;border-top:1px solid #f6f5f4;padding:5px 0 7px 15px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep app-header h3{font-size:14px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container{width:320px;max-width:100%;padding:0 16px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller{width:26px;height:26px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller.left-scroll{left:5px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller.left-scroll:before{border-width:0 2px 2px 0;margin-left:9px;margin-top:9px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller.right-scroll{right:5px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller.right-scroll:after{border-width:0 2px 2px 0;margin-left:6px;margin-top:9px}.product-page-block-variants ::ng-deep co-tile.small{min-width:50px!important;max-width:50px!important;border:1px solid #f6f5f4;margin:0 10px 0 0;border-radius:4px}.product-page-block-variants ::ng-deep co-tile.small:hover{border-color:#22313c}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper{padding:0}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .tile-top{display:none}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .image{height:40px!important;padding:5px;margin-bottom:10px}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .image .no-image-wrapper .no-image{width:40px;height:40px}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .image .no-image-wrapper span{display:none!important}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .tile-bottom{display:none}.product-page-block-variants ::ng-deep co-tile.small .tile-extra-bottom{display:none}.product-page-block-alternatives ::ng-deep .article-wrapper{margin:0 20px 0 0}.product-page-block-alternatives ::ng-deep .article-wrapper:last-child{margin:0}.product-page-block-alternatives ::ng-deep co-tile{cursor:pointer;transition:all .14s ease-out;border:1px solid transparent;border-bottom-color:#f6f5f4;padding:15px 10px 0;width:319px;max-width:none;min-width:0;box-sizing:border-box}.product-page-block-alternatives ::ng-deep co-tile:hover{box-shadow:none;border-color:#f6f5f4}.product-page-block-alternatives ::ng-deep co-tile:hover .tile-wrapper div.image co-image{transform:scale(1.05)}.product-page-block-alternatives ::ng-deep co-tile:hover .tile-wrapper .tile-bottom{margin:0}.product-page-block-alternatives ::ng-deep co-tile:hover .tile-extra-bottom .main .description{text-decoration:underline}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper{padding:0;position:relative;outline:none;overflow:hidden}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper .tile-top{position:absolute;left:0;top:0;width:100%}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper div.image{position:relative;padding:1px;display:flex;align-items:center;justify-content:center;overflow:hidden;max-width:250px;margin:0 auto 10px;height:auto}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper div.image:after{content:\"\";padding:100% 0 0;float:left;width:100%}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper div.image co-image{position:absolute;left:0;top:0;overflow:hidden;width:100%;height:100%;-o-object-fit:contain;object-fit:contain;z-index:-1;transition:all .2s ease}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper div.image .no-image-wrapper{position:absolute;display:flex;left:50%;top:50%;margin:-48px 0 0 -54px;flex-direction:column;align-items:center;opacity:.25}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper .tile-bottom{transition:all .2s ease;height:auto}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper .tile-bottom ::ng-deep co-button{margin:0 0 5px!important;width:36px;height:36px;border:1px solid #22313C;cursor:pointer;border-radius:4px;padding:0!important;font-size:0}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper .tile-bottom ::ng-deep co-button co-icon{width:32px;height:32px;margin:0 2px}.product-page-block-alternatives ::ng-deep co-tile .tile-extra-bottom{outline:none;padding:15px 0;background:transparent!important;min-height:60px}.product-page-block-alternatives ::ng-deep co-tile .tile-extra-bottom .main{padding:0 10px}.product-page-block-alternatives ::ng-deep co-tile .tile-extra-bottom .main .description{font-size:15px;font-weight:bold;margin:0 0 2px}.product-page-block-alternatives ::ng-deep co-tile .tile-extra-bottom .main .price{font-size:16px;margin:15px 0 0;font-weight:bold;color:#2b60a7}.product-page-block-additional-information{grid-column:1/6;grid-row:4/4}.product-page-block-properties{grid-column:7/10;grid-row:3/3}.product-page-block-related-articles{grid-column:2/6;grid-row:4/4}.product-page-block-alternative-articles{grid-column:6/10;grid-row:4/4}.product-page-block-documents{grid-column:2/6;grid-row:5/5}.product-page-block-symbols{grid-column:6/10;grid-row:5/5}@media screen and (max-width: 950px){.default-padding{padding-top:20px;padding-bottom:20px}.m-padding{padding-top:15px;padding-bottom:15px}.s-padding{padding-top:5px;padding-bottom:5px}.page-wrapper{max-width:650px}.page-wrapper .page-wrapper-content{flex-direction:column;margin:30px 0}.page-wrapper .page-wrapper-content .page-wrapper-left{width:100%}.page-wrapper .page-wrapper-content .page-wrapper-right{width:100%}.product-page-block-alternatives ::ng-deep co-tile{width:284px!important}}@media screen and (max-width: 650px){[class*=-padding]{padding-left:0!important;padding-right:0!important}.product-page-block-addtocart ::ng-deep co-number-picker co-button{height:38px!important}.product-page-block-addtocart ::ng-deep co-number-picker co-input-text{height:38px!important;width:36px!important}.product-page-block-addtocart ::ng-deep co-button.cart-button{height:40px;font-size:13px}}\n"]
|
|
@@ -2487,11 +2517,12 @@
|
|
|
2487
2517
|
];
|
|
2488
2518
|
|
|
2489
2519
|
var ProductAddtocartComponent = /** @class */ (function () {
|
|
2490
|
-
function ProductAddtocartComponent(iconCache, _ioneControllerService, _appEventService, _settingsService) {
|
|
2520
|
+
function ProductAddtocartComponent(iconCache, _ioneControllerService, _appEventService, _settingsService, _productConnectorAdapterService) {
|
|
2491
2521
|
this.iconCache = iconCache;
|
|
2492
2522
|
this._ioneControllerService = _ioneControllerService;
|
|
2493
2523
|
this._appEventService = _appEventService;
|
|
2494
2524
|
this._settingsService = _settingsService;
|
|
2525
|
+
this._productConnectorAdapterService = _productConnectorAdapterService;
|
|
2495
2526
|
this.icon = IconEnum;
|
|
2496
2527
|
this.createFrozenArticle = true;
|
|
2497
2528
|
this.configurable = false;
|
|
@@ -2537,36 +2568,50 @@
|
|
|
2537
2568
|
return __generator(this, function (_a) {
|
|
2538
2569
|
switch (_a.label) {
|
|
2539
2570
|
case 0:
|
|
2540
|
-
if (!this.createFrozenArticle) return [3 /*break*/,
|
|
2541
|
-
if (!(this.article.goodType === 'B')) return [3 /*break*/,
|
|
2571
|
+
if (!this.createFrozenArticle) return [3 /*break*/, 10];
|
|
2572
|
+
if (!(this.article.goodType === 'B')) return [3 /*break*/, 5];
|
|
2573
|
+
if (!this.article.isConfigurable) return [3 /*break*/, 2];
|
|
2542
2574
|
return [4 /*yield*/, this._getJSONFromArticleObject({ article: this.article, quantity: quantity })];
|
|
2543
2575
|
case 1:
|
|
2544
2576
|
article = _a.sent();
|
|
2545
2577
|
if (article) {
|
|
2546
2578
|
this._appEventService.onAddToCart.next({ article: article, quantity: quantity });
|
|
2547
2579
|
}
|
|
2548
|
-
return [3 /*break*/,
|
|
2549
|
-
case 2:
|
|
2580
|
+
return [3 /*break*/, 4];
|
|
2581
|
+
case 2: return [4 /*yield*/, this._handleGeneratedArticleDirectly(quantity)];
|
|
2582
|
+
case 3:
|
|
2583
|
+
_a.sent();
|
|
2584
|
+
_a.label = 4;
|
|
2585
|
+
case 4: return [3 /*break*/, 9];
|
|
2586
|
+
case 5:
|
|
2550
2587
|
article = void 0;
|
|
2551
|
-
if (!!!this.externalSource) return [3 /*break*/,
|
|
2588
|
+
if (!!!this.externalSource) return [3 /*break*/, 7];
|
|
2552
2589
|
return [4 /*yield*/, this._getJSONFromArticleObject({ article: this.article, quantity: quantity })];
|
|
2553
|
-
case
|
|
2590
|
+
case 6:
|
|
2554
2591
|
article = _a.sent();
|
|
2555
|
-
return [3 /*break*/,
|
|
2556
|
-
case
|
|
2592
|
+
return [3 /*break*/, 8];
|
|
2593
|
+
case 7:
|
|
2557
2594
|
article = this._ioneControllerService.convertArticleFullObjectToArticleExtended(this.article);
|
|
2558
|
-
_a.label =
|
|
2559
|
-
case
|
|
2595
|
+
_a.label = 8;
|
|
2596
|
+
case 8:
|
|
2560
2597
|
if (article) {
|
|
2561
2598
|
this._appEventService.onAddToCart.next({ article: article, quantity: quantity });
|
|
2562
2599
|
}
|
|
2563
|
-
_a.label =
|
|
2564
|
-
case
|
|
2565
|
-
case
|
|
2600
|
+
_a.label = 9;
|
|
2601
|
+
case 9: return [3 /*break*/, 14];
|
|
2602
|
+
case 10:
|
|
2603
|
+
if (!(this.article.goodType === 'B')) return [3 /*break*/, 13];
|
|
2604
|
+
if (!!this.article.isConfigurable) return [3 /*break*/, 12];
|
|
2605
|
+
return [4 /*yield*/, this._handleGeneratedArticleDirectly(quantity)];
|
|
2606
|
+
case 11:
|
|
2607
|
+
_a.sent();
|
|
2608
|
+
_a.label = 12;
|
|
2609
|
+
case 12: return [3 /*break*/, 14];
|
|
2610
|
+
case 13:
|
|
2566
2611
|
article = this._ioneControllerService.convertArticleFullObjectToArticleExtended(this.article);
|
|
2567
2612
|
this._appEventService.onAddToCart.next({ article: article, quantity: quantity });
|
|
2568
|
-
_a.label =
|
|
2569
|
-
case
|
|
2613
|
+
_a.label = 14;
|
|
2614
|
+
case 14: return [2 /*return*/];
|
|
2570
2615
|
}
|
|
2571
2616
|
});
|
|
2572
2617
|
});
|
|
@@ -2605,6 +2650,36 @@
|
|
|
2605
2650
|
});
|
|
2606
2651
|
});
|
|
2607
2652
|
};
|
|
2653
|
+
ProductAddtocartComponent.prototype._handleGeneratedArticleDirectly = function (quantity) {
|
|
2654
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
2655
|
+
var generatedGoodId, articleFull, article;
|
|
2656
|
+
return __generator(this, function (_a) {
|
|
2657
|
+
switch (_a.label) {
|
|
2658
|
+
case 0: return [4 /*yield*/, this._getGeneratedArtDirectly(this.article.goodId)];
|
|
2659
|
+
case 1:
|
|
2660
|
+
generatedGoodId = _a.sent();
|
|
2661
|
+
if (!generatedGoodId) return [3 /*break*/, 3];
|
|
2662
|
+
return [4 /*yield*/, this._productConnectorAdapterService.getArticleFullObject(generatedGoodId, true)];
|
|
2663
|
+
case 2:
|
|
2664
|
+
articleFull = _a.sent();
|
|
2665
|
+
article = this._ioneControllerService.convertArticleFullObjectToArticleExtended(articleFull);
|
|
2666
|
+
this._appEventService.onAddToCart.next({ article: article, quantity: quantity });
|
|
2667
|
+
_a.label = 3;
|
|
2668
|
+
case 3: return [2 /*return*/];
|
|
2669
|
+
}
|
|
2670
|
+
});
|
|
2671
|
+
});
|
|
2672
|
+
};
|
|
2673
|
+
ProductAddtocartComponent.prototype._getGeneratedArtDirectly = function (goodId) {
|
|
2674
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
2675
|
+
return __generator(this, function (_a) {
|
|
2676
|
+
switch (_a.label) {
|
|
2677
|
+
case 0: return [4 /*yield*/, this._ioneControllerService.getGeneratedArtDirectly(goodId, true)];
|
|
2678
|
+
case 1: return [2 /*return*/, _a.sent()];
|
|
2679
|
+
}
|
|
2680
|
+
});
|
|
2681
|
+
});
|
|
2682
|
+
};
|
|
2608
2683
|
return ProductAddtocartComponent;
|
|
2609
2684
|
}());
|
|
2610
2685
|
ProductAddtocartComponent.decorators = [
|
|
@@ -2618,7 +2693,8 @@
|
|
|
2618
2693
|
{ type: IconCacheService },
|
|
2619
2694
|
{ type: ProductConnectorService },
|
|
2620
2695
|
{ type: ProductEventService },
|
|
2621
|
-
{ type: ProductSettingsService }
|
|
2696
|
+
{ type: ProductSettingsService },
|
|
2697
|
+
{ type: ProductConnectorAdapterService }
|
|
2622
2698
|
]; };
|
|
2623
2699
|
ProductAddtocartComponent.propDecorators = {
|
|
2624
2700
|
addToCartButton: [{ type: i0.ViewChild, args: ['addtocartbutton', { read: i0.ElementRef },] }],
|
|
@@ -3019,7 +3095,7 @@
|
|
|
3019
3095
|
this.updateHeight(tabIndex);
|
|
3020
3096
|
};
|
|
3021
3097
|
ProductInfoTabsComponent.prototype.updateHeight = function (tabIndex) {
|
|
3022
|
-
if (this.tabContent.nativeElement.children.length > 0) {
|
|
3098
|
+
if (this.tabContent && this.tabContent.nativeElement.children.length > 0) {
|
|
3023
3099
|
if (this.tabContent.nativeElement.children[tabIndex] !== undefined) {
|
|
3024
3100
|
this.activeTabHeight = this.tabContent.nativeElement.children[tabIndex].offsetHeight;
|
|
3025
3101
|
}
|