@colijnit/product 259.1.0 → 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 +1 -0
- package/app/components/product-page/product-page.component.d.ts +1 -0
- package/app/service/product-connector.service.d.ts +1 -0
- package/bundles/colijnit-product.umd.js +75 -39
- 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 +21 -9
- package/esm2015/app/components/product-info-tabs/product-info-tabs.component.js +2 -2
- package/esm2015/app/components/product-page/product-page.component.js +24 -12
- 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.service.js +2 -1
- package/fesm2015/colijnit-product.js +48 -23
- package/fesm2015/colijnit-product.js.map +1 -1
- package/package.json +2 -2
|
@@ -37,5 +37,6 @@ export declare class ProductAddtocartComponent implements OnInit, OnDestroy {
|
|
|
37
37
|
handleAddToCartClick(quantity: number): Promise<void>;
|
|
38
38
|
handleAddToQuoteClick(quantity: number): Promise<void>;
|
|
39
39
|
private _getJSONFromArticleObject;
|
|
40
|
+
private _handleGeneratedArticleDirectly;
|
|
40
41
|
private _getGeneratedArtDirectly;
|
|
41
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;
|
|
@@ -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;
|
|
@@ -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 = "259.1.
|
|
35
|
-
this.publishDate = "7
|
|
34
|
+
this.symVer = "259.1.1";
|
|
35
|
+
this.publishDate = "9-7-2025 11:53:26";
|
|
36
36
|
}
|
|
37
37
|
return Version;
|
|
38
38
|
}());
|
|
@@ -1208,6 +1208,7 @@
|
|
|
1208
1208
|
this._adapterService = _adapterService;
|
|
1209
1209
|
this._settingsService = _settingsService;
|
|
1210
1210
|
this.controllerInitialized = new rxjs.BehaviorSubject(false);
|
|
1211
|
+
this.articleLoaded = new rxjs.BehaviorSubject(false);
|
|
1211
1212
|
this._initializing = false;
|
|
1212
1213
|
this._initialized = false;
|
|
1213
1214
|
this.connectorOptions = new options.Options();
|
|
@@ -1403,6 +1404,7 @@
|
|
|
1403
1404
|
// this.sku = "1000610952";
|
|
1404
1405
|
// this.sku = "4387";
|
|
1405
1406
|
// this.sku = "1000612725";
|
|
1407
|
+
// this.sku = '1000610952'; // elix = 1000234793
|
|
1406
1408
|
this._appEventService = _appEventService;
|
|
1407
1409
|
this._settingsService = _settingsService;
|
|
1408
1410
|
this._productConnectorService = _productConnectorService;
|
|
@@ -1672,7 +1674,7 @@
|
|
|
1672
1674
|
this.isReturn = false;
|
|
1673
1675
|
this.showRelatedProductsPopup = false;
|
|
1674
1676
|
this.openStockEvent = new i0.EventEmitter();
|
|
1675
|
-
this.configurable =
|
|
1677
|
+
this.configurable = true;
|
|
1676
1678
|
this.threeD = false;
|
|
1677
1679
|
this.show2D = true;
|
|
1678
1680
|
this.show3D = false;
|
|
@@ -1686,9 +1688,19 @@
|
|
|
1686
1688
|
if (_this.selections.nativeElement) {
|
|
1687
1689
|
_this.selections.nativeElement.forceRenderImage();
|
|
1688
1690
|
}
|
|
1689
|
-
}), this.settingsService.settingsLoaded.subscribe(function (loaded) { return _this._handleSettingsLoaded(loaded); }), this.
|
|
1690
|
-
|
|
1691
|
-
|
|
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) {
|
|
1692
1704
|
if (answers && _this.configurable) {
|
|
1693
1705
|
_this.showAddToCart = false;
|
|
1694
1706
|
}
|
|
@@ -1788,6 +1800,7 @@
|
|
|
1788
1800
|
if (this._initializedSub) {
|
|
1789
1801
|
this._initializedSub.unsubscribe();
|
|
1790
1802
|
}
|
|
1803
|
+
this._pageLoadedSubscription.unsubscribe();
|
|
1791
1804
|
this.configurator = undefined;
|
|
1792
1805
|
this.selections = undefined;
|
|
1793
1806
|
this.fullscreenbutton = undefined;
|
|
@@ -1841,6 +1854,7 @@
|
|
|
1841
1854
|
});
|
|
1842
1855
|
_this._changeDetector.detectChanges();
|
|
1843
1856
|
}
|
|
1857
|
+
_this._ione.articleLoaded.next(true);
|
|
1844
1858
|
});
|
|
1845
1859
|
}
|
|
1846
1860
|
return [2 /*return*/];
|
|
@@ -1862,37 +1876,37 @@
|
|
|
1862
1876
|
ProductPageComponent.decorators = [
|
|
1863
1877
|
{ type: i0.Component, args: [{
|
|
1864
1878
|
selector: 'app-product-page',
|
|
1865
|
-
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\">\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",
|
|
1866
1880
|
animations: [
|
|
1867
1881
|
animations.trigger('toggleFullScreen', [
|
|
1868
1882
|
animations.state('fullscreen', animations.style({ 'position': 'fixed', 'top': '0', 'left': '0', 'width': '100%', 'height': '100%' })),
|
|
1869
1883
|
animations.state('halfscreen', animations.style({ 'position': '*', 'top': '*', 'left': '*', 'width': '*', 'height': '*' })),
|
|
1870
|
-
animations.transition('halfscreen <=> fullscreen', animations.animate('200ms ease-in-out'))
|
|
1884
|
+
animations.transition('halfscreen <=> fullscreen', animations.animate('200ms ease-in-out'))
|
|
1871
1885
|
]),
|
|
1872
1886
|
animations.trigger('toggleTopLeft', [
|
|
1873
1887
|
animations.state('fullscreen', animations.style({ 'position': 'fixed', 'top': '0', 'left': '0' })),
|
|
1874
1888
|
animations.state('halfscreen', animations.style({ 'position': 'absolute', 'top': '*', 'left': '*' })),
|
|
1875
|
-
animations.transition('halfscreen <=> fullscreen', animations.animate('200ms ease-in-out'))
|
|
1889
|
+
animations.transition('halfscreen <=> fullscreen', animations.animate('200ms ease-in-out'))
|
|
1876
1890
|
]),
|
|
1877
1891
|
animations.trigger('toggleTopRight', [
|
|
1878
1892
|
animations.state('fullscreen', animations.style({ 'position': 'fixed', 'top': '0', 'right': '0' })),
|
|
1879
1893
|
animations.state('halfscreen', animations.style({ 'position': '*', 'top': '*', 'right': '*' })),
|
|
1880
|
-
animations.transition('halfscreen <=> fullscreen', animations.animate('200ms ease-in-out'))
|
|
1894
|
+
animations.transition('halfscreen <=> fullscreen', animations.animate('200ms ease-in-out'))
|
|
1881
1895
|
]),
|
|
1882
1896
|
animations.trigger('toggleFullScreenRight', [
|
|
1883
1897
|
animations.state('fullscreen', animations.style({ 'position': 'fixed', 'width': '400px', 'top': '0', 'right': '0' })),
|
|
1884
1898
|
animations.state('halfscreen', animations.style({ 'position': '*', 'width': '*', 'top': '*', 'right': '*' })),
|
|
1885
|
-
animations.transition('halfscreen <=> fullscreen', animations.animate('200ms ease-in-out'))
|
|
1899
|
+
animations.transition('halfscreen <=> fullscreen', animations.animate('200ms ease-in-out'))
|
|
1886
1900
|
]),
|
|
1887
1901
|
animations.trigger('toggleVisibilityByState', [
|
|
1888
1902
|
animations.state('hide', animations.style({ 'opacity': '0', 'display': 'none' })),
|
|
1889
1903
|
animations.state('show', animations.style({ 'display': 'block', 'opacity': '1' })),
|
|
1890
|
-
animations.transition('hide <=> show', animations.animate('200ms 100ms ease-in-out'))
|
|
1904
|
+
animations.transition('hide <=> show', animations.animate('200ms 100ms ease-in-out'))
|
|
1891
1905
|
]),
|
|
1892
1906
|
animations.trigger('toggleVisibility', [
|
|
1893
1907
|
animations.state('void', animations.style({ 'opacity': '0' })),
|
|
1894
1908
|
animations.state('*', animations.style({ 'opacity': '1' })),
|
|
1895
|
-
animations.transition('void => *', animations.animate('200ms ease-in-out'))
|
|
1909
|
+
animations.transition('void => *', animations.animate('200ms ease-in-out'))
|
|
1896
1910
|
])
|
|
1897
1911
|
],
|
|
1898
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"]
|
|
@@ -2550,12 +2564,12 @@
|
|
|
2550
2564
|
};
|
|
2551
2565
|
ProductAddtocartComponent.prototype.handleAddToCartClick = function (quantity) {
|
|
2552
2566
|
return __awaiter(this, void 0, void 0, function () {
|
|
2553
|
-
var article,
|
|
2567
|
+
var article, article, article;
|
|
2554
2568
|
return __generator(this, function (_a) {
|
|
2555
2569
|
switch (_a.label) {
|
|
2556
2570
|
case 0:
|
|
2557
|
-
if (!this.createFrozenArticle) return [3 /*break*/,
|
|
2558
|
-
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];
|
|
2559
2573
|
if (!this.article.isConfigurable) return [3 /*break*/, 2];
|
|
2560
2574
|
return [4 /*yield*/, this._getJSONFromArticleObject({ article: this.article, quantity: quantity })];
|
|
2561
2575
|
case 1:
|
|
@@ -2563,39 +2577,41 @@
|
|
|
2563
2577
|
if (article) {
|
|
2564
2578
|
this._appEventService.onAddToCart.next({ article: article, quantity: quantity });
|
|
2565
2579
|
}
|
|
2566
|
-
return [3 /*break*/,
|
|
2567
|
-
case 2: return [4 /*yield*/, this.
|
|
2580
|
+
return [3 /*break*/, 4];
|
|
2581
|
+
case 2: return [4 /*yield*/, this._handleGeneratedArticleDirectly(quantity)];
|
|
2568
2582
|
case 3:
|
|
2569
|
-
|
|
2570
|
-
|
|
2571
|
-
|
|
2572
|
-
case
|
|
2573
|
-
articleFull = _a.sent();
|
|
2574
|
-
article = this._ioneControllerService.convertArticleFullObjectToArticleExtended(articleFull);
|
|
2575
|
-
this._appEventService.onAddToCart.next({ article: article, quantity: quantity });
|
|
2576
|
-
_a.label = 5;
|
|
2577
|
-
case 5: return [3 /*break*/, 10];
|
|
2578
|
-
case 6:
|
|
2583
|
+
_a.sent();
|
|
2584
|
+
_a.label = 4;
|
|
2585
|
+
case 4: return [3 /*break*/, 9];
|
|
2586
|
+
case 5:
|
|
2579
2587
|
article = void 0;
|
|
2580
|
-
if (!!!this.externalSource) return [3 /*break*/,
|
|
2588
|
+
if (!!!this.externalSource) return [3 /*break*/, 7];
|
|
2581
2589
|
return [4 /*yield*/, this._getJSONFromArticleObject({ article: this.article, quantity: quantity })];
|
|
2582
|
-
case
|
|
2590
|
+
case 6:
|
|
2583
2591
|
article = _a.sent();
|
|
2584
|
-
return [3 /*break*/,
|
|
2585
|
-
case
|
|
2592
|
+
return [3 /*break*/, 8];
|
|
2593
|
+
case 7:
|
|
2586
2594
|
article = this._ioneControllerService.convertArticleFullObjectToArticleExtended(this.article);
|
|
2587
|
-
_a.label =
|
|
2588
|
-
case
|
|
2595
|
+
_a.label = 8;
|
|
2596
|
+
case 8:
|
|
2589
2597
|
if (article) {
|
|
2590
2598
|
this._appEventService.onAddToCart.next({ article: article, quantity: quantity });
|
|
2591
2599
|
}
|
|
2592
|
-
_a.label =
|
|
2593
|
-
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)];
|
|
2594
2606
|
case 11:
|
|
2607
|
+
_a.sent();
|
|
2608
|
+
_a.label = 12;
|
|
2609
|
+
case 12: return [3 /*break*/, 14];
|
|
2610
|
+
case 13:
|
|
2595
2611
|
article = this._ioneControllerService.convertArticleFullObjectToArticleExtended(this.article);
|
|
2596
2612
|
this._appEventService.onAddToCart.next({ article: article, quantity: quantity });
|
|
2597
|
-
_a.label =
|
|
2598
|
-
case
|
|
2613
|
+
_a.label = 14;
|
|
2614
|
+
case 14: return [2 /*return*/];
|
|
2599
2615
|
}
|
|
2600
2616
|
});
|
|
2601
2617
|
});
|
|
@@ -2634,6 +2650,26 @@
|
|
|
2634
2650
|
});
|
|
2635
2651
|
});
|
|
2636
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
|
+
};
|
|
2637
2673
|
ProductAddtocartComponent.prototype._getGeneratedArtDirectly = function (goodId) {
|
|
2638
2674
|
return __awaiter(this, void 0, void 0, function () {
|
|
2639
2675
|
return __generator(this, function (_a) {
|
|
@@ -3059,7 +3095,7 @@
|
|
|
3059
3095
|
this.updateHeight(tabIndex);
|
|
3060
3096
|
};
|
|
3061
3097
|
ProductInfoTabsComponent.prototype.updateHeight = function (tabIndex) {
|
|
3062
|
-
if (this.tabContent.nativeElement.children.length > 0) {
|
|
3098
|
+
if (this.tabContent && this.tabContent.nativeElement.children.length > 0) {
|
|
3063
3099
|
if (this.tabContent.nativeElement.children[tabIndex] !== undefined) {
|
|
3064
3100
|
this.activeTabHeight = this.tabContent.nativeElement.children[tabIndex].offsetHeight;
|
|
3065
3101
|
}
|