@colijnit/product 262.1.2 → 262.1.5

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.
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injectable, Pipe, EventEmitter, Output, Input, Component, ElementRef, HostBinding, HostListener, ViewChild, ChangeDetectionStrategy, SecurityContext, ViewEncapsulation, NgModule, CUSTOM_ELEMENTS_SCHEMA, PLATFORM_ID, Inject, NO_ERRORS_SCHEMA } from '@angular/core';
3
- import { Subject, BehaviorSubject, ReplaySubject, combineLatest, from } from 'rxjs';
3
+ import { Subject, BehaviorSubject, combineLatest } from 'rxjs';
4
4
  import { Options } from '@colijnit/ioneconnector/build/model/options';
5
5
  import { ArticleFullObject } from '@colijnit/articleapi/build/model/article-full-object';
6
6
  import { SuperArticle } from '@colijnit/articleapi/build/model/super-article';
@@ -15,27 +15,27 @@ import { ArticleListObjectExtended } from '@colijnit/articleapi/build/model/arti
15
15
  import { ImageContent } from '@colijnit/mainapi/build/model/image-content.bo';
16
16
  import { StringUtils } from '@colijnit/ioneconnector/build/utils/string-utils';
17
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';
20
18
  import * as i1 from '@angular/platform-browser';
19
+ import * as i5 from '@colijnit/configurator';
20
+ import { ConfigurationPresetModule, ConfiguratorModule, ConfiguratorSceneModule } from '@colijnit/configurator';
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';
24
24
  import * as i6$1 from '@angular/cdk/overlay';
25
25
  import { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';
26
- import * as i1$1 from '@angular/common';
27
- import { CommonModule, isPlatformBrowser } from '@angular/common';
28
26
  import { ConfiguratorStatisticsEnvironment } from '@colijnit/articleapi/build/model/configurator-statistics-environment';
29
27
  import * as i3 from '@colijnit/sharedcomponents';
30
28
  import { FilesUploadModule } from '@colijnit/sharedcomponents';
29
+ import * as i5$1 from '@angular/common';
30
+ import { CommonModule, isPlatformBrowser } from '@angular/common';
31
31
 
32
32
  // this file is dynamically created, do not change this
33
33
  class Version {
34
34
  constructor() {
35
35
  this.name = "@colijnit/product";
36
36
  this.description = "Product detail page project for iOne";
37
- this.symVer = "262.1.2";
38
- this.publishDate = "4-5-2026, 11:13:59";
37
+ this.symVer = "262.1.5";
38
+ this.publishDate = "26-5-2026, 13:21:58";
39
39
  }
40
40
  }
41
41
 
@@ -261,20 +261,6 @@ class ProductConnectorAdapterService {
261
261
  return Promise.resolve(false);
262
262
  }
263
263
  }
264
- async getGoogleTranslation(sourceLang, targetLang, list) {
265
- const result = await this.mainConnector.getGoogleTranslation(sourceLang, targetLang, list);
266
- if (result.validationResult && result.validationResult.success) {
267
- return result.resultObject;
268
- }
269
- }
270
- async googleTranslateEnabled() {
271
- // this should always be fetched from the mainapi from the client
272
- const response = await this.mainConnector.isGoogleTranslateEnabled();
273
- if (response && response.validationResult && response.validationResult.success) {
274
- return response.resultObject;
275
- }
276
- return false;
277
- }
278
264
  async getDefaultLanguage(upId) {
279
265
  // this should always be fetched from the mainapi from the client
280
266
  const response = await this.mainConnector.getPublicParams(upId);
@@ -670,12 +656,6 @@ class ProductConnectorService {
670
656
  async savePreset() {
671
657
  return await this._adapterService.savePreset();
672
658
  }
673
- async getGoogleTranslation(sourceLang, targetLang, list) {
674
- return await this._adapterService.getGoogleTranslation(sourceLang, targetLang, list);
675
- }
676
- googleTranslateEnabled() {
677
- return this._adapterService.googleTranslateEnabled();
678
- }
679
659
  async getDefaultLanguage(upId) {
680
660
  return await this._adapterService.getDefaultLanguage(upId);
681
661
  }
@@ -689,77 +669,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
689
669
  type: Injectable
690
670
  }], ctorParameters: () => [{ type: ProductConnectorAdapterService }, { type: ProductSettingsService }] });
691
671
 
692
- class GoogleTranslation {
693
- constructor(label, translation, language) {
694
- this.label = label;
695
- this.translation = translation;
696
- this.language = language;
697
- }
698
- }
699
- class GoogleTranslateService {
700
- constructor(_settingsService, _connectorService) {
701
- this._settingsService = _settingsService;
702
- this._connectorService = _connectorService;
703
- this._translations = [];
704
- this._initialized = false;
705
- this._initializedSubject = new ReplaySubject(1);
706
- this.googleApiEnabled = false;
707
- this._connectionSubject = combineLatest([
708
- this._settingsService.settingsLoaded,
709
- this._connectorService.controllerInitialized
710
- ]).subscribe(async ([settingsInitialized, controllerInitialized]) => {
711
- if (settingsInitialized && controllerInitialized) {
712
- this._clientLanguage = this._settingsService.settings.languageCode;
713
- const googleTranslateEnabled = await this._connectorService.googleTranslateEnabled();
714
- if (googleTranslateEnabled) {
715
- this.googleApiEnabled = true;
716
- this._defaultLanguage = await this._connectorService.getDefaultLanguage(+this._settingsService.settings.schema);
717
- }
718
- this._initialized = true;
719
- this._initializedSubject.next();
720
- this._initializedSubject.complete();
721
- }
722
- });
723
- }
724
- ngOnDestroy() {
725
- this._connectionSubject.unsubscribe();
726
- }
727
- async getTranslation(input) {
728
- if (!this._initialized) {
729
- await this._initializedSubject.toPromise();
730
- }
731
- if (!this.googleApiEnabled) {
732
- return input;
733
- }
734
- const sourceLang = this._defaultLanguage.toLowerCase();
735
- const targetLang = this._clientLanguage.toLowerCase();
736
- const translationList = [input];
737
- // When we do not need a translation
738
- if (!input || (sourceLang === targetLang)) {
739
- return input;
740
- }
741
- // When we might have cache
742
- const result = this._translations.find(item => item.label === input && item.language === targetLang);
743
- if (result && result.translation) {
744
- return result.translation;
745
- }
746
- // translate
747
- const translation = await this._connectorService.getGoogleTranslation(sourceLang, targetLang, translationList);
748
- const key = Object.keys(translation)[0];
749
- const cache = new GoogleTranslation(input, translation[key], targetLang);
750
- this._translations.push(cache);
751
- return translation[key];
752
- }
753
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: GoogleTranslateService, deps: [{ token: ProductSettingsService }, { token: ProductConnectorService }], target: i0.ɵɵFactoryTarget.Injectable }); }
754
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: GoogleTranslateService, providedIn: 'root' }); }
755
- }
756
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: GoogleTranslateService, decorators: [{
757
- type: Injectable,
758
- args: [{
759
- providedIn: 'root'
760
- }]
761
- }], ctorParameters: () => [{ type: ProductSettingsService }, { type: ProductConnectorService }] });
762
-
763
672
  class RootStorageObject {
764
673
  }
765
674
  class LocalStorageService {
@@ -836,13 +745,6 @@ var IconEnum;
836
745
  IconEnum["Warehouse"] = "warehouse";
837
746
  })(IconEnum || (IconEnum = {}));
838
747
 
839
- var PresetDialogType;
840
- (function (PresetDialogType) {
841
- PresetDialogType[PresetDialogType["info"] = 0] = "info";
842
- PresetDialogType[PresetDialogType["warning"] = 1] = "warning";
843
- PresetDialogType[PresetDialogType["success"] = 2] = "success";
844
- })(PresetDialogType || (PresetDialogType = {}));
845
-
846
748
  /** AUTO GENERATED FILE. DO NOT CHANGE.. **/
847
749
  const IconSvg = {
848
750
  "add_to_cart_drop": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M16.58,34.84a1.8,1.8,0,1,0,1.8,1.8A1.79,1.79,0,0,0,16.58,34.84Z\" fill=\"#484f60\"/><path d=\"M31.49,34.84a1.8,1.8,0,1,0,1.8,1.8A1.79,1.79,0,0,0,31.49,34.84Z\" fill=\"#484f60\"/><path d=\"M35.6,17.9l-1.51.18L31.88,20.3l1.31-.17a.88.88,0,0,1,1,1.08L32.35,29.5a1.52,1.52,0,0,1-1.44,1.2H16.51a1.75,1.75,0,0,1-1.57-1.17l-2.31-5.6a1,1,0,0,1,.85-1.29l4.43-.56-1.86-1.86-5.13.61a1,1,0,0,0-.87,1.28l3.34,9.44A1.73,1.73,0,0,0,15,32.72H32.64a1.51,1.51,0,0,0,1.43-1.2L36.6,19A.89.89,0,0,0,35.6,17.9Z\" fill=\"#484f60\"/><path d=\"M39,17a1.87,1.87,0,0,0-1.36,1.46l-.42,2.89c-.1.67.31,1,.9.7a2.75,2.75,0,0,0,1.33-1.7L40,18A.73.73,0,0,0,39,17Z\" fill=\"#484f60\"/><polygon points=\"24 25.35 32.04 17.3 27.04 17.3 27.04 10 20.95 10 20.95 17.3 15.96 17.3 24 25.35\" fill=\"#484f60\"/></svg>",
@@ -1391,54 +1293,52 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
1391
1293
  args: ['class.resizing']
1392
1294
  }] } });
1393
1295
 
1394
- class GoogleTranslatePipe {
1395
- constructor(_googleTranslateService) {
1396
- this._googleTranslateService = _googleTranslateService;
1397
- }
1398
- transform(value) {
1399
- return from(this._googleTranslateService.getTranslation(value));
1400
- }
1401
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: GoogleTranslatePipe, deps: [{ token: GoogleTranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
1402
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: GoogleTranslatePipe, isStandalone: false, name: "googleTranslate" }); }
1403
- }
1404
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: GoogleTranslatePipe, decorators: [{
1405
- type: Pipe,
1406
- args: [{
1407
- name: 'googleTranslate',
1408
- standalone: false
1409
- }]
1410
- }], ctorParameters: () => [{ type: GoogleTranslateService }] });
1411
-
1412
1296
  class ProductDescriptionComponent {
1413
1297
  constructor() { }
1414
1298
  ngOnInit() {
1415
1299
  }
1416
1300
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductDescriptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1417
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: ProductDescriptionComponent, isStandalone: false, selector: "app-product-description", inputs: { article: "article" }, ngImport: i0, template: `
1418
- <div class="pd-title-wrapper">
1419
- @if (article?.descriptionRetail) {
1420
- <span class="pd-description" [textContent]="article?.descriptionRetail | googleTranslate | async"></span>
1421
- }
1422
- @if (article?.articleNr) {
1423
- <span class="pd-sku" [textContent]="article?.articleNr | googleTranslate | async"></span>
1424
- }
1425
- </div>
1426
- `, isInline: true, styles: [":host{display:block}.pd-title-wrapper{margin:0;padding-bottom:30px}.pd-description{color:#22313c;font-size:25px;font-weight:700;width:100%;display:block}.pd-sku{font-size:14px}@media screen and (max-width: 650px){.pd-description{font-size:21px}.pd-sku{font-size:13px}}\n"], dependencies: [{ kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: GoogleTranslatePipe, name: "googleTranslate" }] }); }
1301
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: ProductDescriptionComponent, isStandalone: false, selector: "app-product-description", inputs: { article: "article", configuring: "configuring" }, ngImport: i0, template: `
1302
+ <div class="product-description-wrapper">
1303
+ <div class="pd-title-wrapper">
1304
+ @if (article?.descriptionRetail) {
1305
+ <span class="pd-description" [textContent]="article?.descriptionRetail"></span>
1306
+ }
1307
+ @if (article?.articleNr) {
1308
+ <span class="pd-sku" [textContent]="article?.articleNr"></span>
1309
+ }
1310
+ </div>
1311
+ <div class="save-configuration-button">
1312
+ @if (configuring) {
1313
+ <co-configuration-preset></co-configuration-preset>
1314
+ }
1315
+ </div>
1316
+ </div>
1317
+ `, isInline: true, styles: [":host{display:block}:host .product-description-wrapper{display:flex;justify-content:space-between}:host .product-description-wrapper .pd-title-wrapper{margin:0;padding-bottom:30px}:host .product-description-wrapper .pd-title-wrapper .pd-description{color:#22313c;font-size:25px;font-weight:700;width:100%;display:block}:host .product-description-wrapper .pd-title-wrapper .pd-sku{font-size:14px}:host .product-description-wrapper .save-configuration-button ::ng-deep .open-save-load{display:none}:host .product-description-wrapper .save-configuration-button ::ng-deep .save-load-configuration-buttons{visibility:visible;position:relative;transform:none;pointer-events:all;opacity:1;box-shadow:none}:host .product-description-wrapper .save-configuration-button ::ng-deep .save-load-configuration-buttons .save-preset-button{border:1px solid #1A73E8;cursor:pointer}@media screen and (max-width: 650px){:host .product-description-wrapper .pd-description{font-size:21px}:host .product-description-wrapper .pd-sku{font-size:13px}}\n"], dependencies: [{ kind: "component", type: i5.ConfigurationPresetComponent, selector: "co-configuration-preset" }] }); }
1427
1318
  }
1428
1319
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductDescriptionComponent, decorators: [{
1429
1320
  type: Component,
1430
1321
  args: [{ selector: 'app-product-description', template: `
1431
- <div class="pd-title-wrapper">
1432
- @if (article?.descriptionRetail) {
1433
- <span class="pd-description" [textContent]="article?.descriptionRetail | googleTranslate | async"></span>
1434
- }
1435
- @if (article?.articleNr) {
1436
- <span class="pd-sku" [textContent]="article?.articleNr | googleTranslate | async"></span>
1437
- }
1438
- </div>
1439
- `, standalone: false, styles: [":host{display:block}.pd-title-wrapper{margin:0;padding-bottom:30px}.pd-description{color:#22313c;font-size:25px;font-weight:700;width:100%;display:block}.pd-sku{font-size:14px}@media screen and (max-width: 650px){.pd-description{font-size:21px}.pd-sku{font-size:13px}}\n"] }]
1322
+ <div class="product-description-wrapper">
1323
+ <div class="pd-title-wrapper">
1324
+ @if (article?.descriptionRetail) {
1325
+ <span class="pd-description" [textContent]="article?.descriptionRetail"></span>
1326
+ }
1327
+ @if (article?.articleNr) {
1328
+ <span class="pd-sku" [textContent]="article?.articleNr"></span>
1329
+ }
1330
+ </div>
1331
+ <div class="save-configuration-button">
1332
+ @if (configuring) {
1333
+ <co-configuration-preset></co-configuration-preset>
1334
+ }
1335
+ </div>
1336
+ </div>
1337
+ `, standalone: false, styles: [":host{display:block}:host .product-description-wrapper{display:flex;justify-content:space-between}:host .product-description-wrapper .pd-title-wrapper{margin:0;padding-bottom:30px}:host .product-description-wrapper .pd-title-wrapper .pd-description{color:#22313c;font-size:25px;font-weight:700;width:100%;display:block}:host .product-description-wrapper .pd-title-wrapper .pd-sku{font-size:14px}:host .product-description-wrapper .save-configuration-button ::ng-deep .open-save-load{display:none}:host .product-description-wrapper .save-configuration-button ::ng-deep .save-load-configuration-buttons{visibility:visible;position:relative;transform:none;pointer-events:all;opacity:1;box-shadow:none}:host .product-description-wrapper .save-configuration-button ::ng-deep .save-load-configuration-buttons .save-preset-button{border:1px solid #1A73E8;cursor:pointer}@media screen and (max-width: 650px){:host .product-description-wrapper .pd-description{font-size:21px}:host .product-description-wrapper .pd-sku{font-size:13px}}\n"] }]
1440
1338
  }], ctorParameters: () => [], propDecorators: { article: [{
1441
1339
  type: Input
1340
+ }], configuring: [{
1341
+ type: Input
1442
1342
  }] } });
1443
1343
 
1444
1344
  class BitUtils {
@@ -1496,18 +1396,18 @@ class ProductAdditionalDescriptionComponent {
1496
1396
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: ProductAdditionalDescriptionComponent, isStandalone: false, selector: "app-product-additional-description", inputs: { article: "article" }, ngImport: i0, template: `
1497
1397
  @if (description !== '') {
1498
1398
  <div class="pd-additional-description">
1499
- <p [innerHTML]="description | googleTranslate | async"></p>
1399
+ <p [innerHTML]="description"></p>
1500
1400
  <button class="pd-read-more-btn" [textContent]="'READ_MORE' | localize" (click)="onReadMore()"></button>
1501
1401
  </div>
1502
1402
  }
1503
- `, isInline: true, styles: [":host{display:block;padding-top:0!important}:host *:focus{outline:0!important}:host .pd-additional-description{line-height:190%;color:#22313c;font-size:13px}:host .pd-read-more-btn{color:#1a73e8;border:none;background:transparent;cursor:pointer;text-decoration:underline}:host .pd-read-more-btn:hover{color:#4e9b7e}@media screen and (max-width: 650px){:host .pd-additional-description{font-size:12px}}\n"], dependencies: [{ kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: LocalizePipe, name: "localize" }, { kind: "pipe", type: GoogleTranslatePipe, name: "googleTranslate" }] }); }
1403
+ `, isInline: true, styles: [":host{display:block;padding-top:0!important}:host *:focus{outline:0!important}:host .pd-additional-description{line-height:190%;color:#22313c;font-size:13px}:host .pd-read-more-btn{color:#1a73e8;border:none;background:transparent;cursor:pointer;text-decoration:underline}:host .pd-read-more-btn:hover{color:#4e9b7e}@media screen and (max-width: 650px){:host .pd-additional-description{font-size:12px}}\n"], dependencies: [{ kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
1504
1404
  }
1505
1405
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductAdditionalDescriptionComponent, decorators: [{
1506
1406
  type: Component,
1507
1407
  args: [{ selector: 'app-product-additional-description', template: `
1508
1408
  @if (description !== '') {
1509
1409
  <div class="pd-additional-description">
1510
- <p [innerHTML]="description | googleTranslate | async"></p>
1410
+ <p [innerHTML]="description"></p>
1511
1411
  <button class="pd-read-more-btn" [textContent]="'READ_MORE' | localize" (click)="onReadMore()"></button>
1512
1412
  </div>
1513
1413
  }
@@ -1985,7 +1885,7 @@ class ProductRelatedComponent {
1985
1885
  <div class="article-wrapper">
1986
1886
  <co-article-tile
1987
1887
  [imageData]="articleViewModel.imageData"
1988
- [description]="articleViewModel.article.description | googleTranslate | async"
1888
+ [description]="articleViewModel.article.description"
1989
1889
  [price]="articleViewModel.article.price"
1990
1890
  [level]="articleViewModel.article.stockStatus"
1991
1891
  [hasCartButton]="true"
@@ -2001,7 +1901,7 @@ class ProductRelatedComponent {
2001
1901
  </co-scroll-container>
2002
1902
  </div>
2003
1903
  }
2004
- `, 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-extra-bottom{outline:none!important;background:transparent!important}.article-wrapper ::ng-deep co-tile.small .tile-extra-bottom .price{color:#4e9b7e;margin:5px 0 0;font-weight:400;font-size:12px}.article-wrapper ::ng-deep co-tile.small .tile-extra-bottom ::ng-deep co-button.card-button.mini{pointer-events:all;padding:0!important;font-size:0;width:30px;height:30px;text-align:center;margin:0;border-radius:5px;background:#3e7eff;cursor:pointer;place-content:center;color:#fff}.article-wrapper ::ng-deep co-tile.small .tile-extra-bottom ::ng-deep co-button.card-button.mini ::ng-deep co-icon{width:24px;height:24px}\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"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: GoogleTranslatePipe, name: "googleTranslate" }] }); }
1904
+ `, 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-extra-bottom{outline:none!important;background:transparent!important}.article-wrapper ::ng-deep co-tile.small .tile-extra-bottom .price{color:#4e9b7e;margin:5px 0 0;font-weight:400;font-size:12px}.article-wrapper ::ng-deep co-tile.small .tile-extra-bottom ::ng-deep co-button.card-button.mini{pointer-events:all;padding:0!important;font-size:0;width:30px;height:30px;text-align:center;margin:0;border-radius:5px;background:#3e7eff;cursor:pointer;place-content:center;color:#fff}.article-wrapper ::ng-deep co-tile.small .tile-extra-bottom ::ng-deep co-button.card-button.mini ::ng-deep co-icon{width:24px;height:24px}\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"] }] }); }
2005
1905
  }
2006
1906
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductRelatedComponent, decorators: [{
2007
1907
  type: Component,
@@ -2016,7 +1916,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
2016
1916
  <div class="article-wrapper">
2017
1917
  <co-article-tile
2018
1918
  [imageData]="articleViewModel.imageData"
2019
- [description]="articleViewModel.article.description | googleTranslate | async"
1919
+ [description]="articleViewModel.article.description"
2020
1920
  [price]="articleViewModel.article.price"
2021
1921
  [level]="articleViewModel.article.stockStatus"
2022
1922
  [hasCartButton]="true"
@@ -2267,11 +2167,11 @@ class ProductPropertiesComponent {
2267
2167
  @for (property of properties; track property) {
2268
2168
  <div class="article-property">
2269
2169
  <div class="article-property-key" [textContent]="property.key | localize"></div>
2270
- <div class="article-property-value" [textContent]="property.value | googleTranslate | async"></div>
2170
+ <div class="article-property-value" [textContent]="property.value"></div>
2271
2171
  </div>
2272
2172
  }
2273
2173
  </div>
2274
- `, isInline: true, styles: [":host{display:block}.article-properties-wrapper{display:flex;flex-direction:column}.article-property{display:flex;flex-direction:row;border-bottom:1px solid #f6f5f4;padding:11px 0;font-size:13px}.article-property:first-child{border-top:1px solid #f6f5f4}.article-property-key{flex-basis:200px;flex-shrink:0;color:#9ca5ae}@media screen and (max-width: 450px){.article-property-key{flex-basis:130px}}\n"], dependencies: [{ kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: LocalizePipe, name: "localize" }, { kind: "pipe", type: GoogleTranslatePipe, name: "googleTranslate" }] }); }
2174
+ `, isInline: true, styles: [":host{display:block}.article-properties-wrapper{display:flex;flex-direction:column}.article-property{display:flex;flex-direction:row;border-bottom:1px solid #f6f5f4;padding:11px 0;font-size:13px}.article-property:first-child{border-top:1px solid #f6f5f4}.article-property-key{flex-basis:200px;flex-shrink:0;color:#9ca5ae}@media screen and (max-width: 450px){.article-property-key{flex-basis:130px}}\n"], dependencies: [{ kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
2275
2175
  }
2276
2176
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductPropertiesComponent, decorators: [{
2277
2177
  type: Component,
@@ -2283,7 +2183,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
2283
2183
  @for (property of properties; track property) {
2284
2184
  <div class="article-property">
2285
2185
  <div class="article-property-key" [textContent]="property.key | localize"></div>
2286
- <div class="article-property-value" [textContent]="property.value | googleTranslate | async"></div>
2186
+ <div class="article-property-value" [textContent]="property.value"></div>
2287
2187
  </div>
2288
2188
  }
2289
2189
  </div>
@@ -2801,113 +2701,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
2801
2701
  args: ['class.resizing']
2802
2702
  }] } });
2803
2703
 
2804
- class PresetDialogComponent {
2805
- showClass() {
2806
- return true;
2807
- }
2808
- constructor(iconCache) {
2809
- this.iconCache = iconCache;
2810
- this.icon = IconEnum;
2811
- this.presetId = undefined;
2812
- this.cancelSavePreset = new EventEmitter();
2813
- this.overwritePreset = new EventEmitter();
2814
- this.PresetDialogType = PresetDialogType;
2815
- }
2816
- closeAndCancelPreset() {
2817
- this.cancelSavePreset.emit(true);
2818
- }
2819
- closeAndOverwritePreset() {
2820
- this.overwritePreset.emit(true);
2821
- }
2822
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: PresetDialogComponent, deps: [{ token: IconCacheService }], target: i0.ɵɵFactoryTarget.Component }); }
2823
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: PresetDialogComponent, isStandalone: false, selector: "co-preset-dialog", inputs: { type: "type", presetId: "presetId" }, outputs: { cancelSavePreset: "cancelSavePreset", overwritePreset: "overwritePreset" }, host: { properties: { "class.co-preset-dialog": "this.showClass" } }, ngImport: i0, template: `
2824
- <div class="preset-dialog-wrap">
2825
- <div class="preset-dialog-container">
2826
- <div class="container-header">
2827
- <div class="header-info">
2828
- <h3 [textContent]="'PRESET_SAVE_AS' | localize"></h3>
2829
- </div>
2830
- <div class="close-icon" (click)="closeAndCancelPreset()">
2831
- <co-icon class="fullscreen-button"
2832
- [iconData]="iconCache.getIcon(icon.CrossSkinny)"
2833
- (click)="closeAndCancelPreset()"></co-icon>
2834
- </div>
2835
- </div>
2836
-
2837
- <div class="body">
2838
- @if (presetId !== undefined && type === PresetDialogType.warning) {
2839
- <p [textContent]="'PRESET_OVERWRITE_TEXT' | localize"></p>
2840
- }
2841
- @if (presetId !== undefined && type === PresetDialogType.success) {
2842
- <p [textContent]="'PRESET_SAVED_TEXT' | localize"></p>
2843
- }
2844
- </div>
2845
-
2846
- <div class="close-button-container">
2847
- @if (presetId !== undefined && type === PresetDialogType.warning) {
2848
- <button class="ok-button" (click)="closeAndOverwritePreset()">
2849
- <co-icon [iconData]="iconCache.getIcon(icon.SaveSkinny)" (click)="closeAndOverwritePreset()"></co-icon>
2850
- </button>
2851
- }
2852
- <button class="close-button" (click)="closeAndCancelPreset()">
2853
- <co-icon [iconData]="iconCache.getIcon(icon.CrossSkinny)" (click)="closeAndCancelPreset()"></co-icon>
2854
- </button>
2855
- </div>
2856
- </div>
2857
- </div>
2858
- `, isInline: true, styles: [":host .preset-dialog-wrap{background:#00000080;position:fixed;z-index:1000;inset:0;display:flex;justify-content:center;align-items:center}:host .preset-dialog-wrap .preset-dialog-container{background:#fff;max-width:500px;width:75vw;max-height:90vh;border:1px solid #F8F8F8}:host .preset-dialog-wrap .preset-dialog-container .container-header{display:flex;justify-content:space-between;border-bottom:1px solid #F8F8F8;padding:25px;box-sizing:border-box;align-items:center}:host .preset-dialog-wrap .preset-dialog-container .container-header .header-info h3{display:flex;align-items:center}:host .preset-dialog-wrap .preset-dialog-container .container-header .header-info h3 co-icon{margin-right:10px}:host .preset-dialog-wrap .preset-dialog-container .container-header .close-icon{cursor:pointer}:host .preset-dialog-wrap .preset-dialog-container .body{display:flex;justify-content:space-between;border-bottom:1px solid #F8F8F8;padding:25px;box-sizing:border-box;align-items:center}:host .preset-dialog-wrap .preset-dialog-container .close-button-container{display:flex;justify-content:center;padding:10px}:host .preset-dialog-wrap .preset-dialog-container .close-button-container button{cursor:pointer;border:none;color:#fff;padding:8px;box-shadow:0 3px 3px #0000004d;height:auto;width:auto;margin:0 3px;border-radius:3px}:host .preset-dialog-wrap .preset-dialog-container .close-button-container button ::ng-deep co-icon [fill]{fill:#fff}:host .preset-dialog-wrap .preset-dialog-container .close-button-container button .co-icon{height:25px;width:25px}:host .preset-dialog-wrap .preset-dialog-container .close-button-container button .co-icon svg{fill:#fff}:host .preset-dialog-wrap .preset-dialog-container .close-button-container button .co-icon svg path,:host .preset-dialog-wrap .preset-dialog-container .close-button-container button .co-icon svg polygon{fill:#fff}:host .preset-dialog-wrap .preset-dialog-container .close-button-container .ok-button{background:#1a73e8}:host .preset-dialog-wrap .preset-dialog-container .close-button-container .close-button{background:#475060}:host ::ng-deep .content-wrapper{width:auto!important}\n"], dependencies: [{ kind: "component", type: i6.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
2859
- }
2860
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: PresetDialogComponent, decorators: [{
2861
- type: Component,
2862
- args: [{ selector: 'co-preset-dialog', template: `
2863
- <div class="preset-dialog-wrap">
2864
- <div class="preset-dialog-container">
2865
- <div class="container-header">
2866
- <div class="header-info">
2867
- <h3 [textContent]="'PRESET_SAVE_AS' | localize"></h3>
2868
- </div>
2869
- <div class="close-icon" (click)="closeAndCancelPreset()">
2870
- <co-icon class="fullscreen-button"
2871
- [iconData]="iconCache.getIcon(icon.CrossSkinny)"
2872
- (click)="closeAndCancelPreset()"></co-icon>
2873
- </div>
2874
- </div>
2875
-
2876
- <div class="body">
2877
- @if (presetId !== undefined && type === PresetDialogType.warning) {
2878
- <p [textContent]="'PRESET_OVERWRITE_TEXT' | localize"></p>
2879
- }
2880
- @if (presetId !== undefined && type === PresetDialogType.success) {
2881
- <p [textContent]="'PRESET_SAVED_TEXT' | localize"></p>
2882
- }
2883
- </div>
2884
-
2885
- <div class="close-button-container">
2886
- @if (presetId !== undefined && type === PresetDialogType.warning) {
2887
- <button class="ok-button" (click)="closeAndOverwritePreset()">
2888
- <co-icon [iconData]="iconCache.getIcon(icon.SaveSkinny)" (click)="closeAndOverwritePreset()"></co-icon>
2889
- </button>
2890
- }
2891
- <button class="close-button" (click)="closeAndCancelPreset()">
2892
- <co-icon [iconData]="iconCache.getIcon(icon.CrossSkinny)" (click)="closeAndCancelPreset()"></co-icon>
2893
- </button>
2894
- </div>
2895
- </div>
2896
- </div>
2897
- `, standalone: false, styles: [":host .preset-dialog-wrap{background:#00000080;position:fixed;z-index:1000;inset:0;display:flex;justify-content:center;align-items:center}:host .preset-dialog-wrap .preset-dialog-container{background:#fff;max-width:500px;width:75vw;max-height:90vh;border:1px solid #F8F8F8}:host .preset-dialog-wrap .preset-dialog-container .container-header{display:flex;justify-content:space-between;border-bottom:1px solid #F8F8F8;padding:25px;box-sizing:border-box;align-items:center}:host .preset-dialog-wrap .preset-dialog-container .container-header .header-info h3{display:flex;align-items:center}:host .preset-dialog-wrap .preset-dialog-container .container-header .header-info h3 co-icon{margin-right:10px}:host .preset-dialog-wrap .preset-dialog-container .container-header .close-icon{cursor:pointer}:host .preset-dialog-wrap .preset-dialog-container .body{display:flex;justify-content:space-between;border-bottom:1px solid #F8F8F8;padding:25px;box-sizing:border-box;align-items:center}:host .preset-dialog-wrap .preset-dialog-container .close-button-container{display:flex;justify-content:center;padding:10px}:host .preset-dialog-wrap .preset-dialog-container .close-button-container button{cursor:pointer;border:none;color:#fff;padding:8px;box-shadow:0 3px 3px #0000004d;height:auto;width:auto;margin:0 3px;border-radius:3px}:host .preset-dialog-wrap .preset-dialog-container .close-button-container button ::ng-deep co-icon [fill]{fill:#fff}:host .preset-dialog-wrap .preset-dialog-container .close-button-container button .co-icon{height:25px;width:25px}:host .preset-dialog-wrap .preset-dialog-container .close-button-container button .co-icon svg{fill:#fff}:host .preset-dialog-wrap .preset-dialog-container .close-button-container button .co-icon svg path,:host .preset-dialog-wrap .preset-dialog-container .close-button-container button .co-icon svg polygon{fill:#fff}:host .preset-dialog-wrap .preset-dialog-container .close-button-container .ok-button{background:#1a73e8}:host .preset-dialog-wrap .preset-dialog-container .close-button-container .close-button{background:#475060}:host ::ng-deep .content-wrapper{width:auto!important}\n"] }]
2898
- }], ctorParameters: () => [{ type: IconCacheService }], propDecorators: { showClass: [{
2899
- type: HostBinding,
2900
- args: ['class.co-preset-dialog']
2901
- }], type: [{
2902
- type: Input
2903
- }], presetId: [{
2904
- type: Input
2905
- }], cancelSavePreset: [{
2906
- type: Output
2907
- }], overwritePreset: [{
2908
- type: Output
2909
- }] } });
2910
-
2911
2704
  class ProductPageComponent {
2912
2705
  showClass() {
2913
2706
  return true;
@@ -2963,14 +2756,16 @@ class ProductPageComponent {
2963
2756
  get currentView() {
2964
2757
  return this._currentView;
2965
2758
  }
2966
- constructor(iconCache, settingsService, appEventService, _changeDetector, _ione, _configuringService, _configuratorSceneService) {
2759
+ constructor(iconCache, settingsService, appEventService, _changeDetector, _ione, _configuratorEventService, _configuratorConnectorService, _configuringService /*,
2760
+ private _configuratorSceneService: SceneService*/) {
2967
2761
  this.iconCache = iconCache;
2968
2762
  this.settingsService = settingsService;
2969
2763
  this.appEventService = appEventService;
2970
2764
  this._changeDetector = _changeDetector;
2971
2765
  this._ione = _ione;
2766
+ this._configuratorEventService = _configuratorEventService;
2767
+ this._configuratorConnectorService = _configuratorConnectorService;
2972
2768
  this._configuringService = _configuringService;
2973
- this._configuratorSceneService = _configuratorSceneService;
2974
2769
  this.icon = IconEnum;
2975
2770
  this.createFrozenArticle = true;
2976
2771
  this.isReturn = false;
@@ -2984,20 +2779,16 @@ class ProductPageComponent {
2984
2779
  this.showAddToCart = false;
2985
2780
  this.fullscreenAnimationEnd = false;
2986
2781
  this.settingsLoaded = false;
2987
- this.showPresetDialog = false;
2988
- this.configPresetId = undefined;
2989
- this.presetDialogType = PresetDialogType.info;
2990
2782
  this._fullScreen = false;
2991
2783
  this._subs = [];
2992
2784
  this._subs.push(this.appEventService.onForceRenderImage.subscribe((x) => {
2993
2785
  // TODO
2994
- }), this.settingsService.settingsLoaded.subscribe(loaded => this._handleSettingsLoaded(loaded)), this._pageLoadedSubscription = combineLatest([
2786
+ }), this.settingsService.settingsLoaded.subscribe(loaded => this._handleSettingsLoaded(loaded)), combineLatest([
2995
2787
  this._ione.controllerInitialized,
2996
2788
  this._ione.articleLoaded
2997
2789
  ]).subscribe(([initialized, articleLoaded]) => {
2998
2790
  if (initialized && articleLoaded) {
2999
2791
  this.settingsLoaded = initialized;
3000
- this._initConfigurator();
3001
2792
  }
3002
2793
  }), this.appEventService.onAnswersAvailable.subscribe((answers) => {
3003
2794
  if (answers && this.configurable) {
@@ -3008,15 +2799,14 @@ class ProductPageComponent {
3008
2799
  }
3009
2800
  }), this.appEventService.onGetRenderForRenderCarousel.subscribe((renderParameters) => {
3010
2801
  this._createRenderForCarousel(renderParameters);
3011
- }), this.appEventService.onArticleReceived.subscribe(article => this.setConfigPresetId(article.configPresetId)), this._configuringService.floorReady.subscribe((ready) => {
3012
- if (ready) {
3013
- this._startSceneInit();
3014
- this._startConfigurator();
2802
+ }), this._configuratorEventService.addedToScene.subscribe((buildResult) => {
2803
+ if (buildResult) {
2804
+ this.handleObjectAddedToScene(buildResult);
3015
2805
  }
3016
- }), this._configuringService.onRenderImageReceived.subscribe((image) => {
2806
+ }), this._configuratorEventService.renderImageChanged.subscribe((image) => {
3017
2807
  appEventService.onRenderImageReceived.next(image);
3018
- }), this._configuringService.onAnswersAvailable.subscribe((hasAnswers) => {
3019
- appEventService.onAnswersAvailable.next(hasAnswers);
2808
+ }), this._configuratorEventService.answerCountReceived.subscribe((count) => {
2809
+ appEventService.onAnswersAvailable.next(count > 0);
3020
2810
  }));
3021
2811
  }
3022
2812
  ngOnInit() {
@@ -3035,9 +2825,7 @@ class ProductPageComponent {
3035
2825
  if (this._initializedSub) {
3036
2826
  this._initializedSub.unsubscribe();
3037
2827
  }
3038
- this._pageLoadedSubscription.unsubscribe();
3039
2828
  this.fullscreenbutton = undefined;
3040
- this._configuringService.isConfiguring = false;
3041
2829
  }
3042
2830
  setInstance(event) {
3043
2831
  if (event.detail) {
@@ -3053,6 +2841,8 @@ class ProductPageComponent {
3053
2841
  }
3054
2842
  _handleSettingsLoaded(loaded) {
3055
2843
  if (loaded) {
2844
+ // @ts-ignore
2845
+ this._configuratorConnectorService.init(this.settingsService.settings);
3056
2846
  this._ione.initConnection();
3057
2847
  }
3058
2848
  }
@@ -3094,34 +2884,9 @@ class ProductPageComponent {
3094
2884
  handlePopUpChange(event) {
3095
2885
  this.showRelatedProductsPopup = event;
3096
2886
  }
3097
- setConfigPresetId(presetId) {
3098
- if (presetId) {
3099
- this.configPresetId = presetId;
3100
- }
3101
- }
3102
- handleSavePreset() {
3103
- if (this.configPresetId !== undefined) {
3104
- // prompt warning
3105
- this.presetDialogType = PresetDialogType.warning;
3106
- this.showPresetDialog = true;
3107
- }
3108
- else {
3109
- this._savePreset();
3110
- }
3111
- }
3112
- handleCancelSavePreset(event) {
3113
- this.presetDialogType = PresetDialogType.info;
3114
- this.showPresetDialog = false;
3115
- }
3116
- handleOverwritePreset(event) {
3117
- this.presetDialogType = PresetDialogType.info;
3118
- this.showPresetDialog = false;
3119
- this._savePreset();
3120
- }
3121
- handleBuildFinished(build) {
3122
- if (this.threeD) {
2887
+ handleObjectAddedToScene(build) {
2888
+ if (this.threeD && this.enableRenderCarousel) {
3123
2889
  this._buildResult = build;
3124
- this._configuringService.addBuildToScene(build);
3125
2890
  if (this.settingsService.settings && this.settingsService.settings.renderParameters) {
3126
2891
  // Start a render
3127
2892
  const options = {
@@ -3136,40 +2901,32 @@ class ProductPageComponent {
3136
2901
  }
3137
2902
  }
3138
2903
  }
3139
- _savePreset() {
3140
- this._ione.savePreset().then((success) => {
3141
- if (success) {
3142
- this.presetDialogType = PresetDialogType.success;
3143
- this.showPresetDialog = true;
3144
- }
3145
- });
3146
- }
3147
- _initConfigurator() {
3148
- // this should be async
3149
- if (this.settingsLoaded) {
3150
- this._configuringService.init(this.settings).then(done => {
3151
- this._configuringService.isConfiguring = true;
3152
- });
3153
- }
3154
- }
3155
- _startConfigurator() {
3156
- if (this.settingsLoaded) {
3157
- const furnitureData = new ConfigurationResultObject();
3158
- furnitureData.sku = this.sku;
3159
- this._configuringService.configure(furnitureData).then(loaded => {
3160
- });
3161
- }
3162
- }
3163
- _startSceneInit() {
3164
- if (this.settingsLoaded) {
3165
- this._configuringService.handleLoadSceneContent();
3166
- this._configuringService.scene = this._configuratorSceneService.scene;
3167
- }
3168
- }
2904
+ // private _initConfigurator(): void {
2905
+ // // this should be async
2906
+ // if (this.settingsLoaded) {
2907
+ // this._configuringService.init(this.settings).then(done => {
2908
+ // // this._configuringService.isConfiguring = true;
2909
+ // });
2910
+ // }
2911
+ // }
2912
+ // private _startConfigurator(): void {
2913
+ // if (this.settingsLoaded) {
2914
+ // const furnitureData: ConfigurationResultObject = new ConfigurationResultObject();
2915
+ // furnitureData.sku = this.sku;
2916
+ // this._configuringService.configure(furnitureData).then(loaded => {
2917
+ // });
2918
+ // }
2919
+ // }
2920
+ // private _startSceneInit(): void {
2921
+ // if (this.settingsLoaded) {
2922
+ // this._configuringService.handleLoadSceneContent();
2923
+ // this._configuringService.scene = this._configuratorSceneService.scene;
2924
+ // }
2925
+ // }
3169
2926
  _createRenderForCarousel(renderOptions) {
3170
2927
  this._configuringService.renderImage(this._buildResult, renderOptions, false);
3171
2928
  }
3172
- 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 }); }
2929
+ 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.ConfiguratorEventService }, { token: i5.ConfiguratorConnectorService }, { token: i5.ConfiguringService }], target: i0.ɵɵFactoryTarget.Component }); }
3173
2930
  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: `
3174
2931
  @if (settingsLoaded) {
3175
2932
  <div class="page-wrapper">
@@ -3227,45 +2984,32 @@ class ProductPageComponent {
3227
2984
  <div class="product-page-scroll-container">
3228
2985
  <div class="product-page-block-description">
3229
2986
  <app-product-description
3230
-
3231
- [article]="article">
2987
+ [article]="article"
2988
+ [configuring]="configuring">
3232
2989
  </app-product-description>
3233
2990
  </div>
3234
2991
  <div class="product-page-block-additional">
3235
2992
  <div class="product-page-block-additional-description">
3236
2993
  <app-product-additional-description
3237
-
3238
2994
  [article]="article">
3239
2995
  </app-product-additional-description>
3240
2996
  </div>
3241
2997
  <div class="product-page-block-price" [class.full]="configuring">
3242
- @if (configuring && this.settingsService.settings.options.showSaveAsPresetButton) {
3243
- <div class="preset-container">
3244
- <co-button
3245
- class="save-preset-button"
3246
- [iconData]="iconCache.getIcon(icon.SaveDisk)"
3247
- [label]="'PRESET_SAVE_AS' | localize"
3248
- (onClick)="handleSavePreset()">
3249
- </co-button>
3250
- </div>
3251
- }
3252
2998
  @if (!configuring) {
3253
2999
  <app-product-price
3254
-
3255
3000
  [pricing]="article?.pricing"
3256
3001
  [configurable]="configurable">
3257
3002
  </app-product-price>
3258
3003
  }
3259
-
3260
- @if (settingsLoaded) {
3004
+ @if (settingsLoaded && configuring) {
3261
3005
  <co-configurator
3262
3006
  [class.hide-configurator]="!configuring"
3263
3007
  [class.show-configurator]="configuring"
3008
+ [sku]="sku"
3264
3009
  [showLoader]="true"
3265
3010
  [animateSlideout]="false"
3266
3011
  [showHeaderInformation]="false"
3267
- [canCloseConfigurator]="false"
3268
- (buildResult)="handleBuildFinished($event)">
3012
+ [canCloseConfigurator]="false">
3269
3013
  </co-configurator>
3270
3014
  }
3271
3015
  </div>
@@ -3288,7 +3032,6 @@ class ProductPageComponent {
3288
3032
  @if (configuring) {
3289
3033
  <div class="addtocart-reserved product-action-buttons" [class.full-screen]="fullScreen">
3290
3034
  <app-product-addtocart
3291
-
3292
3035
  [configurable]="false"
3293
3036
  [fullscreen]="fullScreen"
3294
3037
  [showAddToCart]="showAddToCart"
@@ -3303,7 +3046,6 @@ class ProductPageComponent {
3303
3046
  <div class="product-page-block-variants">
3304
3047
  @if (article?.relatedArticles && article?.relatedArticles.length > 0) {
3305
3048
  <app-product-related
3306
-
3307
3049
  [externalSource]="externalSource"
3308
3050
  [articles]="article?.relatedArticles" [refType]="64"
3309
3051
  [label]="'VARIANTS' | localize">
@@ -3312,7 +3054,6 @@ class ProductPageComponent {
3312
3054
  </div>
3313
3055
  <div class="product-page-block-stock">
3314
3056
  <app-product-stock
3315
-
3316
3057
  [goodId]="article?.goodId"
3317
3058
  (openStockEvent)="openStock()">
3318
3059
  </app-product-stock>
@@ -3325,7 +3066,6 @@ class ProductPageComponent {
3325
3066
  @if (article) {
3326
3067
  <div class="page-wrapper-left swimming-lane">
3327
3068
  <app-product-info-tabs
3328
-
3329
3069
  [article]="article">
3330
3070
  </app-product-info-tabs>
3331
3071
  </div>
@@ -3369,17 +3109,8 @@ class ProductPageComponent {
3369
3109
  </div>
3370
3110
  }
3371
3111
  </div>
3372
-
3373
- @if (presetDialogType) {
3374
- <co-preset-dialog
3375
- [type]="presetDialogType"
3376
- [presetId]="configPresetId"
3377
- (cancelSavePreset)="handleCancelSavePreset($event)"
3378
- (overwritePreset)="handleOverwritePreset($event)">
3379
- </co-preset-dialog>
3380
- }
3381
3112
  }
3382
- `, isInline: true, styles: [".co-product-page .page-wrapper{font-family:Public Sans;font-size:12px;display:flex;flex-direction:column;max-width:100%;padding:0 10px;margin:0 auto}.co-product-page .page-wrapper-content{display:flex;flex-direction:row;margin:0 0 10px;gap:10px}.co-product-page .page-wrapper-content:first-child{margin-top:10px}.co-product-page .page-wrapper-content.no-top-margin{margin-top:0}.co-product-page .swimming-lane{display:flex;flex-wrap:wrap;box-shadow:1px 1px 4px #0000001a;padding:30px;background:#fff}.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:0;padding-right:0;height:auto;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:#4e9b7e}.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:#4e9b7e}.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;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-extra-bottom{outline:none;padding:5px 0;background:transparent!important;min-height:60px}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom .co-button{margin:0 0 5px!important;width:34px;height:34px;border:none;background:#1a73e8;cursor:pointer;border-radius:4px;padding:0!important;font-size:0}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom .co-button .co-icon{width:28px;height:28px;margin:0 2px}.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:#1a73e8}.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: [
3113
+ `, isInline: true, styles: [".co-product-page .page-wrapper{font-family:Public Sans;font-size:12px;display:flex;flex-direction:column;max-width:100%;padding:0 10px;margin:0 auto}.co-product-page .page-wrapper-content{display:flex;flex-direction:row;margin:0 0 10px;gap:10px}.co-product-page .page-wrapper-content:first-child{margin-top:10px}.co-product-page .page-wrapper-content.no-top-margin{margin-top:0}.co-product-page .swimming-lane{display:flex;flex-wrap:wrap;box-shadow:1px 1px 4px #0000001a;padding:30px;background:#fff}.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-lite-selector.floating co-selections-summary{position:relative}.co-product-page .product-page-block-price .show-configurator .co-lite-selector:not(.custom-dimensions).floating co-selections-summary{top:auto;background:none}.co-product-page .product-page-block-price .show-configurator .co-selections-summary .selections-content{gap:10px;box-sizing:border-box;padding:10px}.co-product-page .product-page-block-price .show-configurator .co-product-configurator .product-configurator-container{position:relative;width:auto;top:auto;right:auto;padding-left:0;padding-right:0;height:auto;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:#4e9b7e}.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:#4e9b7e}.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;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-extra-bottom{outline:none;padding:5px 0;background:transparent!important;min-height:60px}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom .co-button{margin:0 0 5px!important;width:34px;height:34px;border:none;background:#1a73e8;cursor:pointer;border-radius:4px;padding:0!important;font-size:0}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom .co-button .co-icon{width:28px;height:28px;margin:0 2px}.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:#1a73e8}.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", "configuring"] }, { 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: i5.ConfiguratorComponent, selector: "co-configurator", inputs: ["sku", "instanceId", "settings", "scene", "showLoader", "showProgressBar", "showErrorMessages", "outputErrorMessages", "canCloseConfigurator", "animateSlideout", "showHeaderInformation"], outputs: ["isLoading", "updateProgressBar", "errorMessages", "showChange"] }, { kind: "component", type: i5.ConfiguratorSceneComponent, selector: "co-configurator-scene", inputs: ["showSceneBuildLoader"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }], animations: [
3383
3114
  trigger('toggleFullScreen', [
3384
3115
  state('fullscreen', style({ 'position': 'fixed', 'top': '0', 'left': '0', 'width': '100%', 'height': '100%' })),
3385
3116
  state('halfscreen', style({ 'position': '*', 'top': '*', 'left': '*', 'width': '*', 'height': '*' })),
@@ -3471,45 +3202,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
3471
3202
  <div class="product-page-scroll-container">
3472
3203
  <div class="product-page-block-description">
3473
3204
  <app-product-description
3474
-
3475
- [article]="article">
3205
+ [article]="article"
3206
+ [configuring]="configuring">
3476
3207
  </app-product-description>
3477
3208
  </div>
3478
3209
  <div class="product-page-block-additional">
3479
3210
  <div class="product-page-block-additional-description">
3480
3211
  <app-product-additional-description
3481
-
3482
3212
  [article]="article">
3483
3213
  </app-product-additional-description>
3484
3214
  </div>
3485
3215
  <div class="product-page-block-price" [class.full]="configuring">
3486
- @if (configuring && this.settingsService.settings.options.showSaveAsPresetButton) {
3487
- <div class="preset-container">
3488
- <co-button
3489
- class="save-preset-button"
3490
- [iconData]="iconCache.getIcon(icon.SaveDisk)"
3491
- [label]="'PRESET_SAVE_AS' | localize"
3492
- (onClick)="handleSavePreset()">
3493
- </co-button>
3494
- </div>
3495
- }
3496
3216
  @if (!configuring) {
3497
3217
  <app-product-price
3498
-
3499
3218
  [pricing]="article?.pricing"
3500
3219
  [configurable]="configurable">
3501
3220
  </app-product-price>
3502
3221
  }
3503
-
3504
- @if (settingsLoaded) {
3222
+ @if (settingsLoaded && configuring) {
3505
3223
  <co-configurator
3506
3224
  [class.hide-configurator]="!configuring"
3507
3225
  [class.show-configurator]="configuring"
3226
+ [sku]="sku"
3508
3227
  [showLoader]="true"
3509
3228
  [animateSlideout]="false"
3510
3229
  [showHeaderInformation]="false"
3511
- [canCloseConfigurator]="false"
3512
- (buildResult)="handleBuildFinished($event)">
3230
+ [canCloseConfigurator]="false">
3513
3231
  </co-configurator>
3514
3232
  }
3515
3233
  </div>
@@ -3532,7 +3250,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
3532
3250
  @if (configuring) {
3533
3251
  <div class="addtocart-reserved product-action-buttons" [class.full-screen]="fullScreen">
3534
3252
  <app-product-addtocart
3535
-
3536
3253
  [configurable]="false"
3537
3254
  [fullscreen]="fullScreen"
3538
3255
  [showAddToCart]="showAddToCart"
@@ -3547,7 +3264,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
3547
3264
  <div class="product-page-block-variants">
3548
3265
  @if (article?.relatedArticles && article?.relatedArticles.length > 0) {
3549
3266
  <app-product-related
3550
-
3551
3267
  [externalSource]="externalSource"
3552
3268
  [articles]="article?.relatedArticles" [refType]="64"
3553
3269
  [label]="'VARIANTS' | localize">
@@ -3556,7 +3272,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
3556
3272
  </div>
3557
3273
  <div class="product-page-block-stock">
3558
3274
  <app-product-stock
3559
-
3560
3275
  [goodId]="article?.goodId"
3561
3276
  (openStockEvent)="openStock()">
3562
3277
  </app-product-stock>
@@ -3569,7 +3284,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
3569
3284
  @if (article) {
3570
3285
  <div class="page-wrapper-left swimming-lane">
3571
3286
  <app-product-info-tabs
3572
-
3573
3287
  [article]="article">
3574
3288
  </app-product-info-tabs>
3575
3289
  </div>
@@ -3613,15 +3327,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
3613
3327
  </div>
3614
3328
  }
3615
3329
  </div>
3616
-
3617
- @if (presetDialogType) {
3618
- <co-preset-dialog
3619
- [type]="presetDialogType"
3620
- [presetId]="configPresetId"
3621
- (cancelSavePreset)="handleCancelSavePreset($event)"
3622
- (overwritePreset)="handleOverwritePreset($event)">
3623
- </co-preset-dialog>
3624
- }
3625
3330
  }
3626
3331
  `, encapsulation: ViewEncapsulation.None, animations: [
3627
3332
  trigger('toggleFullScreen', [
@@ -3654,8 +3359,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
3654
3359
  state('*', style({ 'opacity': '1' })),
3655
3360
  transition('void => *', animate('200ms ease-in-out'))
3656
3361
  ])
3657
- ], standalone: false, styles: [".co-product-page .page-wrapper{font-family:Public Sans;font-size:12px;display:flex;flex-direction:column;max-width:100%;padding:0 10px;margin:0 auto}.co-product-page .page-wrapper-content{display:flex;flex-direction:row;margin:0 0 10px;gap:10px}.co-product-page .page-wrapper-content:first-child{margin-top:10px}.co-product-page .page-wrapper-content.no-top-margin{margin-top:0}.co-product-page .swimming-lane{display:flex;flex-wrap:wrap;box-shadow:1px 1px 4px #0000001a;padding:30px;background:#fff}.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:0;padding-right:0;height:auto;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:#4e9b7e}.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:#4e9b7e}.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;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-extra-bottom{outline:none;padding:5px 0;background:transparent!important;min-height:60px}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom .co-button{margin:0 0 5px!important;width:34px;height:34px;border:none;background:#1a73e8;cursor:pointer;border-radius:4px;padding:0!important;font-size:0}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom .co-button .co-icon{width:28px;height:28px;margin:0 2px}.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:#1a73e8}.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"] }]
3658
- }], ctorParameters: () => [{ type: IconCacheService }, { type: ProductSettingsService }, { type: ProductEventService }, { type: i0.ChangeDetectorRef }, { type: ProductConnectorService }, { type: i5.ConfiguringService }, { type: i5.SceneService }], propDecorators: { showClass: [{
3362
+ ], standalone: false, styles: [".co-product-page .page-wrapper{font-family:Public Sans;font-size:12px;display:flex;flex-direction:column;max-width:100%;padding:0 10px;margin:0 auto}.co-product-page .page-wrapper-content{display:flex;flex-direction:row;margin:0 0 10px;gap:10px}.co-product-page .page-wrapper-content:first-child{margin-top:10px}.co-product-page .page-wrapper-content.no-top-margin{margin-top:0}.co-product-page .swimming-lane{display:flex;flex-wrap:wrap;box-shadow:1px 1px 4px #0000001a;padding:30px;background:#fff}.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-lite-selector.floating co-selections-summary{position:relative}.co-product-page .product-page-block-price .show-configurator .co-lite-selector:not(.custom-dimensions).floating co-selections-summary{top:auto;background:none}.co-product-page .product-page-block-price .show-configurator .co-selections-summary .selections-content{gap:10px;box-sizing:border-box;padding:10px}.co-product-page .product-page-block-price .show-configurator .co-product-configurator .product-configurator-container{position:relative;width:auto;top:auto;right:auto;padding-left:0;padding-right:0;height:auto;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:#4e9b7e}.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:#4e9b7e}.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;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-extra-bottom{outline:none;padding:5px 0;background:transparent!important;min-height:60px}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom .co-button{margin:0 0 5px!important;width:34px;height:34px;border:none;background:#1a73e8;cursor:pointer;border-radius:4px;padding:0!important;font-size:0}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom .co-button .co-icon{width:28px;height:28px;margin:0 2px}.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:#1a73e8}.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"] }]
3363
+ }], ctorParameters: () => [{ type: IconCacheService }, { type: ProductSettingsService }, { type: ProductEventService }, { type: i0.ChangeDetectorRef }, { type: ProductConnectorService }, { type: i5.ConfiguratorEventService }, { type: i5.ConfiguratorConnectorService }, { type: i5.ConfiguringService }], propDecorators: { showClass: [{
3659
3364
  type: HostBinding,
3660
3365
  args: ['class.co-product-page']
3661
3366
  }], fullscreenbutton: [{
@@ -3726,7 +3431,7 @@ class IoneProductComponent {
3726
3431
  // this.sku = '104';
3727
3432
  // this.sku = "70000107";
3728
3433
  // this.sku = "grover";
3729
- this.sku = "001-123"; // bank istanbul jillis
3434
+ this.sku = "1000610952"; // bank istanbul jillis
3730
3435
  // this.sku = "4387";
3731
3436
  // this.sku = "1000612725";
3732
3437
  // this.sku = '22000';
@@ -3789,8 +3494,7 @@ class IoneProductComponent {
3789
3494
  ProductSettingsService,
3790
3495
  ProductConnectorService,
3791
3496
  ProductEventService,
3792
- ProductConnectorAdapterService,
3793
- GoogleTranslateService
3497
+ ProductConnectorAdapterService
3794
3498
  ], ngImport: i0, template: `
3795
3499
  @if (settingsLoaded) {
3796
3500
  <app-product-page
@@ -3821,8 +3525,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
3821
3525
  ProductSettingsService,
3822
3526
  ProductConnectorService,
3823
3527
  ProductEventService,
3824
- ProductConnectorAdapterService,
3825
- GoogleTranslateService
3528
+ ProductConnectorAdapterService
3826
3529
  ], encapsulation: ViewEncapsulation.Emulated, standalone: false }]
3827
3530
  }], ctorParameters: () => [{ type: ProductEventService }, { type: ProductSettingsService }, { type: ProductConnectorService }, { type: LocalStorageService }], propDecorators: { sku: [{
3828
3531
  type: Input
@@ -3863,10 +3566,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
3863
3566
  class PipeModule {
3864
3567
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: PipeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
3865
3568
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: PipeModule, declarations: [LocalizePipe,
3866
- PriceDisplayPipe,
3867
- GoogleTranslatePipe], exports: [LocalizePipe,
3868
- PriceDisplayPipe,
3869
- GoogleTranslatePipe] }); }
3569
+ PriceDisplayPipe], exports: [LocalizePipe,
3570
+ PriceDisplayPipe] }); }
3870
3571
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: PipeModule, providers: [
3871
3572
  LocalizePipe
3872
3573
  ] }); }
@@ -3876,16 +3577,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
3876
3577
  args: [{
3877
3578
  declarations: [
3878
3579
  LocalizePipe,
3879
- PriceDisplayPipe,
3880
- GoogleTranslatePipe
3580
+ PriceDisplayPipe
3881
3581
  ],
3882
3582
  providers: [
3883
3583
  LocalizePipe
3884
3584
  ],
3885
3585
  exports: [
3886
3586
  LocalizePipe,
3887
- PriceDisplayPipe,
3888
- GoogleTranslatePipe
3587
+ PriceDisplayPipe
3889
3588
  ]
3890
3589
  }]
3891
3590
  }] });
@@ -3952,16 +3651,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
3952
3651
  class ProductDescriptionModule {
3953
3652
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductDescriptionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
3954
3653
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: ProductDescriptionModule, declarations: [ProductDescriptionComponent], imports: [CommonModule,
3955
- PipeModule], exports: [ProductDescriptionComponent] }); }
3654
+ PipeModule,
3655
+ ConfigurationPresetModule], exports: [ProductDescriptionComponent] }); }
3956
3656
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductDescriptionModule, imports: [CommonModule,
3957
- PipeModule] }); }
3657
+ PipeModule,
3658
+ ConfigurationPresetModule] }); }
3958
3659
  }
3959
3660
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductDescriptionModule, decorators: [{
3960
3661
  type: NgModule,
3961
3662
  args: [{
3962
3663
  imports: [
3963
3664
  CommonModule,
3964
- PipeModule
3665
+ PipeModule,
3666
+ ConfigurationPresetModule
3965
3667
  ],
3966
3668
  declarations: [
3967
3669
  ProductDescriptionComponent
@@ -4156,7 +3858,7 @@ class ProductDeliveryComponent {
4156
3858
  <div class="pp-default-description" [textContent]="deliveryDescription | date:'dd MMMM yyyy'"></div>
4157
3859
  </div>
4158
3860
  </div>
4159
- `, 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: i1$1.DatePipe, name: "date" }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
3861
+ `, 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" }] }); }
4160
3862
  }
4161
3863
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductDeliveryComponent, decorators: [{
4162
3864
  type: Component,
@@ -4403,32 +4105,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
4403
4105
  }]
4404
4106
  }] });
4405
4107
 
4406
- class PresetDialogModule {
4407
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: PresetDialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
4408
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: PresetDialogModule, declarations: [PresetDialogComponent], imports: [IconModule,
4409
- PipeModule,
4410
- ProductRelatedModule], exports: [PresetDialogComponent] }); }
4411
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: PresetDialogModule, imports: [IconModule,
4412
- PipeModule,
4413
- ProductRelatedModule] }); }
4414
- }
4415
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: PresetDialogModule, decorators: [{
4416
- type: NgModule,
4417
- args: [{
4418
- imports: [
4419
- IconModule,
4420
- PipeModule,
4421
- ProductRelatedModule
4422
- ],
4423
- declarations: [
4424
- PresetDialogComponent
4425
- ],
4426
- exports: [
4427
- PresetDialogComponent
4428
- ]
4429
- }]
4430
- }] });
4431
-
4432
4108
  class ProductPageModule {
4433
4109
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductPageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
4434
4110
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: ProductPageModule, declarations: [ProductPageComponent], imports: [CommonModule,
@@ -4448,7 +4124,6 @@ class ProductPageModule {
4448
4124
  LoaderModule,
4449
4125
  RenderCarouselModule,
4450
4126
  ButtonModule,
4451
- PresetDialogModule,
4452
4127
  ConfiguratorModule,
4453
4128
  ConfiguratorSceneModule], exports: [ProductPageComponent] }); }
4454
4129
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductPageModule, imports: [CommonModule,
@@ -4468,7 +4143,6 @@ class ProductPageModule {
4468
4143
  LoaderModule,
4469
4144
  RenderCarouselModule,
4470
4145
  ButtonModule,
4471
- PresetDialogModule,
4472
4146
  ConfiguratorModule,
4473
4147
  ConfiguratorSceneModule] }); }
4474
4148
  }
@@ -4493,7 +4167,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
4493
4167
  LoaderModule,
4494
4168
  RenderCarouselModule,
4495
4169
  ButtonModule,
4496
- PresetDialogModule,
4497
4170
  ConfiguratorModule,
4498
4171
  ConfiguratorSceneModule
4499
4172
  ],
@@ -4866,8 +4539,9 @@ class ProductExternalSourceComponent {
4866
4539
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductExternalSourceComponent, deps: [{ token: i1.DomSanitizer }, { token: ProductConnectorService }, { token: ProductEventService }], target: i0.ɵɵFactoryTarget.Component }); }
4867
4540
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: ProductExternalSourceComponent, isStandalone: false, selector: "co-product-external-source", inputs: { sku: "sku", catalogDefinition: "catalogDefinition", externalSource: "externalSource", externalCatalogStartupInfo: "externalCatalogStartupInfo", options: "options" }, outputs: { addToCart: "addToCart", addToQuote: "addToQuote", alternativeClick: "alternativeClick", configuratorFinished: "configuratorFinished" }, host: { properties: { "class.co-product-external-source": "this.showClass" } }, providers: [
4868
4541
  ProductSettingsService,
4869
- ProductConnectorAdapterService,
4870
- ProductConnectorService
4542
+ ProductConnectorService,
4543
+ ProductEventService,
4544
+ ProductConnectorAdapterService
4871
4545
  ], ngImport: i0, template: `
4872
4546
  @if (loaded) {
4873
4547
  @if (showProduct) {
@@ -4919,8 +4593,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
4919
4593
  `,
4920
4594
  providers: [
4921
4595
  ProductSettingsService,
4922
- ProductConnectorAdapterService,
4923
- ProductConnectorService
4596
+ ProductConnectorService,
4597
+ ProductEventService,
4598
+ ProductConnectorAdapterService
4924
4599
  ],
4925
4600
  encapsulation: ViewEncapsulation.None,
4926
4601
  standalone: false