@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.
- package/fesm2022/colijnit-product.mjs +187 -247
- package/fesm2022/colijnit-product.mjs.map +1 -1
- package/index.d.ts +15 -20
- package/package.json +1 -1
|
@@ -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.
|
|
38
|
-
this.publishDate = "
|
|
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: [{
|
|
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
|
-
|
|
1669
|
-
|
|
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.
|
|
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(
|
|
1915
|
-
this.
|
|
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(
|
|
1914
|
+
async handleAddToCartClick(articleListObject) {
|
|
1928
1915
|
const quantity = 1;
|
|
1929
|
-
const articleFull = await this._productConnectorAdapterService.getArticleFullObject(
|
|
1930
|
-
|
|
1931
|
-
|
|
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.
|
|
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.
|
|
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",
|
|
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",
|
|
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", "
|
|
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", "
|
|
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,
|