@colijnit/product 262.1.8 → 262.1.10

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.
@@ -2,6 +2,7 @@ import * as i0 from '@angular/core';
2
2
  import { Injectable, Pipe, EventEmitter, Output, Input, Component, ElementRef, HostBinding, HostListener, ViewChild, ChangeDetectionStrategy, SecurityContext, ViewEncapsulation, ContentChild, NgModule, CUSTOM_ELEMENTS_SCHEMA, PLATFORM_ID, Inject, NO_ERRORS_SCHEMA } from '@angular/core';
3
3
  import { Subject, BehaviorSubject, combineLatest } from 'rxjs';
4
4
  import { Options } from '@colijnit/ioneconnector/build/model/options';
5
+ import { ConfiguratorStatisticsEnvironment } from '@colijnit/articleapi/build/model/configurator-statistics-environment';
5
6
  import { ArticleFullObject } from '@colijnit/articleapi/build/model/article-full-object';
6
7
  import { SuperArticle } from '@colijnit/articleapi/build/model/super-article';
7
8
  import { Articles } from '@colijnit/articleapi/build/articles';
@@ -25,7 +26,6 @@ import { IconModule, LoaderModule, ScrollContainerModule, InputNumberPickerModul
25
26
  import { CoDocument } from '@colijnit/mainapi/build/model/co-document.bo';
26
27
  import * as i6$1 from '@angular/cdk/overlay';
27
28
  import { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';
28
- import { ConfiguratorStatisticsEnvironment } from '@colijnit/articleapi/build/model/configurator-statistics-environment';
29
29
  import * as i3 from '@colijnit/sharedcomponents';
30
30
  import { FilesUploadModule } from '@colijnit/sharedcomponents';
31
31
 
@@ -34,8 +34,8 @@ 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.8";
38
- this.publishDate = "30-6-2026, 16:40:54";
37
+ this.symVer = "262.1.10";
38
+ this.publishDate = "18-9-2026, 16:01:48";
39
39
  }
40
40
  }
41
41
 
@@ -104,7 +104,9 @@ class ProductEventService {
104
104
  }
105
105
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductEventService, decorators: [{
106
106
  type: Injectable,
107
- args: [{ providedIn: 'root' }]
107
+ args: [{
108
+ providedIn: 'root'
109
+ }]
108
110
  }] });
109
111
 
110
112
  // Sole responsibility is simply to wrap around a colijn.Connector to create a stable inner interface to the library in a 1:1 method way.
@@ -253,15 +255,6 @@ class ProductConnectorAdapterService {
253
255
  return this._boFactory.makeWithRawBackendData(ImageContent, response.resultObject);
254
256
  }
255
257
  }
256
- async savePreset() {
257
- const response = await this.articleConnector.storePreset();
258
- if (response && response.validationResult && response.validationResult.success) {
259
- return Promise.resolve(true);
260
- }
261
- else {
262
- return Promise.resolve(false);
263
- }
264
- }
265
258
  async getDefaultLanguage(upId) {
266
259
  // this should always be fetched from the mainapi from the client
267
260
  const response = await this.mainConnector.getPublicParams(upId);
@@ -651,6 +644,42 @@ class ProductConnectorService {
651
644
  getSuperArticle(id) {
652
645
  return this._adapterService.getSuperArticle(id);
653
646
  }
647
+ async prepareArticleForCart(article, quantity, externalSource, createFrozenArticle = true) {
648
+ if (!article) {
649
+ return null;
650
+ }
651
+ if (createFrozenArticle) {
652
+ if (article.goodType === 'B') {
653
+ if (article.isConfigurable) {
654
+ const json = await this.getJSONFromArticleObject(article.goodId, article.goodType, quantity, externalSource);
655
+ if (json) {
656
+ return json;
657
+ }
658
+ }
659
+ else {
660
+ return await this._handleGeneratedArticleDirectly(article.goodId, quantity);
661
+ }
662
+ }
663
+ else {
664
+ if (externalSource) {
665
+ return await this.getJSONFromArticleObject(article.goodId, article.goodType, quantity, externalSource);
666
+ }
667
+ else {
668
+ return article;
669
+ }
670
+ }
671
+ }
672
+ else {
673
+ if (article.goodType === 'B') {
674
+ if (!article.isConfigurable) {
675
+ return await this._handleGeneratedArticleDirectly(article.goodId, quantity);
676
+ }
677
+ }
678
+ else {
679
+ return article;
680
+ }
681
+ }
682
+ }
654
683
  getJsonArticleFlatTree(goodId, goodType, quantity, externalSource = false, showLoader = true, configuratorStatistics) {
655
684
  return this._adapterService.getJsonArticleFlatTree(goodId, goodType, quantity, externalSource, showLoader, this._instanceId, configuratorStatistics);
656
685
  }
@@ -663,15 +692,28 @@ class ProductConnectorService {
663
692
  async getImageForCoDocument(document, thumb = false) {
664
693
  return this._adapterService.getImageForCoDocument(document, thumb);
665
694
  }
666
- async savePreset() {
667
- return await this._adapterService.savePreset();
668
- }
669
695
  async getDefaultLanguage(upId) {
670
696
  return await this._adapterService.getDefaultLanguage(upId);
671
697
  }
672
698
  onShowLoaderChange(showLoader) {
673
699
  this._shouldShowLoader = showLoader;
674
700
  }
701
+ async getJSONFromArticleObject(goodId, goodType, quantity, externalSource) {
702
+ const configuratorStatistics = new ConfiguratorStatisticsEnvironment();
703
+ configuratorStatistics.userType = 'iOneProductPage';
704
+ configuratorStatistics.transactionType = 'Sales';
705
+ configuratorStatistics.actionDomain = 'bundle';
706
+ configuratorStatistics.sessionId = this._settingsService.settings.session ? this._settingsService.settings.session.sessionId : 'unknown';
707
+ configuratorStatistics.webHost = window.location.host;
708
+ configuratorStatistics.bundleHost = window.location.host;
709
+ return await this.getJsonArticleFlatTree(goodId, goodType, quantity, externalSource, true, configuratorStatistics);
710
+ }
711
+ async _handleGeneratedArticleDirectly(goodId, quantity) {
712
+ const generatedGoodId = await this.getGeneratedArtDirectly(goodId, true);
713
+ if (generatedGoodId) {
714
+ return await this._adapterService.getArticleFullObject(generatedGoodId, true);
715
+ }
716
+ }
675
717
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductConnectorService, deps: [{ token: ProductConnectorAdapterService }, { token: ProductSettingsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
676
718
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductConnectorService }); }
677
719
  }
@@ -1665,66 +1707,11 @@ class ProductAddtocartComponent {
1665
1707
  this.addToCartButton = undefined;
1666
1708
  }
1667
1709
  async handleAddToCartClick(quantity) {
1668
- if (this.createFrozenArticle) {
1669
- if (this.article.goodType === 'B') {
1670
- if (this.article.isConfigurable) {
1671
- const article = await this._getJSONFromArticleObject({ article: this.article, quantity: quantity });
1672
- if (article) {
1673
- this._appEventService.onAddToCart.next({ article: article, quantity: quantity });
1674
- }
1675
- }
1676
- else {
1677
- await this._handleGeneratedArticleDirectly(quantity);
1678
- }
1679
- }
1680
- else {
1681
- let article;
1682
- if (!!this.externalSource) {
1683
- article = await this._getJSONFromArticleObject({ article: this.article, quantity: quantity });
1684
- }
1685
- else {
1686
- article = this._ioneControllerService.convertArticleFullObjectToArticleExtended(this.article);
1687
- }
1688
- if (article) {
1689
- this._appEventService.onAddToCart.next({ article: article, quantity: quantity });
1690
- }
1691
- }
1692
- }
1693
- else {
1694
- if (this.article.goodType === 'B') {
1695
- if (!this.article.isConfigurable) {
1696
- await this._handleGeneratedArticleDirectly(quantity);
1697
- }
1698
- }
1699
- else {
1700
- const article = this._ioneControllerService.convertArticleFullObjectToArticleExtended(this.article);
1701
- this._appEventService.onAddToCart.next({ article: article, quantity: quantity });
1702
- }
1703
- }
1710
+ const article = await this._ioneControllerService.prepareArticleForCart(this.article, quantity, !!this.externalSource, this.createFrozenArticle);
1711
+ this._appEventService.onAddToCart.next({ article: article, quantity: quantity });
1704
1712
  }
1705
1713
  async handleAddToQuoteClick(quantity) {
1706
- this._appEventService.onAddToQuote.next(await this._getJSONFromArticleObject({ article: this.article, quantity: quantity }));
1707
- }
1708
- async _getJSONFromArticleObject(article) {
1709
- const configuratorStatistics = new ConfiguratorStatisticsEnvironment();
1710
- configuratorStatistics.userType = 'iOneProductPage';
1711
- configuratorStatistics.transactionType = 'Sales';
1712
- configuratorStatistics.actionDomain = 'bundle';
1713
- configuratorStatistics.sessionId = this._settingsService.settings.session ? this._settingsService.settings.session.sessionId : 'unknown';
1714
- configuratorStatistics.webHost = window.location.host;
1715
- configuratorStatistics.bundleHost = window.location.host;
1716
- return await this._ioneControllerService.getJsonArticleFlatTree(article.article.goodId, article.article.goodType, article.quantity, !!this.externalSource, true, configuratorStatistics);
1717
- }
1718
- async _handleGeneratedArticleDirectly(quantity) {
1719
- const generatedGoodId = await this._getGeneratedArtDirectly(this.article.goodId);
1720
- if (generatedGoodId) {
1721
- const articleFull = await this._productConnectorAdapterService.getArticleFullObject(generatedGoodId, true);
1722
- const article = this._ioneControllerService.convertArticleFullObjectToArticleExtended(articleFull);
1723
- this._appEventService.onAddToCart.next({ article: article, quantity: quantity });
1724
- }
1725
- }
1726
- async _getGeneratedArtDirectly(goodId) {
1727
- return await this._ioneControllerService.getGeneratedArtDirectly(goodId, true);
1714
+ this._appEventService.onAddToQuote.next(await this._ioneControllerService.getJSONFromArticleObject(this.article.goodId, this.article.goodType, quantity, !!this.externalSource));
1728
1715
  }
1729
1716
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductAddtocartComponent, deps: [{ token: IconCacheService }, { token: ProductConnectorService }, { token: ProductEventService }, { token: ProductSettingsService }, { token: ProductConnectorAdapterService }], target: i0.ɵɵFactoryTarget.Component }); }
1730
1717
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: ProductAddtocartComponent, isStandalone: false, selector: "app-product-addtocart", inputs: { article: "article", externalSource: "externalSource", createFrozenArticle: "createFrozenArticle", configurable: "configurable", configuring: "configuring", showAddToCart: "showAddToCart", isReturn: "isReturn", fullscreen: "fullscreen", quantity: "quantity" }, outputs: { startConfiguration: "startConfiguration", addToCartClick: "addToCartClick", addToQuoteClick: "addToQuoteClick", showRelatedPopup: "showRelatedPopup" }, host: { properties: { "class.full-screen": "this.fullscreen" } }, viewQueries: [{ propertyName: "addToCartButton", first: true, predicate: ["addtocartbutton"], descendants: true, read: ElementRef }], ngImport: i0, template: `
@@ -1911,8 +1898,8 @@ class ProductRelatedComponent {
1911
1898
  get articles() {
1912
1899
  return this._articles;
1913
1900
  }
1914
- constructor(_iOne, _appEventService, _productConnectorAdapterService, _settingsService) {
1915
- this._iOne = _iOne;
1901
+ constructor(_productConnectorService, _appEventService, _productConnectorAdapterService, _settingsService) {
1902
+ this._productConnectorService = _productConnectorService;
1916
1903
  this._appEventService = _appEventService;
1917
1904
  this._productConnectorAdapterService = _productConnectorAdapterService;
1918
1905
  this._settingsService = _settingsService;
@@ -1924,20 +1911,11 @@ class ProductRelatedComponent {
1924
1911
  handleContentClick(article) {
1925
1912
  this._appEventService.onAlternativeClick.next(article);
1926
1913
  }
1927
- async handleAddToCartClick(article) {
1914
+ async handleAddToCartClick(articleListObject) {
1928
1915
  const quantity = 1;
1929
- const articleFull = await this._productConnectorAdapterService.getArticleFullObject(article.goodId, true);
1930
- if (articleFull) {
1931
- if (this.createFrozenArticle) {
1932
- const article = this._iOne.convertArticleFullObjectToArticleExtended(articleFull);
1933
- this._appEventService.onAddToCart.next({ article: article, quantity: quantity });
1934
- // this._appEventService.onAddToCart.next({ article: await this._getJSONFromArticleObject({article: articleFull, quantity: quantity}), quantity: quantity });
1935
- }
1936
- else {
1937
- const article = this._iOne.convertArticleFullObjectToArticleExtended(articleFull);
1938
- this._appEventService.onAddToCart.next({ article: article, quantity: quantity });
1939
- }
1940
- }
1916
+ const articleFull = await this._productConnectorAdapterService.getArticleFullObject(articleListObject.goodId, true);
1917
+ const article = await this._productConnectorService.prepareArticleForCart(articleFull, quantity, !!this.externalSource, this.createFrozenArticle);
1918
+ this._appEventService.onAddToCart.next({ article: article, quantity: quantity });
1941
1919
  }
1942
1920
  handleConfigureButtonClick(article) {
1943
1921
  }
@@ -1951,12 +1929,12 @@ class ProductRelatedComponent {
1951
1929
  configuratorStatistics.sessionId = this._settingsService.settings.session ? this._settingsService.settings.session.sessionId : 'unknown';
1952
1930
  configuratorStatistics.webHost = window.location.host;
1953
1931
  configuratorStatistics.bundleHost = window.location.host;
1954
- return await this._iOne.getJsonArticleFlatTree(article.article.goodId, article.article.goodType, article.quantity, !!this.externalSource, true, configuratorStatistics);
1932
+ return await this._productConnectorService.getJsonArticleFlatTree(article.article.goodId, article.article.goodType, article.quantity, !!this.externalSource, true, configuratorStatistics);
1955
1933
  }
1956
1934
  async _loadImages() {
1957
1935
  this.articleViewModels.forEach(avm => {
1958
1936
  if (avm.article.image) {
1959
- this._iOne.getImageForCoDocument(avm.article.image, false).then(imageContent => this._handleImageData(avm, imageContent));
1937
+ this._productConnectorService.getImageForCoDocument(avm.article.image, false).then(imageContent => this._handleImageData(avm, imageContent));
1960
1938
  }
1961
1939
  });
1962
1940
  }
@@ -2507,117 +2485,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
2507
2485
  type: Input
2508
2486
  }] } });
2509
2487
 
2510
- class ProductDialogComponent {
2511
- showClass() {
2512
- return true;
2513
- }
2514
- constructor(iconCache, _sanitizer, _productConnectorService, _productConnectorAdapterService, _appEventService) {
2515
- this.iconCache = iconCache;
2516
- this._sanitizer = _sanitizer;
2517
- this._productConnectorService = _productConnectorService;
2518
- this._productConnectorAdapterService = _productConnectorAdapterService;
2519
- this._appEventService = _appEventService;
2520
- this.icon = IconEnum;
2521
- this.closeRelatedPopup = new EventEmitter();
2522
- this.type = SelectorType;
2523
- }
2524
- ngOnInit() {
2525
- }
2526
- closeCatalog() {
2527
- // need to emit close
2528
- this.closeRelatedPopup.emit(false);
2529
- }
2530
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductDialogComponent, deps: [{ token: IconCacheService }, { token: i1.DomSanitizer }, { token: ProductConnectorService }, { token: ProductConnectorAdapterService }, { token: ProductEventService }], target: i0.ɵɵFactoryTarget.Component }); }
2531
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: ProductDialogComponent, isStandalone: false, selector: "co-product-dialog", inputs: { refType: "refType", mainArticle: "mainArticle", articles: "articles" }, outputs: { closeRelatedPopup: "closeRelatedPopup" }, host: { properties: { "class.co-product-dialog": "this.showClass" } }, ngImport: i0, template: `
2532
- <div class="product-dialog-wrap">
2533
- <div class="product-dialog-container">
2534
- <div class="container-header">
2535
- <div class="header-info">
2536
- <h3>
2537
- <co-icon [iconData]="iconCache.getIcon(icon.LinkSimpleRegular)"
2538
- (click)="closeCatalog()"></co-icon>{{ 'SUGGESTION' | localize }} <b>{{ mainArticle.name }}</b> ({{ mainArticle.articleNr }})
2539
- </h3>
2540
- </div>
2541
- <div class="close-icon" (click)="closeCatalog()">
2542
- <co-icon class="fullscreen-button"
2543
- [iconData]="iconCache.getIcon(icon.CrossSkinny)"
2544
- (click)="closeCatalog()"></co-icon>
2545
- </div>
2546
- </div>
2547
- <div class="related-product-container">
2548
- @if (articles) {
2549
- <app-product-related
2550
- class="no-padding"
2551
- [articles]="articles">
2552
- </app-product-related>
2553
- }
2554
- </div>
2555
- <div class="close-button-container">
2556
- <button class="ok-button" (click)="closeCatalog()">
2557
- <co-icon [iconData]="iconCache.getIcon(icon.SaveSkinny)"
2558
- (click)="closeCatalog()"></co-icon>
2559
- </button>
2560
- <button class="close-button" (click)="closeCatalog()">
2561
- <co-icon [iconData]="iconCache.getIcon(icon.CrossSkinny)"
2562
- (click)="closeCatalog()"></co-icon>
2563
- </button>
2564
- </div>
2565
- </div>
2566
- </div>
2567
- `, isInline: true, styles: [".product-dialog-wrap{display:flex;justify-content:center;position:absolute;z-index:800;top:0}.product-dialog-wrap .product-dialog-container{background:#fff;min-width:75vw;max-height:90vh;border:1px solid #F8F8F8}.product-dialog-wrap .product-dialog-container .container-header{display:flex;justify-content:space-between;border-bottom:1px solid #F8F8F8;padding:25px;box-sizing:border-box;align-items:center}.product-dialog-wrap .product-dialog-container .container-header .header-info h3{display:flex;align-items:center}.product-dialog-wrap .product-dialog-container .container-header .header-info h3 co-icon{margin-right:10px}.product-dialog-wrap .product-dialog-container .container-header .close-icon{cursor:pointer}.product-dialog-wrap .product-dialog-container .close-button-container{display:flex;justify-content:center;padding:10px}.product-dialog-wrap .product-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}.product-dialog-wrap .product-dialog-container .close-button-container button ::ng-deep co-icon{height:20px;width:20px}.product-dialog-wrap .product-dialog-container .close-button-container button ::ng-deep co-icon svg{fill:#fff}.product-dialog-wrap .product-dialog-container .close-button-container button ::ng-deep co-icon svg polygon{fill:#fff}.product-dialog-wrap .product-dialog-container .close-button-container .ok-button{background:#1a73e8}.product-dialog-wrap .product-dialog-container .close-button-container .close-button{background:#475060}::ng-deep .content-wrapper{width:auto!important}\n"], dependencies: [{ kind: "component", type: ProductRelatedComponent, selector: "app-product-related", inputs: ["refType", "label", "externalSource", "isSmallModus", "createFrozenArticle", "articles"] }, { kind: "component", type: i6.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
2568
- }
2569
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductDialogComponent, decorators: [{
2570
- type: Component,
2571
- args: [{ selector: 'co-product-dialog', template: `
2572
- <div class="product-dialog-wrap">
2573
- <div class="product-dialog-container">
2574
- <div class="container-header">
2575
- <div class="header-info">
2576
- <h3>
2577
- <co-icon [iconData]="iconCache.getIcon(icon.LinkSimpleRegular)"
2578
- (click)="closeCatalog()"></co-icon>{{ 'SUGGESTION' | localize }} <b>{{ mainArticle.name }}</b> ({{ mainArticle.articleNr }})
2579
- </h3>
2580
- </div>
2581
- <div class="close-icon" (click)="closeCatalog()">
2582
- <co-icon class="fullscreen-button"
2583
- [iconData]="iconCache.getIcon(icon.CrossSkinny)"
2584
- (click)="closeCatalog()"></co-icon>
2585
- </div>
2586
- </div>
2587
- <div class="related-product-container">
2588
- @if (articles) {
2589
- <app-product-related
2590
- class="no-padding"
2591
- [articles]="articles">
2592
- </app-product-related>
2593
- }
2594
- </div>
2595
- <div class="close-button-container">
2596
- <button class="ok-button" (click)="closeCatalog()">
2597
- <co-icon [iconData]="iconCache.getIcon(icon.SaveSkinny)"
2598
- (click)="closeCatalog()"></co-icon>
2599
- </button>
2600
- <button class="close-button" (click)="closeCatalog()">
2601
- <co-icon [iconData]="iconCache.getIcon(icon.CrossSkinny)"
2602
- (click)="closeCatalog()"></co-icon>
2603
- </button>
2604
- </div>
2605
- </div>
2606
- </div>
2607
- `, standalone: false, styles: [".product-dialog-wrap{display:flex;justify-content:center;position:absolute;z-index:800;top:0}.product-dialog-wrap .product-dialog-container{background:#fff;min-width:75vw;max-height:90vh;border:1px solid #F8F8F8}.product-dialog-wrap .product-dialog-container .container-header{display:flex;justify-content:space-between;border-bottom:1px solid #F8F8F8;padding:25px;box-sizing:border-box;align-items:center}.product-dialog-wrap .product-dialog-container .container-header .header-info h3{display:flex;align-items:center}.product-dialog-wrap .product-dialog-container .container-header .header-info h3 co-icon{margin-right:10px}.product-dialog-wrap .product-dialog-container .container-header .close-icon{cursor:pointer}.product-dialog-wrap .product-dialog-container .close-button-container{display:flex;justify-content:center;padding:10px}.product-dialog-wrap .product-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}.product-dialog-wrap .product-dialog-container .close-button-container button ::ng-deep co-icon{height:20px;width:20px}.product-dialog-wrap .product-dialog-container .close-button-container button ::ng-deep co-icon svg{fill:#fff}.product-dialog-wrap .product-dialog-container .close-button-container button ::ng-deep co-icon svg polygon{fill:#fff}.product-dialog-wrap .product-dialog-container .close-button-container .ok-button{background:#1a73e8}.product-dialog-wrap .product-dialog-container .close-button-container .close-button{background:#475060}::ng-deep .content-wrapper{width:auto!important}\n"] }]
2608
- }], ctorParameters: () => [{ type: IconCacheService }, { type: i1.DomSanitizer }, { type: ProductConnectorService }, { type: ProductConnectorAdapterService }, { type: ProductEventService }], propDecorators: { refType: [{
2609
- type: Input
2610
- }], mainArticle: [{
2611
- type: Input
2612
- }], articles: [{
2613
- type: Input
2614
- }], closeRelatedPopup: [{
2615
- type: Output
2616
- }], showClass: [{
2617
- type: HostBinding,
2618
- args: ['class.co-product-dialog']
2619
- }] } });
2620
-
2621
2488
  class VectorObject {
2622
2489
  }
2623
2490
  class RenderParameters {
@@ -2861,7 +2728,6 @@ class ProductPageComponent {
2861
2728
  this.icon = IconEnum;
2862
2729
  this.createFrozenArticle = true;
2863
2730
  this.isReturn = false;
2864
- this.showRelatedProductsPopup = false;
2865
2731
  this.openStockEvent = new EventEmitter();
2866
2732
  this.configurable = true;
2867
2733
  this.threeD = false;
@@ -2968,14 +2834,10 @@ class ProductPageComponent {
2968
2834
  });
2969
2835
  }
2970
2836
  });
2971
- this.showRelatedProductsPopup = false;
2972
2837
  }
2973
2838
  openStock() {
2974
2839
  this.openStockEvent.emit();
2975
2840
  }
2976
- handlePopUpChange(event) {
2977
- this.showRelatedProductsPopup = event;
2978
- }
2979
2841
  handleObjectAddedToScene(build) {
2980
2842
  if (this.threeD && this.enableRenderCarousel) {
2981
2843
  this._buildResult = build;
@@ -3019,7 +2881,7 @@ class ProductPageComponent {
3019
2881
  this._configuringService.renderImage(this._buildResult, renderOptions, false);
3020
2882
  }
3021
2883
  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 }); }
3022
- 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", externalButtonTemplate: "externalButtonTemplate" }, 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: `
2884
+ 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", enableRenderCarousel: "enableRenderCarousel", externalButtonTemplate: "externalButtonTemplate" }, 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: `
3023
2885
  @if (settingsLoaded) {
3024
2886
  <div class="page-wrapper">
3025
2887
  <div class="page-wrapper-content">
@@ -3125,8 +2987,7 @@ class ProductPageComponent {
3125
2987
  [article]="article"
3126
2988
  [externalSource]="externalSource"
3127
2989
  [isReturn]="isReturn"
3128
- (startConfiguration)="handleStartConfiguration()"
3129
- (showRelatedPopup)="handlePopUpChange($event)">
2990
+ (startConfiguration)="handleStartConfiguration()">
3130
2991
  </app-product-addtocart>
3131
2992
  </div>
3132
2993
  }
@@ -3199,19 +3060,9 @@ class ProductPageComponent {
3199
3060
  </div>
3200
3061
  </div>
3201
3062
  </div>
3202
- @if (showRelatedProductsPopup) {
3203
- <div>
3204
- <co-product-dialog
3205
- [mainArticle]="article"
3206
- [articles]="article?.relatedArticles"
3207
- [refType]="1"
3208
- (closeRelatedPopup)="handlePopUpChange($event)">
3209
- </co-product-dialog>
3210
- </div>
3211
- }
3212
3063
  </div>
3213
3064
  }
3214
- `, 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;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-image .external-button-container{width:100%;display:flex;justify-content:space-between}.co-product-page .product-page-block-image .external-button-container .co-homedecorator-button{margin-left:auto}.co-product-page .product-page-block-image .external-button-container .co-homedecorator-button .co-button{margin-left:auto;cursor:pointer;background:#ececec;border-radius:10px}.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: "directive", type: i6$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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: ["show", "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" }, { kind: "pipe", type: LocalizePipe, name: "localize" }], animations: [
3065
+ `, 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;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-image .external-button-container{width:100%;display:flex;justify-content:space-between}.co-product-page .product-page-block-image .external-button-container .co-homedecorator-button{margin-left:auto}.co-product-page .product-page-block-image .external-button-container .co-homedecorator-button .co-button{margin-left:auto;cursor:pointer;background:#ececec;border-radius:10px}.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: "directive", type: i6$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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: RenderCarouselComponent, selector: "app-render-carousel", inputs: ["showRefresh", "article"] }, { kind: "component", type: i5.ConfiguratorComponent, selector: "co-configurator", inputs: ["show", "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" }, { kind: "pipe", type: LocalizePipe, name: "localize" }], animations: [
3215
3066
  trigger('toggleFullScreen', [
3216
3067
  state('fullscreen', style({ 'position': 'fixed', 'top': '0', 'left': '0', 'width': '100%', 'height': '100%' })),
3217
3068
  state('halfscreen', style({ 'position': '*', 'top': '*', 'left': '*', 'width': '*', 'height': '*' })),
@@ -3353,8 +3204,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
3353
3204
  [article]="article"
3354
3205
  [externalSource]="externalSource"
3355
3206
  [isReturn]="isReturn"
3356
- (startConfiguration)="handleStartConfiguration()"
3357
- (showRelatedPopup)="handlePopUpChange($event)">
3207
+ (startConfiguration)="handleStartConfiguration()">
3358
3208
  </app-product-addtocart>
3359
3209
  </div>
3360
3210
  }
@@ -3427,16 +3277,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
3427
3277
  </div>
3428
3278
  </div>
3429
3279
  </div>
3430
- @if (showRelatedProductsPopup) {
3431
- <div>
3432
- <co-product-dialog
3433
- [mainArticle]="article"
3434
- [articles]="article?.relatedArticles"
3435
- [refType]="1"
3436
- (closeRelatedPopup)="handlePopUpChange($event)">
3437
- </co-product-dialog>
3438
- </div>
3439
- }
3440
3280
  </div>
3441
3281
  }
3442
3282
  `, encapsulation: ViewEncapsulation.None, animations: [
@@ -3488,8 +3328,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
3488
3328
  type: Input
3489
3329
  }], isReturn: [{
3490
3330
  type: Input
3491
- }], showRelatedProductsPopup: [{
3492
- type: Input
3493
3331
  }], enableRenderCarousel: [{
3494
3332
  type: Input
3495
3333
  }], externalButtonTemplate: [{
@@ -3604,7 +3442,7 @@ class IoneProductComponent {
3604
3442
  this.openStockEvent.emit();
3605
3443
  }
3606
3444
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IoneProductComponent, deps: [{ token: ProductEventService }, { token: ProductSettingsService }, { token: ProductConnectorService }, { token: LocalStorageService }], target: i0.ɵɵFactoryTarget.Component }); }
3607
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: IoneProductComponent, isStandalone: false, selector: "app-ione-product", inputs: { sku: "sku", isReturn: "isReturn", showRelatedProductsPopup: "showRelatedProductsPopup", enableRenderCarousel: "enableRenderCarousel", settings: "settings", handleAddArticleInternally: "handleAddArticleInternally", handleAddToCartInternally: "handleAddToCartInternally", externalButtonTemplate: "externalButtonTemplate" }, outputs: { onAddToCart: "onAddToCart", forceRenderImage: "forceRenderImage", getRenderForRenderCarousel: "getRenderForRenderCarousel", onAlternativeClick: "onAlternativeClick", onArticleInfoReceived: "onArticleInfoReceived", onArticleReceived: "onArticleReceived", onSelectionsReceived: "onSelectionsReceived", onAddToQuote: "onAddToQuote", openStockEvent: "openStockEvent", onAnswersAvailable: "onAnswersAvailable" }, providers: [
3445
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: IoneProductComponent, isStandalone: false, selector: "app-ione-product", inputs: { sku: "sku", isReturn: "isReturn", enableRenderCarousel: "enableRenderCarousel", settings: "settings", handleAddArticleInternally: "handleAddArticleInternally", handleAddToCartInternally: "handleAddToCartInternally", externalButtonTemplate: "externalButtonTemplate" }, outputs: { onAddToCart: "onAddToCart", forceRenderImage: "forceRenderImage", getRenderForRenderCarousel: "getRenderForRenderCarousel", onAlternativeClick: "onAlternativeClick", onArticleInfoReceived: "onArticleInfoReceived", onArticleReceived: "onArticleReceived", onSelectionsReceived: "onSelectionsReceived", onAddToQuote: "onAddToQuote", openStockEvent: "openStockEvent", onAnswersAvailable: "onAnswersAvailable" }, providers: [
3608
3446
  ProductSettingsService,
3609
3447
  ProductConnectorService,
3610
3448
  ProductEventService,
@@ -3616,7 +3454,6 @@ class IoneProductComponent {
3616
3454
  [isReturn]="isReturn"
3617
3455
  [sku]="sku"
3618
3456
  [externalButtonTemplate]="externalButtonsTpl"
3619
- [showRelatedProductsPopup]="showRelatedProductsPopup"
3620
3457
  [enableRenderCarousel]="enableRenderCarousel"
3621
3458
  (openStockEvent)="openStock()">
3622
3459
  </app-product-page>
@@ -3626,7 +3463,7 @@ class IoneProductComponent {
3626
3463
  <ng-content select="[externalButtons]"></ng-content>
3627
3464
  </ng-template>
3628
3465
 
3629
- `, isInline: true, styles: [""], dependencies: [{ kind: "component", type: ProductPageComponent, selector: "app-product-page", inputs: ["sku", "settings", "externalSource", "createFrozenArticle", "isReturn", "showRelatedProductsPopup", "enableRenderCarousel", "externalButtonTemplate"], outputs: ["openStockEvent"] }] }); }
3466
+ `, isInline: true, styles: [""], dependencies: [{ kind: "component", type: ProductPageComponent, selector: "app-product-page", inputs: ["sku", "settings", "externalSource", "createFrozenArticle", "isReturn", "enableRenderCarousel", "externalButtonTemplate"], outputs: ["openStockEvent"] }] }); }
3630
3467
  }
3631
3468
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IoneProductComponent, decorators: [{
3632
3469
  type: Component,
@@ -3637,7 +3474,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
3637
3474
  [isReturn]="isReturn"
3638
3475
  [sku]="sku"
3639
3476
  [externalButtonTemplate]="externalButtonsTpl"
3640
- [showRelatedProductsPopup]="showRelatedProductsPopup"
3641
3477
  [enableRenderCarousel]="enableRenderCarousel"
3642
3478
  (openStockEvent)="openStock()">
3643
3479
  </app-product-page>
@@ -3660,8 +3496,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
3660
3496
  type: Input
3661
3497
  }], isReturn: [{
3662
3498
  type: Input
3663
- }], showRelatedProductsPopup: [{
3664
- type: Input
3665
3499
  }], enableRenderCarousel: [{
3666
3500
  type: Input
3667
3501
  }], settings: [{
@@ -4175,6 +4009,117 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
4175
4009
  }]
4176
4010
  }] });
4177
4011
 
4012
+ class ProductDialogComponent {
4013
+ showClass() {
4014
+ return true;
4015
+ }
4016
+ constructor(iconCache, _sanitizer, _productConnectorService, _productConnectorAdapterService, _appEventService) {
4017
+ this.iconCache = iconCache;
4018
+ this._sanitizer = _sanitizer;
4019
+ this._productConnectorService = _productConnectorService;
4020
+ this._productConnectorAdapterService = _productConnectorAdapterService;
4021
+ this._appEventService = _appEventService;
4022
+ this.icon = IconEnum;
4023
+ this.closeRelatedPopup = new EventEmitter();
4024
+ this.type = SelectorType;
4025
+ }
4026
+ ngOnInit() {
4027
+ }
4028
+ closeCatalog() {
4029
+ // need to emit close
4030
+ this.closeRelatedPopup.emit(false);
4031
+ }
4032
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductDialogComponent, deps: [{ token: IconCacheService }, { token: i1.DomSanitizer }, { token: ProductConnectorService }, { token: ProductConnectorAdapterService }, { token: ProductEventService }], target: i0.ɵɵFactoryTarget.Component }); }
4033
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: ProductDialogComponent, isStandalone: false, selector: "co-product-dialog", inputs: { refType: "refType", mainArticle: "mainArticle", articles: "articles" }, outputs: { closeRelatedPopup: "closeRelatedPopup" }, host: { properties: { "class.co-product-dialog": "this.showClass" } }, ngImport: i0, template: `
4034
+ <div class="product-dialog-wrap">
4035
+ <div class="product-dialog-container">
4036
+ <div class="container-header">
4037
+ <div class="header-info">
4038
+ <h3>
4039
+ <co-icon [iconData]="iconCache.getIcon(icon.LinkSimpleRegular)"
4040
+ (click)="closeCatalog()"></co-icon>{{ 'SUGGESTION' | localize }} <b>{{ mainArticle.name }}</b> ({{ mainArticle.articleNr }})
4041
+ </h3>
4042
+ </div>
4043
+ <div class="close-icon" (click)="closeCatalog()">
4044
+ <co-icon class="fullscreen-button"
4045
+ [iconData]="iconCache.getIcon(icon.CrossSkinny)"
4046
+ (click)="closeCatalog()"></co-icon>
4047
+ </div>
4048
+ </div>
4049
+ <div class="related-product-container">
4050
+ @if (articles) {
4051
+ <app-product-related
4052
+ class="no-padding"
4053
+ [articles]="articles">
4054
+ </app-product-related>
4055
+ }
4056
+ </div>
4057
+ <div class="close-button-container">
4058
+ <button class="ok-button" (click)="closeCatalog()">
4059
+ <co-icon [iconData]="iconCache.getIcon(icon.SaveSkinny)"
4060
+ (click)="closeCatalog()"></co-icon>
4061
+ </button>
4062
+ <button class="close-button" (click)="closeCatalog()">
4063
+ <co-icon [iconData]="iconCache.getIcon(icon.CrossSkinny)"
4064
+ (click)="closeCatalog()"></co-icon>
4065
+ </button>
4066
+ </div>
4067
+ </div>
4068
+ </div>
4069
+ `, isInline: true, styles: [".product-dialog-wrap{display:flex;justify-content:center;position:absolute;z-index:800;top:0}.product-dialog-wrap .product-dialog-container{background:#fff;min-width:75vw;max-height:90vh;border:1px solid #F8F8F8}.product-dialog-wrap .product-dialog-container .container-header{display:flex;justify-content:space-between;border-bottom:1px solid #F8F8F8;padding:25px;box-sizing:border-box;align-items:center}.product-dialog-wrap .product-dialog-container .container-header .header-info h3{display:flex;align-items:center}.product-dialog-wrap .product-dialog-container .container-header .header-info h3 co-icon{margin-right:10px}.product-dialog-wrap .product-dialog-container .container-header .close-icon{cursor:pointer}.product-dialog-wrap .product-dialog-container .close-button-container{display:flex;justify-content:center;padding:10px}.product-dialog-wrap .product-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}.product-dialog-wrap .product-dialog-container .close-button-container button ::ng-deep co-icon{height:20px;width:20px}.product-dialog-wrap .product-dialog-container .close-button-container button ::ng-deep co-icon svg{fill:#fff}.product-dialog-wrap .product-dialog-container .close-button-container button ::ng-deep co-icon svg polygon{fill:#fff}.product-dialog-wrap .product-dialog-container .close-button-container .ok-button{background:#1a73e8}.product-dialog-wrap .product-dialog-container .close-button-container .close-button{background:#475060}::ng-deep .content-wrapper{width:auto!important}\n"], dependencies: [{ kind: "component", type: ProductRelatedComponent, selector: "app-product-related", inputs: ["refType", "label", "externalSource", "isSmallModus", "createFrozenArticle", "articles"] }, { kind: "component", type: i6.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
4070
+ }
4071
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductDialogComponent, decorators: [{
4072
+ type: Component,
4073
+ args: [{ selector: 'co-product-dialog', template: `
4074
+ <div class="product-dialog-wrap">
4075
+ <div class="product-dialog-container">
4076
+ <div class="container-header">
4077
+ <div class="header-info">
4078
+ <h3>
4079
+ <co-icon [iconData]="iconCache.getIcon(icon.LinkSimpleRegular)"
4080
+ (click)="closeCatalog()"></co-icon>{{ 'SUGGESTION' | localize }} <b>{{ mainArticle.name }}</b> ({{ mainArticle.articleNr }})
4081
+ </h3>
4082
+ </div>
4083
+ <div class="close-icon" (click)="closeCatalog()">
4084
+ <co-icon class="fullscreen-button"
4085
+ [iconData]="iconCache.getIcon(icon.CrossSkinny)"
4086
+ (click)="closeCatalog()"></co-icon>
4087
+ </div>
4088
+ </div>
4089
+ <div class="related-product-container">
4090
+ @if (articles) {
4091
+ <app-product-related
4092
+ class="no-padding"
4093
+ [articles]="articles">
4094
+ </app-product-related>
4095
+ }
4096
+ </div>
4097
+ <div class="close-button-container">
4098
+ <button class="ok-button" (click)="closeCatalog()">
4099
+ <co-icon [iconData]="iconCache.getIcon(icon.SaveSkinny)"
4100
+ (click)="closeCatalog()"></co-icon>
4101
+ </button>
4102
+ <button class="close-button" (click)="closeCatalog()">
4103
+ <co-icon [iconData]="iconCache.getIcon(icon.CrossSkinny)"
4104
+ (click)="closeCatalog()"></co-icon>
4105
+ </button>
4106
+ </div>
4107
+ </div>
4108
+ </div>
4109
+ `, standalone: false, styles: [".product-dialog-wrap{display:flex;justify-content:center;position:absolute;z-index:800;top:0}.product-dialog-wrap .product-dialog-container{background:#fff;min-width:75vw;max-height:90vh;border:1px solid #F8F8F8}.product-dialog-wrap .product-dialog-container .container-header{display:flex;justify-content:space-between;border-bottom:1px solid #F8F8F8;padding:25px;box-sizing:border-box;align-items:center}.product-dialog-wrap .product-dialog-container .container-header .header-info h3{display:flex;align-items:center}.product-dialog-wrap .product-dialog-container .container-header .header-info h3 co-icon{margin-right:10px}.product-dialog-wrap .product-dialog-container .container-header .close-icon{cursor:pointer}.product-dialog-wrap .product-dialog-container .close-button-container{display:flex;justify-content:center;padding:10px}.product-dialog-wrap .product-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}.product-dialog-wrap .product-dialog-container .close-button-container button ::ng-deep co-icon{height:20px;width:20px}.product-dialog-wrap .product-dialog-container .close-button-container button ::ng-deep co-icon svg{fill:#fff}.product-dialog-wrap .product-dialog-container .close-button-container button ::ng-deep co-icon svg polygon{fill:#fff}.product-dialog-wrap .product-dialog-container .close-button-container .ok-button{background:#1a73e8}.product-dialog-wrap .product-dialog-container .close-button-container .close-button{background:#475060}::ng-deep .content-wrapper{width:auto!important}\n"] }]
4110
+ }], ctorParameters: () => [{ type: IconCacheService }, { type: i1.DomSanitizer }, { type: ProductConnectorService }, { type: ProductConnectorAdapterService }, { type: ProductEventService }], propDecorators: { refType: [{
4111
+ type: Input
4112
+ }], mainArticle: [{
4113
+ type: Input
4114
+ }], articles: [{
4115
+ type: Input
4116
+ }], closeRelatedPopup: [{
4117
+ type: Output
4118
+ }], showClass: [{
4119
+ type: HostBinding,
4120
+ args: ['class.co-product-dialog']
4121
+ }] } });
4122
+
4178
4123
  class ProductDialogModule {
4179
4124
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductDialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
4180
4125
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: ProductDialogModule, declarations: [ProductDialogComponent], imports: [CommonModule,
@@ -4637,11 +4582,6 @@ class ProductExternalSourceComponent {
4637
4582
  }
4638
4583
  // this.externalSettings.assetPath = "https://cdn1.colijn-it.nl/content43";
4639
4584
  // this.externalSettings.threeDAssetPath = "https://cdn1.colijn-it.nl/content43";
4640
- if (this.externalSource.username && this.externalSource.password) {
4641
- this.externalSettings.useLoginEncryption = true;
4642
- this.externalSettings.username = this.externalSource.username;
4643
- this.externalSettings.password = this.externalSource.password;
4644
- }
4645
4585
  // finally show the catalog
4646
4586
  this.switchToProduct();
4647
4587
  this.loaded = true;
@@ -4709,7 +4649,7 @@ class ProductExternalSourceComponent {
4709
4649
  <ng-template #externalButtonsTpl>
4710
4650
  <ng-content select="[externalButtons]"></ng-content>
4711
4651
  </ng-template>
4712
- `, isInline: true, dependencies: [{ kind: "component", type: ProductPageComponent, selector: "app-product-page", inputs: ["sku", "settings", "externalSource", "createFrozenArticle", "isReturn", "showRelatedProductsPopup", "enableRenderCarousel", "externalButtonTemplate"], outputs: ["openStockEvent"] }, { kind: "component", type: ProductHdComponent, selector: "co-product-hd", inputs: ["sku", "token", "variant", "urlParams"], outputs: ["configuratorFinished", "configurationError"] }], encapsulation: i0.ViewEncapsulation.None }); }
4652
+ `, isInline: true, dependencies: [{ kind: "component", type: ProductPageComponent, selector: "app-product-page", inputs: ["sku", "settings", "externalSource", "createFrozenArticle", "isReturn", "enableRenderCarousel", "externalButtonTemplate"], outputs: ["openStockEvent"] }, { kind: "component", type: ProductHdComponent, selector: "co-product-hd", inputs: ["sku", "token", "variant", "urlParams"], outputs: ["configuratorFinished", "configurationError"] }], encapsulation: i0.ViewEncapsulation.None }); }
4713
4653
  }
4714
4654
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductExternalSourceComponent, decorators: [{
4715
4655
  type: Component,