@colijnit/product 261.20.2 → 261.20.3

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.
@@ -14,10 +14,10 @@ import { TransactionInfoResponse } from '@colijnit/transactionapi/build/model/tr
14
14
  import { ArticleListObjectExtended } from '@colijnit/articleapi/build/model/article-list-object-extended.bo';
15
15
  import { ImageContent } from '@colijnit/mainapi/build/model/image-content.bo';
16
16
  import { StringUtils } from '@colijnit/ioneconnector/build/utils/string-utils';
17
- import { trigger, state, transition, style, animate } from '@angular/animations';
17
+ import { trigger, state, style, transition, animate } from '@angular/animations';
18
+ import * as i5 from '@colijnit/configurator';
19
+ import { ConfigurationResultObject, ConfiguratorModule, ConfiguratorSceneModule } from '@colijnit/configurator';
18
20
  import * as i1 from '@angular/platform-browser';
19
- import * as i5 from '@angular/common';
20
- import { CommonModule, isPlatformBrowser } from '@angular/common';
21
21
  import * as i6 from '@colijnit/corecomponents_v12';
22
22
  import { IconModule, LoaderModule, ScrollContainerModule, InputNumberPickerModule, ButtonModule, ArticleTileModule, TileModule, IconCollapseHandleModule } from '@colijnit/corecomponents_v12';
23
23
  import { CoDocument } from '@colijnit/mainapi/build/model/co-document.bo';
@@ -26,14 +26,16 @@ import { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';
26
26
  import { ConfiguratorStatisticsEnvironment } from '@colijnit/articleapi/build/model/configurator-statistics-environment';
27
27
  import * as i3 from '@colijnit/sharedcomponents';
28
28
  import { FilesUploadModule } from '@colijnit/sharedcomponents';
29
+ import * as i5$1 from '@angular/common';
30
+ import { CommonModule, isPlatformBrowser } from '@angular/common';
29
31
 
30
32
  // this file is dynamically created, do not change this
31
33
  class Version {
32
34
  constructor() {
33
35
  this.name = "@colijnit/product";
34
36
  this.description = "Product detail page project for iOne";
35
- this.symVer = "261.20.2";
36
- this.publishDate = "24-3-2026, 15:30:44";
37
+ this.symVer = "261.20.3";
38
+ this.publishDate = "2-4-2026, 17:07:12";
37
39
  }
38
40
  }
39
41
 
@@ -1879,7 +1881,7 @@ class ProductRelatedComponent {
1879
1881
  </co-scroll-container>
1880
1882
  </div>
1881
1883
  }
1882
- `, isInline: true, styles: [":host{display:block}.article-wrapper{display:flex;flex-direction:row;flex:1;min-width:25%}.article-wrapper ::ng-deep co-tile{transition:all .14s ease-out;border:1px solid transparent;padding:10px 20px;display:flex;flex-direction:column;color:#171721;justify-content:space-between}.article-wrapper ::ng-deep co-tile .price{display:block}.article-wrapper ::ng-deep co-tile .description{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;height:30px}.article-wrapper ::ng-deep co-tile .tile-bottom{display:flex;flex-direction:column;gap:5px}.article-wrapper ::ng-deep co-tile:hover{border:1px solid #DCE4EA}.article-wrapper ::ng-deep co-tile .tile-extra-bottom co-button co-icon{width:24px;height:24px}.article-wrapper ::ng-deep co-tile .tile-extra-bottom co-button co-icon svg [fill]{fill:#fff}.article-wrapper ::ng-deep co-tile.small{max-width:189px;width:100%;height:100%;cursor:pointer}.article-wrapper ::ng-deep co-tile.small:hover .tile-bottom .left-buttons{margin:0!important}.article-wrapper ::ng-deep co-tile.small .tile-wrapper{outline:none!important;padding-bottom:0;overflow:hidden;gap:10px;display:flex;flex-direction:column}.article-wrapper ::ng-deep co-tile.small .tile-wrapper div.image{height:100px}.article-wrapper ::ng-deep co-tile.small .tile-wrapper .tile-extra-bottom ::ng-deep co-button.card-button.mini{pointer-events:all;padding:0!important;font-size:0;width:42px;height:42px;text-align:center;margin:0;border-radius:100%;background:#3e7eff;cursor:pointer;place-content:center;color:#fff}.article-wrapper ::ng-deep co-tile.small .tile-wrapper .tile-extra-bottom ::ng-deep co-button.card-button.mini ::ng-deep co-icon{width:30px;height:30px}.article-wrapper ::ng-deep co-tile.small .tile-extra-bottom{outline:none!important;background:transparent!important}.article-wrapper ::ng-deep co-tile.small .tile-extra-bottom .price{color:#74b77f;margin:5px 0 0;font-weight:400;font-size:12px}\n"], dependencies: [{ kind: "component", type: HeaderComponent, selector: "app-header", inputs: ["label", "amount"] }, { kind: "component", type: i6.ScrollContainerComponent, selector: "co-scroll-container", inputs: ["vertical"] }, { kind: "component", type: i6.ArticleTileComponent, selector: "co-article-tile", inputs: ["imageData", "description", "price", "level", "isSelected", "isSmallModus", "hasConfigureButton", "hasThreeDButton", "hasCartButton"], outputs: ["contentClick", "configureButtonClick", "threeDButtonClick", "cartButtonClick"] }] }); }
1884
+ `, isInline: true, styles: [":host{display:block}.article-wrapper{display:flex;flex-direction:row;flex:1;justify-content:flex-start}.article-wrapper ::ng-deep co-tile{transition:all .14s ease-out;border:1px solid transparent;padding:10px;display:flex;flex-direction:column;color:#171721;box-sizing:border-box;justify-content:space-between}.article-wrapper ::ng-deep co-tile .price{display:block;padding:10px 0}.article-wrapper ::ng-deep co-tile .description{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;height:30px}.article-wrapper ::ng-deep co-tile .tile-bottom{display:flex;flex-direction:column;gap:5px}.article-wrapper ::ng-deep co-tile:hover{border:1px solid #DCE4EA}.article-wrapper ::ng-deep co-tile .tile-extra-bottom co-button co-icon{width:24px;height:24px}.article-wrapper ::ng-deep co-tile .tile-extra-bottom co-button co-icon svg [fill]{fill:#fff}.article-wrapper ::ng-deep co-tile.small{width:100%;height:100%;cursor:pointer}.article-wrapper ::ng-deep co-tile.small:hover .tile-bottom .left-buttons{margin:0!important}.article-wrapper ::ng-deep co-tile.small .tile-wrapper{outline:none!important;padding-bottom:0;overflow:hidden;gap:10px;display:flex;flex-direction:column}.article-wrapper ::ng-deep co-tile.small .tile-wrapper div.image{height:100px}.article-wrapper ::ng-deep co-tile.small .tile-wrapper .no-image-wrapper{min-height:100px;display:flex;align-items:center}.article-wrapper ::ng-deep co-tile.small .tile-wrapper .tile-extra-bottom ::ng-deep co-button.card-button.mini{pointer-events:all;padding:0!important;font-size:0;width:42px;height:42px;text-align:center;margin:0;border-radius:100%;background:#3e7eff;cursor:pointer;place-content:center;color:#fff}.article-wrapper ::ng-deep co-tile.small .tile-wrapper .tile-extra-bottom ::ng-deep co-button.card-button.mini ::ng-deep co-icon{width:30px;height:30px}.article-wrapper ::ng-deep co-tile.small .tile-extra-bottom{outline:none!important;background:transparent!important}.article-wrapper ::ng-deep co-tile.small .tile-extra-bottom .price{color:#74b77f;margin:5px 0 0;font-weight:400;font-size:12px}\n"], dependencies: [{ kind: "component", type: HeaderComponent, selector: "app-header", inputs: ["label", "amount"] }, { kind: "component", type: i6.ScrollContainerComponent, selector: "co-scroll-container", inputs: ["vertical"] }, { kind: "component", type: i6.ArticleTileComponent, selector: "co-article-tile", inputs: ["imageData", "description", "price", "level", "isSelected", "isSmallModus", "hasConfigureButton", "hasThreeDButton", "hasCartButton"], outputs: ["contentClick", "configureButtonClick", "threeDButtonClick", "cartButtonClick"] }] }); }
1883
1885
  }
1884
1886
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductRelatedComponent, decorators: [{
1885
1887
  type: Component,
@@ -1910,7 +1912,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
1910
1912
  </co-scroll-container>
1911
1913
  </div>
1912
1914
  }
1913
- `, standalone: false, styles: [":host{display:block}.article-wrapper{display:flex;flex-direction:row;flex:1;min-width:25%}.article-wrapper ::ng-deep co-tile{transition:all .14s ease-out;border:1px solid transparent;padding:10px 20px;display:flex;flex-direction:column;color:#171721;justify-content:space-between}.article-wrapper ::ng-deep co-tile .price{display:block}.article-wrapper ::ng-deep co-tile .description{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;height:30px}.article-wrapper ::ng-deep co-tile .tile-bottom{display:flex;flex-direction:column;gap:5px}.article-wrapper ::ng-deep co-tile:hover{border:1px solid #DCE4EA}.article-wrapper ::ng-deep co-tile .tile-extra-bottom co-button co-icon{width:24px;height:24px}.article-wrapper ::ng-deep co-tile .tile-extra-bottom co-button co-icon svg [fill]{fill:#fff}.article-wrapper ::ng-deep co-tile.small{max-width:189px;width:100%;height:100%;cursor:pointer}.article-wrapper ::ng-deep co-tile.small:hover .tile-bottom .left-buttons{margin:0!important}.article-wrapper ::ng-deep co-tile.small .tile-wrapper{outline:none!important;padding-bottom:0;overflow:hidden;gap:10px;display:flex;flex-direction:column}.article-wrapper ::ng-deep co-tile.small .tile-wrapper div.image{height:100px}.article-wrapper ::ng-deep co-tile.small .tile-wrapper .tile-extra-bottom ::ng-deep co-button.card-button.mini{pointer-events:all;padding:0!important;font-size:0;width:42px;height:42px;text-align:center;margin:0;border-radius:100%;background:#3e7eff;cursor:pointer;place-content:center;color:#fff}.article-wrapper ::ng-deep co-tile.small .tile-wrapper .tile-extra-bottom ::ng-deep co-button.card-button.mini ::ng-deep co-icon{width:30px;height:30px}.article-wrapper ::ng-deep co-tile.small .tile-extra-bottom{outline:none!important;background:transparent!important}.article-wrapper ::ng-deep co-tile.small .tile-extra-bottom .price{color:#74b77f;margin:5px 0 0;font-weight:400;font-size:12px}\n"] }]
1915
+ `, standalone: false, styles: [":host{display:block}.article-wrapper{display:flex;flex-direction:row;flex:1;justify-content:flex-start}.article-wrapper ::ng-deep co-tile{transition:all .14s ease-out;border:1px solid transparent;padding:10px;display:flex;flex-direction:column;color:#171721;box-sizing:border-box;justify-content:space-between}.article-wrapper ::ng-deep co-tile .price{display:block;padding:10px 0}.article-wrapper ::ng-deep co-tile .description{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;height:30px}.article-wrapper ::ng-deep co-tile .tile-bottom{display:flex;flex-direction:column;gap:5px}.article-wrapper ::ng-deep co-tile:hover{border:1px solid #DCE4EA}.article-wrapper ::ng-deep co-tile .tile-extra-bottom co-button co-icon{width:24px;height:24px}.article-wrapper ::ng-deep co-tile .tile-extra-bottom co-button co-icon svg [fill]{fill:#fff}.article-wrapper ::ng-deep co-tile.small{width:100%;height:100%;cursor:pointer}.article-wrapper ::ng-deep co-tile.small:hover .tile-bottom .left-buttons{margin:0!important}.article-wrapper ::ng-deep co-tile.small .tile-wrapper{outline:none!important;padding-bottom:0;overflow:hidden;gap:10px;display:flex;flex-direction:column}.article-wrapper ::ng-deep co-tile.small .tile-wrapper div.image{height:100px}.article-wrapper ::ng-deep co-tile.small .tile-wrapper .no-image-wrapper{min-height:100px;display:flex;align-items:center}.article-wrapper ::ng-deep co-tile.small .tile-wrapper .tile-extra-bottom ::ng-deep co-button.card-button.mini{pointer-events:all;padding:0!important;font-size:0;width:42px;height:42px;text-align:center;margin:0;border-radius:100%;background:#3e7eff;cursor:pointer;place-content:center;color:#fff}.article-wrapper ::ng-deep co-tile.small .tile-wrapper .tile-extra-bottom ::ng-deep co-button.card-button.mini ::ng-deep co-icon{width:30px;height:30px}.article-wrapper ::ng-deep co-tile.small .tile-extra-bottom{outline:none!important;background:transparent!important}.article-wrapper ::ng-deep co-tile.small .tile-extra-bottom .price{color:#74b77f;margin:5px 0 0;font-weight:400;font-size:12px}\n"] }]
1914
1916
  }], ctorParameters: () => [{ type: ProductConnectorService }, { type: ProductEventService }, { type: ProductConnectorAdapterService }, { type: ProductSettingsService }], propDecorators: { refType: [{
1915
1917
  type: Input
1916
1918
  }], label: [{
@@ -1974,7 +1976,7 @@ class ProductStockComponent {
1974
1976
  <div class="pp-default-label" [class.in-stock]="inStock" [textContent]="stockLabel | localize"></div>
1975
1977
  </div>
1976
1978
  </div>
1977
- `, isInline: true, styles: [":host{display:block}.product-stock-wrapper{display:flex;flex-direction:row;align-items:center;border-top:1px solid #f6f5f4;border-bottom:1px solid #f6f5f4;padding:20px 15px;cursor:pointer}.product-stock-wrapper .stock-icon{margin:0 15px 0 0;width:40px;height:37px}.product-stock-wrapper .product-stock-fields{display:flex;flex-direction:row}.product-stock-wrapper .product-stock-fields .pp-default-label{font-size:14px;margin:0;color:#2b60a7;text-decoration:underline}.product-stock-wrapper .product-stock-fields .pp-default-label:after{content:\"\";width:10px;height:10px;border-radius:10px;background:#f15152;display:inline-block;margin:0 0 0 15px}.product-stock-wrapper .product-stock-fields .pp-default-label.in-stock:after{background:#74b77f}@media screen and (max-width: 400px){.product-stock-wrapper{padding:15px 0 15px 10px}.product-stock-wrapper .stock-icon{margin:0 15px 0 0;width:32px;height:28px}.product-stock-wrapper .product-stock-fields .pp-default-label{font-size:13px}}\n"], dependencies: [{ kind: "component", type: i6.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
1979
+ `, isInline: true, styles: [":host{display:block}.product-stock-wrapper{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:20px 15px;cursor:pointer}.product-stock-wrapper .stock-icon{margin:0 15px 0 0;width:40px;height:37px}.product-stock-wrapper .product-stock-fields{display:flex;flex-direction:row}.product-stock-wrapper .product-stock-fields .pp-default-label{font-size:14px;margin:0;color:#2b60a7;text-decoration:underline}.product-stock-wrapper .product-stock-fields .pp-default-label:after{content:\"\";width:10px;height:10px;border-radius:10px;background:#f15152;display:inline-block;margin:0 0 0 15px}.product-stock-wrapper .product-stock-fields .pp-default-label.in-stock:after{background:#74b77f}@media screen and (max-width: 400px){.product-stock-wrapper{padding:15px 0 15px 10px}.product-stock-wrapper .stock-icon{margin:0 15px 0 0;width:32px;height:28px}.product-stock-wrapper .product-stock-fields .pp-default-label{font-size:13px}}\n"], dependencies: [{ kind: "component", type: i6.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
1978
1980
  }
1979
1981
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductStockComponent, decorators: [{
1980
1982
  type: Component,
@@ -1987,59 +1989,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
1987
1989
  <div class="pp-default-label" [class.in-stock]="inStock" [textContent]="stockLabel | localize"></div>
1988
1990
  </div>
1989
1991
  </div>
1990
- `, standalone: false, styles: [":host{display:block}.product-stock-wrapper{display:flex;flex-direction:row;align-items:center;border-top:1px solid #f6f5f4;border-bottom:1px solid #f6f5f4;padding:20px 15px;cursor:pointer}.product-stock-wrapper .stock-icon{margin:0 15px 0 0;width:40px;height:37px}.product-stock-wrapper .product-stock-fields{display:flex;flex-direction:row}.product-stock-wrapper .product-stock-fields .pp-default-label{font-size:14px;margin:0;color:#2b60a7;text-decoration:underline}.product-stock-wrapper .product-stock-fields .pp-default-label:after{content:\"\";width:10px;height:10px;border-radius:10px;background:#f15152;display:inline-block;margin:0 0 0 15px}.product-stock-wrapper .product-stock-fields .pp-default-label.in-stock:after{background:#74b77f}@media screen and (max-width: 400px){.product-stock-wrapper{padding:15px 0 15px 10px}.product-stock-wrapper .stock-icon{margin:0 15px 0 0;width:32px;height:28px}.product-stock-wrapper .product-stock-fields .pp-default-label{font-size:13px}}\n"] }]
1992
+ `, standalone: false, styles: [":host{display:block}.product-stock-wrapper{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:20px 15px;cursor:pointer}.product-stock-wrapper .stock-icon{margin:0 15px 0 0;width:40px;height:37px}.product-stock-wrapper .product-stock-fields{display:flex;flex-direction:row}.product-stock-wrapper .product-stock-fields .pp-default-label{font-size:14px;margin:0;color:#2b60a7;text-decoration:underline}.product-stock-wrapper .product-stock-fields .pp-default-label:after{content:\"\";width:10px;height:10px;border-radius:10px;background:#f15152;display:inline-block;margin:0 0 0 15px}.product-stock-wrapper .product-stock-fields .pp-default-label.in-stock:after{background:#74b77f}@media screen and (max-width: 400px){.product-stock-wrapper{padding:15px 0 15px 10px}.product-stock-wrapper .stock-icon{margin:0 15px 0 0;width:32px;height:28px}.product-stock-wrapper .product-stock-fields .pp-default-label{font-size:13px}}\n"] }]
1991
1993
  }], ctorParameters: () => [{ type: ProductConnectorService }, { type: IconCacheService }], propDecorators: { goodId: [{
1992
1994
  type: Input
1993
1995
  }], openStockEvent: [{
1994
1996
  type: Output
1995
1997
  }] } });
1996
1998
 
1997
- class ProductDeliveryComponent {
1998
- set stockAndDelivery(value) {
1999
- if (value) {
2000
- this.deliveryDescription = value.deliveryDescription;
2001
- if (this.deliveryDescription.length > 0 && this.deliveryDescription[0] === ' ') {
2002
- this.deliveryDescription = this._localizePipe.transform('ASK_FOR_INFORMATION');
2003
- }
2004
- }
2005
- }
2006
- constructor(_localizePipe, _iOne, _iconCache) {
2007
- this._localizePipe = _localizePipe;
2008
- this._iOne = _iOne;
2009
- this._iconCache = _iconCache;
2010
- this.icon = IconEnum;
2011
- this.iconData = this._iconCache.getIcon(this.icon.Truck);
2012
- }
2013
- ngOnInit() {
2014
- }
2015
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductDeliveryComponent, deps: [{ token: LocalizePipe }, { token: ProductConnectorService }, { token: IconCacheService }], target: i0.ɵɵFactoryTarget.Component }); }
2016
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: ProductDeliveryComponent, isStandalone: false, selector: "app-product-delivery", inputs: { stockAndDelivery: "stockAndDelivery" }, ngImport: i0, template: `
2017
- <!--<app-header [label]="'DELIVERY_TIME_PERIOD' | localize"></app-header>-->
2018
- <div class="product-delivery-wrapper">
2019
- <co-icon class="delivery-icon" [iconData]="iconData"></co-icon>
2020
- <div class="product-delivery-fields">
2021
- <div class="pp-default-label" [textContent]="'DELIVERY_TIME_PERIOD' | localize"></div>
2022
- <div class="pp-default-description" [textContent]="deliveryDescription | date:'dd MMMM yyyy'"></div>
2023
- </div>
2024
- </div>
2025
- `, isInline: true, styles: [":host{display:block}.product-delivery-wrapper{display:flex;flex-direction:row;align-items:center;border-bottom:1px solid #f6f5f4;padding:20px 15px}.product-delivery-wrapper .delivery-icon{margin:0 15px 0 0;width:40px;height:37px}.product-delivery-wrapper .product-delivery-fields{display:flex;flex-direction:column}.product-delivery-wrapper .product-delivery-fields .pp-default-label{font-size:14px;margin:0}@media screen and (max-width: 400px){.product-delivery-wrapper{padding:15px 0 15px 10px}.product-delivery-wrapper .delivery-icon{margin:0 15px 0 0;width:32px;height:28px}.product-delivery-wrapper .product-delivery-fields .pp-default-label{font-size:13px}}\n"], dependencies: [{ kind: "component", type: i6.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "pipe", type: i5.DatePipe, name: "date" }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
2026
- }
2027
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductDeliveryComponent, decorators: [{
2028
- type: Component,
2029
- args: [{ selector: 'app-product-delivery', template: `
2030
- <!--<app-header [label]="'DELIVERY_TIME_PERIOD' | localize"></app-header>-->
2031
- <div class="product-delivery-wrapper">
2032
- <co-icon class="delivery-icon" [iconData]="iconData"></co-icon>
2033
- <div class="product-delivery-fields">
2034
- <div class="pp-default-label" [textContent]="'DELIVERY_TIME_PERIOD' | localize"></div>
2035
- <div class="pp-default-description" [textContent]="deliveryDescription | date:'dd MMMM yyyy'"></div>
2036
- </div>
2037
- </div>
2038
- `, standalone: false, styles: [":host{display:block}.product-delivery-wrapper{display:flex;flex-direction:row;align-items:center;border-bottom:1px solid #f6f5f4;padding:20px 15px}.product-delivery-wrapper .delivery-icon{margin:0 15px 0 0;width:40px;height:37px}.product-delivery-wrapper .product-delivery-fields{display:flex;flex-direction:column}.product-delivery-wrapper .product-delivery-fields .pp-default-label{font-size:14px;margin:0}@media screen and (max-width: 400px){.product-delivery-wrapper{padding:15px 0 15px 10px}.product-delivery-wrapper .delivery-icon{margin:0 15px 0 0;width:32px;height:28px}.product-delivery-wrapper .product-delivery-fields .pp-default-label{font-size:13px}}\n"] }]
2039
- }], ctorParameters: () => [{ type: LocalizePipe }, { type: ProductConnectorService }, { type: IconCacheService }], propDecorators: { stockAndDelivery: [{
2040
- type: Input
2041
- }] } });
2042
-
2043
1999
  class ProductAdditionalInfoComponent {
2044
2000
  set article(value) {
2045
2001
  if (value) {
@@ -2074,12 +2030,14 @@ class ProductAdditionalInfoComponent {
2074
2030
  mainArticle = await this._connectorService.getSuperArticle(this.article.superArticleNr);
2075
2031
  this._superArticles.set(this.article.superArticleNr, mainArticle);
2076
2032
  }
2077
- mainArticle.texts.forEach((txt) => {
2078
- if (BitUtils.IsFullDescription(txt.publication)) {
2079
- const safeTxt = this._sanitizer.sanitize(SecurityContext.HTML, txt.text);
2080
- texts.push(safeTxt);
2081
- }
2082
- });
2033
+ if (mainArticle) {
2034
+ mainArticle.texts.forEach((txt) => {
2035
+ if (BitUtils.IsFullDescription(txt.publication)) {
2036
+ const safeTxt = this._sanitizer.sanitize(SecurityContext.HTML, txt.text);
2037
+ texts.push(safeTxt);
2038
+ }
2039
+ });
2040
+ }
2083
2041
  resolve(texts);
2084
2042
  }
2085
2043
  else {
@@ -2578,6 +2536,7 @@ class RenderCarouselComponent {
2578
2536
  this.resizing = false;
2579
2537
  this.showLoader = true;
2580
2538
  this.renderedImageLoaded = false;
2539
+ this.listOfRenders = [];
2581
2540
  // For now we will just use mock data
2582
2541
  this.renderAngles = [0, -45, -90, -135, -180, -225, -270, -315];
2583
2542
  this.currentRenderAngleIndex = 0;
@@ -2593,12 +2552,14 @@ class RenderCarouselComponent {
2593
2552
  this._changeDetector.detectChanges();
2594
2553
  }), this._appEventService.onRenderImageReceived.subscribe((image) => {
2595
2554
  this.renderedImage = image;
2555
+ this.listOfRenders.push(image);
2596
2556
  this.showLoader = false;
2597
2557
  this._changeDetector.detectChanges();
2598
2558
  }));
2599
2559
  }
2600
2560
  ngOnDestroy() {
2601
2561
  this.carousel = undefined;
2562
+ this.listOfRenders = [];
2602
2563
  this._subs.forEach(s => s.unsubscribe());
2603
2564
  }
2604
2565
  ngOnChanges() {
@@ -2624,7 +2585,7 @@ class RenderCarouselComponent {
2624
2585
  this._appEventService.onGetRenderForRenderCarousel.next(renderParams);
2625
2586
  }
2626
2587
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: RenderCarouselComponent, deps: [{ token: IconCacheService }, { token: ProductEventService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
2627
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: RenderCarouselComponent, isStandalone: false, selector: "app-render-carousel", inputs: { showRefresh: "showRefresh", article: "article" }, host: { listeners: { "window:resize": "handleWindowResize()", "swipeleft": "gotoNextSlide()", "swiperight": "gotoPrevSlide()" }, properties: { "class.resizing": "this.resizing" } }, viewQueries: [{ propertyName: "carousel", first: true, predicate: ["carousel"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: `
2588
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: RenderCarouselComponent, isStandalone: false, selector: "app-render-carousel", inputs: { showRefresh: "showRefresh", article: "article" }, host: { listeners: { "window:resize": "handleWindowResize()", "swipeleft": "gotoNextSlide()", "swiperight": "gotoPrevSlide()" }, properties: { "class.resizing": "this.resizing" } }, viewQueries: [{ propertyName: "carousel", first: true, predicate: ["carousel"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: `
2628
2589
  <div id="product_page_carousel">
2629
2590
  <div id="product_page_carousel_render_items">
2630
2591
  <co-loader></co-loader>
@@ -2647,8 +2608,19 @@ class RenderCarouselComponent {
2647
2608
  </div>
2648
2609
  </div>
2649
2610
  </div>
2611
+
2612
+ @if (listOfRenders && listOfRenders.length > 0) {
2613
+ <!-- <div class="renderThumbs">-->
2614
+ <!-- @for (render of listOfRenders; track render) {-->
2615
+ <!-- <div class="renderThumbnail">-->
2616
+ <!-- <img [src]="render" alt="">-->
2617
+ <!-- </div>-->
2618
+ <!-- }-->
2619
+ <!-- </div>-->
2620
+ }
2621
+
2650
2622
  </div>
2651
- `, isInline: true, styles: [":host{max-height:540px;height:100%;position:relative}:host:not(.resizing) .inner-carousel{scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory}#product_page_carousel{position:relative}#product_page_carousel .refresh-button{position:absolute;bottom:10px;right:10px;background:#fff}#product_page_carousel .refresh-button.loading{animation:spin 1s linear infinite}#product_page_carousel .refresh-button:hover{box-shadow:none;background:#74b77f;transition:all .2s ease-in-out}#product_page_carousel .refresh-button:hover ::ng-deep svg path{fill:#fff!important}#product_page_carousel #product_page_carousel_render_items{position:relative;margin-bottom:10px;min-height:400px}#product_page_carousel #product_page_carousel_render_items ::ng-deep co-loader{position:absolute}#product_page_carousel .inner-carousel{display:flex;flex-direction:row;align-items:center;overflow:hidden;max-height:700px}#product_page_carousel .inner-carousel .inner-carousel-render img{width:100%;height:auto;object-fit:contain}#product_page_carousel .carousel-scroller-layer{height:100%;width:100%;position:absolute;top:0;left:0;z-index:100}#product_page_carousel .carousel-scroller-layer .carousel-item-scroller{opacity:0;position:absolute;border-radius:50%;z-index:100;background:#fff6;color:#fff;width:30px;height:30px;top:calc(50% - 15px);cursor:pointer;transition:opacity .3s}#product_page_carousel .carousel-scroller-layer .carousel-item-scroller co-icon{color:#fff}#product_page_carousel .carousel-scroller-layer .prev{left:15px}#product_page_carousel .carousel-scroller-layer .next{right:15px}#product_page_carousel .carousel-scroller-layer:hover .carousel-item-scroller{opacity:1}#product_page_carousel #product_page_carousel_thumbs{display:flex;justify-content:flex-start;height:80px;margin-left:auto;margin-right:auto}#product_page_carousel #product_page_carousel_thumbs ::ng-deep co-scroll-container{padding:0 22px}#product_page_carousel #product_page_carousel_thumbs ::ng-deep co-scroll-container .content-wrapper{padding:0}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.fade-image{opacity:0;transition:opacity 1.5s ease-in-out}.fade-image.loaded{opacity:1}\n"], dependencies: [{ kind: "component", type: i6.LoaderComponent, selector: "co-loader" }, { kind: "component", type: i6.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2623
+ `, isInline: true, styles: [":host{height:100%;position:relative}:host:not(.resizing) .inner-carousel{scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory}#product_page_carousel{position:relative}#product_page_carousel .refresh-button{position:absolute;bottom:10px;right:10px;background:#fff}#product_page_carousel .refresh-button.loading{animation:spin 1s linear infinite}#product_page_carousel .refresh-button:hover{box-shadow:none;background:#74b77f;transition:all .2s ease-in-out}#product_page_carousel .refresh-button:hover ::ng-deep svg path{fill:#fff!important}#product_page_carousel #product_page_carousel_render_items{position:relative;margin-bottom:10px;min-height:400px}#product_page_carousel #product_page_carousel_render_items ::ng-deep co-loader{position:absolute}#product_page_carousel .inner-carousel{display:flex;flex-direction:row;align-items:center;overflow:hidden;max-height:700px}#product_page_carousel .inner-carousel .inner-carousel-render img{width:100%;height:auto;object-fit:contain}#product_page_carousel .carousel-scroller-layer{height:100%;width:100%;position:absolute;top:0;left:0;z-index:100}#product_page_carousel .carousel-scroller-layer .carousel-item-scroller{opacity:0;position:absolute;border-radius:50%;z-index:100;background:#fff6;color:#fff;width:30px;height:30px;top:calc(50% - 15px);cursor:pointer;transition:opacity .3s}#product_page_carousel .carousel-scroller-layer .carousel-item-scroller co-icon{color:#fff}#product_page_carousel .carousel-scroller-layer .prev{left:15px}#product_page_carousel .carousel-scroller-layer .next{right:15px}#product_page_carousel .carousel-scroller-layer:hover .carousel-item-scroller{opacity:1}#product_page_carousel .renderThumbs{display:flex;justify-content:start;gap:10px;margin-top:10px}#product_page_carousel .renderThumbs img{width:100px;height:100px;object-fit:contain}#product_page_carousel #product_page_carousel_thumbs{display:flex;justify-content:flex-start;height:80px;margin-left:auto;margin-right:auto}#product_page_carousel #product_page_carousel_thumbs ::ng-deep co-scroll-container{padding:0 22px}#product_page_carousel #product_page_carousel_thumbs ::ng-deep co-scroll-container .content-wrapper{padding:0}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.fade-image{opacity:0;transition:opacity 1.5s ease-in-out}.fade-image.loaded{opacity:1}\n"], dependencies: [{ kind: "component", type: i6.LoaderComponent, selector: "co-loader" }, { kind: "component", type: i6.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2652
2624
  }
2653
2625
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: RenderCarouselComponent, decorators: [{
2654
2626
  type: Component,
@@ -2675,8 +2647,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
2675
2647
  </div>
2676
2648
  </div>
2677
2649
  </div>
2650
+
2651
+ @if (listOfRenders && listOfRenders.length > 0) {
2652
+ <!-- <div class="renderThumbs">-->
2653
+ <!-- @for (render of listOfRenders; track render) {-->
2654
+ <!-- <div class="renderThumbnail">-->
2655
+ <!-- <img [src]="render" alt="">-->
2656
+ <!-- </div>-->
2657
+ <!-- }-->
2658
+ <!-- </div>-->
2659
+ }
2660
+
2678
2661
  </div>
2679
- `, changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, styles: [":host{max-height:540px;height:100%;position:relative}:host:not(.resizing) .inner-carousel{scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory}#product_page_carousel{position:relative}#product_page_carousel .refresh-button{position:absolute;bottom:10px;right:10px;background:#fff}#product_page_carousel .refresh-button.loading{animation:spin 1s linear infinite}#product_page_carousel .refresh-button:hover{box-shadow:none;background:#74b77f;transition:all .2s ease-in-out}#product_page_carousel .refresh-button:hover ::ng-deep svg path{fill:#fff!important}#product_page_carousel #product_page_carousel_render_items{position:relative;margin-bottom:10px;min-height:400px}#product_page_carousel #product_page_carousel_render_items ::ng-deep co-loader{position:absolute}#product_page_carousel .inner-carousel{display:flex;flex-direction:row;align-items:center;overflow:hidden;max-height:700px}#product_page_carousel .inner-carousel .inner-carousel-render img{width:100%;height:auto;object-fit:contain}#product_page_carousel .carousel-scroller-layer{height:100%;width:100%;position:absolute;top:0;left:0;z-index:100}#product_page_carousel .carousel-scroller-layer .carousel-item-scroller{opacity:0;position:absolute;border-radius:50%;z-index:100;background:#fff6;color:#fff;width:30px;height:30px;top:calc(50% - 15px);cursor:pointer;transition:opacity .3s}#product_page_carousel .carousel-scroller-layer .carousel-item-scroller co-icon{color:#fff}#product_page_carousel .carousel-scroller-layer .prev{left:15px}#product_page_carousel .carousel-scroller-layer .next{right:15px}#product_page_carousel .carousel-scroller-layer:hover .carousel-item-scroller{opacity:1}#product_page_carousel #product_page_carousel_thumbs{display:flex;justify-content:flex-start;height:80px;margin-left:auto;margin-right:auto}#product_page_carousel #product_page_carousel_thumbs ::ng-deep co-scroll-container{padding:0 22px}#product_page_carousel #product_page_carousel_thumbs ::ng-deep co-scroll-container .content-wrapper{padding:0}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.fade-image{opacity:0;transition:opacity 1.5s ease-in-out}.fade-image.loaded{opacity:1}\n"] }]
2662
+ `, changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, styles: [":host{height:100%;position:relative}:host:not(.resizing) .inner-carousel{scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory}#product_page_carousel{position:relative}#product_page_carousel .refresh-button{position:absolute;bottom:10px;right:10px;background:#fff}#product_page_carousel .refresh-button.loading{animation:spin 1s linear infinite}#product_page_carousel .refresh-button:hover{box-shadow:none;background:#74b77f;transition:all .2s ease-in-out}#product_page_carousel .refresh-button:hover ::ng-deep svg path{fill:#fff!important}#product_page_carousel #product_page_carousel_render_items{position:relative;margin-bottom:10px;min-height:400px}#product_page_carousel #product_page_carousel_render_items ::ng-deep co-loader{position:absolute}#product_page_carousel .inner-carousel{display:flex;flex-direction:row;align-items:center;overflow:hidden;max-height:700px}#product_page_carousel .inner-carousel .inner-carousel-render img{width:100%;height:auto;object-fit:contain}#product_page_carousel .carousel-scroller-layer{height:100%;width:100%;position:absolute;top:0;left:0;z-index:100}#product_page_carousel .carousel-scroller-layer .carousel-item-scroller{opacity:0;position:absolute;border-radius:50%;z-index:100;background:#fff6;color:#fff;width:30px;height:30px;top:calc(50% - 15px);cursor:pointer;transition:opacity .3s}#product_page_carousel .carousel-scroller-layer .carousel-item-scroller co-icon{color:#fff}#product_page_carousel .carousel-scroller-layer .prev{left:15px}#product_page_carousel .carousel-scroller-layer .next{right:15px}#product_page_carousel .carousel-scroller-layer:hover .carousel-item-scroller{opacity:1}#product_page_carousel .renderThumbs{display:flex;justify-content:start;gap:10px;margin-top:10px}#product_page_carousel .renderThumbs img{width:100px;height:100px;object-fit:contain}#product_page_carousel #product_page_carousel_thumbs{display:flex;justify-content:flex-start;height:80px;margin-left:auto;margin-right:auto}#product_page_carousel #product_page_carousel_thumbs ::ng-deep co-scroll-container{padding:0 22px}#product_page_carousel #product_page_carousel_thumbs ::ng-deep co-scroll-container .content-wrapper{padding:0}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.fade-image{opacity:0;transition:opacity 1.5s ease-in-out}.fade-image.loaded{opacity:1}\n"] }]
2680
2663
  }], ctorParameters: () => [{ type: IconCacheService }, { type: ProductEventService }, { type: i0.ChangeDetectorRef }], propDecorators: { carousel: [{
2681
2664
  type: ViewChild,
2682
2665
  args: ['carousel', { read: ElementRef }]
@@ -2806,6 +2789,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
2806
2789
  }] } });
2807
2790
 
2808
2791
  class ProductPageComponent {
2792
+ showClass() {
2793
+ return true;
2794
+ }
2809
2795
  set sku(value) {
2810
2796
  if (value) {
2811
2797
  if (this.configuring) {
@@ -2857,12 +2843,14 @@ class ProductPageComponent {
2857
2843
  get currentView() {
2858
2844
  return this._currentView;
2859
2845
  }
2860
- constructor(_ione, iconCache, settingsService, appEventService, _changeDetector) {
2861
- this._ione = _ione;
2846
+ constructor(iconCache, settingsService, appEventService, _changeDetector, _ione, _configuringService, _configuratorSceneService) {
2862
2847
  this.iconCache = iconCache;
2863
2848
  this.settingsService = settingsService;
2864
2849
  this.appEventService = appEventService;
2865
2850
  this._changeDetector = _changeDetector;
2851
+ this._ione = _ione;
2852
+ this._configuringService = _configuringService;
2853
+ this._configuratorSceneService = _configuratorSceneService;
2866
2854
  this.icon = IconEnum;
2867
2855
  this.createFrozenArticle = true;
2868
2856
  this.isReturn = false;
@@ -2882,21 +2870,16 @@ class ProductPageComponent {
2882
2870
  this._fullScreen = false;
2883
2871
  this._subs = [];
2884
2872
  this._subs.push(this.appEventService.onForceRenderImage.subscribe((x) => {
2885
- if (this.selections.nativeElement) {
2886
- this.selections.nativeElement.forceRenderImage();
2887
- }
2873
+ // TODO
2888
2874
  }), this.settingsService.settingsLoaded.subscribe(loaded => this._handleSettingsLoaded(loaded)), this._pageLoadedSubscription = combineLatest([
2889
2875
  this._ione.controllerInitialized,
2890
2876
  this._ione.articleLoaded
2891
2877
  ]).subscribe(([initialized, articleLoaded]) => {
2892
2878
  if (initialized && articleLoaded) {
2893
2879
  this.settingsLoaded = initialized;
2880
+ this._initConfigurator();
2894
2881
  }
2895
- }),
2896
- // this._ione.controllerInitialized.subscribe((initialized: boolean) => {
2897
- // this.settingsLoaded = initialized;
2898
- // }),
2899
- this.appEventService.onAnswersAvailable.subscribe((answers) => {
2882
+ }), this.appEventService.onAnswersAvailable.subscribe((answers) => {
2900
2883
  if (answers && this.configurable) {
2901
2884
  this.showAddToCart = false;
2902
2885
  }
@@ -2904,10 +2887,17 @@ class ProductPageComponent {
2904
2887
  this.showAddToCart = true;
2905
2888
  }
2906
2889
  }), this.appEventService.onGetRenderForRenderCarousel.subscribe((renderParameters) => {
2907
- if (this.selections.nativeElement) {
2908
- this.selections.nativeElement.getRenderForRenderCarousel(renderParameters);
2890
+ this._createRenderForCarousel(renderParameters);
2891
+ }), this.appEventService.onArticleReceived.subscribe(article => this.setConfigPresetId(article.configPresetId)), this._configuringService.floorReady.subscribe((ready) => {
2892
+ if (ready) {
2893
+ this._startSceneInit();
2894
+ this._startConfigurator();
2909
2895
  }
2910
- }), this.appEventService.onArticleReceived.subscribe(article => this.setConfigPresetId(article.configPresetId)));
2896
+ }), this._configuringService.onRenderImageReceived.subscribe((image) => {
2897
+ appEventService.onRenderImageReceived.next(image);
2898
+ }), this._configuringService.onAnswersAvailable.subscribe((hasAnswers) => {
2899
+ appEventService.onAnswersAvailable.next(hasAnswers);
2900
+ }));
2911
2901
  }
2912
2902
  ngOnInit() {
2913
2903
  if (this._settings) {
@@ -2919,14 +2909,15 @@ class ProductPageComponent {
2919
2909
  }
2920
2910
  }
2921
2911
  ngOnDestroy() {
2912
+ this.settingsService.settings = undefined;
2913
+ this.settingsLoaded = false;
2922
2914
  this._subs.forEach(s => s.unsubscribe());
2923
2915
  if (this._initializedSub) {
2924
2916
  this._initializedSub.unsubscribe();
2925
2917
  }
2926
2918
  this._pageLoadedSubscription.unsubscribe();
2927
- this.configurator = undefined;
2928
- this.selections = undefined;
2929
2919
  this.fullscreenbutton = undefined;
2920
+ this._configuringService.isConfiguring = false;
2930
2921
  }
2931
2922
  setInstance(event) {
2932
2923
  if (event.detail) {
@@ -2955,7 +2946,6 @@ class ProductPageComponent {
2955
2946
  this.article = article;
2956
2947
  if (this.article) {
2957
2948
  this.configurable = this.article.goodType === 'B' && (this.article.isConfigurable || this.article.isConfigurable === undefined);
2958
- // this.configurable = this.article.goodType === 'B';
2959
2949
  if (this.configurable) {
2960
2950
  this.showAddToCart = false;
2961
2951
  this.currentView = SelectorType.TwoD;
@@ -3008,6 +2998,24 @@ class ProductPageComponent {
3008
2998
  this.showPresetDialog = false;
3009
2999
  this._savePreset();
3010
3000
  }
3001
+ handleBuildFinished(build) {
3002
+ if (this.threeD) {
3003
+ this._buildResult = build;
3004
+ this._configuringService.addBuildToScene(build);
3005
+ if (this.settingsService.settings && this.settingsService.settings.renderParameters) {
3006
+ // Start a render
3007
+ const options = {
3008
+ objectRotation: { x: 0, y: 43, z: 0 },
3009
+ margin: 5,
3010
+ cameraRotationX: 75,
3011
+ objectHeight: 500,
3012
+ objectWidth: 500,
3013
+ renderType: 0
3014
+ };
3015
+ this._configuringService.renderImage(build, options, true);
3016
+ }
3017
+ }
3018
+ }
3011
3019
  _savePreset() {
3012
3020
  this._ione.savePreset().then((success) => {
3013
3021
  if (success) {
@@ -3016,20 +3024,47 @@ class ProductPageComponent {
3016
3024
  }
3017
3025
  });
3018
3026
  }
3019
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductPageComponent, deps: [{ token: ProductConnectorService }, { token: IconCacheService }, { token: ProductSettingsService }, { token: ProductEventService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
3020
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: ProductPageComponent, isStandalone: false, selector: "app-product-page", inputs: { sku: "sku", settings: "settings", externalSource: "externalSource", createFrozenArticle: "createFrozenArticle", isReturn: "isReturn", showRelatedProductsPopup: "showRelatedProductsPopup", enableRenderCarousel: "enableRenderCarousel" }, outputs: { openStockEvent: "openStockEvent" }, viewQueries: [{ propertyName: "configurator", first: true, predicate: ["configurator"], descendants: true, read: ElementRef }, { propertyName: "selections", first: true, predicate: ["selections"], descendants: true, read: ElementRef }, { propertyName: "fullscreenbutton", first: true, predicate: ["fullscreenbutton"], descendants: true, read: ElementRef }], ngImport: i0, template: `
3027
+ _initConfigurator() {
3028
+ // this should be async
3029
+ if (this.settingsLoaded) {
3030
+ this._configuringService.init(this.settings).then(done => {
3031
+ this._configuringService.isConfiguring = true;
3032
+ });
3033
+ }
3034
+ }
3035
+ _startConfigurator() {
3036
+ if (this.settingsLoaded) {
3037
+ const furnitureData = new ConfigurationResultObject();
3038
+ furnitureData.sku = this.sku;
3039
+ this._configuringService.configure(furnitureData).then(loaded => {
3040
+ });
3041
+ }
3042
+ }
3043
+ _startSceneInit() {
3044
+ if (this.settingsLoaded) {
3045
+ this._configuringService.handleLoadSceneContent();
3046
+ this._configuringService.scene = this._configuratorSceneService.scene;
3047
+ }
3048
+ }
3049
+ _createRenderForCarousel(renderOptions) {
3050
+ this._configuringService.renderImage(this._buildResult, renderOptions, false);
3051
+ }
3052
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductPageComponent, deps: [{ token: IconCacheService }, { token: ProductSettingsService }, { token: ProductEventService }, { token: i0.ChangeDetectorRef }, { token: ProductConnectorService }, { token: i5.ConfiguringService }, { token: i5.SceneService }], target: i0.ɵɵFactoryTarget.Component }); }
3053
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: ProductPageComponent, isStandalone: false, selector: "app-product-page", inputs: { sku: "sku", settings: "settings", externalSource: "externalSource", createFrozenArticle: "createFrozenArticle", isReturn: "isReturn", showRelatedProductsPopup: "showRelatedProductsPopup", enableRenderCarousel: "enableRenderCarousel" }, outputs: { openStockEvent: "openStockEvent" }, host: { properties: { "class.co-product-page": "this.showClass" } }, viewQueries: [{ propertyName: "fullscreenbutton", first: true, predicate: ["fullscreenbutton"], descendants: true, read: ElementRef }], ngImport: i0, template: `
3021
3054
  @if (settingsLoaded) {
3022
3055
  <div class="page-wrapper">
3023
3056
  <div class="page-wrapper-content">
3024
3057
  <div class="page-wrapper-left">
3025
3058
  <div class="product-image-container">
3026
3059
  <div class="product-page-block-selector-type">
3027
- <app-product-selector-type class="default-padding"
3028
- [(currentType)]="currentView"
3029
- [show2D]="configurable"
3030
- [show3D]="threeD"
3031
- ></app-product-selector-type>
3060
+ <app-product-selector-type
3061
+ class="default-padding"
3062
+ [(currentType)]="currentView"
3063
+ [show2D]="configurable"
3064
+ [show3D]="threeD">
3065
+ </app-product-selector-type>
3032
3066
  </div>
3067
+
3033
3068
  <div class="product-page-block-image default-padding" [class.full]="fullScreen">
3034
3069
  @if (!enableRenderCarousel) {
3035
3070
  <app-image-carousel
@@ -3044,120 +3079,125 @@ class ProductPageComponent {
3044
3079
  [article]="article">
3045
3080
  </app-render-carousel>
3046
3081
  }
3047
- @if (settingsLoaded && this.configurable) {
3048
- <threed-configurator
3049
- #configurator
3050
- class="threed-configurator"
3051
- [class.configurator-full-screen]="fullScreen"
3052
- [@toggleVisibilityByState]="show3D ? 'show' : 'hide'"
3053
- [@toggleFullScreen]="fullScreen ? 'fullscreen' : 'halfscreen'">
3054
- </threed-configurator>
3082
+ @if (settingsLoaded) {
3083
+ <co-configurator-scene
3084
+ [class.show-full-screen]="fullScreen"
3085
+ [class.hide-3d-scene]="!show3D"
3086
+ [class.show-3d-scene]="show3D">
3087
+ </co-configurator-scene>
3055
3088
  }
3056
3089
  @if (show3D) {
3057
- <co-icon #fullscreenbutton class="fullscreen-button"
3058
- [@toggleTopLeft]="fullScreen ? 'fullscreen' : 'halfscreen'"
3059
- [iconData]="iconCache.getIcon(fullScreenIcon)"
3060
- (click)="showFullScreen()"></co-icon>
3090
+ <co-icon
3091
+ #fullscreenbutton
3092
+ class="fullscreen-button"
3093
+ [@toggleTopLeft]="fullScreen ? 'fullscreen' : 'halfscreen'"
3094
+ [iconData]="iconCache.getIcon(fullScreenIcon)"
3095
+ (click)="showFullScreen()">
3096
+ </co-icon>
3061
3097
  }
3062
3098
  @if (show3D && fullScreen) {
3063
- <co-icon class="threed-watermark"
3064
- [iconData]="iconCache.getIcon(icon.Logo)"></co-icon>
3099
+ <co-icon
3100
+ class="threed-watermark"
3101
+ [iconData]="iconCache.getIcon(icon.Logo)">
3102
+ </co-icon>
3065
3103
  }
3066
3104
  </div>
3067
3105
  </div>
3068
3106
  </div>
3069
3107
  <div class="page-wrapper-right">
3070
- <div class="product-page-block-description">
3071
- <app-product-description class="default-padding" [article]="article"></app-product-description>
3072
- </div>
3073
- <div class="product-page-block-additional">
3074
- <div class="product-page-block-additional-description">
3075
- <app-product-additional-description class="default-padding" [article]="article"></app-product-additional-description>
3108
+ <div class="product-page-scroll-container">
3109
+ <div class="product-page-block-description">
3110
+ <app-product-description
3111
+ class="default-padding"
3112
+ [article]="article">
3113
+ </app-product-description>
3076
3114
  </div>
3077
- <div class="product-page-block-price" [class.full]="configuring">
3078
- @if (configuring && this.settingsService.settings.options.showSaveAsPresetButton) {
3079
- <div class="preset-container">
3080
- <co-button
3081
- class="save-preset-button"
3082
- [iconData]="iconCache.getIcon(icon.SaveDisk)"
3083
- [label]="'PRESET_SAVE_AS' | localize"
3084
- (onClick)="handleSavePreset()"
3085
- ></co-button>
3086
- </div>
3087
- }
3115
+ <div class="product-page-block-additional">
3116
+ <div class="product-page-block-additional-description">
3117
+ <app-product-additional-description
3118
+ class="default-padding"
3119
+ [article]="article">
3120
+ </app-product-additional-description>
3121
+ </div>
3122
+ <div class="product-page-block-price" [class.full]="configuring">
3123
+ @if (configuring && this.settingsService.settings.options.showSaveAsPresetButton) {
3124
+ <div class="preset-container">
3125
+ <co-button
3126
+ class="save-preset-button"
3127
+ [iconData]="iconCache.getIcon(icon.SaveDisk)"
3128
+ [label]="'PRESET_SAVE_AS' | localize"
3129
+ (onClick)="handleSavePreset()">
3130
+ </co-button>
3131
+ </div>
3132
+ }
3133
+ @if (!configuring) {
3134
+ <app-product-price
3135
+ class="s-padding"
3136
+ [pricing]="article?.pricing"
3137
+ [configurable]="configurable">
3138
+ </app-product-price>
3139
+ }
3140
+
3141
+ @if (settingsLoaded) {
3142
+ <co-configurator
3143
+ [class.hide-configurator]="!configuring"
3144
+ [class.show-configurator]="configuring"
3145
+ [showLoader]="true"
3146
+ [animateSlideout]="false"
3147
+ [showHeaderInformation]="false"
3148
+ [canCloseConfigurator]="false"
3149
+ (buildResult)="handleBuildFinished($event)">
3150
+ </co-configurator>
3151
+ }
3152
+ </div>
3088
3153
  @if (!configuring) {
3089
- <app-product-price class="s-padding"
3090
- [pricing]="article?.pricing"
3091
- [configurable]="configurable"
3092
- ></app-product-price>
3154
+ <div class="product-page-block-addtocart no-padding product-action-buttons"
3155
+ [@toggleTopRight]="fullScreen ? 'fullscreen' : 'halfscreen'">
3156
+ <app-product-addtocart
3157
+ [configurable]="configurable"
3158
+ [createFrozenArticle]="createFrozenArticle"
3159
+ [configuring]="configuring"
3160
+ [showAddToCart]="showAddToCart"
3161
+ [article]="article"
3162
+ [externalSource]="externalSource"
3163
+ [isReturn]="isReturn"
3164
+ (startConfiguration)="handleStartConfiguration()"
3165
+ (showRelatedPopup)="handlePopUpChange($event)">
3166
+ </app-product-addtocart>
3167
+ </div>
3093
3168
  }
3094
-
3095
- @if (settingsLoaded) {
3096
- <threed-selections #selections class="threed-selections"
3097
- [class.show-selections]="configuring"
3098
- [@toggleFullScreenRight]="fullScreen ? 'fullscreen' : 'halfscreen'"
3099
- [class.default-padding]="!fullScreen"
3100
- [class.show-full-screen]="fullScreen"
3101
- [class.mini-scrollbar]="fullScreen"
3102
- [sku]="sku"
3103
- [settings]="settings"
3104
- (onUserActionFromThreeD)="configuring = true"
3105
- (instanceSet)="setInstance($event)"
3106
- (onImageReceived)="appEventService.onImageReceived.next($event)"
3107
- (onRenderStarted)="appEventService.onRenderStarted.next()"
3108
- (onDraftRenderImageReceived)="appEventService.onDraftRenderImageReceived.next($event)"
3109
- (onArticleReceived)="appEventService.onArticleReceived.next($event.detail)"
3110
- (onSelectionsReceived)="appEventService.onSelectionsReceived.next($event.detail)"
3111
- (onArticleInfoReceived)="appEventService.onArticleInfoReceived.next($event.detail)"
3112
- (onAnswersAvailable)="appEventService.onAnswersAvailable.next($event.detail)"
3113
- (onReadyToRender)="appEventService.onReadyToRender.next($event.detail)"
3114
- (onRenderImageReceived)="appEventService.onRenderImageReceived.next($event.detail)"
3115
- ></threed-selections>
3169
+ @if (configuring) {
3170
+ <div class="addtocart-reserved product-action-buttons" [class.full-screen]="fullScreen">
3171
+ <app-product-addtocart
3172
+ class="default-padding"
3173
+ [configurable]="false"
3174
+ [fullscreen]="fullScreen"
3175
+ [showAddToCart]="showAddToCart"
3176
+ [configuring]="configuring"
3177
+ [article]="article"
3178
+ [externalSource]="externalSource"
3179
+ [isReturn]="isReturn"
3180
+ (startConfiguration)="handleStartConfiguration()">
3181
+ </app-product-addtocart>
3182
+ </div>
3116
3183
  }
3117
- </div>
3118
- @if (!configuring) {
3119
- <div class="product-page-block-addtocart no-padding product-action-buttons"
3120
- [@toggleTopRight]="fullScreen ? 'fullscreen' : 'halfscreen'">
3121
- <app-product-addtocart
3122
- [configurable]="configurable"
3123
- [createFrozenArticle]="createFrozenArticle"
3124
- [configuring]="configuring"
3125
- [showAddToCart]="showAddToCart"
3126
- [article]="article"
3127
- [externalSource]="externalSource"
3128
- [isReturn]="isReturn"
3129
- (startConfiguration)="handleStartConfiguration()"
3130
- (showRelatedPopup)="handlePopUpChange($event)"
3131
- ></app-product-addtocart>
3184
+ <div class="product-page-block-variants">
3185
+ @if (article?.relatedArticles && article?.relatedArticles.length > 0) {
3186
+ <app-product-related
3187
+ class="no-padding"
3188
+ [externalSource]="externalSource"
3189
+ [articles]="article?.relatedArticles" [refType]="64"
3190
+ [label]="'VARIANTS' | localize">
3191
+ </app-product-related>
3192
+ }
3132
3193
  </div>
3133
- }
3134
- @if (configuring) {
3135
- <div class="addtocart-reserved product-action-buttons" [class.full-screen]="fullScreen">
3136
- <app-product-addtocart class="default-padding"
3137
- [configurable]="false"
3138
- [fullscreen]="fullScreen"
3139
- [showAddToCart]="showAddToCart"
3140
- [configuring]="configuring"
3141
- [article]="article"
3142
- [externalSource]="externalSource"
3143
- [isReturn]="isReturn"
3144
- (startConfiguration)="handleStartConfiguration()"
3145
- ></app-product-addtocart>
3194
+ <div class="product-page-block-stock">
3195
+ <app-product-stock
3196
+ class="no-padding"
3197
+ [goodId]="article?.goodId"
3198
+ (openStockEvent)="openStock()">
3199
+ </app-product-stock>
3146
3200
  </div>
3147
- }
3148
- <div class="product-page-block-variants">
3149
- @if (article?.relatedArticles && article?.relatedArticles.length > 0) {
3150
- <app-product-related class="no-padding"
3151
- [externalSource]="externalSource"
3152
- [articles]="article?.relatedArticles" [refType]="64"
3153
- [label]="'VARIANTS' | localize"></app-product-related>
3154
- }
3155
- </div>
3156
- <div class="product-page-block-stock">
3157
- <app-product-stock class="no-padding" [goodId]="article?.goodId" (openStockEvent)="openStock()"></app-product-stock>
3158
- </div>
3159
- <div class="product-page-block-delivery">
3160
- <app-product-delivery class="no-padding" [stockAndDelivery]="stockAndDelivery"></app-product-delivery>
3161
3201
  </div>
3162
3202
  </div>
3163
3203
  </div>
@@ -3165,7 +3205,10 @@ class ProductPageComponent {
3165
3205
  <div class="page-wrapper-content">
3166
3206
  @if (article) {
3167
3207
  <div class="page-wrapper-left">
3168
- <app-product-info-tabs class="no-padding" [article]="article"></app-product-info-tabs>
3208
+ <app-product-info-tabs
3209
+ class="no-padding"
3210
+ [article]="article">
3211
+ </app-product-info-tabs>
3169
3212
  </div>
3170
3213
  }
3171
3214
  <div class="page-wrapper-right">
@@ -3202,23 +3245,22 @@ class ProductPageComponent {
3202
3245
  [mainArticle]="article"
3203
3246
  [articles]="article?.relatedArticles"
3204
3247
  [refType]="1"
3205
- (closeRelatedPopup)="handlePopUpChange($event)"
3206
- >
3248
+ (closeRelatedPopup)="handlePopUpChange($event)">
3207
3249
  </co-product-dialog>
3208
3250
  </div>
3209
3251
  }
3210
3252
  </div>
3211
3253
 
3212
- <co-preset-dialog
3213
- *ngIf="showPresetDialog"
3214
- [type]="presetDialogType"
3215
- [presetId]="configPresetId"
3216
- (cancelSavePreset)="handleCancelSavePreset($event)"
3217
- (overwritePreset)="handleOverwritePreset($event)"
3218
- >
3219
- </co-preset-dialog>
3254
+ @if (presetDialogType) {
3255
+ <co-preset-dialog
3256
+ [type]="presetDialogType"
3257
+ [presetId]="configPresetId"
3258
+ (cancelSavePreset)="handleCancelSavePreset($event)"
3259
+ (overwritePreset)="handleOverwritePreset($event)">
3260
+ </co-preset-dialog>
3261
+ }
3220
3262
  }
3221
- `, isInline: true, 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,.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,.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}.preset-container{display:flex;justify-content:right}.preset-container .save-preset-button{cursor:pointer;width:100%;max-width:205px;box-sizing:border-box}.preset-container .save-preset-button:hover{background:#74b77f}.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;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:700;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:700;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,.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"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ProductSelectorTypeComponent, selector: "app-product-selector-type", inputs: ["show2D", "show3D", "showRenderCarousel", "currentType"], outputs: ["onIconClick", "currentTypeChange"] }, { kind: "component", type: ImageCarouselComponent, selector: "app-image-carousel", inputs: ["showRefresh", "images"] }, { kind: "component", type: i6.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "component", type: ProductDescriptionComponent, selector: "app-product-description", inputs: ["article"] }, { kind: "component", type: ProductAdditionalDescriptionComponent, selector: "app-product-additional-description", inputs: ["article"] }, { kind: "component", type: ProductPriceComponent, selector: "app-product-price", inputs: ["pricing", "configurable"] }, { kind: "component", type: ProductAddtocartComponent, selector: "app-product-addtocart", inputs: ["article", "externalSource", "createFrozenArticle", "configurable", "configuring", "showAddToCart", "isReturn", "fullscreen", "quantity"], outputs: ["startConfiguration", "addToCartClick", "addToQuoteClick", "showRelatedPopup"] }, { kind: "component", type: ProductRelatedComponent, selector: "app-product-related", inputs: ["refType", "label", "externalSource", "isSmallModus", "createFrozenArticle", "articles"] }, { kind: "component", type: ProductStockComponent, selector: "app-product-stock", inputs: ["goodId"], outputs: ["openStockEvent"] }, { kind: "component", type: ProductDeliveryComponent, selector: "app-product-delivery", inputs: ["stockAndDelivery"] }, { kind: "component", type: ProductInfoTabsComponent, selector: "app-product-info-tabs", inputs: ["article"] }, { kind: "component", type: ProductDialogComponent, selector: "co-product-dialog", inputs: ["refType", "mainArticle", "articles"], outputs: ["closeRelatedPopup"] }, { kind: "component", type: RenderCarouselComponent, selector: "app-render-carousel", inputs: ["showRefresh", "article"] }, { kind: "component", type: i6.ButtonComponent, selector: "co-button", inputs: ["label", "iconData", "iconDataRight", "isToggleButton", "isToggled", "hidden", "disabled"], outputs: ["onClick", "clickedWhileDisabled", "isToggledChange"] }, { kind: "component", type: PresetDialogComponent, selector: "co-preset-dialog", inputs: ["type", "presetId"], outputs: ["cancelSavePreset", "overwritePreset"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }], animations: [
3263
+ `, isInline: true, styles: [".co-product-page .page-wrapper{font-family:iOneMontserrat;font-size:12px;display:flex;flex-direction:column;max-width:100%;padding:0 15px;margin:0 auto}.co-product-page .page-wrapper-content{display:flex;flex-direction:row;margin:40px 0}.co-product-page .page-wrapper-content:first-child,.co-product-page .page-wrapper-content.no-top-margin{margin-top:0}.co-product-page .page-wrapper-left{display:flex;width:65%;flex-direction:column}.co-product-page .page-wrapper-right{display:flex;width:35%;flex-direction:column}.co-product-page .page-wrapper-right .product-page-scroll-container{max-height:100vh;overflow-y:scroll}.co-product-page .page-wrapper-full{display:flex;width:100%;flex-direction:column}.co-product-page .page-wrapper-66{display:flex;width:60%;flex-direction:column}.co-product-page .page-wrapper-33{display:flex;width:40%;flex-direction:column}.co-product-page .product-action-buttons{position:relative}.co-product-page .product-action-buttons.full-screen{z-index:10}.co-product-page .product-image-container{grid-column:1/7;grid-row:1/6;position:relative}.co-product-page .product-page-block-selector-type{width:auto;position:absolute;top:10px;right:10px;z-index:2}.co-product-page .product-page-block-image{box-sizing:border-box;width:100%;z-index:1;position:relative}.co-product-page .product-page-block-image .co-configurator-scene{width:100%;height:300px;display:block;position:relative}.co-product-page .product-page-block-image .co-configurator-scene .configurator-bundle-container{position:relative;height:650px;width:100%}.co-product-page .product-page-block-image .co-configurator-scene .configurator-bundle-container .threedviewer{min-height:0;min-width:0;width:auto;height:auto}.co-product-page .product-page-block-image .co-configurator-scene .configurator-bundle-container .threedviewer canvas{width:100%;height:100%}.co-product-page .product-page-block-image .co-configurator-scene.hide-3d-scene{visibility:hidden;overflow:hidden;height:0}.co-product-page .product-page-block-image .co-configurator-scene.show-3d-scene{min-height:650px;position:relative}.co-product-page .product-page-block-image .co-configurator-scene.show-full-screen{position:fixed;inset:0;width:100%;height:100%}.co-product-page .product-page-block-image .co-configurator-scene.show-full-screen .configurator-bundle-container{height:100%}.co-product-page .product-page-block-image .co-configurator-scene canvas{height:100%}.co-product-page .product-page-block-image app-image-carousel.show-animated,.co-product-page .product-page-block-image threed-configurator.show-animated{opacity:1;z-index:0;transition:all .2s ease-in-out}.co-product-page .product-page-block-image .fullscreen-button{cursor:pointer;height:50px;width:50px;position:absolute;left:30px;z-index:100;top:30px}.co-product-page .product-page-block-image.full{grid-column:1/11;grid-row:2/span 10;z-index:3}.co-product-page .product-page-block-description{grid-column:7/12;grid-row:1/1}.co-product-page .product-page-block-additional,.co-product-page .product-page-block-additional-description{width:100%}.co-product-page .product-page-block-price{grid-column:1/3;grid-row:2/2;align-self:center}.co-product-page .product-page-block-price.full{grid-column:1/5}.co-product-page .product-page-block-price .hide-configurator{display:none}.co-product-page .product-page-block-price .show-configurator{display:block}.co-product-page .product-page-block-price .show-configurator .co-threedselector{position:relative}.co-product-page .product-page-block-price .show-configurator .co-threedselector .co-lite-selector.floating co-selections-summary{position:relative}.co-product-page .product-page-block-price .show-configurator .co-threedselector .co-lite-selector:not(.custom-dimensions).floating co-selections-summary{top:auto;background:none}.co-product-page .product-page-block-price .show-configurator .co-threedselector .co-selections-summary .selections-content{gap:10px;box-sizing:border-box;padding:10px}.co-product-page .product-page-block-price .show-configurator .co-threedselector .co-product-configurator .product-configurator-container{position:relative;width:auto;top:auto;right:auto;padding-left:30px;padding-right:0;height:auto;max-height:100%}.co-product-page .product-page-block-price .show-configurator .co-threedselector .co-product-configurator .product-configurator-container .product-configurator-details{max-height:100%}.co-product-page .preset-container{display:flex;justify-content:right}.co-product-page .preset-container .save-preset-button{cursor:pointer;width:100%;max-width:205px;box-sizing:border-box}.co-product-page .preset-container .save-preset-button:hover{background:#74b77f}.co-product-page .product-page-block-addtocart{grid-column:3/5;grid-row:2/2;align-self:center;padding-top:30px!important}.co-product-page .product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button{cursor:pointer}.co-product-page .product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button:hover div.rippler{background:#f6f5f4}.co-product-page .product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button ::ng-deep co-icon{position:relative;z-index:2}.co-product-page .product-page-block-addtocart ::ng-deep co-button.cart-button{cursor:pointer}.co-product-page .product-page-block-addtocart ::ng-deep co-button.cart-button:hover{background:#74b77f}.co-product-page .addtocart-reserved{grid-column:1/3;grid-row:3/3}.co-product-page .product-page-block-stock{grid-column:1/3;grid-row:4/4}.co-product-page .product-page-block-delivery{grid-column:3/5;grid-row:4/4}.co-product-page ::ng-deep co-scroll-container{overflow:hidden;position:relative}.co-product-page ::ng-deep co-scroll-container .content-wrapper{padding:0}.co-product-page ::ng-deep co-scroll-container .scroll-layer{left:0;top:0}.co-product-page ::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}.co-product-page ::ng-deep co-scroll-container .scroll-layer .scroller:hover{background:#f6f5f4}.co-product-page ::ng-deep co-scroll-container .scroll-layer .scroller.left-scroll{left:5px}.co-product-page ::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}.co-product-page ::ng-deep co-scroll-container .scroll-layer .scroller.right-scroll{right:5px}.co-product-page ::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}.co-product-page .product-page-block-variants{margin:20px 0 0}.co-product-page .product-page-block-variants app-product-related>div{display:flex;gap:15px;align-items:center;border-top:1px solid #f6f5f4;padding:5px 0 7px 15px}.co-product-page .product-page-block-variants app-product-related>div app-header h3{font-size:14px}.co-product-page .product-page-block-variants app-product-related>div co-scroll-container{width:320px;max-width:100%;padding:0 16px}.co-product-page .product-page-block-variants app-product-related>div co-scroll-container .scroller{width:26px;height:26px}.co-product-page .product-page-block-variants app-product-related>div co-scroll-container .scroller.left-scroll{left:5px}.co-product-page .product-page-block-variants app-product-related>div co-scroll-container .scroller.left-scroll:before{border-width:0 2px 2px 0;margin-left:9px;margin-top:9px}.co-product-page .product-page-block-variants app-product-related>div co-scroll-container .scroller.right-scroll{right:5px}.co-product-page .product-page-block-variants app-product-related>div co-scroll-container .scroller.right-scroll:after{border-width:0 2px 2px 0;margin-left:6px;margin-top:9px}.co-product-page .product-page-block-variants co-tile.small{min-width:50px!important;max-width:50px!important;border:1px solid #f6f5f4;margin:0 10px 0 0;border-radius:4px}.co-product-page .product-page-block-variants co-tile.small:hover{border-color:#22313c}.co-product-page .product-page-block-variants co-tile.small .tile-wrapper{padding:0}.co-product-page .product-page-block-variants co-tile.small .tile-wrapper .tile-top{display:none}.co-product-page .product-page-block-variants co-tile.small .tile-wrapper .image{height:40px!important;padding:5px;margin-bottom:10px}.co-product-page .product-page-block-variants co-tile.small .tile-wrapper .image .no-image-wrapper .no-image{width:40px;height:40px}.co-product-page .product-page-block-variants co-tile.small .tile-wrapper .image .no-image-wrapper span{display:none!important}.co-product-page .product-page-block-variants co-tile.small .tile-wrapper .tile-bottom{display:none}.co-product-page .product-page-block-variants co-tile.small .tile-extra-bottom{display:none}.co-product-page .product-page-block-alternatives .co-scroll-container,.co-product-page .product-page-block-alternatives .co-scroll-container .content-wrapper{width:auto}.co-product-page .product-page-block-alternatives .article-wrapper{margin:0 20px 0 0}.co-product-page .product-page-block-alternatives .article-wrapper:last-child{margin:0}.co-product-page .product-page-block-alternatives .co-tile{cursor:pointer;transition:all .14s ease-out;border:1px solid transparent;padding:15px 10px 0;width:319px;max-width:none;min-width:0;box-sizing:border-box}.co-product-page .product-page-block-alternatives .co-tile:hover{box-shadow:none;border-color:#f6f5f4}.co-product-page .product-page-block-alternatives .co-tile:hover .tile-wrapper div.image co-image{transform:scale(1.05)}.co-product-page .product-page-block-alternatives .co-tile:hover .tile-wrapper .tile-bottom{margin:0}.co-product-page .product-page-block-alternatives .co-tile:hover .tile-extra-bottom .main .description{text-decoration:underline}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper{padding:0;position:relative;outline:none;overflow:hidden}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper .tile-top{position:absolute;left:0;top:0;width:100%}.co-product-page .product-page-block-alternatives .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}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper div.image:after{content:\"\";padding:100% 0 0;float:left;width:100%}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper div.image .co-image{position:absolute;left:0;top:0;overflow:hidden;width:100%;height:100%;object-fit:contain;z-index:-1;transition:all .2s ease}.co-product-page .product-page-block-alternatives .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}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper .tile-bottom{transition:all .2s ease;height:auto}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper .tile-bottom .co-button{margin:0 0 5px!important;width:36px;height:36px;border:1px solid #22313C;background:#2b60a7;cursor:pointer;border-radius:4px;padding:0!important;font-size:0}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper .tile-bottom .co-button .co-icon{width:32px;height:32px;margin:0 2px}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom{outline:none;padding:15px 0;background:transparent!important;min-height:60px}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom .main{padding:0 10px}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom .main .description{font-size:15px;font-weight:700;margin:0 0 2px}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom .main .price{font-size:16px;margin:15px 0 0;font-weight:700;color:#2b60a7}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom .main .co-button{margin:0 0 5px!important;width:36px;height:36px;border:1px solid #22313C;background:#2b60a7;cursor:pointer;border-radius:4px;padding:0!important;font-size:0}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom .main .co-button .co-icon{width:32px;height:32px;margin:0 2px}.co-product-page .product-page-block-additional-information{grid-column:1/6;grid-row:4/4}.co-product-page .product-page-block-properties{grid-column:7/10;grid-row:3/3}.co-product-page .product-page-block-related-articles{grid-column:2/6;grid-row:4/4}.co-product-page .product-page-block-alternative-articles{grid-column:6/10;grid-row:4/4}.co-product-page .product-page-block-documents{grid-column:2/6;grid-row:5/5}.co-product-page .product-page-block-symbols{grid-column:6/10;grid-row:5/5}@media screen and (max-width: 950px){.co-product-page .default-padding{padding-top:20px;padding-bottom:20px}.co-product-page .m-padding{padding-top:15px;padding-bottom:15px}.co-product-page .s-padding{padding-top:5px;padding-bottom:5px}.co-product-page .page-wrapper{max-width:650px}.co-product-page .page-wrapper .page-wrapper-content{flex-direction:column;margin:30px 0}.co-product-page .page-wrapper .page-wrapper-content .page-wrapper-left,.co-product-page .page-wrapper .page-wrapper-content .page-wrapper-right{width:100%}.co-product-page .product-page-block-alternatives ::ng-deep co-tile{width:284px!important}}@media screen and (max-width: 650px){.co-product-page [class*=-padding]{padding-left:0!important;padding-right:0!important}.co-product-page .product-page-block-addtocart ::ng-deep co-number-picker co-button{height:38px!important}.co-product-page .product-page-block-addtocart ::ng-deep co-number-picker co-input-text{height:38px!important;width:36px!important}.co-product-page .product-page-block-addtocart ::ng-deep co-button.cart-button{height:40px;font-size:13px}}\n"], dependencies: [{ kind: "component", type: ProductSelectorTypeComponent, selector: "app-product-selector-type", inputs: ["show2D", "show3D", "showRenderCarousel", "currentType"], outputs: ["onIconClick", "currentTypeChange"] }, { kind: "component", type: ImageCarouselComponent, selector: "app-image-carousel", inputs: ["showRefresh", "images"] }, { kind: "component", type: i6.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "component", type: ProductDescriptionComponent, selector: "app-product-description", inputs: ["article"] }, { kind: "component", type: ProductAdditionalDescriptionComponent, selector: "app-product-additional-description", inputs: ["article"] }, { kind: "component", type: ProductPriceComponent, selector: "app-product-price", inputs: ["pricing", "configurable"] }, { kind: "component", type: ProductAddtocartComponent, selector: "app-product-addtocart", inputs: ["article", "externalSource", "createFrozenArticle", "configurable", "configuring", "showAddToCart", "isReturn", "fullscreen", "quantity"], outputs: ["startConfiguration", "addToCartClick", "addToQuoteClick", "showRelatedPopup"] }, { kind: "component", type: ProductRelatedComponent, selector: "app-product-related", inputs: ["refType", "label", "externalSource", "isSmallModus", "createFrozenArticle", "articles"] }, { kind: "component", type: ProductStockComponent, selector: "app-product-stock", inputs: ["goodId"], outputs: ["openStockEvent"] }, { kind: "component", type: ProductInfoTabsComponent, selector: "app-product-info-tabs", inputs: ["article"] }, { kind: "component", type: ProductDialogComponent, selector: "co-product-dialog", inputs: ["refType", "mainArticle", "articles"], outputs: ["closeRelatedPopup"] }, { kind: "component", type: RenderCarouselComponent, selector: "app-render-carousel", inputs: ["showRefresh", "article"] }, { kind: "component", type: i6.ButtonComponent, selector: "co-button", inputs: ["label", "iconData", "iconDataRight", "isToggleButton", "isToggled", "hidden", "disabled"], outputs: ["onClick", "clickedWhileDisabled", "isToggledChange"] }, { kind: "component", type: PresetDialogComponent, selector: "co-preset-dialog", inputs: ["type", "presetId"], outputs: ["cancelSavePreset", "overwritePreset"] }, { kind: "component", type: i5.ConfiguratorComponent, selector: "co-configurator", inputs: ["showLoader", "showProgressBar", "showErrorMessages", "outputErrorMessages", "canCloseConfigurator", "animateSlideout", "showHeaderInformation"], outputs: ["buildResult", "isLoading", "updateProgressBar", "errorMessages", "showChange"] }, { kind: "component", type: i5.ConfiguratorSceneComponent, selector: "co-configurator-scene" }, { kind: "pipe", type: LocalizePipe, name: "localize" }], animations: [
3222
3264
  trigger('toggleFullScreen', [
3223
3265
  state('fullscreen', style({ 'position': 'fixed', 'top': '0', 'left': '0', 'width': '100%', 'height': '100%' })),
3224
3266
  state('halfscreen', style({ 'position': '*', 'top': '*', 'left': '*', 'width': '*', 'height': '*' })),
@@ -3249,7 +3291,7 @@ class ProductPageComponent {
3249
3291
  state('*', style({ 'opacity': '1' })),
3250
3292
  transition('void => *', animate('200ms ease-in-out'))
3251
3293
  ])
3252
- ] }); }
3294
+ ], encapsulation: i0.ViewEncapsulation.None }); }
3253
3295
  }
3254
3296
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductPageComponent, decorators: [{
3255
3297
  type: Component,
@@ -3260,12 +3302,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
3260
3302
  <div class="page-wrapper-left">
3261
3303
  <div class="product-image-container">
3262
3304
  <div class="product-page-block-selector-type">
3263
- <app-product-selector-type class="default-padding"
3264
- [(currentType)]="currentView"
3265
- [show2D]="configurable"
3266
- [show3D]="threeD"
3267
- ></app-product-selector-type>
3305
+ <app-product-selector-type
3306
+ class="default-padding"
3307
+ [(currentType)]="currentView"
3308
+ [show2D]="configurable"
3309
+ [show3D]="threeD">
3310
+ </app-product-selector-type>
3268
3311
  </div>
3312
+
3269
3313
  <div class="product-page-block-image default-padding" [class.full]="fullScreen">
3270
3314
  @if (!enableRenderCarousel) {
3271
3315
  <app-image-carousel
@@ -3280,120 +3324,125 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
3280
3324
  [article]="article">
3281
3325
  </app-render-carousel>
3282
3326
  }
3283
- @if (settingsLoaded && this.configurable) {
3284
- <threed-configurator
3285
- #configurator
3286
- class="threed-configurator"
3287
- [class.configurator-full-screen]="fullScreen"
3288
- [@toggleVisibilityByState]="show3D ? 'show' : 'hide'"
3289
- [@toggleFullScreen]="fullScreen ? 'fullscreen' : 'halfscreen'">
3290
- </threed-configurator>
3327
+ @if (settingsLoaded) {
3328
+ <co-configurator-scene
3329
+ [class.show-full-screen]="fullScreen"
3330
+ [class.hide-3d-scene]="!show3D"
3331
+ [class.show-3d-scene]="show3D">
3332
+ </co-configurator-scene>
3291
3333
  }
3292
3334
  @if (show3D) {
3293
- <co-icon #fullscreenbutton class="fullscreen-button"
3294
- [@toggleTopLeft]="fullScreen ? 'fullscreen' : 'halfscreen'"
3295
- [iconData]="iconCache.getIcon(fullScreenIcon)"
3296
- (click)="showFullScreen()"></co-icon>
3335
+ <co-icon
3336
+ #fullscreenbutton
3337
+ class="fullscreen-button"
3338
+ [@toggleTopLeft]="fullScreen ? 'fullscreen' : 'halfscreen'"
3339
+ [iconData]="iconCache.getIcon(fullScreenIcon)"
3340
+ (click)="showFullScreen()">
3341
+ </co-icon>
3297
3342
  }
3298
3343
  @if (show3D && fullScreen) {
3299
- <co-icon class="threed-watermark"
3300
- [iconData]="iconCache.getIcon(icon.Logo)"></co-icon>
3344
+ <co-icon
3345
+ class="threed-watermark"
3346
+ [iconData]="iconCache.getIcon(icon.Logo)">
3347
+ </co-icon>
3301
3348
  }
3302
3349
  </div>
3303
3350
  </div>
3304
3351
  </div>
3305
3352
  <div class="page-wrapper-right">
3306
- <div class="product-page-block-description">
3307
- <app-product-description class="default-padding" [article]="article"></app-product-description>
3308
- </div>
3309
- <div class="product-page-block-additional">
3310
- <div class="product-page-block-additional-description">
3311
- <app-product-additional-description class="default-padding" [article]="article"></app-product-additional-description>
3353
+ <div class="product-page-scroll-container">
3354
+ <div class="product-page-block-description">
3355
+ <app-product-description
3356
+ class="default-padding"
3357
+ [article]="article">
3358
+ </app-product-description>
3312
3359
  </div>
3313
- <div class="product-page-block-price" [class.full]="configuring">
3314
- @if (configuring && this.settingsService.settings.options.showSaveAsPresetButton) {
3315
- <div class="preset-container">
3316
- <co-button
3317
- class="save-preset-button"
3318
- [iconData]="iconCache.getIcon(icon.SaveDisk)"
3319
- [label]="'PRESET_SAVE_AS' | localize"
3320
- (onClick)="handleSavePreset()"
3321
- ></co-button>
3322
- </div>
3323
- }
3360
+ <div class="product-page-block-additional">
3361
+ <div class="product-page-block-additional-description">
3362
+ <app-product-additional-description
3363
+ class="default-padding"
3364
+ [article]="article">
3365
+ </app-product-additional-description>
3366
+ </div>
3367
+ <div class="product-page-block-price" [class.full]="configuring">
3368
+ @if (configuring && this.settingsService.settings.options.showSaveAsPresetButton) {
3369
+ <div class="preset-container">
3370
+ <co-button
3371
+ class="save-preset-button"
3372
+ [iconData]="iconCache.getIcon(icon.SaveDisk)"
3373
+ [label]="'PRESET_SAVE_AS' | localize"
3374
+ (onClick)="handleSavePreset()">
3375
+ </co-button>
3376
+ </div>
3377
+ }
3378
+ @if (!configuring) {
3379
+ <app-product-price
3380
+ class="s-padding"
3381
+ [pricing]="article?.pricing"
3382
+ [configurable]="configurable">
3383
+ </app-product-price>
3384
+ }
3385
+
3386
+ @if (settingsLoaded) {
3387
+ <co-configurator
3388
+ [class.hide-configurator]="!configuring"
3389
+ [class.show-configurator]="configuring"
3390
+ [showLoader]="true"
3391
+ [animateSlideout]="false"
3392
+ [showHeaderInformation]="false"
3393
+ [canCloseConfigurator]="false"
3394
+ (buildResult)="handleBuildFinished($event)">
3395
+ </co-configurator>
3396
+ }
3397
+ </div>
3324
3398
  @if (!configuring) {
3325
- <app-product-price class="s-padding"
3326
- [pricing]="article?.pricing"
3327
- [configurable]="configurable"
3328
- ></app-product-price>
3399
+ <div class="product-page-block-addtocart no-padding product-action-buttons"
3400
+ [@toggleTopRight]="fullScreen ? 'fullscreen' : 'halfscreen'">
3401
+ <app-product-addtocart
3402
+ [configurable]="configurable"
3403
+ [createFrozenArticle]="createFrozenArticle"
3404
+ [configuring]="configuring"
3405
+ [showAddToCart]="showAddToCart"
3406
+ [article]="article"
3407
+ [externalSource]="externalSource"
3408
+ [isReturn]="isReturn"
3409
+ (startConfiguration)="handleStartConfiguration()"
3410
+ (showRelatedPopup)="handlePopUpChange($event)">
3411
+ </app-product-addtocart>
3412
+ </div>
3329
3413
  }
3330
-
3331
- @if (settingsLoaded) {
3332
- <threed-selections #selections class="threed-selections"
3333
- [class.show-selections]="configuring"
3334
- [@toggleFullScreenRight]="fullScreen ? 'fullscreen' : 'halfscreen'"
3335
- [class.default-padding]="!fullScreen"
3336
- [class.show-full-screen]="fullScreen"
3337
- [class.mini-scrollbar]="fullScreen"
3338
- [sku]="sku"
3339
- [settings]="settings"
3340
- (onUserActionFromThreeD)="configuring = true"
3341
- (instanceSet)="setInstance($event)"
3342
- (onImageReceived)="appEventService.onImageReceived.next($event)"
3343
- (onRenderStarted)="appEventService.onRenderStarted.next()"
3344
- (onDraftRenderImageReceived)="appEventService.onDraftRenderImageReceived.next($event)"
3345
- (onArticleReceived)="appEventService.onArticleReceived.next($event.detail)"
3346
- (onSelectionsReceived)="appEventService.onSelectionsReceived.next($event.detail)"
3347
- (onArticleInfoReceived)="appEventService.onArticleInfoReceived.next($event.detail)"
3348
- (onAnswersAvailable)="appEventService.onAnswersAvailable.next($event.detail)"
3349
- (onReadyToRender)="appEventService.onReadyToRender.next($event.detail)"
3350
- (onRenderImageReceived)="appEventService.onRenderImageReceived.next($event.detail)"
3351
- ></threed-selections>
3414
+ @if (configuring) {
3415
+ <div class="addtocart-reserved product-action-buttons" [class.full-screen]="fullScreen">
3416
+ <app-product-addtocart
3417
+ class="default-padding"
3418
+ [configurable]="false"
3419
+ [fullscreen]="fullScreen"
3420
+ [showAddToCart]="showAddToCart"
3421
+ [configuring]="configuring"
3422
+ [article]="article"
3423
+ [externalSource]="externalSource"
3424
+ [isReturn]="isReturn"
3425
+ (startConfiguration)="handleStartConfiguration()">
3426
+ </app-product-addtocart>
3427
+ </div>
3352
3428
  }
3353
- </div>
3354
- @if (!configuring) {
3355
- <div class="product-page-block-addtocart no-padding product-action-buttons"
3356
- [@toggleTopRight]="fullScreen ? 'fullscreen' : 'halfscreen'">
3357
- <app-product-addtocart
3358
- [configurable]="configurable"
3359
- [createFrozenArticle]="createFrozenArticle"
3360
- [configuring]="configuring"
3361
- [showAddToCart]="showAddToCart"
3362
- [article]="article"
3363
- [externalSource]="externalSource"
3364
- [isReturn]="isReturn"
3365
- (startConfiguration)="handleStartConfiguration()"
3366
- (showRelatedPopup)="handlePopUpChange($event)"
3367
- ></app-product-addtocart>
3429
+ <div class="product-page-block-variants">
3430
+ @if (article?.relatedArticles && article?.relatedArticles.length > 0) {
3431
+ <app-product-related
3432
+ class="no-padding"
3433
+ [externalSource]="externalSource"
3434
+ [articles]="article?.relatedArticles" [refType]="64"
3435
+ [label]="'VARIANTS' | localize">
3436
+ </app-product-related>
3437
+ }
3368
3438
  </div>
3369
- }
3370
- @if (configuring) {
3371
- <div class="addtocart-reserved product-action-buttons" [class.full-screen]="fullScreen">
3372
- <app-product-addtocart class="default-padding"
3373
- [configurable]="false"
3374
- [fullscreen]="fullScreen"
3375
- [showAddToCart]="showAddToCart"
3376
- [configuring]="configuring"
3377
- [article]="article"
3378
- [externalSource]="externalSource"
3379
- [isReturn]="isReturn"
3380
- (startConfiguration)="handleStartConfiguration()"
3381
- ></app-product-addtocart>
3439
+ <div class="product-page-block-stock">
3440
+ <app-product-stock
3441
+ class="no-padding"
3442
+ [goodId]="article?.goodId"
3443
+ (openStockEvent)="openStock()">
3444
+ </app-product-stock>
3382
3445
  </div>
3383
- }
3384
- <div class="product-page-block-variants">
3385
- @if (article?.relatedArticles && article?.relatedArticles.length > 0) {
3386
- <app-product-related class="no-padding"
3387
- [externalSource]="externalSource"
3388
- [articles]="article?.relatedArticles" [refType]="64"
3389
- [label]="'VARIANTS' | localize"></app-product-related>
3390
- }
3391
- </div>
3392
- <div class="product-page-block-stock">
3393
- <app-product-stock class="no-padding" [goodId]="article?.goodId" (openStockEvent)="openStock()"></app-product-stock>
3394
- </div>
3395
- <div class="product-page-block-delivery">
3396
- <app-product-delivery class="no-padding" [stockAndDelivery]="stockAndDelivery"></app-product-delivery>
3397
3446
  </div>
3398
3447
  </div>
3399
3448
  </div>
@@ -3401,7 +3450,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
3401
3450
  <div class="page-wrapper-content">
3402
3451
  @if (article) {
3403
3452
  <div class="page-wrapper-left">
3404
- <app-product-info-tabs class="no-padding" [article]="article"></app-product-info-tabs>
3453
+ <app-product-info-tabs
3454
+ class="no-padding"
3455
+ [article]="article">
3456
+ </app-product-info-tabs>
3405
3457
  </div>
3406
3458
  }
3407
3459
  <div class="page-wrapper-right">
@@ -3438,23 +3490,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
3438
3490
  [mainArticle]="article"
3439
3491
  [articles]="article?.relatedArticles"
3440
3492
  [refType]="1"
3441
- (closeRelatedPopup)="handlePopUpChange($event)"
3442
- >
3493
+ (closeRelatedPopup)="handlePopUpChange($event)">
3443
3494
  </co-product-dialog>
3444
3495
  </div>
3445
3496
  }
3446
3497
  </div>
3447
3498
 
3448
- <co-preset-dialog
3449
- *ngIf="showPresetDialog"
3450
- [type]="presetDialogType"
3451
- [presetId]="configPresetId"
3452
- (cancelSavePreset)="handleCancelSavePreset($event)"
3453
- (overwritePreset)="handleOverwritePreset($event)"
3454
- >
3455
- </co-preset-dialog>
3499
+ @if (presetDialogType) {
3500
+ <co-preset-dialog
3501
+ [type]="presetDialogType"
3502
+ [presetId]="configPresetId"
3503
+ (cancelSavePreset)="handleCancelSavePreset($event)"
3504
+ (overwritePreset)="handleOverwritePreset($event)">
3505
+ </co-preset-dialog>
3506
+ }
3456
3507
  }
3457
- `, animations: [
3508
+ `, encapsulation: ViewEncapsulation.None, animations: [
3458
3509
  trigger('toggleFullScreen', [
3459
3510
  state('fullscreen', style({ 'position': 'fixed', 'top': '0', 'left': '0', 'width': '100%', 'height': '100%' })),
3460
3511
  state('halfscreen', style({ 'position': '*', 'top': '*', 'left': '*', 'width': '*', 'height': '*' })),
@@ -3485,13 +3536,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
3485
3536
  state('*', style({ 'opacity': '1' })),
3486
3537
  transition('void => *', animate('200ms ease-in-out'))
3487
3538
  ])
3488
- ], standalone: false, 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,.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,.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}.preset-container{display:flex;justify-content:right}.preset-container .save-preset-button{cursor:pointer;width:100%;max-width:205px;box-sizing:border-box}.preset-container .save-preset-button:hover{background:#74b77f}.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;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:700;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:700;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,.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"] }]
3489
- }], ctorParameters: () => [{ type: ProductConnectorService }, { type: IconCacheService }, { type: ProductSettingsService }, { type: ProductEventService }, { type: i0.ChangeDetectorRef }], propDecorators: { configurator: [{
3490
- type: ViewChild,
3491
- args: ['configurator', { read: ElementRef }]
3492
- }], selections: [{
3493
- type: ViewChild,
3494
- args: ['selections', { read: ElementRef }]
3539
+ ], standalone: false, styles: [".co-product-page .page-wrapper{font-family:iOneMontserrat;font-size:12px;display:flex;flex-direction:column;max-width:100%;padding:0 15px;margin:0 auto}.co-product-page .page-wrapper-content{display:flex;flex-direction:row;margin:40px 0}.co-product-page .page-wrapper-content:first-child,.co-product-page .page-wrapper-content.no-top-margin{margin-top:0}.co-product-page .page-wrapper-left{display:flex;width:65%;flex-direction:column}.co-product-page .page-wrapper-right{display:flex;width:35%;flex-direction:column}.co-product-page .page-wrapper-right .product-page-scroll-container{max-height:100vh;overflow-y:scroll}.co-product-page .page-wrapper-full{display:flex;width:100%;flex-direction:column}.co-product-page .page-wrapper-66{display:flex;width:60%;flex-direction:column}.co-product-page .page-wrapper-33{display:flex;width:40%;flex-direction:column}.co-product-page .product-action-buttons{position:relative}.co-product-page .product-action-buttons.full-screen{z-index:10}.co-product-page .product-image-container{grid-column:1/7;grid-row:1/6;position:relative}.co-product-page .product-page-block-selector-type{width:auto;position:absolute;top:10px;right:10px;z-index:2}.co-product-page .product-page-block-image{box-sizing:border-box;width:100%;z-index:1;position:relative}.co-product-page .product-page-block-image .co-configurator-scene{width:100%;height:300px;display:block;position:relative}.co-product-page .product-page-block-image .co-configurator-scene .configurator-bundle-container{position:relative;height:650px;width:100%}.co-product-page .product-page-block-image .co-configurator-scene .configurator-bundle-container .threedviewer{min-height:0;min-width:0;width:auto;height:auto}.co-product-page .product-page-block-image .co-configurator-scene .configurator-bundle-container .threedviewer canvas{width:100%;height:100%}.co-product-page .product-page-block-image .co-configurator-scene.hide-3d-scene{visibility:hidden;overflow:hidden;height:0}.co-product-page .product-page-block-image .co-configurator-scene.show-3d-scene{min-height:650px;position:relative}.co-product-page .product-page-block-image .co-configurator-scene.show-full-screen{position:fixed;inset:0;width:100%;height:100%}.co-product-page .product-page-block-image .co-configurator-scene.show-full-screen .configurator-bundle-container{height:100%}.co-product-page .product-page-block-image .co-configurator-scene canvas{height:100%}.co-product-page .product-page-block-image app-image-carousel.show-animated,.co-product-page .product-page-block-image threed-configurator.show-animated{opacity:1;z-index:0;transition:all .2s ease-in-out}.co-product-page .product-page-block-image .fullscreen-button{cursor:pointer;height:50px;width:50px;position:absolute;left:30px;z-index:100;top:30px}.co-product-page .product-page-block-image.full{grid-column:1/11;grid-row:2/span 10;z-index:3}.co-product-page .product-page-block-description{grid-column:7/12;grid-row:1/1}.co-product-page .product-page-block-additional,.co-product-page .product-page-block-additional-description{width:100%}.co-product-page .product-page-block-price{grid-column:1/3;grid-row:2/2;align-self:center}.co-product-page .product-page-block-price.full{grid-column:1/5}.co-product-page .product-page-block-price .hide-configurator{display:none}.co-product-page .product-page-block-price .show-configurator{display:block}.co-product-page .product-page-block-price .show-configurator .co-threedselector{position:relative}.co-product-page .product-page-block-price .show-configurator .co-threedselector .co-lite-selector.floating co-selections-summary{position:relative}.co-product-page .product-page-block-price .show-configurator .co-threedselector .co-lite-selector:not(.custom-dimensions).floating co-selections-summary{top:auto;background:none}.co-product-page .product-page-block-price .show-configurator .co-threedselector .co-selections-summary .selections-content{gap:10px;box-sizing:border-box;padding:10px}.co-product-page .product-page-block-price .show-configurator .co-threedselector .co-product-configurator .product-configurator-container{position:relative;width:auto;top:auto;right:auto;padding-left:30px;padding-right:0;height:auto;max-height:100%}.co-product-page .product-page-block-price .show-configurator .co-threedselector .co-product-configurator .product-configurator-container .product-configurator-details{max-height:100%}.co-product-page .preset-container{display:flex;justify-content:right}.co-product-page .preset-container .save-preset-button{cursor:pointer;width:100%;max-width:205px;box-sizing:border-box}.co-product-page .preset-container .save-preset-button:hover{background:#74b77f}.co-product-page .product-page-block-addtocart{grid-column:3/5;grid-row:2/2;align-self:center;padding-top:30px!important}.co-product-page .product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button{cursor:pointer}.co-product-page .product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button:hover div.rippler{background:#f6f5f4}.co-product-page .product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button ::ng-deep co-icon{position:relative;z-index:2}.co-product-page .product-page-block-addtocart ::ng-deep co-button.cart-button{cursor:pointer}.co-product-page .product-page-block-addtocart ::ng-deep co-button.cart-button:hover{background:#74b77f}.co-product-page .addtocart-reserved{grid-column:1/3;grid-row:3/3}.co-product-page .product-page-block-stock{grid-column:1/3;grid-row:4/4}.co-product-page .product-page-block-delivery{grid-column:3/5;grid-row:4/4}.co-product-page ::ng-deep co-scroll-container{overflow:hidden;position:relative}.co-product-page ::ng-deep co-scroll-container .content-wrapper{padding:0}.co-product-page ::ng-deep co-scroll-container .scroll-layer{left:0;top:0}.co-product-page ::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}.co-product-page ::ng-deep co-scroll-container .scroll-layer .scroller:hover{background:#f6f5f4}.co-product-page ::ng-deep co-scroll-container .scroll-layer .scroller.left-scroll{left:5px}.co-product-page ::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}.co-product-page ::ng-deep co-scroll-container .scroll-layer .scroller.right-scroll{right:5px}.co-product-page ::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}.co-product-page .product-page-block-variants{margin:20px 0 0}.co-product-page .product-page-block-variants app-product-related>div{display:flex;gap:15px;align-items:center;border-top:1px solid #f6f5f4;padding:5px 0 7px 15px}.co-product-page .product-page-block-variants app-product-related>div app-header h3{font-size:14px}.co-product-page .product-page-block-variants app-product-related>div co-scroll-container{width:320px;max-width:100%;padding:0 16px}.co-product-page .product-page-block-variants app-product-related>div co-scroll-container .scroller{width:26px;height:26px}.co-product-page .product-page-block-variants app-product-related>div co-scroll-container .scroller.left-scroll{left:5px}.co-product-page .product-page-block-variants app-product-related>div co-scroll-container .scroller.left-scroll:before{border-width:0 2px 2px 0;margin-left:9px;margin-top:9px}.co-product-page .product-page-block-variants app-product-related>div co-scroll-container .scroller.right-scroll{right:5px}.co-product-page .product-page-block-variants app-product-related>div co-scroll-container .scroller.right-scroll:after{border-width:0 2px 2px 0;margin-left:6px;margin-top:9px}.co-product-page .product-page-block-variants co-tile.small{min-width:50px!important;max-width:50px!important;border:1px solid #f6f5f4;margin:0 10px 0 0;border-radius:4px}.co-product-page .product-page-block-variants co-tile.small:hover{border-color:#22313c}.co-product-page .product-page-block-variants co-tile.small .tile-wrapper{padding:0}.co-product-page .product-page-block-variants co-tile.small .tile-wrapper .tile-top{display:none}.co-product-page .product-page-block-variants co-tile.small .tile-wrapper .image{height:40px!important;padding:5px;margin-bottom:10px}.co-product-page .product-page-block-variants co-tile.small .tile-wrapper .image .no-image-wrapper .no-image{width:40px;height:40px}.co-product-page .product-page-block-variants co-tile.small .tile-wrapper .image .no-image-wrapper span{display:none!important}.co-product-page .product-page-block-variants co-tile.small .tile-wrapper .tile-bottom{display:none}.co-product-page .product-page-block-variants co-tile.small .tile-extra-bottom{display:none}.co-product-page .product-page-block-alternatives .co-scroll-container,.co-product-page .product-page-block-alternatives .co-scroll-container .content-wrapper{width:auto}.co-product-page .product-page-block-alternatives .article-wrapper{margin:0 20px 0 0}.co-product-page .product-page-block-alternatives .article-wrapper:last-child{margin:0}.co-product-page .product-page-block-alternatives .co-tile{cursor:pointer;transition:all .14s ease-out;border:1px solid transparent;padding:15px 10px 0;width:319px;max-width:none;min-width:0;box-sizing:border-box}.co-product-page .product-page-block-alternatives .co-tile:hover{box-shadow:none;border-color:#f6f5f4}.co-product-page .product-page-block-alternatives .co-tile:hover .tile-wrapper div.image co-image{transform:scale(1.05)}.co-product-page .product-page-block-alternatives .co-tile:hover .tile-wrapper .tile-bottom{margin:0}.co-product-page .product-page-block-alternatives .co-tile:hover .tile-extra-bottom .main .description{text-decoration:underline}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper{padding:0;position:relative;outline:none;overflow:hidden}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper .tile-top{position:absolute;left:0;top:0;width:100%}.co-product-page .product-page-block-alternatives .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}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper div.image:after{content:\"\";padding:100% 0 0;float:left;width:100%}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper div.image .co-image{position:absolute;left:0;top:0;overflow:hidden;width:100%;height:100%;object-fit:contain;z-index:-1;transition:all .2s ease}.co-product-page .product-page-block-alternatives .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}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper .tile-bottom{transition:all .2s ease;height:auto}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper .tile-bottom .co-button{margin:0 0 5px!important;width:36px;height:36px;border:1px solid #22313C;background:#2b60a7;cursor:pointer;border-radius:4px;padding:0!important;font-size:0}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper .tile-bottom .co-button .co-icon{width:32px;height:32px;margin:0 2px}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom{outline:none;padding:15px 0;background:transparent!important;min-height:60px}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom .main{padding:0 10px}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom .main .description{font-size:15px;font-weight:700;margin:0 0 2px}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom .main .price{font-size:16px;margin:15px 0 0;font-weight:700;color:#2b60a7}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom .main .co-button{margin:0 0 5px!important;width:36px;height:36px;border:1px solid #22313C;background:#2b60a7;cursor:pointer;border-radius:4px;padding:0!important;font-size:0}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom .main .co-button .co-icon{width:32px;height:32px;margin:0 2px}.co-product-page .product-page-block-additional-information{grid-column:1/6;grid-row:4/4}.co-product-page .product-page-block-properties{grid-column:7/10;grid-row:3/3}.co-product-page .product-page-block-related-articles{grid-column:2/6;grid-row:4/4}.co-product-page .product-page-block-alternative-articles{grid-column:6/10;grid-row:4/4}.co-product-page .product-page-block-documents{grid-column:2/6;grid-row:5/5}.co-product-page .product-page-block-symbols{grid-column:6/10;grid-row:5/5}@media screen and (max-width: 950px){.co-product-page .default-padding{padding-top:20px;padding-bottom:20px}.co-product-page .m-padding{padding-top:15px;padding-bottom:15px}.co-product-page .s-padding{padding-top:5px;padding-bottom:5px}.co-product-page .page-wrapper{max-width:650px}.co-product-page .page-wrapper .page-wrapper-content{flex-direction:column;margin:30px 0}.co-product-page .page-wrapper .page-wrapper-content .page-wrapper-left,.co-product-page .page-wrapper .page-wrapper-content .page-wrapper-right{width:100%}.co-product-page .product-page-block-alternatives ::ng-deep co-tile{width:284px!important}}@media screen and (max-width: 650px){.co-product-page [class*=-padding]{padding-left:0!important;padding-right:0!important}.co-product-page .product-page-block-addtocart ::ng-deep co-number-picker co-button{height:38px!important}.co-product-page .product-page-block-addtocart ::ng-deep co-number-picker co-input-text{height:38px!important;width:36px!important}.co-product-page .product-page-block-addtocart ::ng-deep co-button.cart-button{height:40px;font-size:13px}}\n"] }]
3540
+ }], ctorParameters: () => [{ type: IconCacheService }, { type: ProductSettingsService }, { type: ProductEventService }, { type: i0.ChangeDetectorRef }, { type: ProductConnectorService }, { type: i5.ConfiguringService }, { type: i5.SceneService }], propDecorators: { showClass: [{
3541
+ type: HostBinding,
3542
+ args: ['class.co-product-page']
3495
3543
  }], fullscreenbutton: [{
3496
3544
  type: ViewChild,
3497
3545
  args: ['fullscreenbutton', { read: ElementRef }]
@@ -3560,11 +3608,13 @@ class IoneProductComponent {
3560
3608
  // this.sku = '104';
3561
3609
  // this.sku = "70000107";
3562
3610
  // this.sku = "grover";
3563
- // this.sku = "1000610952";
3611
+ this.sku = "1000610952"; // bank istanbul jillis
3564
3612
  // this.sku = "4387";
3565
3613
  // this.sku = "1000612725";
3566
- // this.sku = '1000610952'; // elix = 1000234793
3614
+ // this.sku = '22000';
3615
+ // elix = 1000234793
3567
3616
  // this.sku = 'A30';
3617
+ // this.sku = '22000';
3568
3618
  }
3569
3619
  async ngOnInit() {
3570
3620
  this._subs.push(this._appEventService.onAddToCart.subscribe((data) => {
@@ -3948,6 +3998,52 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
3948
3998
  }]
3949
3999
  }] });
3950
4000
 
4001
+ class ProductDeliveryComponent {
4002
+ set stockAndDelivery(value) {
4003
+ if (value) {
4004
+ this.deliveryDescription = value.deliveryDescription;
4005
+ if (this.deliveryDescription.length > 0 && this.deliveryDescription[0] === ' ') {
4006
+ this.deliveryDescription = this._localizePipe.transform('ASK_FOR_INFORMATION');
4007
+ }
4008
+ }
4009
+ }
4010
+ constructor(_localizePipe, _iOne, _iconCache) {
4011
+ this._localizePipe = _localizePipe;
4012
+ this._iOne = _iOne;
4013
+ this._iconCache = _iconCache;
4014
+ this.icon = IconEnum;
4015
+ this.iconData = this._iconCache.getIcon(this.icon.Truck);
4016
+ }
4017
+ ngOnInit() {
4018
+ }
4019
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductDeliveryComponent, deps: [{ token: LocalizePipe }, { token: ProductConnectorService }, { token: IconCacheService }], target: i0.ɵɵFactoryTarget.Component }); }
4020
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: ProductDeliveryComponent, isStandalone: false, selector: "app-product-delivery", inputs: { stockAndDelivery: "stockAndDelivery" }, ngImport: i0, template: `
4021
+ <!--<app-header [label]="'DELIVERY_TIME_PERIOD' | localize"></app-header>-->
4022
+ <div class="product-delivery-wrapper">
4023
+ <co-icon class="delivery-icon" [iconData]="iconData"></co-icon>
4024
+ <div class="product-delivery-fields">
4025
+ <div class="pp-default-label" [textContent]="'DELIVERY_TIME_PERIOD' | localize"></div>
4026
+ <div class="pp-default-description" [textContent]="deliveryDescription | date:'dd MMMM yyyy'"></div>
4027
+ </div>
4028
+ </div>
4029
+ `, isInline: true, styles: [":host{display:block}.product-delivery-wrapper{display:flex;flex-direction:row;align-items:center;border-bottom:1px solid #f6f5f4;padding:20px 15px}.product-delivery-wrapper .delivery-icon{margin:0 15px 0 0;width:40px;height:37px}.product-delivery-wrapper .product-delivery-fields{display:flex;flex-direction:column}.product-delivery-wrapper .product-delivery-fields .pp-default-label{font-size:14px;margin:0}@media screen and (max-width: 400px){.product-delivery-wrapper{padding:15px 0 15px 10px}.product-delivery-wrapper .delivery-icon{margin:0 15px 0 0;width:32px;height:28px}.product-delivery-wrapper .product-delivery-fields .pp-default-label{font-size:13px}}\n"], dependencies: [{ kind: "component", type: i6.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "pipe", type: i5$1.DatePipe, name: "date" }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
4030
+ }
4031
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductDeliveryComponent, decorators: [{
4032
+ type: Component,
4033
+ args: [{ selector: 'app-product-delivery', template: `
4034
+ <!--<app-header [label]="'DELIVERY_TIME_PERIOD' | localize"></app-header>-->
4035
+ <div class="product-delivery-wrapper">
4036
+ <co-icon class="delivery-icon" [iconData]="iconData"></co-icon>
4037
+ <div class="product-delivery-fields">
4038
+ <div class="pp-default-label" [textContent]="'DELIVERY_TIME_PERIOD' | localize"></div>
4039
+ <div class="pp-default-description" [textContent]="deliveryDescription | date:'dd MMMM yyyy'"></div>
4040
+ </div>
4041
+ </div>
4042
+ `, standalone: false, styles: [":host{display:block}.product-delivery-wrapper{display:flex;flex-direction:row;align-items:center;border-bottom:1px solid #f6f5f4;padding:20px 15px}.product-delivery-wrapper .delivery-icon{margin:0 15px 0 0;width:40px;height:37px}.product-delivery-wrapper .product-delivery-fields{display:flex;flex-direction:column}.product-delivery-wrapper .product-delivery-fields .pp-default-label{font-size:14px;margin:0}@media screen and (max-width: 400px){.product-delivery-wrapper{padding:15px 0 15px 10px}.product-delivery-wrapper .delivery-icon{margin:0 15px 0 0;width:32px;height:28px}.product-delivery-wrapper .product-delivery-fields .pp-default-label{font-size:13px}}\n"] }]
4043
+ }], ctorParameters: () => [{ type: LocalizePipe }, { type: ProductConnectorService }, { type: IconCacheService }], propDecorators: { stockAndDelivery: [{
4044
+ type: Input
4045
+ }] } });
4046
+
3951
4047
  class ProductDeliveryModule {
3952
4048
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductDeliveryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
3953
4049
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: ProductDeliveryModule, declarations: [ProductDeliveryComponent], imports: [CommonModule,
@@ -4222,7 +4318,9 @@ class ProductPageModule {
4222
4318
  LoaderModule,
4223
4319
  RenderCarouselModule,
4224
4320
  ButtonModule,
4225
- PresetDialogModule], exports: [ProductPageComponent] }); }
4321
+ PresetDialogModule,
4322
+ ConfiguratorModule,
4323
+ ConfiguratorSceneModule], exports: [ProductPageComponent] }); }
4226
4324
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductPageModule, imports: [CommonModule,
4227
4325
  ProductSelectorTypeModule,
4228
4326
  ImageCarouselModule,
@@ -4240,7 +4338,9 @@ class ProductPageModule {
4240
4338
  LoaderModule,
4241
4339
  RenderCarouselModule,
4242
4340
  ButtonModule,
4243
- PresetDialogModule] }); }
4341
+ PresetDialogModule,
4342
+ ConfiguratorModule,
4343
+ ConfiguratorSceneModule] }); }
4244
4344
  }
4245
4345
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductPageModule, decorators: [{
4246
4346
  type: NgModule,
@@ -4263,7 +4363,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
4263
4363
  LoaderModule,
4264
4364
  RenderCarouselModule,
4265
4365
  ButtonModule,
4266
- PresetDialogModule
4366
+ PresetDialogModule,
4367
+ ConfiguratorModule,
4368
+ ConfiguratorSceneModule
4267
4369
  ],
4268
4370
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
4269
4371
  declarations: [