@colijnit/product 261.20.3 → 261.20.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -15,9 +15,9 @@ import { ArticleListObjectExtended } from '@colijnit/articleapi/build/model/arti
15
15
  import { ImageContent } from '@colijnit/mainapi/build/model/image-content.bo';
16
16
  import { StringUtils } from '@colijnit/ioneconnector/build/utils/string-utils';
17
17
  import { trigger, state, style, transition, animate } from '@angular/animations';
18
- import * as i5 from '@colijnit/configurator';
19
- import { ConfigurationResultObject, ConfiguratorModule, ConfiguratorSceneModule } from '@colijnit/configurator';
20
18
  import * as i1 from '@angular/platform-browser';
19
+ import * as i5 from '@colijnit/configurator';
20
+ import { ConfigurationPresetModule, ConfiguratorModule, ConfiguratorSceneModule } from '@colijnit/configurator';
21
21
  import * as i6 from '@colijnit/corecomponents_v12';
22
22
  import { IconModule, LoaderModule, ScrollContainerModule, InputNumberPickerModule, ButtonModule, ArticleTileModule, TileModule, IconCollapseHandleModule } from '@colijnit/corecomponents_v12';
23
23
  import { CoDocument } from '@colijnit/mainapi/build/model/co-document.bo';
@@ -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 = "261.20.3";
38
- this.publishDate = "2-4-2026, 17:07:12";
37
+ this.symVer = "261.20.5";
38
+ this.publishDate = "26-5-2026, 15:28:23";
39
39
  }
40
40
  }
41
41
 
@@ -261,6 +261,14 @@ class ProductConnectorAdapterService {
261
261
  return Promise.resolve(false);
262
262
  }
263
263
  }
264
+ async getDefaultLanguage(upId) {
265
+ // this should always be fetched from the mainapi from the client
266
+ const response = await this.mainConnector.getPublicParams(upId);
267
+ if (response && response['defaultLanguage'] !== undefined) {
268
+ return response['defaultLanguage'];
269
+ }
270
+ return 'nl'; // just to be safe
271
+ }
264
272
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductConnectorAdapterService, deps: [{ token: ProductEventService }], target: i0.ɵɵFactoryTarget.Injectable }); }
265
273
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductConnectorAdapterService }); }
266
274
  }
@@ -648,6 +656,9 @@ class ProductConnectorService {
648
656
  async savePreset() {
649
657
  return await this._adapterService.savePreset();
650
658
  }
659
+ async getDefaultLanguage(upId) {
660
+ return await this._adapterService.getDefaultLanguage(upId);
661
+ }
651
662
  onShowLoaderChange(showLoader) {
652
663
  this._shouldShowLoader = showLoader;
653
664
  }
@@ -734,13 +745,6 @@ var IconEnum;
734
745
  IconEnum["Warehouse"] = "warehouse";
735
746
  })(IconEnum || (IconEnum = {}));
736
747
 
737
- var PresetDialogType;
738
- (function (PresetDialogType) {
739
- PresetDialogType[PresetDialogType["info"] = 0] = "info";
740
- PresetDialogType[PresetDialogType["warning"] = 1] = "warning";
741
- PresetDialogType[PresetDialogType["success"] = 2] = "success";
742
- })(PresetDialogType || (PresetDialogType = {}));
743
-
744
748
  /** AUTO GENERATED FILE. DO NOT CHANGE.. **/
745
749
  const IconSvg = {
746
750
  "add_to_cart_drop": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M16.58,34.84a1.8,1.8,0,1,0,1.8,1.8A1.79,1.79,0,0,0,16.58,34.84Z\" fill=\"#484f60\"/><path d=\"M31.49,34.84a1.8,1.8,0,1,0,1.8,1.8A1.79,1.79,0,0,0,31.49,34.84Z\" fill=\"#484f60\"/><path d=\"M35.6,17.9l-1.51.18L31.88,20.3l1.31-.17a.88.88,0,0,1,1,1.08L32.35,29.5a1.52,1.52,0,0,1-1.44,1.2H16.51a1.75,1.75,0,0,1-1.57-1.17l-2.31-5.6a1,1,0,0,1,.85-1.29l4.43-.56-1.86-1.86-5.13.61a1,1,0,0,0-.87,1.28l3.34,9.44A1.73,1.73,0,0,0,15,32.72H32.64a1.51,1.51,0,0,0,1.43-1.2L36.6,19A.89.89,0,0,0,35.6,17.9Z\" fill=\"#484f60\"/><path d=\"M39,17a1.87,1.87,0,0,0-1.36,1.46l-.42,2.89c-.1.67.31,1,.9.7a2.75,2.75,0,0,0,1.33-1.7L40,18A.73.73,0,0,0,39,17Z\" fill=\"#484f60\"/><polygon points=\"24 25.35 32.04 17.3 27.04 17.3 27.04 10 20.95 10 20.95 17.3 15.96 17.3 24 25.35\" fill=\"#484f60\"/></svg>",
@@ -872,7 +876,7 @@ class ProductSelectorTypeComponent {
872
876
  (click)="handleIconClick(type.ThreeD)"
873
877
  ></co-icon>
874
878
  }
875
- `, isInline: true, styles: [":host{display:flex;flex-direction:row;align-items:center}:host .show-in{display:none}:host>*:not(:last-child){margin-right:10px}::ng-deep co-icon.selector-type-icon{box-shadow:inset 0 0 0 1px #22313c;border-radius:50%;background:none;height:34px;width:34px;cursor:pointer}::ng-deep co-icon.selector-type-icon.active{box-shadow:none;background:#74b77f;transition:all .2s ease-in-out}::ng-deep co-icon.selector-type-icon.active [fill]{fill:#fff}\n"], dependencies: [{ kind: "component", type: i6.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
879
+ `, isInline: true, styles: [":host{display:flex;flex-direction:row;align-items:center}:host .show-in{display:none}:host>*:not(:last-child){margin-right:10px}::ng-deep co-icon.selector-type-icon{box-shadow:inset 0 0 0 1px #22313c;border-radius:50%;background:none;height:34px;width:34px;cursor:pointer}::ng-deep co-icon.selector-type-icon.active{box-shadow:none;background:#4e9b7e;transition:all .2s ease-in-out}::ng-deep co-icon.selector-type-icon.active [fill]{fill:#fff}\n"], dependencies: [{ kind: "component", type: i6.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
876
880
  }
877
881
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductSelectorTypeComponent, decorators: [{
878
882
  type: Component,
@@ -903,7 +907,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
903
907
  (click)="handleIconClick(type.ThreeD)"
904
908
  ></co-icon>
905
909
  }
906
- `, standalone: false, styles: [":host{display:flex;flex-direction:row;align-items:center}:host .show-in{display:none}:host>*:not(:last-child){margin-right:10px}::ng-deep co-icon.selector-type-icon{box-shadow:inset 0 0 0 1px #22313c;border-radius:50%;background:none;height:34px;width:34px;cursor:pointer}::ng-deep co-icon.selector-type-icon.active{box-shadow:none;background:#74b77f;transition:all .2s ease-in-out}::ng-deep co-icon.selector-type-icon.active [fill]{fill:#fff}\n"] }]
910
+ `, standalone: false, styles: [":host{display:flex;flex-direction:row;align-items:center}:host .show-in{display:none}:host>*:not(:last-child){margin-right:10px}::ng-deep co-icon.selector-type-icon{box-shadow:inset 0 0 0 1px #22313c;border-radius:50%;background:none;height:34px;width:34px;cursor:pointer}::ng-deep co-icon.selector-type-icon.active{box-shadow:none;background:#4e9b7e;transition:all .2s ease-in-out}::ng-deep co-icon.selector-type-icon.active [fill]{fill:#fff}\n"] }]
907
911
  }], ctorParameters: () => [{ type: IconCacheService }, { type: i0.ChangeDetectorRef }], propDecorators: { show2D: [{
908
912
  type: Input
909
913
  }], show3D: [{
@@ -1198,7 +1202,7 @@ class ImageCarouselComponent {
1198
1202
  </div>
1199
1203
  </div>
1200
1204
  </ng-template>
1201
- `, isInline: true, styles: [":host{max-height:540px;height:100%;position:relative}:host:not(.resizing) .inner-carousel{scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory}#product_page_carousel{position:relative}#product_page_carousel .refresh-button{position:absolute;bottom:10px;right:10px;background:#fff}#product_page_carousel .refresh-button.loading{animation:spin 1s linear infinite}#product_page_carousel .refresh-button:hover{box-shadow:none;background:#74b77f;transition:all .2s ease-in-out}#product_page_carousel .refresh-button:hover ::ng-deep svg path{fill:#fff!important}#product_page_carousel #product_page_carousel_items{position:relative;margin-bottom:10px}#product_page_carousel #product_page_carousel_items ::ng-deep co-loader{position:absolute}#product_page_carousel .inner-carousel{display:flex;flex-direction:row;align-items:center;overflow:hidden;max-height:500px;border:1px solid #efefef}#product_page_carousel .carousel-item{max-height:500px;width:100%;display:flex;cursor:zoom-in;flex-shrink:0;flex-grow:0}#product_page_carousel .carousel-item img{width:100%;height:auto;object-fit:contain}#product_page_carousel .carousel-scroller-layer{height:100%;width:100%;position:absolute;pointer-events:none;top:0;left:0}#product_page_carousel #product_page_carousel_thumbs{display:flex;justify-content:flex-start;height:80px;margin-left:auto;margin-right:auto}#product_page_carousel #product_page_carousel_thumbs ::ng-deep co-scroll-container{padding:0 22px}#product_page_carousel #product_page_carousel_thumbs ::ng-deep co-scroll-container .content-wrapper{padding:0}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb{opacity:1;cursor:pointer;transition:all .2s ease;padding:4px;border:1px solid #f6f5f4}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb.active,#product_page_carousel #product_page_carousel_thumbs .carousel-thumb:hover{border-color:#22313c}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb:not(:last-child){margin-right:10px}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb img{height:68px}.image-modal{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000}.image-modal__content{position:relative;max-width:90vw;max-height:90vh}.image-modal__content img{max-width:90vw;max-height:90vh;object-fit:contain;display:block}.image-modal__close{position:fixed;top:15px;right:30px;background:transparent;border:none;color:#fff;font-size:60px;line-height:1;cursor:pointer}@media screen and (max-width: 650px){#product_page_carousel_thumbs{height:57px!important}#product_page_carousel_thumbs .carousel-thumb img{height:50px!important}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"], dependencies: [{ kind: "component", type: i6.LoaderComponent, selector: "co-loader" }, { kind: "component", type: i6.ScrollContainerComponent, selector: "co-scroll-container", inputs: ["vertical"] }, { kind: "directive", type: i6$1.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i6$1.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: i6.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1205
+ `, isInline: true, styles: [":host{height:100%;position:relative;min-height:600px}:host:not(.resizing) .inner-carousel{scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory}#product_page_carousel{position:relative}#product_page_carousel .refresh-button{position:absolute;bottom:10px;right:10px;background:#fff}#product_page_carousel .refresh-button.loading{animation:spin 1s linear infinite}#product_page_carousel .refresh-button:hover{box-shadow:none;background:#4e9b7e;transition:all .2s ease-in-out}#product_page_carousel .refresh-button:hover ::ng-deep svg path{fill:#fff!important}#product_page_carousel #product_page_carousel_items{position:relative;margin-bottom:10px}#product_page_carousel #product_page_carousel_items ::ng-deep co-loader{position:absolute}#product_page_carousel .inner-carousel{display:flex;flex-direction:row;align-items:center;overflow:hidden;max-height:460px}#product_page_carousel .carousel-item{max-height:460px;width:100%;display:flex;cursor:zoom-in;flex-shrink:0;flex-grow:0}#product_page_carousel .carousel-item img{width:100%;height:auto;object-fit:contain}#product_page_carousel .carousel-scroller-layer{height:100%;width:100%;position:absolute;pointer-events:none;top:0;left:0}#product_page_carousel #product_page_carousel_thumbs{display:flex;justify-content:flex-start;height:80px;margin-left:auto;margin-right:auto}#product_page_carousel #product_page_carousel_thumbs ::ng-deep co-scroll-container{padding:0 22px}#product_page_carousel #product_page_carousel_thumbs ::ng-deep co-scroll-container .content-wrapper{padding:0}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb{opacity:1;cursor:pointer;transition:all .2s ease;padding:4px;border:1px solid #f6f5f4}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb.active,#product_page_carousel #product_page_carousel_thumbs .carousel-thumb:hover{border-color:#22313c}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb:not(:last-child){margin-right:10px}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb img{height:68px}.image-modal{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000}.image-modal__content{position:relative;max-width:90vw;max-height:90vh}.image-modal__content img{max-width:90vw;max-height:90vh;object-fit:contain;display:block}.image-modal__close{position:fixed;top:15px;right:30px;background:transparent;border:none;color:#fff;font-size:60px;line-height:1;cursor:pointer}@media screen and (max-width: 650px){#product_page_carousel_thumbs{height:57px!important}#product_page_carousel_thumbs .carousel-thumb img{height:50px!important}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"], dependencies: [{ kind: "component", type: i6.LoaderComponent, selector: "co-loader" }, { kind: "component", type: i6.ScrollContainerComponent, selector: "co-scroll-container", inputs: ["vertical"] }, { kind: "directive", type: i6$1.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i6$1.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: i6.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1202
1206
  }
1203
1207
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ImageCarouselComponent, decorators: [{
1204
1208
  type: Component,
@@ -1264,7 +1268,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
1264
1268
  </div>
1265
1269
  </div>
1266
1270
  </ng-template>
1267
- `, changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, styles: [":host{max-height:540px;height:100%;position:relative}:host:not(.resizing) .inner-carousel{scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory}#product_page_carousel{position:relative}#product_page_carousel .refresh-button{position:absolute;bottom:10px;right:10px;background:#fff}#product_page_carousel .refresh-button.loading{animation:spin 1s linear infinite}#product_page_carousel .refresh-button:hover{box-shadow:none;background:#74b77f;transition:all .2s ease-in-out}#product_page_carousel .refresh-button:hover ::ng-deep svg path{fill:#fff!important}#product_page_carousel #product_page_carousel_items{position:relative;margin-bottom:10px}#product_page_carousel #product_page_carousel_items ::ng-deep co-loader{position:absolute}#product_page_carousel .inner-carousel{display:flex;flex-direction:row;align-items:center;overflow:hidden;max-height:500px;border:1px solid #efefef}#product_page_carousel .carousel-item{max-height:500px;width:100%;display:flex;cursor:zoom-in;flex-shrink:0;flex-grow:0}#product_page_carousel .carousel-item img{width:100%;height:auto;object-fit:contain}#product_page_carousel .carousel-scroller-layer{height:100%;width:100%;position:absolute;pointer-events:none;top:0;left:0}#product_page_carousel #product_page_carousel_thumbs{display:flex;justify-content:flex-start;height:80px;margin-left:auto;margin-right:auto}#product_page_carousel #product_page_carousel_thumbs ::ng-deep co-scroll-container{padding:0 22px}#product_page_carousel #product_page_carousel_thumbs ::ng-deep co-scroll-container .content-wrapper{padding:0}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb{opacity:1;cursor:pointer;transition:all .2s ease;padding:4px;border:1px solid #f6f5f4}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb.active,#product_page_carousel #product_page_carousel_thumbs .carousel-thumb:hover{border-color:#22313c}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb:not(:last-child){margin-right:10px}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb img{height:68px}.image-modal{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000}.image-modal__content{position:relative;max-width:90vw;max-height:90vh}.image-modal__content img{max-width:90vw;max-height:90vh;object-fit:contain;display:block}.image-modal__close{position:fixed;top:15px;right:30px;background:transparent;border:none;color:#fff;font-size:60px;line-height:1;cursor:pointer}@media screen and (max-width: 650px){#product_page_carousel_thumbs{height:57px!important}#product_page_carousel_thumbs .carousel-thumb img{height:50px!important}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"] }]
1271
+ `, changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, styles: [":host{height:100%;position:relative;min-height:600px}:host:not(.resizing) .inner-carousel{scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory}#product_page_carousel{position:relative}#product_page_carousel .refresh-button{position:absolute;bottom:10px;right:10px;background:#fff}#product_page_carousel .refresh-button.loading{animation:spin 1s linear infinite}#product_page_carousel .refresh-button:hover{box-shadow:none;background:#4e9b7e;transition:all .2s ease-in-out}#product_page_carousel .refresh-button:hover ::ng-deep svg path{fill:#fff!important}#product_page_carousel #product_page_carousel_items{position:relative;margin-bottom:10px}#product_page_carousel #product_page_carousel_items ::ng-deep co-loader{position:absolute}#product_page_carousel .inner-carousel{display:flex;flex-direction:row;align-items:center;overflow:hidden;max-height:460px}#product_page_carousel .carousel-item{max-height:460px;width:100%;display:flex;cursor:zoom-in;flex-shrink:0;flex-grow:0}#product_page_carousel .carousel-item img{width:100%;height:auto;object-fit:contain}#product_page_carousel .carousel-scroller-layer{height:100%;width:100%;position:absolute;pointer-events:none;top:0;left:0}#product_page_carousel #product_page_carousel_thumbs{display:flex;justify-content:flex-start;height:80px;margin-left:auto;margin-right:auto}#product_page_carousel #product_page_carousel_thumbs ::ng-deep co-scroll-container{padding:0 22px}#product_page_carousel #product_page_carousel_thumbs ::ng-deep co-scroll-container .content-wrapper{padding:0}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb{opacity:1;cursor:pointer;transition:all .2s ease;padding:4px;border:1px solid #f6f5f4}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb.active,#product_page_carousel #product_page_carousel_thumbs .carousel-thumb:hover{border-color:#22313c}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb:not(:last-child){margin-right:10px}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb img{height:68px}.image-modal{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000}.image-modal__content{position:relative;max-width:90vw;max-height:90vh}.image-modal__content img{max-width:90vw;max-height:90vh;object-fit:contain;display:block}.image-modal__close{position:fixed;top:15px;right:30px;background:transparent;border:none;color:#fff;font-size:60px;line-height:1;cursor:pointer}@media screen and (max-width: 650px){#product_page_carousel_thumbs{height:57px!important}#product_page_carousel_thumbs .carousel-thumb img{height:50px!important}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"] }]
1268
1272
  }], ctorParameters: () => [{ type: IconCacheService }, { type: ProductConnectorService }, { type: ProductEventService }, { type: i0.ChangeDetectorRef }, { type: i1.DomSanitizer }], propDecorators: { carousel: [{
1269
1273
  type: ViewChild,
1270
1274
  args: ['carousel', { read: ElementRef }]
@@ -1294,31 +1298,47 @@ class ProductDescriptionComponent {
1294
1298
  ngOnInit() {
1295
1299
  }
1296
1300
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductDescriptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1297
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: ProductDescriptionComponent, isStandalone: false, selector: "app-product-description", inputs: { article: "article" }, ngImport: i0, template: `
1298
- <div class="pd-title-wrapper">
1299
- @if (article?.descriptionRetail) {
1300
- <span class="pd-description" [textContent]="article?.descriptionRetail"></span>
1301
- }
1302
- @if (article?.articleNr) {
1303
- <span class="pd-sku" [textContent]="article?.articleNr"></span>
1304
- }
1305
- </div>
1306
- `, isInline: true, styles: [":host{display:block}.pd-title-wrapper{margin:20px 0 0}.pd-description{color:#22313c;font-size:25px;font-weight:700;width:100%;display:block}.pd-sku{color:#5b6875;font-size:16px}@media screen and (max-width: 650px){.pd-description{font-size:21px}.pd-sku{font-size:13px}}\n"] }); }
1301
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: ProductDescriptionComponent, isStandalone: false, selector: "app-product-description", inputs: { article: "article", configuring: "configuring" }, ngImport: i0, template: `
1302
+ <div class="product-description-wrapper">
1303
+ <div class="pd-title-wrapper">
1304
+ @if (article?.descriptionRetail) {
1305
+ <span class="pd-description" [textContent]="article?.descriptionRetail"></span>
1306
+ }
1307
+ @if (article?.articleNr) {
1308
+ <span class="pd-sku" [textContent]="article?.articleNr"></span>
1309
+ }
1310
+ </div>
1311
+ <div class="save-configuration-button">
1312
+ @if (configuring) {
1313
+ <co-configuration-preset></co-configuration-preset>
1314
+ }
1315
+ </div>
1316
+ </div>
1317
+ `, isInline: true, styles: [":host{display:block}:host .product-description-wrapper{display:flex;justify-content:space-between}:host .product-description-wrapper .pd-title-wrapper{margin:0;padding-bottom:30px}:host .product-description-wrapper .pd-title-wrapper .pd-description{color:#22313c;font-size:25px;font-weight:700;width:100%;display:block}:host .product-description-wrapper .pd-title-wrapper .pd-sku{font-size:14px}:host .product-description-wrapper .save-configuration-button ::ng-deep .open-save-load{display:none}:host .product-description-wrapper .save-configuration-button ::ng-deep .save-load-configuration-buttons{visibility:visible;position:relative;transform:none;pointer-events:all;opacity:1;box-shadow:none}:host .product-description-wrapper .save-configuration-button ::ng-deep .save-load-configuration-buttons .save-preset-button{border:1px solid #1A73E8;cursor:pointer}@media screen and (max-width: 650px){:host .product-description-wrapper .pd-description{font-size:21px}:host .product-description-wrapper .pd-sku{font-size:13px}}\n"], dependencies: [{ kind: "component", type: i5.ConfigurationPresetComponent, selector: "co-configuration-preset" }] }); }
1307
1318
  }
1308
1319
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductDescriptionComponent, decorators: [{
1309
1320
  type: Component,
1310
1321
  args: [{ selector: 'app-product-description', template: `
1311
- <div class="pd-title-wrapper">
1312
- @if (article?.descriptionRetail) {
1313
- <span class="pd-description" [textContent]="article?.descriptionRetail"></span>
1314
- }
1315
- @if (article?.articleNr) {
1316
- <span class="pd-sku" [textContent]="article?.articleNr"></span>
1317
- }
1318
- </div>
1319
- `, standalone: false, styles: [":host{display:block}.pd-title-wrapper{margin:20px 0 0}.pd-description{color:#22313c;font-size:25px;font-weight:700;width:100%;display:block}.pd-sku{color:#5b6875;font-size:16px}@media screen and (max-width: 650px){.pd-description{font-size:21px}.pd-sku{font-size:13px}}\n"] }]
1322
+ <div class="product-description-wrapper">
1323
+ <div class="pd-title-wrapper">
1324
+ @if (article?.descriptionRetail) {
1325
+ <span class="pd-description" [textContent]="article?.descriptionRetail"></span>
1326
+ }
1327
+ @if (article?.articleNr) {
1328
+ <span class="pd-sku" [textContent]="article?.articleNr"></span>
1329
+ }
1330
+ </div>
1331
+ <div class="save-configuration-button">
1332
+ @if (configuring) {
1333
+ <co-configuration-preset></co-configuration-preset>
1334
+ }
1335
+ </div>
1336
+ </div>
1337
+ `, standalone: false, styles: [":host{display:block}:host .product-description-wrapper{display:flex;justify-content:space-between}:host .product-description-wrapper .pd-title-wrapper{margin:0;padding-bottom:30px}:host .product-description-wrapper .pd-title-wrapper .pd-description{color:#22313c;font-size:25px;font-weight:700;width:100%;display:block}:host .product-description-wrapper .pd-title-wrapper .pd-sku{font-size:14px}:host .product-description-wrapper .save-configuration-button ::ng-deep .open-save-load{display:none}:host .product-description-wrapper .save-configuration-button ::ng-deep .save-load-configuration-buttons{visibility:visible;position:relative;transform:none;pointer-events:all;opacity:1;box-shadow:none}:host .product-description-wrapper .save-configuration-button ::ng-deep .save-load-configuration-buttons .save-preset-button{border:1px solid #1A73E8;cursor:pointer}@media screen and (max-width: 650px){:host .product-description-wrapper .pd-description{font-size:21px}:host .product-description-wrapper .pd-sku{font-size:13px}}\n"] }]
1320
1338
  }], ctorParameters: () => [], propDecorators: { article: [{
1321
1339
  type: Input
1340
+ }], configuring: [{
1341
+ type: Input
1322
1342
  }] } });
1323
1343
 
1324
1344
  class BitUtils {
@@ -1380,7 +1400,7 @@ class ProductAdditionalDescriptionComponent {
1380
1400
  <button class="pd-read-more-btn" [textContent]="'READ_MORE' | localize" (click)="onReadMore()"></button>
1381
1401
  </div>
1382
1402
  }
1383
- `, isInline: true, styles: [":host{display:block;padding-top:0!important}:host *:focus{outline:0!important}:host .pd-additional-description{line-height:190%;color:#22313c;font-size:13px}:host .pd-read-more-btn{color:#2b60a7;border:none;background:transparent;cursor:pointer;text-decoration:underline;font-family:iOneMontserrat}:host .pd-read-more-btn:hover{color:#74b77f}@media screen and (max-width: 650px){:host .pd-additional-description{font-size:12px}}\n"], dependencies: [{ kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
1403
+ `, isInline: true, styles: [":host{display:block;padding-top:0!important}:host *:focus{outline:0!important}:host .pd-additional-description{line-height:190%;color:#22313c;font-size:13px}:host .pd-read-more-btn{color:#1a73e8;border:none;background:transparent;cursor:pointer;text-decoration:underline}:host .pd-read-more-btn:hover{color:#4e9b7e}@media screen and (max-width: 650px){:host .pd-additional-description{font-size:12px}}\n"], dependencies: [{ kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
1384
1404
  }
1385
1405
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductAdditionalDescriptionComponent, decorators: [{
1386
1406
  type: Component,
@@ -1391,7 +1411,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
1391
1411
  <button class="pd-read-more-btn" [textContent]="'READ_MORE' | localize" (click)="onReadMore()"></button>
1392
1412
  </div>
1393
1413
  }
1394
- `, standalone: false, styles: [":host{display:block;padding-top:0!important}:host *:focus{outline:0!important}:host .pd-additional-description{line-height:190%;color:#22313c;font-size:13px}:host .pd-read-more-btn{color:#2b60a7;border:none;background:transparent;cursor:pointer;text-decoration:underline;font-family:iOneMontserrat}:host .pd-read-more-btn:hover{color:#74b77f}@media screen and (max-width: 650px){:host .pd-additional-description{font-size:12px}}\n"] }]
1414
+ `, standalone: false, styles: [":host{display:block;padding-top:0!important}:host *:focus{outline:0!important}:host .pd-additional-description{line-height:190%;color:#22313c;font-size:13px}:host .pd-read-more-btn{color:#1a73e8;border:none;background:transparent;cursor:pointer;text-decoration:underline}:host .pd-read-more-btn:hover{color:#4e9b7e}@media screen and (max-width: 650px){:host .pd-additional-description{font-size:12px}}\n"] }]
1395
1415
  }], ctorParameters: () => [{ type: ProductEventService }], propDecorators: { article: [{
1396
1416
  type: Input
1397
1417
  }] } });
@@ -1471,39 +1491,39 @@ class ProductPriceComponent {
1471
1491
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductPriceComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
1472
1492
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: ProductPriceComponent, isStandalone: false, selector: "app-product-price", inputs: { pricing: "pricing", configurable: "configurable" }, ngImport: i0, template: `
1473
1493
  @if (toPrice) {
1474
- <div>
1494
+ <div class="product-price">
1475
1495
  @if (fromPrice > toPrice) {
1476
- <div class="price-wrapper">
1496
+ <div class="price-wrapper old-price">
1477
1497
  <div class="from-price-label" [textContent]="fromLabel | localize"></div>
1478
1498
  <div class="from-price" [textContent]="fromPrice | priceDisplay: valutaSign"></div>
1479
1499
  </div>
1480
1500
  }
1481
- <div class="price-wrapper">
1501
+ <div class="price-wrapper net-price">
1482
1502
  <div class="to-price-label" [textContent]="toLabel | localize"></div>
1483
1503
  <div class="to-price" [textContent]="toPrice | priceDisplay: valutaSign"></div>
1484
1504
  </div>
1485
1505
  </div>
1486
1506
  }
1487
- `, isInline: true, styles: [":host{display:flex;flex-direction:column}.price-wrapper{width:100%;font-size:15px;margin:0 0 5px;display:inline-block}.price-wrapper:last-child{margin:0}.from-price-label,.to-price-label{color:#5b6875;display:none}.from-price{font-size:16px;font-weight:700;text-decoration:line-through;color:#5b6875}.to-price{font-size:25px;font-weight:700;color:#74b77f}@media screen and (max-width: 650px){.from-price{font-size:13px}.to-price{font-size:21px}}\n"], dependencies: [{ kind: "pipe", type: LocalizePipe, name: "localize" }, { kind: "pipe", type: PriceDisplayPipe, name: "priceDisplay" }] }); }
1507
+ `, isInline: true, styles: [":host{display:flex;flex-direction:column}.product-price{padding:30px 0;display:flex;flex-direction:column;gap:2px}.price-wrapper{width:100%;font-size:15px;display:inline-block}.price-wrapper:last-child{margin:0}.from-price-label,.to-price-label{color:#9ca5ae;display:none}.from-price{font-size:14px;font-weight:500;text-decoration:line-through;color:#9ca5ae}.to-price{font-size:22px;font-weight:700;color:#4e9b7e}@media screen and (max-width: 650px){.from-price{font-size:13px}.to-price{font-size:21px}}\n"], dependencies: [{ kind: "pipe", type: LocalizePipe, name: "localize" }, { kind: "pipe", type: PriceDisplayPipe, name: "priceDisplay" }] }); }
1488
1508
  }
1489
1509
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductPriceComponent, decorators: [{
1490
1510
  type: Component,
1491
1511
  args: [{ selector: 'app-product-price', template: `
1492
1512
  @if (toPrice) {
1493
- <div>
1513
+ <div class="product-price">
1494
1514
  @if (fromPrice > toPrice) {
1495
- <div class="price-wrapper">
1515
+ <div class="price-wrapper old-price">
1496
1516
  <div class="from-price-label" [textContent]="fromLabel | localize"></div>
1497
1517
  <div class="from-price" [textContent]="fromPrice | priceDisplay: valutaSign"></div>
1498
1518
  </div>
1499
1519
  }
1500
- <div class="price-wrapper">
1520
+ <div class="price-wrapper net-price">
1501
1521
  <div class="to-price-label" [textContent]="toLabel | localize"></div>
1502
1522
  <div class="to-price" [textContent]="toPrice | priceDisplay: valutaSign"></div>
1503
1523
  </div>
1504
1524
  </div>
1505
1525
  }
1506
- `, standalone: false, styles: [":host{display:flex;flex-direction:column}.price-wrapper{width:100%;font-size:15px;margin:0 0 5px;display:inline-block}.price-wrapper:last-child{margin:0}.from-price-label,.to-price-label{color:#5b6875;display:none}.from-price{font-size:16px;font-weight:700;text-decoration:line-through;color:#5b6875}.to-price{font-size:25px;font-weight:700;color:#74b77f}@media screen and (max-width: 650px){.from-price{font-size:13px}.to-price{font-size:21px}}\n"] }]
1526
+ `, standalone: false, styles: [":host{display:flex;flex-direction:column}.product-price{padding:30px 0;display:flex;flex-direction:column;gap:2px}.price-wrapper{width:100%;font-size:15px;display:inline-block}.price-wrapper:last-child{margin:0}.from-price-label,.to-price-label{color:#9ca5ae;display:none}.from-price{font-size:14px;font-weight:500;text-decoration:line-through;color:#9ca5ae}.to-price{font-size:22px;font-weight:700;color:#4e9b7e}@media screen and (max-width: 650px){.from-price{font-size:13px}.to-price{font-size:21px}}\n"] }]
1507
1527
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { pricing: [{
1508
1528
  type: Input
1509
1529
  }], configurable: [{
@@ -1655,7 +1675,7 @@ class ProductAddtocartComponent {
1655
1675
  </div>
1656
1676
  }
1657
1677
  </div>
1658
- `, isInline: true, styles: [":host{display:flex;flex-direction:column}:host *:not(:last-child){margin-bottom:5px}:host .atc-wrapper{display:flex;flex-direction:row;align-items:baseline}:host .atc-wrapper .quantity-select{margin-right:5px}:host.full-screen .cart-button{position:fixed;right:20px;bottom:20px;z-index:3}::ng-deep co-number-picker{max-width:100px;border:2px solid #f6f5f4;border-radius:5px}::ng-deep co-number-picker ::ng-deep co-input-text{height:50px!important;border:none!important;width:50px!important}::ng-deep co-number-picker ::ng-deep co-input-text:after{display:none}::ng-deep co-number-picker ::ng-deep co-input-text.focused{box-shadow:none!important;border:none!important;background:none!important}::ng-deep co-number-picker ::ng-deep co-input-text .clear-icon{display:none}::ng-deep co-number-picker ::ng-deep co-input-text input{width:100%;text-align:center}::ng-deep co-number-picker ::ng-deep co-button{justify-content:center;padding:0!important;margin:0!important;height:50px!important;background-color:transparent!important}::ng-deep co-number-picker ::ng-deep co-button ::ng-deep co-icon [fill]{fill:#22313c!important}.button-wrapper ::ng-deep co-button{height:50px;max-width:300px;justify-content:center;font-size:15px;border-radius:5px!important;cursor:pointer;padding:0 20px!important}.button-wrapper ::ng-deep co-button:hover{background:#74b77f}::ng-deep co-button.cart-button{border-radius:5px}::ng-deep co-button.cart-button.quote{background:#7292b6}\n"], dependencies: [{ kind: "component", type: i6.InputNumberPickerComponent, selector: "co-input-number-picker", inputs: ["model", "modelChangeOnEnter", "showPermanentLabel", "leftIconData", "min", "step", "max", "ngModelOptions", "minusIcon", "plusIcon", "buttonShowMode", "noValidation", "decimals"], outputs: ["modelChange", "iconClick"] }, { kind: "component", type: i6.ButtonComponent, selector: "co-button", inputs: ["label", "iconData", "iconDataRight", "isToggleButton", "isToggled", "hidden", "disabled"], outputs: ["onClick", "clickedWhileDisabled", "isToggledChange"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
1678
+ `, isInline: true, styles: [":host{display:flex;flex-direction:column}:host *:not(:last-child){margin-bottom:5px}:host .atc-wrapper{display:flex;flex-direction:column;align-items:start;gap:10px;padding:30px 0}:host .atc-wrapper .quantity-select{margin:0}:host .atc-wrapper ::ng-deep co-input-number-picker{max-width:120px;border:1px solid #ccc;border-radius:0;height:36px}:host .atc-wrapper ::ng-deep co-input-number-picker .button-wrapper{cursor:pointer}:host .atc-wrapper ::ng-deep co-input-number-picker:hover{border-width:1px;border-color:#ccc}:host .atc-wrapper ::ng-deep co-input-number-picker:after,:host .atc-wrapper ::ng-deep co-input-number-picker:before{display:none}:host .atc-wrapper ::ng-deep co-input-number-picker .input-wrapper{height:100%;align-items:center;justify-content:center;padding-left:0}:host .atc-wrapper ::ng-deep co-input-number-picker .input-wrapper:after{display:none}:host .atc-wrapper ::ng-deep co-input-number-picker .input-wrapper.focused{box-shadow:none!important;border:none!important;background:none!important}:host .atc-wrapper ::ng-deep co-input-number-picker .input-wrapper .clear-icon{display:none}:host .atc-wrapper ::ng-deep co-input-number-picker .input-wrapper input{width:100%;text-align:center}:host .atc-wrapper ::ng-deep co-input-number-picker ::ng-deep co-button{justify-content:center;padding:0!important;margin:0!important;background-color:transparent!important}:host .atc-wrapper ::ng-deep co-input-number-picker ::ng-deep co-button ::ng-deep co-icon [fill]{fill:#22313c!important}:host .atc-wrapper ::ng-deep co-input-number-picker ::ng-deep co-button ::ng-deep co-icon{height:20px;width:20px}:host.full-screen .cart-button{position:fixed;right:20px;bottom:20px;z-index:3}.button-wrapper ::ng-deep co-button{height:50px;width:300px;max-width:100%;justify-content:center;font-size:15px;border-radius:5px!important;cursor:pointer;padding:0 20px!important;color:#fff;background-color:#1a73e8}.button-wrapper ::ng-deep co-button:hover{opacity:.9}.button-wrapper ::ng-deep co-button ::ng-deep co-icon svg [fill]{fill:#fff!important}::ng-deep co-button.cart-button{border-radius:5px}::ng-deep co-button.cart-button.quote{background:#7292b6}\n"], dependencies: [{ kind: "component", type: i6.InputNumberPickerComponent, selector: "co-input-number-picker", inputs: ["model", "modelChangeOnEnter", "showPermanentLabel", "leftIconData", "min", "step", "max", "ngModelOptions", "minusIcon", "plusIcon", "buttonShowMode", "noValidation", "decimals"], outputs: ["modelChange", "iconClick"] }, { kind: "component", type: i6.ButtonComponent, selector: "co-button", inputs: ["label", "iconData", "iconDataRight", "isToggleButton", "isToggled", "hidden", "disabled"], outputs: ["onClick", "clickedWhileDisabled", "isToggledChange"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
1659
1679
  }
1660
1680
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductAddtocartComponent, decorators: [{
1661
1681
  type: Component,
@@ -1699,7 +1719,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
1699
1719
  </div>
1700
1720
  }
1701
1721
  </div>
1702
- `, standalone: false, styles: [":host{display:flex;flex-direction:column}:host *:not(:last-child){margin-bottom:5px}:host .atc-wrapper{display:flex;flex-direction:row;align-items:baseline}:host .atc-wrapper .quantity-select{margin-right:5px}:host.full-screen .cart-button{position:fixed;right:20px;bottom:20px;z-index:3}::ng-deep co-number-picker{max-width:100px;border:2px solid #f6f5f4;border-radius:5px}::ng-deep co-number-picker ::ng-deep co-input-text{height:50px!important;border:none!important;width:50px!important}::ng-deep co-number-picker ::ng-deep co-input-text:after{display:none}::ng-deep co-number-picker ::ng-deep co-input-text.focused{box-shadow:none!important;border:none!important;background:none!important}::ng-deep co-number-picker ::ng-deep co-input-text .clear-icon{display:none}::ng-deep co-number-picker ::ng-deep co-input-text input{width:100%;text-align:center}::ng-deep co-number-picker ::ng-deep co-button{justify-content:center;padding:0!important;margin:0!important;height:50px!important;background-color:transparent!important}::ng-deep co-number-picker ::ng-deep co-button ::ng-deep co-icon [fill]{fill:#22313c!important}.button-wrapper ::ng-deep co-button{height:50px;max-width:300px;justify-content:center;font-size:15px;border-radius:5px!important;cursor:pointer;padding:0 20px!important}.button-wrapper ::ng-deep co-button:hover{background:#74b77f}::ng-deep co-button.cart-button{border-radius:5px}::ng-deep co-button.cart-button.quote{background:#7292b6}\n"] }]
1722
+ `, standalone: false, styles: [":host{display:flex;flex-direction:column}:host *:not(:last-child){margin-bottom:5px}:host .atc-wrapper{display:flex;flex-direction:column;align-items:start;gap:10px;padding:30px 0}:host .atc-wrapper .quantity-select{margin:0}:host .atc-wrapper ::ng-deep co-input-number-picker{max-width:120px;border:1px solid #ccc;border-radius:0;height:36px}:host .atc-wrapper ::ng-deep co-input-number-picker .button-wrapper{cursor:pointer}:host .atc-wrapper ::ng-deep co-input-number-picker:hover{border-width:1px;border-color:#ccc}:host .atc-wrapper ::ng-deep co-input-number-picker:after,:host .atc-wrapper ::ng-deep co-input-number-picker:before{display:none}:host .atc-wrapper ::ng-deep co-input-number-picker .input-wrapper{height:100%;align-items:center;justify-content:center;padding-left:0}:host .atc-wrapper ::ng-deep co-input-number-picker .input-wrapper:after{display:none}:host .atc-wrapper ::ng-deep co-input-number-picker .input-wrapper.focused{box-shadow:none!important;border:none!important;background:none!important}:host .atc-wrapper ::ng-deep co-input-number-picker .input-wrapper .clear-icon{display:none}:host .atc-wrapper ::ng-deep co-input-number-picker .input-wrapper input{width:100%;text-align:center}:host .atc-wrapper ::ng-deep co-input-number-picker ::ng-deep co-button{justify-content:center;padding:0!important;margin:0!important;background-color:transparent!important}:host .atc-wrapper ::ng-deep co-input-number-picker ::ng-deep co-button ::ng-deep co-icon [fill]{fill:#22313c!important}:host .atc-wrapper ::ng-deep co-input-number-picker ::ng-deep co-button ::ng-deep co-icon{height:20px;width:20px}:host.full-screen .cart-button{position:fixed;right:20px;bottom:20px;z-index:3}.button-wrapper ::ng-deep co-button{height:50px;width:300px;max-width:100%;justify-content:center;font-size:15px;border-radius:5px!important;cursor:pointer;padding:0 20px!important;color:#fff;background-color:#1a73e8}.button-wrapper ::ng-deep co-button:hover{opacity:.9}.button-wrapper ::ng-deep co-button ::ng-deep co-icon svg [fill]{fill:#fff!important}::ng-deep co-button.cart-button{border-radius:5px}::ng-deep co-button.cart-button.quote{background:#7292b6}\n"] }]
1703
1723
  }], ctorParameters: () => [{ type: IconCacheService }, { type: ProductConnectorService }, { type: ProductEventService }, { type: ProductSettingsService }, { type: ProductConnectorAdapterService }], propDecorators: { addToCartButton: [{
1704
1724
  type: ViewChild,
1705
1725
  args: ['addtocartbutton', { read: ElementRef }]
@@ -1881,7 +1901,7 @@ class ProductRelatedComponent {
1881
1901
  </co-scroll-container>
1882
1902
  </div>
1883
1903
  }
1884
- `, isInline: true, styles: [":host{display:block}.article-wrapper{display:flex;flex-direction:row;flex:1;justify-content:flex-start}.article-wrapper ::ng-deep co-tile{transition:all .14s ease-out;border:1px solid transparent;padding:10px;display:flex;flex-direction:column;color:#171721;box-sizing:border-box;justify-content:space-between}.article-wrapper ::ng-deep co-tile .price{display:block;padding:10px 0}.article-wrapper ::ng-deep co-tile .description{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;height:30px}.article-wrapper ::ng-deep co-tile .tile-bottom{display:flex;flex-direction:column;gap:5px}.article-wrapper ::ng-deep co-tile:hover{border:1px solid #DCE4EA}.article-wrapper ::ng-deep co-tile .tile-extra-bottom co-button co-icon{width:24px;height:24px}.article-wrapper ::ng-deep co-tile .tile-extra-bottom co-button co-icon svg [fill]{fill:#fff}.article-wrapper ::ng-deep co-tile.small{width:100%;height:100%;cursor:pointer}.article-wrapper ::ng-deep co-tile.small:hover .tile-bottom .left-buttons{margin:0!important}.article-wrapper ::ng-deep co-tile.small .tile-wrapper{outline:none!important;padding-bottom:0;overflow:hidden;gap:10px;display:flex;flex-direction:column}.article-wrapper ::ng-deep co-tile.small .tile-wrapper div.image{height:100px}.article-wrapper ::ng-deep co-tile.small .tile-wrapper .no-image-wrapper{min-height:100px;display:flex;align-items:center}.article-wrapper ::ng-deep co-tile.small .tile-wrapper .tile-extra-bottom ::ng-deep co-button.card-button.mini{pointer-events:all;padding:0!important;font-size:0;width:42px;height:42px;text-align:center;margin:0;border-radius:100%;background:#3e7eff;cursor:pointer;place-content:center;color:#fff}.article-wrapper ::ng-deep co-tile.small .tile-wrapper .tile-extra-bottom ::ng-deep co-button.card-button.mini ::ng-deep co-icon{width:30px;height:30px}.article-wrapper ::ng-deep co-tile.small .tile-extra-bottom{outline:none!important;background:transparent!important}.article-wrapper ::ng-deep co-tile.small .tile-extra-bottom .price{color:#74b77f;margin:5px 0 0;font-weight:400;font-size:12px}\n"], dependencies: [{ kind: "component", type: HeaderComponent, selector: "app-header", inputs: ["label", "amount"] }, { kind: "component", type: i6.ScrollContainerComponent, selector: "co-scroll-container", inputs: ["vertical"] }, { kind: "component", type: i6.ArticleTileComponent, selector: "co-article-tile", inputs: ["imageData", "description", "price", "level", "isSelected", "isSmallModus", "hasConfigureButton", "hasThreeDButton", "hasCartButton"], outputs: ["contentClick", "configureButtonClick", "threeDButtonClick", "cartButtonClick"] }] }); }
1904
+ `, isInline: true, styles: [":host{display:block}.article-wrapper{display:flex;flex-direction:row;flex:1;justify-content:flex-start}.article-wrapper ::ng-deep co-tile{transition:all .14s ease-out;border:1px solid transparent;padding:10px;display:flex;flex-direction:column;color:#171721;box-sizing:border-box;justify-content:space-between}.article-wrapper ::ng-deep co-tile .price{display:block;padding:10px 0}.article-wrapper ::ng-deep co-tile .description{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;height:30px}.article-wrapper ::ng-deep co-tile .tile-bottom{display:flex;flex-direction:column;gap:5px}.article-wrapper ::ng-deep co-tile:hover{border:1px solid #DCE4EA}.article-wrapper ::ng-deep co-tile .tile-extra-bottom co-button co-icon{width:24px;height:24px}.article-wrapper ::ng-deep co-tile .tile-extra-bottom co-button co-icon svg [fill]{fill:#fff}.article-wrapper ::ng-deep co-tile.small{width:100%;height:100%;cursor:pointer}.article-wrapper ::ng-deep co-tile.small:hover .tile-bottom .left-buttons{margin:0!important}.article-wrapper ::ng-deep co-tile.small .tile-wrapper{outline:none!important;padding-bottom:0;overflow:hidden;gap:10px;display:flex;flex-direction:column}.article-wrapper ::ng-deep co-tile.small .tile-wrapper div.image{height:100px}.article-wrapper ::ng-deep co-tile.small .tile-wrapper .no-image-wrapper{min-height:100px;display:flex;align-items:center}.article-wrapper ::ng-deep co-tile.small .tile-extra-bottom{outline:none!important;background:transparent!important}.article-wrapper ::ng-deep co-tile.small .tile-extra-bottom .price{color:#4e9b7e;margin:5px 0 0;font-weight:400;font-size:12px}.article-wrapper ::ng-deep co-tile.small .tile-extra-bottom ::ng-deep co-button.card-button.mini{pointer-events:all;padding:0!important;font-size:0;width:30px;height:30px;text-align:center;margin:0;border-radius:5px;background:#3e7eff;cursor:pointer;place-content:center;color:#fff}.article-wrapper ::ng-deep co-tile.small .tile-extra-bottom ::ng-deep co-button.card-button.mini ::ng-deep co-icon{width:24px;height:24px}\n"], dependencies: [{ kind: "component", type: HeaderComponent, selector: "app-header", inputs: ["label", "amount"] }, { kind: "component", type: i6.ScrollContainerComponent, selector: "co-scroll-container", inputs: ["vertical"] }, { kind: "component", type: i6.ArticleTileComponent, selector: "co-article-tile", inputs: ["imageData", "description", "price", "level", "isSelected", "isSmallModus", "hasConfigureButton", "hasThreeDButton", "hasCartButton"], outputs: ["contentClick", "configureButtonClick", "threeDButtonClick", "cartButtonClick"] }] }); }
1885
1905
  }
1886
1906
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductRelatedComponent, decorators: [{
1887
1907
  type: Component,
@@ -1912,7 +1932,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
1912
1932
  </co-scroll-container>
1913
1933
  </div>
1914
1934
  }
1915
- `, standalone: false, styles: [":host{display:block}.article-wrapper{display:flex;flex-direction:row;flex:1;justify-content:flex-start}.article-wrapper ::ng-deep co-tile{transition:all .14s ease-out;border:1px solid transparent;padding:10px;display:flex;flex-direction:column;color:#171721;box-sizing:border-box;justify-content:space-between}.article-wrapper ::ng-deep co-tile .price{display:block;padding:10px 0}.article-wrapper ::ng-deep co-tile .description{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;height:30px}.article-wrapper ::ng-deep co-tile .tile-bottom{display:flex;flex-direction:column;gap:5px}.article-wrapper ::ng-deep co-tile:hover{border:1px solid #DCE4EA}.article-wrapper ::ng-deep co-tile .tile-extra-bottom co-button co-icon{width:24px;height:24px}.article-wrapper ::ng-deep co-tile .tile-extra-bottom co-button co-icon svg [fill]{fill:#fff}.article-wrapper ::ng-deep co-tile.small{width:100%;height:100%;cursor:pointer}.article-wrapper ::ng-deep co-tile.small:hover .tile-bottom .left-buttons{margin:0!important}.article-wrapper ::ng-deep co-tile.small .tile-wrapper{outline:none!important;padding-bottom:0;overflow:hidden;gap:10px;display:flex;flex-direction:column}.article-wrapper ::ng-deep co-tile.small .tile-wrapper div.image{height:100px}.article-wrapper ::ng-deep co-tile.small .tile-wrapper .no-image-wrapper{min-height:100px;display:flex;align-items:center}.article-wrapper ::ng-deep co-tile.small .tile-wrapper .tile-extra-bottom ::ng-deep co-button.card-button.mini{pointer-events:all;padding:0!important;font-size:0;width:42px;height:42px;text-align:center;margin:0;border-radius:100%;background:#3e7eff;cursor:pointer;place-content:center;color:#fff}.article-wrapper ::ng-deep co-tile.small .tile-wrapper .tile-extra-bottom ::ng-deep co-button.card-button.mini ::ng-deep co-icon{width:30px;height:30px}.article-wrapper ::ng-deep co-tile.small .tile-extra-bottom{outline:none!important;background:transparent!important}.article-wrapper ::ng-deep co-tile.small .tile-extra-bottom .price{color:#74b77f;margin:5px 0 0;font-weight:400;font-size:12px}\n"] }]
1935
+ `, standalone: false, styles: [":host{display:block}.article-wrapper{display:flex;flex-direction:row;flex:1;justify-content:flex-start}.article-wrapper ::ng-deep co-tile{transition:all .14s ease-out;border:1px solid transparent;padding:10px;display:flex;flex-direction:column;color:#171721;box-sizing:border-box;justify-content:space-between}.article-wrapper ::ng-deep co-tile .price{display:block;padding:10px 0}.article-wrapper ::ng-deep co-tile .description{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;height:30px}.article-wrapper ::ng-deep co-tile .tile-bottom{display:flex;flex-direction:column;gap:5px}.article-wrapper ::ng-deep co-tile:hover{border:1px solid #DCE4EA}.article-wrapper ::ng-deep co-tile .tile-extra-bottom co-button co-icon{width:24px;height:24px}.article-wrapper ::ng-deep co-tile .tile-extra-bottom co-button co-icon svg [fill]{fill:#fff}.article-wrapper ::ng-deep co-tile.small{width:100%;height:100%;cursor:pointer}.article-wrapper ::ng-deep co-tile.small:hover .tile-bottom .left-buttons{margin:0!important}.article-wrapper ::ng-deep co-tile.small .tile-wrapper{outline:none!important;padding-bottom:0;overflow:hidden;gap:10px;display:flex;flex-direction:column}.article-wrapper ::ng-deep co-tile.small .tile-wrapper div.image{height:100px}.article-wrapper ::ng-deep co-tile.small .tile-wrapper .no-image-wrapper{min-height:100px;display:flex;align-items:center}.article-wrapper ::ng-deep co-tile.small .tile-extra-bottom{outline:none!important;background:transparent!important}.article-wrapper ::ng-deep co-tile.small .tile-extra-bottom .price{color:#4e9b7e;margin:5px 0 0;font-weight:400;font-size:12px}.article-wrapper ::ng-deep co-tile.small .tile-extra-bottom ::ng-deep co-button.card-button.mini{pointer-events:all;padding:0!important;font-size:0;width:30px;height:30px;text-align:center;margin:0;border-radius:5px;background:#3e7eff;cursor:pointer;place-content:center;color:#fff}.article-wrapper ::ng-deep co-tile.small .tile-extra-bottom ::ng-deep co-button.card-button.mini ::ng-deep co-icon{width:24px;height:24px}\n"] }]
1916
1936
  }], ctorParameters: () => [{ type: ProductConnectorService }, { type: ProductEventService }, { type: ProductConnectorAdapterService }, { type: ProductSettingsService }], propDecorators: { refType: [{
1917
1937
  type: Input
1918
1938
  }], label: [{
@@ -1976,7 +1996,7 @@ class ProductStockComponent {
1976
1996
  <div class="pp-default-label" [class.in-stock]="inStock" [textContent]="stockLabel | localize"></div>
1977
1997
  </div>
1978
1998
  </div>
1979
- `, isInline: true, styles: [":host{display:block}.product-stock-wrapper{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:20px 15px;cursor:pointer}.product-stock-wrapper .stock-icon{margin:0 15px 0 0;width:40px;height:37px}.product-stock-wrapper .product-stock-fields{display:flex;flex-direction:row}.product-stock-wrapper .product-stock-fields .pp-default-label{font-size:14px;margin:0;color:#2b60a7;text-decoration:underline}.product-stock-wrapper .product-stock-fields .pp-default-label:after{content:\"\";width:10px;height:10px;border-radius:10px;background:#f15152;display:inline-block;margin:0 0 0 15px}.product-stock-wrapper .product-stock-fields .pp-default-label.in-stock:after{background:#74b77f}@media screen and (max-width: 400px){.product-stock-wrapper{padding:15px 0 15px 10px}.product-stock-wrapper .stock-icon{margin:0 15px 0 0;width:32px;height:28px}.product-stock-wrapper .product-stock-fields .pp-default-label{font-size:13px}}\n"], dependencies: [{ kind: "component", type: i6.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
1999
+ `, isInline: true, styles: [":host{display:block}.product-stock-wrapper{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:20px 15px;cursor:pointer}.product-stock-wrapper .stock-icon{margin:0 15px 0 0;width:40px;height:37px}.product-stock-wrapper .product-stock-fields{display:flex;flex-direction:row}.product-stock-wrapper .product-stock-fields .pp-default-label{font-size:14px;margin:0;color:#2b60a7;text-decoration:underline}.product-stock-wrapper .product-stock-fields .pp-default-label:after{content:\"\";width:10px;height:10px;border-radius:10px;background:#f15152;display:inline-block;margin:0 0 0 15px}.product-stock-wrapper .product-stock-fields .pp-default-label.in-stock:after{background:#4e9b7e}@media screen and (max-width: 400px){.product-stock-wrapper{padding:15px 0 15px 10px}.product-stock-wrapper .stock-icon{margin:0 15px 0 0;width:32px;height:28px}.product-stock-wrapper .product-stock-fields .pp-default-label{font-size:13px}}\n"], dependencies: [{ kind: "component", type: i6.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
1980
2000
  }
1981
2001
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductStockComponent, decorators: [{
1982
2002
  type: Component,
@@ -1989,7 +2009,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
1989
2009
  <div class="pp-default-label" [class.in-stock]="inStock" [textContent]="stockLabel | localize"></div>
1990
2010
  </div>
1991
2011
  </div>
1992
- `, standalone: false, styles: [":host{display:block}.product-stock-wrapper{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:20px 15px;cursor:pointer}.product-stock-wrapper .stock-icon{margin:0 15px 0 0;width:40px;height:37px}.product-stock-wrapper .product-stock-fields{display:flex;flex-direction:row}.product-stock-wrapper .product-stock-fields .pp-default-label{font-size:14px;margin:0;color:#2b60a7;text-decoration:underline}.product-stock-wrapper .product-stock-fields .pp-default-label:after{content:\"\";width:10px;height:10px;border-radius:10px;background:#f15152;display:inline-block;margin:0 0 0 15px}.product-stock-wrapper .product-stock-fields .pp-default-label.in-stock:after{background:#74b77f}@media screen and (max-width: 400px){.product-stock-wrapper{padding:15px 0 15px 10px}.product-stock-wrapper .stock-icon{margin:0 15px 0 0;width:32px;height:28px}.product-stock-wrapper .product-stock-fields .pp-default-label{font-size:13px}}\n"] }]
2012
+ `, standalone: false, styles: [":host{display:block}.product-stock-wrapper{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:20px 15px;cursor:pointer}.product-stock-wrapper .stock-icon{margin:0 15px 0 0;width:40px;height:37px}.product-stock-wrapper .product-stock-fields{display:flex;flex-direction:row}.product-stock-wrapper .product-stock-fields .pp-default-label{font-size:14px;margin:0;color:#2b60a7;text-decoration:underline}.product-stock-wrapper .product-stock-fields .pp-default-label:after{content:\"\";width:10px;height:10px;border-radius:10px;background:#f15152;display:inline-block;margin:0 0 0 15px}.product-stock-wrapper .product-stock-fields .pp-default-label.in-stock:after{background:#4e9b7e}@media screen and (max-width: 400px){.product-stock-wrapper{padding:15px 0 15px 10px}.product-stock-wrapper .stock-icon{margin:0 15px 0 0;width:32px;height:28px}.product-stock-wrapper .product-stock-fields .pp-default-label{font-size:13px}}\n"] }]
1993
2013
  }], ctorParameters: () => [{ type: ProductConnectorService }, { type: IconCacheService }], propDecorators: { goodId: [{
1994
2014
  type: Input
1995
2015
  }], openStockEvent: [{
@@ -2082,7 +2102,7 @@ class ProductAdditionalInfoComponent {
2082
2102
  <div class="additional-info-parts" [innerHTML]="text"></div>
2083
2103
  }
2084
2104
  }
2085
- `, isInline: true, styles: [":host{display:block}:host .additional-info-parts{margin-bottom:20px;line-height:190%;color:#22313c;font-size:13px}:host ::ng-deep p{line-height:190%;margin:15px 0}:host ::ng-deep font{font-family:iOneMontserrat}:host .additional-info-parts>*:first-child{margin-top:0}:host .additional-info-parts>*:last-child{margin-bottom:0}\n"], dependencies: [{ kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
2105
+ `, isInline: true, styles: [":host{display:block}:host .additional-info-parts{margin-bottom:20px;line-height:190%;color:#22313c;font-size:13px}:host ::ng-deep p{line-height:190%;margin:15px 0}:host .additional-info-parts>*:first-child{margin-top:0}:host .additional-info-parts>*:last-child{margin-bottom:0}\n"], dependencies: [{ kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
2086
2106
  }
2087
2107
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductAdditionalInfoComponent, decorators: [{
2088
2108
  type: Component,
@@ -2095,7 +2115,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
2095
2115
  <div class="additional-info-parts" [innerHTML]="text"></div>
2096
2116
  }
2097
2117
  }
2098
- `, standalone: false, styles: [":host{display:block}:host .additional-info-parts{margin-bottom:20px;line-height:190%;color:#22313c;font-size:13px}:host ::ng-deep p{line-height:190%;margin:15px 0}:host ::ng-deep font{font-family:iOneMontserrat}:host .additional-info-parts>*:first-child{margin-top:0}:host .additional-info-parts>*:last-child{margin-bottom:0}\n"] }]
2118
+ `, standalone: false, styles: [":host{display:block}:host .additional-info-parts{margin-bottom:20px;line-height:190%;color:#22313c;font-size:13px}:host ::ng-deep p{line-height:190%;margin:15px 0}:host .additional-info-parts>*:first-child{margin-top:0}:host .additional-info-parts>*:last-child{margin-bottom:0}\n"] }]
2099
2119
  }], ctorParameters: () => [{ type: i1.DomSanitizer }, { type: ProductConnectorService }, { type: i0.ChangeDetectorRef }], propDecorators: { article: [{
2100
2120
  type: Input
2101
2121
  }], showLabel: [{
@@ -2151,7 +2171,7 @@ class ProductPropertiesComponent {
2151
2171
  </div>
2152
2172
  }
2153
2173
  </div>
2154
- `, isInline: true, styles: [":host{display:block}.article-properties-wrapper{display:flex;flex-direction:column}.article-property{display:flex;flex-direction:row;border-bottom:1px solid #f6f5f4;padding:11px 0;font-size:13px}.article-property:first-child{border-top:1px solid #f6f5f4}.article-property-key{flex-basis:200px;flex-shrink:0;color:#5b6875}@media screen and (max-width: 450px){.article-property-key{flex-basis:130px}}\n"], dependencies: [{ kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
2174
+ `, isInline: true, styles: [":host{display:block}.article-properties-wrapper{display:flex;flex-direction:column}.article-property{display:flex;flex-direction:row;border-bottom:1px solid #f6f5f4;padding:11px 0;font-size:13px}.article-property:first-child{border-top:1px solid #f6f5f4}.article-property-key{flex-basis:200px;flex-shrink:0;color:#9ca5ae}@media screen and (max-width: 450px){.article-property-key{flex-basis:130px}}\n"], dependencies: [{ kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
2155
2175
  }
2156
2176
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductPropertiesComponent, decorators: [{
2157
2177
  type: Component,
@@ -2167,7 +2187,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
2167
2187
  </div>
2168
2188
  }
2169
2189
  </div>
2170
- `, standalone: false, styles: [":host{display:block}.article-properties-wrapper{display:flex;flex-direction:column}.article-property{display:flex;flex-direction:row;border-bottom:1px solid #f6f5f4;padding:11px 0;font-size:13px}.article-property:first-child{border-top:1px solid #f6f5f4}.article-property-key{flex-basis:200px;flex-shrink:0;color:#5b6875}@media screen and (max-width: 450px){.article-property-key{flex-basis:130px}}\n"] }]
2190
+ `, standalone: false, styles: [":host{display:block}.article-properties-wrapper{display:flex;flex-direction:column}.article-property{display:flex;flex-direction:row;border-bottom:1px solid #f6f5f4;padding:11px 0;font-size:13px}.article-property:first-child{border-top:1px solid #f6f5f4}.article-property-key{flex-basis:200px;flex-shrink:0;color:#9ca5ae}@media screen and (max-width: 450px){.article-property-key{flex-basis:130px}}\n"] }]
2171
2191
  }], ctorParameters: () => [], propDecorators: { article: [{
2172
2192
  type: Input
2173
2193
  }], showLabel: [{
@@ -2353,7 +2373,7 @@ class ProductInfoTabsComponent {
2353
2373
  }
2354
2374
  </div>
2355
2375
  </div>
2356
- `, isInline: true, styles: ["*:focus{outline:none}:host .tab-header{border-bottom:3px solid #f6f5f4;margin:0 0 30px}:host .tab-header .tab-header-button{background:transparent;border:none;border-bottom:3px solid transparent;line-height:20px;padding:15px 20px;cursor:pointer;font-family:iOneMontserrat;color:#22313c;font-weight:700;margin:0 0 -3px;opacity:.5}:host .tab-header .tab-header-button:hover{opacity:1}:host .tab-header .tab-header-button.active{opacity:1;border-color:#74b77f}:host .tab-content{padding:0 20px 30px;margin:0 0 20px;border-bottom:2px solid #f6f5f4;transition:all .2s ease-in-out;position:relative}:host .tab-content .tab-content-item{opacity:0;position:absolute;left:0;top:0;visibility:hidden;width:100%}:host .tab-content .tab-content-item.active{opacity:1;visibility:visible;position:static}@media screen and (max-width: 650px){:host .tab-content{padding:0 10px 15px}}@media screen and (max-width: 450px){:host .tab-header{display:flex}:host .tab-header .tab-header-button{width:100%;padding:10px;font-size:11px}}\n"], dependencies: [{ kind: "component", type: ProductAdditionalInfoComponent, selector: "app-product-additional-info", inputs: ["article", "showLabel"] }, { kind: "component", type: ProductPropertiesComponent, selector: "app-product-properties", inputs: ["article", "showLabel"] }, { kind: "component", type: ProductDocumentsComponent, selector: "app-product-documents", inputs: ["showLabel", "documents"] }, { kind: "component", type: ProductSymbolsComponent, selector: "app-product-symbols", inputs: ["symbols"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
2376
+ `, isInline: true, styles: ["*:focus{outline:none}:host .tab-header{border-bottom:3px solid #f6f5f4;margin:0 0 30px}:host .tab-header .tab-header-button{background:transparent;border:none;border-bottom:3px solid transparent;line-height:20px;padding:15px 20px;cursor:pointer;color:#22313c;font-weight:700;margin:0 0 -3px;opacity:.5}:host .tab-header .tab-header-button:hover{opacity:1}:host .tab-header .tab-header-button.active{opacity:1;border-color:#4e9b7e}:host .tab-content{padding:0 20px 30px;margin:0 0 20px;border-bottom:2px solid #f6f5f4;transition:all .2s ease-in-out;position:relative}:host .tab-content .tab-content-item{opacity:0;position:absolute;left:0;top:0;visibility:hidden;width:100%}:host .tab-content .tab-content-item.active{opacity:1;visibility:visible;position:static}@media screen and (max-width: 650px){:host .tab-content{padding:0 10px 15px}}@media screen and (max-width: 450px){:host .tab-header{display:flex}:host .tab-header .tab-header-button{width:100%;padding:10px;font-size:11px}}\n"], dependencies: [{ kind: "component", type: ProductAdditionalInfoComponent, selector: "app-product-additional-info", inputs: ["article", "showLabel"] }, { kind: "component", type: ProductPropertiesComponent, selector: "app-product-properties", inputs: ["article", "showLabel"] }, { kind: "component", type: ProductDocumentsComponent, selector: "app-product-documents", inputs: ["showLabel", "documents"] }, { kind: "component", type: ProductSymbolsComponent, selector: "app-product-symbols", inputs: ["symbols"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
2357
2377
  }
2358
2378
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductInfoTabsComponent, decorators: [{
2359
2379
  type: Component,
@@ -2387,7 +2407,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
2387
2407
  }
2388
2408
  </div>
2389
2409
  </div>
2390
- `, standalone: false, styles: ["*:focus{outline:none}:host .tab-header{border-bottom:3px solid #f6f5f4;margin:0 0 30px}:host .tab-header .tab-header-button{background:transparent;border:none;border-bottom:3px solid transparent;line-height:20px;padding:15px 20px;cursor:pointer;font-family:iOneMontserrat;color:#22313c;font-weight:700;margin:0 0 -3px;opacity:.5}:host .tab-header .tab-header-button:hover{opacity:1}:host .tab-header .tab-header-button.active{opacity:1;border-color:#74b77f}:host .tab-content{padding:0 20px 30px;margin:0 0 20px;border-bottom:2px solid #f6f5f4;transition:all .2s ease-in-out;position:relative}:host .tab-content .tab-content-item{opacity:0;position:absolute;left:0;top:0;visibility:hidden;width:100%}:host .tab-content .tab-content-item.active{opacity:1;visibility:visible;position:static}@media screen and (max-width: 650px){:host .tab-content{padding:0 10px 15px}}@media screen and (max-width: 450px){:host .tab-header{display:flex}:host .tab-header .tab-header-button{width:100%;padding:10px;font-size:11px}}\n"] }]
2410
+ `, standalone: false, styles: ["*:focus{outline:none}:host .tab-header{border-bottom:3px solid #f6f5f4;margin:0 0 30px}:host .tab-header .tab-header-button{background:transparent;border:none;border-bottom:3px solid transparent;line-height:20px;padding:15px 20px;cursor:pointer;color:#22313c;font-weight:700;margin:0 0 -3px;opacity:.5}:host .tab-header .tab-header-button:hover{opacity:1}:host .tab-header .tab-header-button.active{opacity:1;border-color:#4e9b7e}:host .tab-content{padding:0 20px 30px;margin:0 0 20px;border-bottom:2px solid #f6f5f4;transition:all .2s ease-in-out;position:relative}:host .tab-content .tab-content-item{opacity:0;position:absolute;left:0;top:0;visibility:hidden;width:100%}:host .tab-content .tab-content-item.active{opacity:1;visibility:visible;position:static}@media screen and (max-width: 650px){:host .tab-content{padding:0 10px 15px}}@media screen and (max-width: 450px){:host .tab-header{display:flex}:host .tab-header .tab-header-button{width:100%;padding:10px;font-size:11px}}\n"] }]
2391
2411
  }], ctorParameters: () => [{ type: ProductEventService }], propDecorators: { tabContent: [{
2392
2412
  type: ViewChild,
2393
2413
  args: ['tabContent']
@@ -2620,7 +2640,7 @@ class RenderCarouselComponent {
2620
2640
  }
2621
2641
 
2622
2642
  </div>
2623
- `, isInline: true, styles: [":host{height:100%;position:relative}:host:not(.resizing) .inner-carousel{scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory}#product_page_carousel{position:relative}#product_page_carousel .refresh-button{position:absolute;bottom:10px;right:10px;background:#fff}#product_page_carousel .refresh-button.loading{animation:spin 1s linear infinite}#product_page_carousel .refresh-button:hover{box-shadow:none;background:#74b77f;transition:all .2s ease-in-out}#product_page_carousel .refresh-button:hover ::ng-deep svg path{fill:#fff!important}#product_page_carousel #product_page_carousel_render_items{position:relative;margin-bottom:10px;min-height:400px}#product_page_carousel #product_page_carousel_render_items ::ng-deep co-loader{position:absolute}#product_page_carousel .inner-carousel{display:flex;flex-direction:row;align-items:center;overflow:hidden;max-height:700px}#product_page_carousel .inner-carousel .inner-carousel-render img{width:100%;height:auto;object-fit:contain}#product_page_carousel .carousel-scroller-layer{height:100%;width:100%;position:absolute;top:0;left:0;z-index:100}#product_page_carousel .carousel-scroller-layer .carousel-item-scroller{opacity:0;position:absolute;border-radius:50%;z-index:100;background:#fff6;color:#fff;width:30px;height:30px;top:calc(50% - 15px);cursor:pointer;transition:opacity .3s}#product_page_carousel .carousel-scroller-layer .carousel-item-scroller co-icon{color:#fff}#product_page_carousel .carousel-scroller-layer .prev{left:15px}#product_page_carousel .carousel-scroller-layer .next{right:15px}#product_page_carousel .carousel-scroller-layer:hover .carousel-item-scroller{opacity:1}#product_page_carousel .renderThumbs{display:flex;justify-content:start;gap:10px;margin-top:10px}#product_page_carousel .renderThumbs img{width:100px;height:100px;object-fit:contain}#product_page_carousel #product_page_carousel_thumbs{display:flex;justify-content:flex-start;height:80px;margin-left:auto;margin-right:auto}#product_page_carousel #product_page_carousel_thumbs ::ng-deep co-scroll-container{padding:0 22px}#product_page_carousel #product_page_carousel_thumbs ::ng-deep co-scroll-container .content-wrapper{padding:0}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.fade-image{opacity:0;transition:opacity 1.5s ease-in-out}.fade-image.loaded{opacity:1}\n"], dependencies: [{ kind: "component", type: i6.LoaderComponent, selector: "co-loader" }, { kind: "component", type: i6.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2643
+ `, isInline: true, styles: [":host{height:100%;position:relative}:host:not(.resizing) .inner-carousel{scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory}#product_page_carousel{position:relative}#product_page_carousel .refresh-button{position:absolute;bottom:10px;right:10px;background:#fff}#product_page_carousel .refresh-button.loading{animation:spin 1s linear infinite}#product_page_carousel .refresh-button:hover{box-shadow:none;background:#4e9b7e;transition:all .2s ease-in-out}#product_page_carousel .refresh-button:hover ::ng-deep svg path{fill:#fff!important}#product_page_carousel #product_page_carousel_render_items{position:relative;margin-bottom:10px;min-height:400px}#product_page_carousel #product_page_carousel_render_items ::ng-deep co-loader{position:absolute}#product_page_carousel .inner-carousel{display:flex;flex-direction:row;align-items:center;overflow:hidden;max-height:700px}#product_page_carousel .inner-carousel .inner-carousel-render img{width:100%;height:auto;object-fit:contain}#product_page_carousel .carousel-scroller-layer{height:100%;width:100%;position:absolute;top:0;left:0;z-index:100}#product_page_carousel .carousel-scroller-layer .carousel-item-scroller{opacity:0;position:absolute;border-radius:50%;z-index:100;background:#fff6;color:#fff;width:30px;height:30px;top:calc(50% - 15px);cursor:pointer;transition:opacity .3s}#product_page_carousel .carousel-scroller-layer .carousel-item-scroller co-icon{color:#fff}#product_page_carousel .carousel-scroller-layer .prev{left:15px}#product_page_carousel .carousel-scroller-layer .next{right:15px}#product_page_carousel .carousel-scroller-layer:hover .carousel-item-scroller{opacity:1}#product_page_carousel .renderThumbs{display:flex;justify-content:start;gap:10px;margin-top:10px}#product_page_carousel .renderThumbs img{width:100px;height:100px;object-fit:contain}#product_page_carousel #product_page_carousel_thumbs{display:flex;justify-content:flex-start;height:80px;margin-left:auto;margin-right:auto}#product_page_carousel #product_page_carousel_thumbs ::ng-deep co-scroll-container{padding:0 22px}#product_page_carousel #product_page_carousel_thumbs ::ng-deep co-scroll-container .content-wrapper{padding:0}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.fade-image{opacity:0;transition:opacity 1.5s ease-in-out}.fade-image.loaded{opacity:1}\n"], dependencies: [{ kind: "component", type: i6.LoaderComponent, selector: "co-loader" }, { kind: "component", type: i6.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2624
2644
  }
2625
2645
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: RenderCarouselComponent, decorators: [{
2626
2646
  type: Component,
@@ -2659,7 +2679,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
2659
2679
  }
2660
2680
 
2661
2681
  </div>
2662
- `, changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, styles: [":host{height:100%;position:relative}:host:not(.resizing) .inner-carousel{scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory}#product_page_carousel{position:relative}#product_page_carousel .refresh-button{position:absolute;bottom:10px;right:10px;background:#fff}#product_page_carousel .refresh-button.loading{animation:spin 1s linear infinite}#product_page_carousel .refresh-button:hover{box-shadow:none;background:#74b77f;transition:all .2s ease-in-out}#product_page_carousel .refresh-button:hover ::ng-deep svg path{fill:#fff!important}#product_page_carousel #product_page_carousel_render_items{position:relative;margin-bottom:10px;min-height:400px}#product_page_carousel #product_page_carousel_render_items ::ng-deep co-loader{position:absolute}#product_page_carousel .inner-carousel{display:flex;flex-direction:row;align-items:center;overflow:hidden;max-height:700px}#product_page_carousel .inner-carousel .inner-carousel-render img{width:100%;height:auto;object-fit:contain}#product_page_carousel .carousel-scroller-layer{height:100%;width:100%;position:absolute;top:0;left:0;z-index:100}#product_page_carousel .carousel-scroller-layer .carousel-item-scroller{opacity:0;position:absolute;border-radius:50%;z-index:100;background:#fff6;color:#fff;width:30px;height:30px;top:calc(50% - 15px);cursor:pointer;transition:opacity .3s}#product_page_carousel .carousel-scroller-layer .carousel-item-scroller co-icon{color:#fff}#product_page_carousel .carousel-scroller-layer .prev{left:15px}#product_page_carousel .carousel-scroller-layer .next{right:15px}#product_page_carousel .carousel-scroller-layer:hover .carousel-item-scroller{opacity:1}#product_page_carousel .renderThumbs{display:flex;justify-content:start;gap:10px;margin-top:10px}#product_page_carousel .renderThumbs img{width:100px;height:100px;object-fit:contain}#product_page_carousel #product_page_carousel_thumbs{display:flex;justify-content:flex-start;height:80px;margin-left:auto;margin-right:auto}#product_page_carousel #product_page_carousel_thumbs ::ng-deep co-scroll-container{padding:0 22px}#product_page_carousel #product_page_carousel_thumbs ::ng-deep co-scroll-container .content-wrapper{padding:0}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.fade-image{opacity:0;transition:opacity 1.5s ease-in-out}.fade-image.loaded{opacity:1}\n"] }]
2682
+ `, changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, styles: [":host{height:100%;position:relative}:host:not(.resizing) .inner-carousel{scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory}#product_page_carousel{position:relative}#product_page_carousel .refresh-button{position:absolute;bottom:10px;right:10px;background:#fff}#product_page_carousel .refresh-button.loading{animation:spin 1s linear infinite}#product_page_carousel .refresh-button:hover{box-shadow:none;background:#4e9b7e;transition:all .2s ease-in-out}#product_page_carousel .refresh-button:hover ::ng-deep svg path{fill:#fff!important}#product_page_carousel #product_page_carousel_render_items{position:relative;margin-bottom:10px;min-height:400px}#product_page_carousel #product_page_carousel_render_items ::ng-deep co-loader{position:absolute}#product_page_carousel .inner-carousel{display:flex;flex-direction:row;align-items:center;overflow:hidden;max-height:700px}#product_page_carousel .inner-carousel .inner-carousel-render img{width:100%;height:auto;object-fit:contain}#product_page_carousel .carousel-scroller-layer{height:100%;width:100%;position:absolute;top:0;left:0;z-index:100}#product_page_carousel .carousel-scroller-layer .carousel-item-scroller{opacity:0;position:absolute;border-radius:50%;z-index:100;background:#fff6;color:#fff;width:30px;height:30px;top:calc(50% - 15px);cursor:pointer;transition:opacity .3s}#product_page_carousel .carousel-scroller-layer .carousel-item-scroller co-icon{color:#fff}#product_page_carousel .carousel-scroller-layer .prev{left:15px}#product_page_carousel .carousel-scroller-layer .next{right:15px}#product_page_carousel .carousel-scroller-layer:hover .carousel-item-scroller{opacity:1}#product_page_carousel .renderThumbs{display:flex;justify-content:start;gap:10px;margin-top:10px}#product_page_carousel .renderThumbs img{width:100px;height:100px;object-fit:contain}#product_page_carousel #product_page_carousel_thumbs{display:flex;justify-content:flex-start;height:80px;margin-left:auto;margin-right:auto}#product_page_carousel #product_page_carousel_thumbs ::ng-deep co-scroll-container{padding:0 22px}#product_page_carousel #product_page_carousel_thumbs ::ng-deep co-scroll-container .content-wrapper{padding:0}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.fade-image{opacity:0;transition:opacity 1.5s ease-in-out}.fade-image.loaded{opacity:1}\n"] }]
2663
2683
  }], ctorParameters: () => [{ type: IconCacheService }, { type: ProductEventService }, { type: i0.ChangeDetectorRef }], propDecorators: { carousel: [{
2664
2684
  type: ViewChild,
2665
2685
  args: ['carousel', { read: ElementRef }]
@@ -2681,113 +2701,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
2681
2701
  args: ['class.resizing']
2682
2702
  }] } });
2683
2703
 
2684
- class PresetDialogComponent {
2685
- showClass() {
2686
- return true;
2687
- }
2688
- constructor(iconCache) {
2689
- this.iconCache = iconCache;
2690
- this.icon = IconEnum;
2691
- this.presetId = undefined;
2692
- this.cancelSavePreset = new EventEmitter();
2693
- this.overwritePreset = new EventEmitter();
2694
- this.PresetDialogType = PresetDialogType;
2695
- }
2696
- closeAndCancelPreset() {
2697
- this.cancelSavePreset.emit(true);
2698
- }
2699
- closeAndOverwritePreset() {
2700
- this.overwritePreset.emit(true);
2701
- }
2702
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: PresetDialogComponent, deps: [{ token: IconCacheService }], target: i0.ɵɵFactoryTarget.Component }); }
2703
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: PresetDialogComponent, isStandalone: false, selector: "co-preset-dialog", inputs: { type: "type", presetId: "presetId" }, outputs: { cancelSavePreset: "cancelSavePreset", overwritePreset: "overwritePreset" }, host: { properties: { "class.co-preset-dialog": "this.showClass" } }, ngImport: i0, template: `
2704
- <div class="preset-dialog-wrap">
2705
- <div class="preset-dialog-container">
2706
- <div class="container-header">
2707
- <div class="header-info">
2708
- <h3 [textContent]="'PRESET_SAVE_AS' | localize"></h3>
2709
- </div>
2710
- <div class="close-icon" (click)="closeAndCancelPreset()">
2711
- <co-icon class="fullscreen-button"
2712
- [iconData]="iconCache.getIcon(icon.CrossSkinny)"
2713
- (click)="closeAndCancelPreset()"></co-icon>
2714
- </div>
2715
- </div>
2716
-
2717
- <div class="body">
2718
- @if (presetId !== undefined && type === PresetDialogType.warning) {
2719
- <p [textContent]="'PRESET_OVERWRITE_TEXT' | localize"></p>
2720
- }
2721
- @if (presetId !== undefined && type === PresetDialogType.success) {
2722
- <p [textContent]="'PRESET_SAVED_TEXT' | localize"></p>
2723
- }
2724
- </div>
2725
-
2726
- <div class="close-button-container">
2727
- @if (presetId !== undefined && type === PresetDialogType.warning) {
2728
- <button class="ok-button" (click)="closeAndOverwritePreset()">
2729
- <co-icon [iconData]="iconCache.getIcon(icon.SaveSkinny)" (click)="closeAndOverwritePreset()"></co-icon>
2730
- </button>
2731
- }
2732
- <button class="close-button" (click)="closeAndCancelPreset()">
2733
- <co-icon [iconData]="iconCache.getIcon(icon.CrossSkinny)" (click)="closeAndCancelPreset()"></co-icon>
2734
- </button>
2735
- </div>
2736
- </div>
2737
- </div>
2738
- `, isInline: true, styles: [":host .preset-dialog-wrap{background:#00000080;position:fixed;z-index:1000;inset:0;display:flex;justify-content:center;align-items:center;font-family:iOneMontserrat}:host .preset-dialog-wrap .preset-dialog-container{background:#fff;max-width:500px;width:75vw;max-height:90vh;border:1px solid #F8F8F8}:host .preset-dialog-wrap .preset-dialog-container .container-header{display:flex;justify-content:space-between;border-bottom:1px solid #F8F8F8;padding:25px;box-sizing:border-box;align-items:center}:host .preset-dialog-wrap .preset-dialog-container .container-header .header-info h3{display:flex;align-items:center}:host .preset-dialog-wrap .preset-dialog-container .container-header .header-info h3 co-icon{margin-right:10px}:host .preset-dialog-wrap .preset-dialog-container .container-header .close-icon{cursor:pointer}:host .preset-dialog-wrap .preset-dialog-container .body{display:flex;justify-content:space-between;border-bottom:1px solid #F8F8F8;padding:25px;box-sizing:border-box;align-items:center}:host .preset-dialog-wrap .preset-dialog-container .close-button-container{display:flex;justify-content:center;padding:10px}:host .preset-dialog-wrap .preset-dialog-container .close-button-container button{cursor:pointer;border:none;color:#fff;padding:8px;box-shadow:0 3px 3px #0000004d;height:auto;width:auto;margin:0 3px;border-radius:3px}:host .preset-dialog-wrap .preset-dialog-container .close-button-container button ::ng-deep co-icon [fill]{fill:#fff}:host .preset-dialog-wrap .preset-dialog-container .close-button-container button .co-icon{height:25px;width:25px}:host .preset-dialog-wrap .preset-dialog-container .close-button-container button .co-icon svg{fill:#fff}:host .preset-dialog-wrap .preset-dialog-container .close-button-container button .co-icon svg path,:host .preset-dialog-wrap .preset-dialog-container .close-button-container button .co-icon svg polygon{fill:#fff}:host .preset-dialog-wrap .preset-dialog-container .close-button-container .ok-button{background:#1a73e8}:host .preset-dialog-wrap .preset-dialog-container .close-button-container .close-button{background:#475060}:host ::ng-deep .content-wrapper{width:auto!important}\n"], dependencies: [{ kind: "component", type: i6.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
2739
- }
2740
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: PresetDialogComponent, decorators: [{
2741
- type: Component,
2742
- args: [{ selector: 'co-preset-dialog', template: `
2743
- <div class="preset-dialog-wrap">
2744
- <div class="preset-dialog-container">
2745
- <div class="container-header">
2746
- <div class="header-info">
2747
- <h3 [textContent]="'PRESET_SAVE_AS' | localize"></h3>
2748
- </div>
2749
- <div class="close-icon" (click)="closeAndCancelPreset()">
2750
- <co-icon class="fullscreen-button"
2751
- [iconData]="iconCache.getIcon(icon.CrossSkinny)"
2752
- (click)="closeAndCancelPreset()"></co-icon>
2753
- </div>
2754
- </div>
2755
-
2756
- <div class="body">
2757
- @if (presetId !== undefined && type === PresetDialogType.warning) {
2758
- <p [textContent]="'PRESET_OVERWRITE_TEXT' | localize"></p>
2759
- }
2760
- @if (presetId !== undefined && type === PresetDialogType.success) {
2761
- <p [textContent]="'PRESET_SAVED_TEXT' | localize"></p>
2762
- }
2763
- </div>
2764
-
2765
- <div class="close-button-container">
2766
- @if (presetId !== undefined && type === PresetDialogType.warning) {
2767
- <button class="ok-button" (click)="closeAndOverwritePreset()">
2768
- <co-icon [iconData]="iconCache.getIcon(icon.SaveSkinny)" (click)="closeAndOverwritePreset()"></co-icon>
2769
- </button>
2770
- }
2771
- <button class="close-button" (click)="closeAndCancelPreset()">
2772
- <co-icon [iconData]="iconCache.getIcon(icon.CrossSkinny)" (click)="closeAndCancelPreset()"></co-icon>
2773
- </button>
2774
- </div>
2775
- </div>
2776
- </div>
2777
- `, standalone: false, styles: [":host .preset-dialog-wrap{background:#00000080;position:fixed;z-index:1000;inset:0;display:flex;justify-content:center;align-items:center;font-family:iOneMontserrat}:host .preset-dialog-wrap .preset-dialog-container{background:#fff;max-width:500px;width:75vw;max-height:90vh;border:1px solid #F8F8F8}:host .preset-dialog-wrap .preset-dialog-container .container-header{display:flex;justify-content:space-between;border-bottom:1px solid #F8F8F8;padding:25px;box-sizing:border-box;align-items:center}:host .preset-dialog-wrap .preset-dialog-container .container-header .header-info h3{display:flex;align-items:center}:host .preset-dialog-wrap .preset-dialog-container .container-header .header-info h3 co-icon{margin-right:10px}:host .preset-dialog-wrap .preset-dialog-container .container-header .close-icon{cursor:pointer}:host .preset-dialog-wrap .preset-dialog-container .body{display:flex;justify-content:space-between;border-bottom:1px solid #F8F8F8;padding:25px;box-sizing:border-box;align-items:center}:host .preset-dialog-wrap .preset-dialog-container .close-button-container{display:flex;justify-content:center;padding:10px}:host .preset-dialog-wrap .preset-dialog-container .close-button-container button{cursor:pointer;border:none;color:#fff;padding:8px;box-shadow:0 3px 3px #0000004d;height:auto;width:auto;margin:0 3px;border-radius:3px}:host .preset-dialog-wrap .preset-dialog-container .close-button-container button ::ng-deep co-icon [fill]{fill:#fff}:host .preset-dialog-wrap .preset-dialog-container .close-button-container button .co-icon{height:25px;width:25px}:host .preset-dialog-wrap .preset-dialog-container .close-button-container button .co-icon svg{fill:#fff}:host .preset-dialog-wrap .preset-dialog-container .close-button-container button .co-icon svg path,:host .preset-dialog-wrap .preset-dialog-container .close-button-container button .co-icon svg polygon{fill:#fff}:host .preset-dialog-wrap .preset-dialog-container .close-button-container .ok-button{background:#1a73e8}:host .preset-dialog-wrap .preset-dialog-container .close-button-container .close-button{background:#475060}:host ::ng-deep .content-wrapper{width:auto!important}\n"] }]
2778
- }], ctorParameters: () => [{ type: IconCacheService }], propDecorators: { showClass: [{
2779
- type: HostBinding,
2780
- args: ['class.co-preset-dialog']
2781
- }], type: [{
2782
- type: Input
2783
- }], presetId: [{
2784
- type: Input
2785
- }], cancelSavePreset: [{
2786
- type: Output
2787
- }], overwritePreset: [{
2788
- type: Output
2789
- }] } });
2790
-
2791
2704
  class ProductPageComponent {
2792
2705
  showClass() {
2793
2706
  return true;
@@ -2843,14 +2756,16 @@ class ProductPageComponent {
2843
2756
  get currentView() {
2844
2757
  return this._currentView;
2845
2758
  }
2846
- constructor(iconCache, settingsService, appEventService, _changeDetector, _ione, _configuringService, _configuratorSceneService) {
2759
+ constructor(iconCache, settingsService, appEventService, _changeDetector, _ione, _configuratorEventService, _configuratorConnectorService, _configuringService /*,
2760
+ private _configuratorSceneService: SceneService*/) {
2847
2761
  this.iconCache = iconCache;
2848
2762
  this.settingsService = settingsService;
2849
2763
  this.appEventService = appEventService;
2850
2764
  this._changeDetector = _changeDetector;
2851
2765
  this._ione = _ione;
2766
+ this._configuratorEventService = _configuratorEventService;
2767
+ this._configuratorConnectorService = _configuratorConnectorService;
2852
2768
  this._configuringService = _configuringService;
2853
- this._configuratorSceneService = _configuratorSceneService;
2854
2769
  this.icon = IconEnum;
2855
2770
  this.createFrozenArticle = true;
2856
2771
  this.isReturn = false;
@@ -2864,20 +2779,16 @@ class ProductPageComponent {
2864
2779
  this.showAddToCart = false;
2865
2780
  this.fullscreenAnimationEnd = false;
2866
2781
  this.settingsLoaded = false;
2867
- this.showPresetDialog = false;
2868
- this.configPresetId = undefined;
2869
- this.presetDialogType = PresetDialogType.info;
2870
2782
  this._fullScreen = false;
2871
2783
  this._subs = [];
2872
2784
  this._subs.push(this.appEventService.onForceRenderImage.subscribe((x) => {
2873
2785
  // TODO
2874
- }), this.settingsService.settingsLoaded.subscribe(loaded => this._handleSettingsLoaded(loaded)), this._pageLoadedSubscription = combineLatest([
2786
+ }), this.settingsService.settingsLoaded.subscribe(loaded => this._handleSettingsLoaded(loaded)), combineLatest([
2875
2787
  this._ione.controllerInitialized,
2876
2788
  this._ione.articleLoaded
2877
2789
  ]).subscribe(([initialized, articleLoaded]) => {
2878
2790
  if (initialized && articleLoaded) {
2879
2791
  this.settingsLoaded = initialized;
2880
- this._initConfigurator();
2881
2792
  }
2882
2793
  }), this.appEventService.onAnswersAvailable.subscribe((answers) => {
2883
2794
  if (answers && this.configurable) {
@@ -2888,15 +2799,14 @@ class ProductPageComponent {
2888
2799
  }
2889
2800
  }), this.appEventService.onGetRenderForRenderCarousel.subscribe((renderParameters) => {
2890
2801
  this._createRenderForCarousel(renderParameters);
2891
- }), this.appEventService.onArticleReceived.subscribe(article => this.setConfigPresetId(article.configPresetId)), this._configuringService.floorReady.subscribe((ready) => {
2892
- if (ready) {
2893
- this._startSceneInit();
2894
- this._startConfigurator();
2802
+ }), this._configuratorEventService.addedToScene.subscribe((buildResult) => {
2803
+ if (buildResult) {
2804
+ this.handleObjectAddedToScene(buildResult);
2895
2805
  }
2896
- }), this._configuringService.onRenderImageReceived.subscribe((image) => {
2806
+ }), this._configuratorEventService.renderImageChanged.subscribe((image) => {
2897
2807
  appEventService.onRenderImageReceived.next(image);
2898
- }), this._configuringService.onAnswersAvailable.subscribe((hasAnswers) => {
2899
- appEventService.onAnswersAvailable.next(hasAnswers);
2808
+ }), this._configuratorEventService.answerCountReceived.subscribe((count) => {
2809
+ appEventService.onAnswersAvailable.next(count > 0);
2900
2810
  }));
2901
2811
  }
2902
2812
  ngOnInit() {
@@ -2915,9 +2825,7 @@ class ProductPageComponent {
2915
2825
  if (this._initializedSub) {
2916
2826
  this._initializedSub.unsubscribe();
2917
2827
  }
2918
- this._pageLoadedSubscription.unsubscribe();
2919
2828
  this.fullscreenbutton = undefined;
2920
- this._configuringService.isConfiguring = false;
2921
2829
  }
2922
2830
  setInstance(event) {
2923
2831
  if (event.detail) {
@@ -2933,6 +2841,8 @@ class ProductPageComponent {
2933
2841
  }
2934
2842
  _handleSettingsLoaded(loaded) {
2935
2843
  if (loaded) {
2844
+ // @ts-ignore
2845
+ this._configuratorConnectorService.init(this.settingsService.settings);
2936
2846
  this._ione.initConnection();
2937
2847
  }
2938
2848
  }
@@ -2974,34 +2884,9 @@ class ProductPageComponent {
2974
2884
  handlePopUpChange(event) {
2975
2885
  this.showRelatedProductsPopup = event;
2976
2886
  }
2977
- setConfigPresetId(presetId) {
2978
- if (presetId) {
2979
- this.configPresetId = presetId;
2980
- }
2981
- }
2982
- handleSavePreset() {
2983
- if (this.configPresetId !== undefined) {
2984
- // prompt warning
2985
- this.presetDialogType = PresetDialogType.warning;
2986
- this.showPresetDialog = true;
2987
- }
2988
- else {
2989
- this._savePreset();
2990
- }
2991
- }
2992
- handleCancelSavePreset(event) {
2993
- this.presetDialogType = PresetDialogType.info;
2994
- this.showPresetDialog = false;
2995
- }
2996
- handleOverwritePreset(event) {
2997
- this.presetDialogType = PresetDialogType.info;
2998
- this.showPresetDialog = false;
2999
- this._savePreset();
3000
- }
3001
- handleBuildFinished(build) {
3002
- if (this.threeD) {
2887
+ handleObjectAddedToScene(build) {
2888
+ if (this.threeD && this.enableRenderCarousel) {
3003
2889
  this._buildResult = build;
3004
- this._configuringService.addBuildToScene(build);
3005
2890
  if (this.settingsService.settings && this.settingsService.settings.renderParameters) {
3006
2891
  // Start a render
3007
2892
  const options = {
@@ -3016,56 +2901,47 @@ class ProductPageComponent {
3016
2901
  }
3017
2902
  }
3018
2903
  }
3019
- _savePreset() {
3020
- this._ione.savePreset().then((success) => {
3021
- if (success) {
3022
- this.presetDialogType = PresetDialogType.success;
3023
- this.showPresetDialog = true;
3024
- }
3025
- });
3026
- }
3027
- _initConfigurator() {
3028
- // this should be async
3029
- if (this.settingsLoaded) {
3030
- this._configuringService.init(this.settings).then(done => {
3031
- this._configuringService.isConfiguring = true;
3032
- });
3033
- }
3034
- }
3035
- _startConfigurator() {
3036
- if (this.settingsLoaded) {
3037
- const furnitureData = new ConfigurationResultObject();
3038
- furnitureData.sku = this.sku;
3039
- this._configuringService.configure(furnitureData).then(loaded => {
3040
- });
3041
- }
3042
- }
3043
- _startSceneInit() {
3044
- if (this.settingsLoaded) {
3045
- this._configuringService.handleLoadSceneContent();
3046
- this._configuringService.scene = this._configuratorSceneService.scene;
3047
- }
3048
- }
2904
+ // private _initConfigurator(): void {
2905
+ // // this should be async
2906
+ // if (this.settingsLoaded) {
2907
+ // this._configuringService.init(this.settings).then(done => {
2908
+ // // this._configuringService.isConfiguring = true;
2909
+ // });
2910
+ // }
2911
+ // }
2912
+ // private _startConfigurator(): void {
2913
+ // if (this.settingsLoaded) {
2914
+ // const furnitureData: ConfigurationResultObject = new ConfigurationResultObject();
2915
+ // furnitureData.sku = this.sku;
2916
+ // this._configuringService.configure(furnitureData).then(loaded => {
2917
+ // });
2918
+ // }
2919
+ // }
2920
+ // private _startSceneInit(): void {
2921
+ // if (this.settingsLoaded) {
2922
+ // this._configuringService.handleLoadSceneContent();
2923
+ // this._configuringService.scene = this._configuratorSceneService.scene;
2924
+ // }
2925
+ // }
3049
2926
  _createRenderForCarousel(renderOptions) {
3050
2927
  this._configuringService.renderImage(this._buildResult, renderOptions, false);
3051
2928
  }
3052
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductPageComponent, deps: [{ token: IconCacheService }, { token: ProductSettingsService }, { token: ProductEventService }, { token: i0.ChangeDetectorRef }, { token: ProductConnectorService }, { token: i5.ConfiguringService }, { token: i5.SceneService }], target: i0.ɵɵFactoryTarget.Component }); }
2929
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductPageComponent, deps: [{ token: IconCacheService }, { token: ProductSettingsService }, { token: ProductEventService }, { token: i0.ChangeDetectorRef }, { token: ProductConnectorService }, { token: i5.ConfiguratorEventService }, { token: i5.ConfiguratorConnectorService }, { token: i5.ConfiguringService }], target: i0.ɵɵFactoryTarget.Component }); }
3053
2930
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: ProductPageComponent, isStandalone: false, selector: "app-product-page", inputs: { sku: "sku", settings: "settings", externalSource: "externalSource", createFrozenArticle: "createFrozenArticle", isReturn: "isReturn", showRelatedProductsPopup: "showRelatedProductsPopup", enableRenderCarousel: "enableRenderCarousel" }, outputs: { openStockEvent: "openStockEvent" }, host: { properties: { "class.co-product-page": "this.showClass" } }, viewQueries: [{ propertyName: "fullscreenbutton", first: true, predicate: ["fullscreenbutton"], descendants: true, read: ElementRef }], ngImport: i0, template: `
3054
2931
  @if (settingsLoaded) {
3055
2932
  <div class="page-wrapper">
3056
2933
  <div class="page-wrapper-content">
3057
- <div class="page-wrapper-left">
2934
+ <div class="page-wrapper-left swimming-lane">
3058
2935
  <div class="product-image-container">
3059
2936
  <div class="product-page-block-selector-type">
3060
2937
  <app-product-selector-type
3061
- class="default-padding"
3062
2938
  [(currentType)]="currentView"
3063
2939
  [show2D]="configurable"
3064
2940
  [show3D]="threeD">
3065
2941
  </app-product-selector-type>
3066
2942
  </div>
3067
2943
 
3068
- <div class="product-page-block-image default-padding" [class.full]="fullScreen">
2944
+ <div class="product-page-block-image" [class.full]="fullScreen">
3069
2945
  @if (!enableRenderCarousel) {
3070
2946
  <app-image-carousel
3071
2947
  [@toggleVisibilityByState]="show2D ? 'show' : 'hide'"
@@ -3104,54 +2980,41 @@ class ProductPageComponent {
3104
2980
  </div>
3105
2981
  </div>
3106
2982
  </div>
3107
- <div class="page-wrapper-right">
2983
+ <div class="page-wrapper-right swimming-lane">
3108
2984
  <div class="product-page-scroll-container">
3109
2985
  <div class="product-page-block-description">
3110
2986
  <app-product-description
3111
- class="default-padding"
3112
- [article]="article">
2987
+ [article]="article"
2988
+ [configuring]="configuring">
3113
2989
  </app-product-description>
3114
2990
  </div>
3115
2991
  <div class="product-page-block-additional">
3116
2992
  <div class="product-page-block-additional-description">
3117
2993
  <app-product-additional-description
3118
- class="default-padding"
3119
2994
  [article]="article">
3120
2995
  </app-product-additional-description>
3121
2996
  </div>
3122
2997
  <div class="product-page-block-price" [class.full]="configuring">
3123
- @if (configuring && this.settingsService.settings.options.showSaveAsPresetButton) {
3124
- <div class="preset-container">
3125
- <co-button
3126
- class="save-preset-button"
3127
- [iconData]="iconCache.getIcon(icon.SaveDisk)"
3128
- [label]="'PRESET_SAVE_AS' | localize"
3129
- (onClick)="handleSavePreset()">
3130
- </co-button>
3131
- </div>
3132
- }
3133
2998
  @if (!configuring) {
3134
2999
  <app-product-price
3135
- class="s-padding"
3136
3000
  [pricing]="article?.pricing"
3137
3001
  [configurable]="configurable">
3138
3002
  </app-product-price>
3139
3003
  }
3140
-
3141
- @if (settingsLoaded) {
3004
+ @if (settingsLoaded && configuring) {
3142
3005
  <co-configurator
3143
3006
  [class.hide-configurator]="!configuring"
3144
3007
  [class.show-configurator]="configuring"
3008
+ [sku]="sku"
3145
3009
  [showLoader]="true"
3146
3010
  [animateSlideout]="false"
3147
3011
  [showHeaderInformation]="false"
3148
- [canCloseConfigurator]="false"
3149
- (buildResult)="handleBuildFinished($event)">
3012
+ [canCloseConfigurator]="false">
3150
3013
  </co-configurator>
3151
3014
  }
3152
3015
  </div>
3153
3016
  @if (!configuring) {
3154
- <div class="product-page-block-addtocart no-padding product-action-buttons"
3017
+ <div class="product-page-block-addtocart product-action-buttons"
3155
3018
  [@toggleTopRight]="fullScreen ? 'fullscreen' : 'halfscreen'">
3156
3019
  <app-product-addtocart
3157
3020
  [configurable]="configurable"
@@ -3169,7 +3032,6 @@ class ProductPageComponent {
3169
3032
  @if (configuring) {
3170
3033
  <div class="addtocart-reserved product-action-buttons" [class.full-screen]="fullScreen">
3171
3034
  <app-product-addtocart
3172
- class="default-padding"
3173
3035
  [configurable]="false"
3174
3036
  [fullscreen]="fullScreen"
3175
3037
  [showAddToCart]="showAddToCart"
@@ -3184,7 +3046,6 @@ class ProductPageComponent {
3184
3046
  <div class="product-page-block-variants">
3185
3047
  @if (article?.relatedArticles && article?.relatedArticles.length > 0) {
3186
3048
  <app-product-related
3187
- class="no-padding"
3188
3049
  [externalSource]="externalSource"
3189
3050
  [articles]="article?.relatedArticles" [refType]="64"
3190
3051
  [label]="'VARIANTS' | localize">
@@ -3193,7 +3054,6 @@ class ProductPageComponent {
3193
3054
  </div>
3194
3055
  <div class="product-page-block-stock">
3195
3056
  <app-product-stock
3196
- class="no-padding"
3197
3057
  [goodId]="article?.goodId"
3198
3058
  (openStockEvent)="openStock()">
3199
3059
  </app-product-stock>
@@ -3204,15 +3064,14 @@ class ProductPageComponent {
3204
3064
  </div>
3205
3065
  <div class="page-wrapper-content">
3206
3066
  @if (article) {
3207
- <div class="page-wrapper-left">
3067
+ <div class="page-wrapper-left swimming-lane">
3208
3068
  <app-product-info-tabs
3209
- class="no-padding"
3210
3069
  [article]="article">
3211
3070
  </app-product-info-tabs>
3212
3071
  </div>
3213
3072
  }
3214
- <div class="page-wrapper-right">
3215
- <div class="product-page-block-related s-padding">
3073
+ <div class="page-wrapper-right swimming-lane">
3074
+ <div class="product-page-block-related">
3216
3075
  @if (article?.relatedArticles && article?.relatedArticles.length > 0) {
3217
3076
  <app-product-related
3218
3077
  [externalSource]="externalSource"
@@ -3225,8 +3084,8 @@ class ProductPageComponent {
3225
3084
  </div>
3226
3085
  </div>
3227
3086
  <div class="page-wrapper-content no-top-margin">
3228
- <div class="page-wrapper-full">
3229
- <div class="product-page-block-alternatives s-padding">
3087
+ <div class="page-wrapper-full swimming-lane">
3088
+ <div class="product-page-block-alternatives">
3230
3089
  @if (article?.relatedArticles && article?.relatedArticles.length > 0) {
3231
3090
  <app-product-related
3232
3091
  [externalSource]="externalSource"
@@ -3250,17 +3109,8 @@ class ProductPageComponent {
3250
3109
  </div>
3251
3110
  }
3252
3111
  </div>
3253
-
3254
- @if (presetDialogType) {
3255
- <co-preset-dialog
3256
- [type]="presetDialogType"
3257
- [presetId]="configPresetId"
3258
- (cancelSavePreset)="handleCancelSavePreset($event)"
3259
- (overwritePreset)="handleOverwritePreset($event)">
3260
- </co-preset-dialog>
3261
- }
3262
3112
  }
3263
- `, isInline: true, styles: [".co-product-page .page-wrapper{font-family:iOneMontserrat;font-size:12px;display:flex;flex-direction:column;max-width:100%;padding:0 15px;margin:0 auto}.co-product-page .page-wrapper-content{display:flex;flex-direction:row;margin:40px 0}.co-product-page .page-wrapper-content:first-child,.co-product-page .page-wrapper-content.no-top-margin{margin-top:0}.co-product-page .page-wrapper-left{display:flex;width:65%;flex-direction:column}.co-product-page .page-wrapper-right{display:flex;width:35%;flex-direction:column}.co-product-page .page-wrapper-right .product-page-scroll-container{max-height:100vh;overflow-y:scroll}.co-product-page .page-wrapper-full{display:flex;width:100%;flex-direction:column}.co-product-page .page-wrapper-66{display:flex;width:60%;flex-direction:column}.co-product-page .page-wrapper-33{display:flex;width:40%;flex-direction:column}.co-product-page .product-action-buttons{position:relative}.co-product-page .product-action-buttons.full-screen{z-index:10}.co-product-page .product-image-container{grid-column:1/7;grid-row:1/6;position:relative}.co-product-page .product-page-block-selector-type{width:auto;position:absolute;top:10px;right:10px;z-index:2}.co-product-page .product-page-block-image{box-sizing:border-box;width:100%;z-index:1;position:relative}.co-product-page .product-page-block-image .co-configurator-scene{width:100%;height:300px;display:block;position:relative}.co-product-page .product-page-block-image .co-configurator-scene .configurator-bundle-container{position:relative;height:650px;width:100%}.co-product-page .product-page-block-image .co-configurator-scene .configurator-bundle-container .threedviewer{min-height:0;min-width:0;width:auto;height:auto}.co-product-page .product-page-block-image .co-configurator-scene .configurator-bundle-container .threedviewer canvas{width:100%;height:100%}.co-product-page .product-page-block-image .co-configurator-scene.hide-3d-scene{visibility:hidden;overflow:hidden;height:0}.co-product-page .product-page-block-image .co-configurator-scene.show-3d-scene{min-height:650px;position:relative}.co-product-page .product-page-block-image .co-configurator-scene.show-full-screen{position:fixed;inset:0;width:100%;height:100%}.co-product-page .product-page-block-image .co-configurator-scene.show-full-screen .configurator-bundle-container{height:100%}.co-product-page .product-page-block-image .co-configurator-scene canvas{height:100%}.co-product-page .product-page-block-image app-image-carousel.show-animated,.co-product-page .product-page-block-image threed-configurator.show-animated{opacity:1;z-index:0;transition:all .2s ease-in-out}.co-product-page .product-page-block-image .fullscreen-button{cursor:pointer;height:50px;width:50px;position:absolute;left:30px;z-index:100;top:30px}.co-product-page .product-page-block-image.full{grid-column:1/11;grid-row:2/span 10;z-index:3}.co-product-page .product-page-block-description{grid-column:7/12;grid-row:1/1}.co-product-page .product-page-block-additional,.co-product-page .product-page-block-additional-description{width:100%}.co-product-page .product-page-block-price{grid-column:1/3;grid-row:2/2;align-self:center}.co-product-page .product-page-block-price.full{grid-column:1/5}.co-product-page .product-page-block-price .hide-configurator{display:none}.co-product-page .product-page-block-price .show-configurator{display:block}.co-product-page .product-page-block-price .show-configurator .co-threedselector{position:relative}.co-product-page .product-page-block-price .show-configurator .co-threedselector .co-lite-selector.floating co-selections-summary{position:relative}.co-product-page .product-page-block-price .show-configurator .co-threedselector .co-lite-selector:not(.custom-dimensions).floating co-selections-summary{top:auto;background:none}.co-product-page .product-page-block-price .show-configurator .co-threedselector .co-selections-summary .selections-content{gap:10px;box-sizing:border-box;padding:10px}.co-product-page .product-page-block-price .show-configurator .co-threedselector .co-product-configurator .product-configurator-container{position:relative;width:auto;top:auto;right:auto;padding-left:30px;padding-right:0;height:auto;max-height:100%}.co-product-page .product-page-block-price .show-configurator .co-threedselector .co-product-configurator .product-configurator-container .product-configurator-details{max-height:100%}.co-product-page .preset-container{display:flex;justify-content:right}.co-product-page .preset-container .save-preset-button{cursor:pointer;width:100%;max-width:205px;box-sizing:border-box}.co-product-page .preset-container .save-preset-button:hover{background:#74b77f}.co-product-page .product-page-block-addtocart{grid-column:3/5;grid-row:2/2;align-self:center;padding-top:30px!important}.co-product-page .product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button{cursor:pointer}.co-product-page .product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button:hover div.rippler{background:#f6f5f4}.co-product-page .product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button ::ng-deep co-icon{position:relative;z-index:2}.co-product-page .product-page-block-addtocart ::ng-deep co-button.cart-button{cursor:pointer}.co-product-page .product-page-block-addtocart ::ng-deep co-button.cart-button:hover{background:#74b77f}.co-product-page .addtocart-reserved{grid-column:1/3;grid-row:3/3}.co-product-page .product-page-block-stock{grid-column:1/3;grid-row:4/4}.co-product-page .product-page-block-delivery{grid-column:3/5;grid-row:4/4}.co-product-page ::ng-deep co-scroll-container{overflow:hidden;position:relative}.co-product-page ::ng-deep co-scroll-container .content-wrapper{padding:0}.co-product-page ::ng-deep co-scroll-container .scroll-layer{left:0;top:0}.co-product-page ::ng-deep co-scroll-container .scroll-layer .scroller{width:34px;height:34px;border-radius:36px;background:#fff;cursor:pointer;box-shadow:0 0 5px #0003}.co-product-page ::ng-deep co-scroll-container .scroll-layer .scroller:hover{background:#f6f5f4}.co-product-page ::ng-deep co-scroll-container .scroll-layer .scroller.left-scroll{left:5px}.co-product-page ::ng-deep co-scroll-container .scroll-layer .scroller.left-scroll:before{border-width:0 3px 3px 0;padding:4px;margin-left:13px;margin-top:11px}.co-product-page ::ng-deep co-scroll-container .scroll-layer .scroller.right-scroll{right:5px}.co-product-page ::ng-deep co-scroll-container .scroll-layer .scroller.right-scroll:after{border-width:0 3px 3px 0;padding:4px;margin-left:9px;margin-top:11px}.co-product-page .product-page-block-variants{margin:20px 0 0}.co-product-page .product-page-block-variants app-product-related>div{display:flex;gap:15px;align-items:center;border-top:1px solid #f6f5f4;padding:5px 0 7px 15px}.co-product-page .product-page-block-variants app-product-related>div app-header h3{font-size:14px}.co-product-page .product-page-block-variants app-product-related>div co-scroll-container{width:320px;max-width:100%;padding:0 16px}.co-product-page .product-page-block-variants app-product-related>div co-scroll-container .scroller{width:26px;height:26px}.co-product-page .product-page-block-variants app-product-related>div co-scroll-container .scroller.left-scroll{left:5px}.co-product-page .product-page-block-variants app-product-related>div co-scroll-container .scroller.left-scroll:before{border-width:0 2px 2px 0;margin-left:9px;margin-top:9px}.co-product-page .product-page-block-variants app-product-related>div co-scroll-container .scroller.right-scroll{right:5px}.co-product-page .product-page-block-variants app-product-related>div co-scroll-container .scroller.right-scroll:after{border-width:0 2px 2px 0;margin-left:6px;margin-top:9px}.co-product-page .product-page-block-variants co-tile.small{min-width:50px!important;max-width:50px!important;border:1px solid #f6f5f4;margin:0 10px 0 0;border-radius:4px}.co-product-page .product-page-block-variants co-tile.small:hover{border-color:#22313c}.co-product-page .product-page-block-variants co-tile.small .tile-wrapper{padding:0}.co-product-page .product-page-block-variants co-tile.small .tile-wrapper .tile-top{display:none}.co-product-page .product-page-block-variants co-tile.small .tile-wrapper .image{height:40px!important;padding:5px;margin-bottom:10px}.co-product-page .product-page-block-variants co-tile.small .tile-wrapper .image .no-image-wrapper .no-image{width:40px;height:40px}.co-product-page .product-page-block-variants co-tile.small .tile-wrapper .image .no-image-wrapper span{display:none!important}.co-product-page .product-page-block-variants co-tile.small .tile-wrapper .tile-bottom{display:none}.co-product-page .product-page-block-variants co-tile.small .tile-extra-bottom{display:none}.co-product-page .product-page-block-alternatives .co-scroll-container,.co-product-page .product-page-block-alternatives .co-scroll-container .content-wrapper{width:auto}.co-product-page .product-page-block-alternatives .article-wrapper{margin:0 20px 0 0}.co-product-page .product-page-block-alternatives .article-wrapper:last-child{margin:0}.co-product-page .product-page-block-alternatives .co-tile{cursor:pointer;transition:all .14s ease-out;border:1px solid transparent;padding:15px 10px 0;width:319px;max-width:none;min-width:0;box-sizing:border-box}.co-product-page .product-page-block-alternatives .co-tile:hover{box-shadow:none;border-color:#f6f5f4}.co-product-page .product-page-block-alternatives .co-tile:hover .tile-wrapper div.image co-image{transform:scale(1.05)}.co-product-page .product-page-block-alternatives .co-tile:hover .tile-wrapper .tile-bottom{margin:0}.co-product-page .product-page-block-alternatives .co-tile:hover .tile-extra-bottom .main .description{text-decoration:underline}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper{padding:0;position:relative;outline:none;overflow:hidden}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper .tile-top{position:absolute;left:0;top:0;width:100%}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper div.image{position:relative;padding:1px;display:flex;align-items:center;justify-content:center;overflow:hidden;max-width:250px;margin:0 auto 10px;height:auto}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper div.image:after{content:\"\";padding:100% 0 0;float:left;width:100%}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper div.image .co-image{position:absolute;left:0;top:0;overflow:hidden;width:100%;height:100%;object-fit:contain;z-index:-1;transition:all .2s ease}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper div.image .no-image-wrapper{position:absolute;display:flex;left:50%;top:50%;margin:-48px 0 0 -54px;flex-direction:column;align-items:center;opacity:.25}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper .tile-bottom{transition:all .2s ease;height:auto}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper .tile-bottom .co-button{margin:0 0 5px!important;width:36px;height:36px;border:1px solid #22313C;background:#2b60a7;cursor:pointer;border-radius:4px;padding:0!important;font-size:0}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper .tile-bottom .co-button .co-icon{width:32px;height:32px;margin:0 2px}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom{outline:none;padding:15px 0;background:transparent!important;min-height:60px}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom .main{padding:0 10px}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom .main .description{font-size:15px;font-weight:700;margin:0 0 2px}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom .main .price{font-size:16px;margin:15px 0 0;font-weight:700;color:#2b60a7}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom .main .co-button{margin:0 0 5px!important;width:36px;height:36px;border:1px solid #22313C;background:#2b60a7;cursor:pointer;border-radius:4px;padding:0!important;font-size:0}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom .main .co-button .co-icon{width:32px;height:32px;margin:0 2px}.co-product-page .product-page-block-additional-information{grid-column:1/6;grid-row:4/4}.co-product-page .product-page-block-properties{grid-column:7/10;grid-row:3/3}.co-product-page .product-page-block-related-articles{grid-column:2/6;grid-row:4/4}.co-product-page .product-page-block-alternative-articles{grid-column:6/10;grid-row:4/4}.co-product-page .product-page-block-documents{grid-column:2/6;grid-row:5/5}.co-product-page .product-page-block-symbols{grid-column:6/10;grid-row:5/5}@media screen and (max-width: 950px){.co-product-page .default-padding{padding-top:20px;padding-bottom:20px}.co-product-page .m-padding{padding-top:15px;padding-bottom:15px}.co-product-page .s-padding{padding-top:5px;padding-bottom:5px}.co-product-page .page-wrapper{max-width:650px}.co-product-page .page-wrapper .page-wrapper-content{flex-direction:column;margin:30px 0}.co-product-page .page-wrapper .page-wrapper-content .page-wrapper-left,.co-product-page .page-wrapper .page-wrapper-content .page-wrapper-right{width:100%}.co-product-page .product-page-block-alternatives ::ng-deep co-tile{width:284px!important}}@media screen and (max-width: 650px){.co-product-page [class*=-padding]{padding-left:0!important;padding-right:0!important}.co-product-page .product-page-block-addtocart ::ng-deep co-number-picker co-button{height:38px!important}.co-product-page .product-page-block-addtocart ::ng-deep co-number-picker co-input-text{height:38px!important;width:36px!important}.co-product-page .product-page-block-addtocart ::ng-deep co-button.cart-button{height:40px;font-size:13px}}\n"], dependencies: [{ kind: "component", type: ProductSelectorTypeComponent, selector: "app-product-selector-type", inputs: ["show2D", "show3D", "showRenderCarousel", "currentType"], outputs: ["onIconClick", "currentTypeChange"] }, { kind: "component", type: ImageCarouselComponent, selector: "app-image-carousel", inputs: ["showRefresh", "images"] }, { kind: "component", type: i6.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "component", type: ProductDescriptionComponent, selector: "app-product-description", inputs: ["article"] }, { kind: "component", type: ProductAdditionalDescriptionComponent, selector: "app-product-additional-description", inputs: ["article"] }, { kind: "component", type: ProductPriceComponent, selector: "app-product-price", inputs: ["pricing", "configurable"] }, { kind: "component", type: ProductAddtocartComponent, selector: "app-product-addtocart", inputs: ["article", "externalSource", "createFrozenArticle", "configurable", "configuring", "showAddToCart", "isReturn", "fullscreen", "quantity"], outputs: ["startConfiguration", "addToCartClick", "addToQuoteClick", "showRelatedPopup"] }, { kind: "component", type: ProductRelatedComponent, selector: "app-product-related", inputs: ["refType", "label", "externalSource", "isSmallModus", "createFrozenArticle", "articles"] }, { kind: "component", type: ProductStockComponent, selector: "app-product-stock", inputs: ["goodId"], outputs: ["openStockEvent"] }, { kind: "component", type: ProductInfoTabsComponent, selector: "app-product-info-tabs", inputs: ["article"] }, { kind: "component", type: ProductDialogComponent, selector: "co-product-dialog", inputs: ["refType", "mainArticle", "articles"], outputs: ["closeRelatedPopup"] }, { kind: "component", type: RenderCarouselComponent, selector: "app-render-carousel", inputs: ["showRefresh", "article"] }, { kind: "component", type: i6.ButtonComponent, selector: "co-button", inputs: ["label", "iconData", "iconDataRight", "isToggleButton", "isToggled", "hidden", "disabled"], outputs: ["onClick", "clickedWhileDisabled", "isToggledChange"] }, { kind: "component", type: PresetDialogComponent, selector: "co-preset-dialog", inputs: ["type", "presetId"], outputs: ["cancelSavePreset", "overwritePreset"] }, { kind: "component", type: i5.ConfiguratorComponent, selector: "co-configurator", inputs: ["showLoader", "showProgressBar", "showErrorMessages", "outputErrorMessages", "canCloseConfigurator", "animateSlideout", "showHeaderInformation"], outputs: ["buildResult", "isLoading", "updateProgressBar", "errorMessages", "showChange"] }, { kind: "component", type: i5.ConfiguratorSceneComponent, selector: "co-configurator-scene" }, { kind: "pipe", type: LocalizePipe, name: "localize" }], animations: [
3113
+ `, isInline: true, styles: [".co-product-page .page-wrapper{font-family:Public Sans;font-size:12px;display:flex;flex-direction:column;max-width:100%;padding:0 10px;margin:0 auto}.co-product-page .page-wrapper-content{display:flex;flex-direction:row;margin:0 0 10px;gap:10px}.co-product-page .page-wrapper-content:first-child{margin-top:10px}.co-product-page .page-wrapper-content.no-top-margin{margin-top:0}.co-product-page .swimming-lane{display:flex;flex-wrap:wrap;box-shadow:1px 1px 4px #0000001a;padding:30px;background:#fff}.co-product-page .page-wrapper-left{display:flex;width:65%;flex-direction:column}.co-product-page .page-wrapper-right{display:flex;width:35%;flex-direction:column}.co-product-page .page-wrapper-right .product-page-scroll-container{max-height:100vh;overflow-y:scroll}.co-product-page .page-wrapper-full{display:flex;width:100%;flex-direction:column}.co-product-page .page-wrapper-66{display:flex;width:60%;flex-direction:column}.co-product-page .page-wrapper-33{display:flex;width:40%;flex-direction:column}.co-product-page .product-action-buttons{position:relative}.co-product-page .product-action-buttons.full-screen{z-index:10}.co-product-page .product-image-container{grid-column:1/7;grid-row:1/6;position:relative}.co-product-page .product-page-block-selector-type{width:auto;position:absolute;top:10px;right:10px;z-index:2}.co-product-page .product-page-block-image{box-sizing:border-box;width:100%;z-index:1;position:relative}.co-product-page .product-page-block-image .co-configurator-scene{width:100%;height:300px;display:block;position:relative}.co-product-page .product-page-block-image .co-configurator-scene .configurator-bundle-container{position:relative;height:650px;width:100%}.co-product-page .product-page-block-image .co-configurator-scene .configurator-bundle-container .threedviewer{min-height:0;min-width:0;width:auto;height:auto}.co-product-page .product-page-block-image .co-configurator-scene .configurator-bundle-container .threedviewer canvas{width:100%;height:100%}.co-product-page .product-page-block-image .co-configurator-scene.hide-3d-scene{visibility:hidden;overflow:hidden;height:0}.co-product-page .product-page-block-image .co-configurator-scene.show-3d-scene{min-height:650px;position:relative}.co-product-page .product-page-block-image .co-configurator-scene.show-full-screen{position:fixed;inset:0;width:100%;height:100%}.co-product-page .product-page-block-image .co-configurator-scene.show-full-screen .configurator-bundle-container{height:100%}.co-product-page .product-page-block-image .co-configurator-scene canvas{height:100%}.co-product-page .product-page-block-image app-image-carousel.show-animated,.co-product-page .product-page-block-image threed-configurator.show-animated{opacity:1;z-index:0;transition:all .2s ease-in-out}.co-product-page .product-page-block-image .fullscreen-button{cursor:pointer;height:50px;width:50px;position:absolute;left:30px;z-index:100;top:30px}.co-product-page .product-page-block-image.full{grid-column:1/11;grid-row:2/span 10;z-index:3}.co-product-page .product-page-block-description{grid-column:7/12;grid-row:1/1}.co-product-page .product-page-block-additional,.co-product-page .product-page-block-additional-description{width:100%}.co-product-page .product-page-block-price{grid-column:1/3;grid-row:2/2;align-self:center}.co-product-page .product-page-block-price.full{grid-column:1/5}.co-product-page .product-page-block-price .hide-configurator{display:none}.co-product-page .product-page-block-price .show-configurator{display:block}.co-product-page .product-page-block-price .show-configurator .co-lite-selector.floating co-selections-summary{position:relative}.co-product-page .product-page-block-price .show-configurator .co-lite-selector:not(.custom-dimensions).floating co-selections-summary{top:auto;background:none}.co-product-page .product-page-block-price .show-configurator .co-selections-summary .selections-content{gap:10px;box-sizing:border-box;padding:10px}.co-product-page .product-page-block-price .show-configurator .co-product-configurator .product-configurator-container{position:relative;width:auto;top:auto;right:auto;padding-left:0;padding-right:0;height:auto;max-height:100%}.co-product-page .preset-container{display:flex;justify-content:right}.co-product-page .preset-container .save-preset-button{cursor:pointer;width:100%;max-width:205px;box-sizing:border-box}.co-product-page .preset-container .save-preset-button:hover{background:#4e9b7e}.co-product-page .product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button{cursor:pointer}.co-product-page .product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button:hover div.rippler{background:#f6f5f4}.co-product-page .product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button ::ng-deep co-icon{position:relative;z-index:2}.co-product-page .product-page-block-addtocart ::ng-deep co-button.cart-button{cursor:pointer}.co-product-page .product-page-block-addtocart ::ng-deep co-button.cart-button:hover{background:#4e9b7e}.co-product-page .addtocart-reserved{grid-column:1/3;grid-row:3/3}.co-product-page .product-page-block-stock{grid-column:1/3;grid-row:4/4}.co-product-page .product-page-block-delivery{grid-column:3/5;grid-row:4/4}.co-product-page ::ng-deep co-scroll-container{overflow:hidden;position:relative}.co-product-page ::ng-deep co-scroll-container .content-wrapper{padding:0}.co-product-page ::ng-deep co-scroll-container .scroll-layer{left:0;top:0}.co-product-page ::ng-deep co-scroll-container .scroll-layer .scroller{width:34px;height:34px;border-radius:36px;background:#fff;cursor:pointer;box-shadow:0 0 5px #0003}.co-product-page ::ng-deep co-scroll-container .scroll-layer .scroller:hover{background:#f6f5f4}.co-product-page ::ng-deep co-scroll-container .scroll-layer .scroller.left-scroll{left:5px}.co-product-page ::ng-deep co-scroll-container .scroll-layer .scroller.left-scroll:before{border-width:0 3px 3px 0;padding:4px;margin-left:13px;margin-top:11px}.co-product-page ::ng-deep co-scroll-container .scroll-layer .scroller.right-scroll{right:5px}.co-product-page ::ng-deep co-scroll-container .scroll-layer .scroller.right-scroll:after{border-width:0 3px 3px 0;padding:4px;margin-left:9px;margin-top:11px}.co-product-page .product-page-block-variants{margin:20px 0 0}.co-product-page .product-page-block-variants app-product-related>div{display:flex;gap:15px;align-items:center;border-top:1px solid #f6f5f4;padding:5px 0 7px 15px}.co-product-page .product-page-block-variants app-product-related>div app-header h3{font-size:14px}.co-product-page .product-page-block-variants app-product-related>div co-scroll-container{width:320px;max-width:100%;padding:0 16px}.co-product-page .product-page-block-variants app-product-related>div co-scroll-container .scroller{width:26px;height:26px}.co-product-page .product-page-block-variants app-product-related>div co-scroll-container .scroller.left-scroll{left:5px}.co-product-page .product-page-block-variants app-product-related>div co-scroll-container .scroller.left-scroll:before{border-width:0 2px 2px 0;margin-left:9px;margin-top:9px}.co-product-page .product-page-block-variants app-product-related>div co-scroll-container .scroller.right-scroll{right:5px}.co-product-page .product-page-block-variants app-product-related>div co-scroll-container .scroller.right-scroll:after{border-width:0 2px 2px 0;margin-left:6px;margin-top:9px}.co-product-page .product-page-block-variants co-tile.small{min-width:50px!important;max-width:50px!important;border:1px solid #f6f5f4;margin:0 10px 0 0;border-radius:4px}.co-product-page .product-page-block-variants co-tile.small:hover{border-color:#22313c}.co-product-page .product-page-block-variants co-tile.small .tile-wrapper{padding:0}.co-product-page .product-page-block-variants co-tile.small .tile-wrapper .tile-top{display:none}.co-product-page .product-page-block-variants co-tile.small .tile-wrapper .image{height:40px!important;padding:5px;margin-bottom:10px}.co-product-page .product-page-block-variants co-tile.small .tile-wrapper .image .no-image-wrapper .no-image{width:40px;height:40px}.co-product-page .product-page-block-variants co-tile.small .tile-wrapper .image .no-image-wrapper span{display:none!important}.co-product-page .product-page-block-variants co-tile.small .tile-wrapper .tile-bottom{display:none}.co-product-page .product-page-block-variants co-tile.small .tile-extra-bottom{display:none}.co-product-page .product-page-block-alternatives .co-scroll-container,.co-product-page .product-page-block-alternatives .co-scroll-container .content-wrapper{width:auto}.co-product-page .product-page-block-alternatives .article-wrapper{margin:0 20px 0 0}.co-product-page .product-page-block-alternatives .article-wrapper:last-child{margin:0}.co-product-page .product-page-block-alternatives .co-tile{cursor:pointer;transition:all .14s ease-out;border:1px solid transparent;padding:15px 10px 0;width:319px;max-width:none;min-width:0;box-sizing:border-box}.co-product-page .product-page-block-alternatives .co-tile:hover{box-shadow:none;border-color:#f6f5f4}.co-product-page .product-page-block-alternatives .co-tile:hover .tile-wrapper div.image co-image{transform:scale(1.05)}.co-product-page .product-page-block-alternatives .co-tile:hover .tile-wrapper .tile-bottom{margin:0}.co-product-page .product-page-block-alternatives .co-tile:hover .tile-extra-bottom .main .description{text-decoration:underline}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper{padding:0;position:relative;outline:none;overflow:hidden}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper .tile-top{position:absolute;left:0;top:0;width:100%}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper div.image{position:relative;padding:1px;display:flex;align-items:center;justify-content:center;overflow:hidden;max-width:250px;margin:0 auto 10px;height:auto}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper div.image:after{content:\"\";padding:100% 0 0;float:left;width:100%}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper div.image .co-image{position:absolute;left:0;top:0;overflow:hidden;width:100%;height:100%;object-fit:contain;transition:all .2s ease}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper div.image .no-image-wrapper{position:absolute;display:flex;left:50%;top:50%;margin:-48px 0 0 -54px;flex-direction:column;align-items:center;opacity:.25}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper .tile-bottom{transition:all .2s ease;height:auto}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom{outline:none;padding:5px 0;background:transparent!important;min-height:60px}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom .co-button{margin:0 0 5px!important;width:34px;height:34px;border:none;background:#1a73e8;cursor:pointer;border-radius:4px;padding:0!important;font-size:0}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom .co-button .co-icon{width:28px;height:28px;margin:0 2px}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom .main{padding:0 10px}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom .main .description{font-size:15px;font-weight:700;margin:0 0 2px}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom .main .price{font-size:16px;margin:15px 0 0;font-weight:700;color:#1a73e8}.co-product-page .product-page-block-additional-information{grid-column:1/6;grid-row:4/4}.co-product-page .product-page-block-properties{grid-column:7/10;grid-row:3/3}.co-product-page .product-page-block-related-articles{grid-column:2/6;grid-row:4/4}.co-product-page .product-page-block-alternative-articles{grid-column:6/10;grid-row:4/4}.co-product-page .product-page-block-documents{grid-column:2/6;grid-row:5/5}.co-product-page .product-page-block-symbols{grid-column:6/10;grid-row:5/5}@media screen and (max-width: 950px){.co-product-page .default-padding{padding-top:20px;padding-bottom:20px}.co-product-page .m-padding{padding-top:15px;padding-bottom:15px}.co-product-page .s-padding{padding-top:5px;padding-bottom:5px}.co-product-page .page-wrapper{max-width:650px}.co-product-page .page-wrapper .page-wrapper-content{flex-direction:column;margin:30px 0}.co-product-page .page-wrapper .page-wrapper-content .page-wrapper-left,.co-product-page .page-wrapper .page-wrapper-content .page-wrapper-right{width:100%}.co-product-page .product-page-block-alternatives ::ng-deep co-tile{width:284px!important}}@media screen and (max-width: 650px){.co-product-page [class*=-padding]{padding-left:0!important;padding-right:0!important}.co-product-page .product-page-block-addtocart ::ng-deep co-number-picker co-button{height:38px!important}.co-product-page .product-page-block-addtocart ::ng-deep co-number-picker co-input-text{height:38px!important;width:36px!important}.co-product-page .product-page-block-addtocart ::ng-deep co-button.cart-button{height:40px;font-size:13px}}\n"], dependencies: [{ kind: "component", type: ProductSelectorTypeComponent, selector: "app-product-selector-type", inputs: ["show2D", "show3D", "showRenderCarousel", "currentType"], outputs: ["onIconClick", "currentTypeChange"] }, { kind: "component", type: ImageCarouselComponent, selector: "app-image-carousel", inputs: ["showRefresh", "images"] }, { kind: "component", type: i6.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "component", type: ProductDescriptionComponent, selector: "app-product-description", inputs: ["article", "configuring"] }, { kind: "component", type: ProductAdditionalDescriptionComponent, selector: "app-product-additional-description", inputs: ["article"] }, { kind: "component", type: ProductPriceComponent, selector: "app-product-price", inputs: ["pricing", "configurable"] }, { kind: "component", type: ProductAddtocartComponent, selector: "app-product-addtocart", inputs: ["article", "externalSource", "createFrozenArticle", "configurable", "configuring", "showAddToCart", "isReturn", "fullscreen", "quantity"], outputs: ["startConfiguration", "addToCartClick", "addToQuoteClick", "showRelatedPopup"] }, { kind: "component", type: ProductRelatedComponent, selector: "app-product-related", inputs: ["refType", "label", "externalSource", "isSmallModus", "createFrozenArticle", "articles"] }, { kind: "component", type: ProductStockComponent, selector: "app-product-stock", inputs: ["goodId"], outputs: ["openStockEvent"] }, { kind: "component", type: ProductInfoTabsComponent, selector: "app-product-info-tabs", inputs: ["article"] }, { kind: "component", type: ProductDialogComponent, selector: "co-product-dialog", inputs: ["refType", "mainArticle", "articles"], outputs: ["closeRelatedPopup"] }, { kind: "component", type: RenderCarouselComponent, selector: "app-render-carousel", inputs: ["showRefresh", "article"] }, { kind: "component", type: i5.ConfiguratorComponent, selector: "co-configurator", inputs: ["sku", "instanceId", "settings", "scene", "showLoader", "showProgressBar", "showErrorMessages", "outputErrorMessages", "canCloseConfigurator", "animateSlideout", "showHeaderInformation"], outputs: ["isLoading", "updateProgressBar", "errorMessages", "showChange"] }, { kind: "component", type: i5.ConfiguratorSceneComponent, selector: "co-configurator-scene", inputs: ["showSceneBuildLoader"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }], animations: [
3264
3114
  trigger('toggleFullScreen', [
3265
3115
  state('fullscreen', style({ 'position': 'fixed', 'top': '0', 'left': '0', 'width': '100%', 'height': '100%' })),
3266
3116
  state('halfscreen', style({ 'position': '*', 'top': '*', 'left': '*', 'width': '*', 'height': '*' })),
@@ -3299,18 +3149,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
3299
3149
  @if (settingsLoaded) {
3300
3150
  <div class="page-wrapper">
3301
3151
  <div class="page-wrapper-content">
3302
- <div class="page-wrapper-left">
3152
+ <div class="page-wrapper-left swimming-lane">
3303
3153
  <div class="product-image-container">
3304
3154
  <div class="product-page-block-selector-type">
3305
3155
  <app-product-selector-type
3306
- class="default-padding"
3307
3156
  [(currentType)]="currentView"
3308
3157
  [show2D]="configurable"
3309
3158
  [show3D]="threeD">
3310
3159
  </app-product-selector-type>
3311
3160
  </div>
3312
3161
 
3313
- <div class="product-page-block-image default-padding" [class.full]="fullScreen">
3162
+ <div class="product-page-block-image" [class.full]="fullScreen">
3314
3163
  @if (!enableRenderCarousel) {
3315
3164
  <app-image-carousel
3316
3165
  [@toggleVisibilityByState]="show2D ? 'show' : 'hide'"
@@ -3349,54 +3198,41 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
3349
3198
  </div>
3350
3199
  </div>
3351
3200
  </div>
3352
- <div class="page-wrapper-right">
3201
+ <div class="page-wrapper-right swimming-lane">
3353
3202
  <div class="product-page-scroll-container">
3354
3203
  <div class="product-page-block-description">
3355
3204
  <app-product-description
3356
- class="default-padding"
3357
- [article]="article">
3205
+ [article]="article"
3206
+ [configuring]="configuring">
3358
3207
  </app-product-description>
3359
3208
  </div>
3360
3209
  <div class="product-page-block-additional">
3361
3210
  <div class="product-page-block-additional-description">
3362
3211
  <app-product-additional-description
3363
- class="default-padding"
3364
3212
  [article]="article">
3365
3213
  </app-product-additional-description>
3366
3214
  </div>
3367
3215
  <div class="product-page-block-price" [class.full]="configuring">
3368
- @if (configuring && this.settingsService.settings.options.showSaveAsPresetButton) {
3369
- <div class="preset-container">
3370
- <co-button
3371
- class="save-preset-button"
3372
- [iconData]="iconCache.getIcon(icon.SaveDisk)"
3373
- [label]="'PRESET_SAVE_AS' | localize"
3374
- (onClick)="handleSavePreset()">
3375
- </co-button>
3376
- </div>
3377
- }
3378
3216
  @if (!configuring) {
3379
3217
  <app-product-price
3380
- class="s-padding"
3381
3218
  [pricing]="article?.pricing"
3382
3219
  [configurable]="configurable">
3383
3220
  </app-product-price>
3384
3221
  }
3385
-
3386
- @if (settingsLoaded) {
3222
+ @if (settingsLoaded && configuring) {
3387
3223
  <co-configurator
3388
3224
  [class.hide-configurator]="!configuring"
3389
3225
  [class.show-configurator]="configuring"
3226
+ [sku]="sku"
3390
3227
  [showLoader]="true"
3391
3228
  [animateSlideout]="false"
3392
3229
  [showHeaderInformation]="false"
3393
- [canCloseConfigurator]="false"
3394
- (buildResult)="handleBuildFinished($event)">
3230
+ [canCloseConfigurator]="false">
3395
3231
  </co-configurator>
3396
3232
  }
3397
3233
  </div>
3398
3234
  @if (!configuring) {
3399
- <div class="product-page-block-addtocart no-padding product-action-buttons"
3235
+ <div class="product-page-block-addtocart product-action-buttons"
3400
3236
  [@toggleTopRight]="fullScreen ? 'fullscreen' : 'halfscreen'">
3401
3237
  <app-product-addtocart
3402
3238
  [configurable]="configurable"
@@ -3414,7 +3250,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
3414
3250
  @if (configuring) {
3415
3251
  <div class="addtocart-reserved product-action-buttons" [class.full-screen]="fullScreen">
3416
3252
  <app-product-addtocart
3417
- class="default-padding"
3418
3253
  [configurable]="false"
3419
3254
  [fullscreen]="fullScreen"
3420
3255
  [showAddToCart]="showAddToCart"
@@ -3429,7 +3264,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
3429
3264
  <div class="product-page-block-variants">
3430
3265
  @if (article?.relatedArticles && article?.relatedArticles.length > 0) {
3431
3266
  <app-product-related
3432
- class="no-padding"
3433
3267
  [externalSource]="externalSource"
3434
3268
  [articles]="article?.relatedArticles" [refType]="64"
3435
3269
  [label]="'VARIANTS' | localize">
@@ -3438,7 +3272,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
3438
3272
  </div>
3439
3273
  <div class="product-page-block-stock">
3440
3274
  <app-product-stock
3441
- class="no-padding"
3442
3275
  [goodId]="article?.goodId"
3443
3276
  (openStockEvent)="openStock()">
3444
3277
  </app-product-stock>
@@ -3449,15 +3282,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
3449
3282
  </div>
3450
3283
  <div class="page-wrapper-content">
3451
3284
  @if (article) {
3452
- <div class="page-wrapper-left">
3285
+ <div class="page-wrapper-left swimming-lane">
3453
3286
  <app-product-info-tabs
3454
- class="no-padding"
3455
3287
  [article]="article">
3456
3288
  </app-product-info-tabs>
3457
3289
  </div>
3458
3290
  }
3459
- <div class="page-wrapper-right">
3460
- <div class="product-page-block-related s-padding">
3291
+ <div class="page-wrapper-right swimming-lane">
3292
+ <div class="product-page-block-related">
3461
3293
  @if (article?.relatedArticles && article?.relatedArticles.length > 0) {
3462
3294
  <app-product-related
3463
3295
  [externalSource]="externalSource"
@@ -3470,8 +3302,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
3470
3302
  </div>
3471
3303
  </div>
3472
3304
  <div class="page-wrapper-content no-top-margin">
3473
- <div class="page-wrapper-full">
3474
- <div class="product-page-block-alternatives s-padding">
3305
+ <div class="page-wrapper-full swimming-lane">
3306
+ <div class="product-page-block-alternatives">
3475
3307
  @if (article?.relatedArticles && article?.relatedArticles.length > 0) {
3476
3308
  <app-product-related
3477
3309
  [externalSource]="externalSource"
@@ -3495,15 +3327,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
3495
3327
  </div>
3496
3328
  }
3497
3329
  </div>
3498
-
3499
- @if (presetDialogType) {
3500
- <co-preset-dialog
3501
- [type]="presetDialogType"
3502
- [presetId]="configPresetId"
3503
- (cancelSavePreset)="handleCancelSavePreset($event)"
3504
- (overwritePreset)="handleOverwritePreset($event)">
3505
- </co-preset-dialog>
3506
- }
3507
3330
  }
3508
3331
  `, encapsulation: ViewEncapsulation.None, animations: [
3509
3332
  trigger('toggleFullScreen', [
@@ -3536,8 +3359,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
3536
3359
  state('*', style({ 'opacity': '1' })),
3537
3360
  transition('void => *', animate('200ms ease-in-out'))
3538
3361
  ])
3539
- ], standalone: false, styles: [".co-product-page .page-wrapper{font-family:iOneMontserrat;font-size:12px;display:flex;flex-direction:column;max-width:100%;padding:0 15px;margin:0 auto}.co-product-page .page-wrapper-content{display:flex;flex-direction:row;margin:40px 0}.co-product-page .page-wrapper-content:first-child,.co-product-page .page-wrapper-content.no-top-margin{margin-top:0}.co-product-page .page-wrapper-left{display:flex;width:65%;flex-direction:column}.co-product-page .page-wrapper-right{display:flex;width:35%;flex-direction:column}.co-product-page .page-wrapper-right .product-page-scroll-container{max-height:100vh;overflow-y:scroll}.co-product-page .page-wrapper-full{display:flex;width:100%;flex-direction:column}.co-product-page .page-wrapper-66{display:flex;width:60%;flex-direction:column}.co-product-page .page-wrapper-33{display:flex;width:40%;flex-direction:column}.co-product-page .product-action-buttons{position:relative}.co-product-page .product-action-buttons.full-screen{z-index:10}.co-product-page .product-image-container{grid-column:1/7;grid-row:1/6;position:relative}.co-product-page .product-page-block-selector-type{width:auto;position:absolute;top:10px;right:10px;z-index:2}.co-product-page .product-page-block-image{box-sizing:border-box;width:100%;z-index:1;position:relative}.co-product-page .product-page-block-image .co-configurator-scene{width:100%;height:300px;display:block;position:relative}.co-product-page .product-page-block-image .co-configurator-scene .configurator-bundle-container{position:relative;height:650px;width:100%}.co-product-page .product-page-block-image .co-configurator-scene .configurator-bundle-container .threedviewer{min-height:0;min-width:0;width:auto;height:auto}.co-product-page .product-page-block-image .co-configurator-scene .configurator-bundle-container .threedviewer canvas{width:100%;height:100%}.co-product-page .product-page-block-image .co-configurator-scene.hide-3d-scene{visibility:hidden;overflow:hidden;height:0}.co-product-page .product-page-block-image .co-configurator-scene.show-3d-scene{min-height:650px;position:relative}.co-product-page .product-page-block-image .co-configurator-scene.show-full-screen{position:fixed;inset:0;width:100%;height:100%}.co-product-page .product-page-block-image .co-configurator-scene.show-full-screen .configurator-bundle-container{height:100%}.co-product-page .product-page-block-image .co-configurator-scene canvas{height:100%}.co-product-page .product-page-block-image app-image-carousel.show-animated,.co-product-page .product-page-block-image threed-configurator.show-animated{opacity:1;z-index:0;transition:all .2s ease-in-out}.co-product-page .product-page-block-image .fullscreen-button{cursor:pointer;height:50px;width:50px;position:absolute;left:30px;z-index:100;top:30px}.co-product-page .product-page-block-image.full{grid-column:1/11;grid-row:2/span 10;z-index:3}.co-product-page .product-page-block-description{grid-column:7/12;grid-row:1/1}.co-product-page .product-page-block-additional,.co-product-page .product-page-block-additional-description{width:100%}.co-product-page .product-page-block-price{grid-column:1/3;grid-row:2/2;align-self:center}.co-product-page .product-page-block-price.full{grid-column:1/5}.co-product-page .product-page-block-price .hide-configurator{display:none}.co-product-page .product-page-block-price .show-configurator{display:block}.co-product-page .product-page-block-price .show-configurator .co-threedselector{position:relative}.co-product-page .product-page-block-price .show-configurator .co-threedselector .co-lite-selector.floating co-selections-summary{position:relative}.co-product-page .product-page-block-price .show-configurator .co-threedselector .co-lite-selector:not(.custom-dimensions).floating co-selections-summary{top:auto;background:none}.co-product-page .product-page-block-price .show-configurator .co-threedselector .co-selections-summary .selections-content{gap:10px;box-sizing:border-box;padding:10px}.co-product-page .product-page-block-price .show-configurator .co-threedselector .co-product-configurator .product-configurator-container{position:relative;width:auto;top:auto;right:auto;padding-left:30px;padding-right:0;height:auto;max-height:100%}.co-product-page .product-page-block-price .show-configurator .co-threedselector .co-product-configurator .product-configurator-container .product-configurator-details{max-height:100%}.co-product-page .preset-container{display:flex;justify-content:right}.co-product-page .preset-container .save-preset-button{cursor:pointer;width:100%;max-width:205px;box-sizing:border-box}.co-product-page .preset-container .save-preset-button:hover{background:#74b77f}.co-product-page .product-page-block-addtocart{grid-column:3/5;grid-row:2/2;align-self:center;padding-top:30px!important}.co-product-page .product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button{cursor:pointer}.co-product-page .product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button:hover div.rippler{background:#f6f5f4}.co-product-page .product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button ::ng-deep co-icon{position:relative;z-index:2}.co-product-page .product-page-block-addtocart ::ng-deep co-button.cart-button{cursor:pointer}.co-product-page .product-page-block-addtocart ::ng-deep co-button.cart-button:hover{background:#74b77f}.co-product-page .addtocart-reserved{grid-column:1/3;grid-row:3/3}.co-product-page .product-page-block-stock{grid-column:1/3;grid-row:4/4}.co-product-page .product-page-block-delivery{grid-column:3/5;grid-row:4/4}.co-product-page ::ng-deep co-scroll-container{overflow:hidden;position:relative}.co-product-page ::ng-deep co-scroll-container .content-wrapper{padding:0}.co-product-page ::ng-deep co-scroll-container .scroll-layer{left:0;top:0}.co-product-page ::ng-deep co-scroll-container .scroll-layer .scroller{width:34px;height:34px;border-radius:36px;background:#fff;cursor:pointer;box-shadow:0 0 5px #0003}.co-product-page ::ng-deep co-scroll-container .scroll-layer .scroller:hover{background:#f6f5f4}.co-product-page ::ng-deep co-scroll-container .scroll-layer .scroller.left-scroll{left:5px}.co-product-page ::ng-deep co-scroll-container .scroll-layer .scroller.left-scroll:before{border-width:0 3px 3px 0;padding:4px;margin-left:13px;margin-top:11px}.co-product-page ::ng-deep co-scroll-container .scroll-layer .scroller.right-scroll{right:5px}.co-product-page ::ng-deep co-scroll-container .scroll-layer .scroller.right-scroll:after{border-width:0 3px 3px 0;padding:4px;margin-left:9px;margin-top:11px}.co-product-page .product-page-block-variants{margin:20px 0 0}.co-product-page .product-page-block-variants app-product-related>div{display:flex;gap:15px;align-items:center;border-top:1px solid #f6f5f4;padding:5px 0 7px 15px}.co-product-page .product-page-block-variants app-product-related>div app-header h3{font-size:14px}.co-product-page .product-page-block-variants app-product-related>div co-scroll-container{width:320px;max-width:100%;padding:0 16px}.co-product-page .product-page-block-variants app-product-related>div co-scroll-container .scroller{width:26px;height:26px}.co-product-page .product-page-block-variants app-product-related>div co-scroll-container .scroller.left-scroll{left:5px}.co-product-page .product-page-block-variants app-product-related>div co-scroll-container .scroller.left-scroll:before{border-width:0 2px 2px 0;margin-left:9px;margin-top:9px}.co-product-page .product-page-block-variants app-product-related>div co-scroll-container .scroller.right-scroll{right:5px}.co-product-page .product-page-block-variants app-product-related>div co-scroll-container .scroller.right-scroll:after{border-width:0 2px 2px 0;margin-left:6px;margin-top:9px}.co-product-page .product-page-block-variants co-tile.small{min-width:50px!important;max-width:50px!important;border:1px solid #f6f5f4;margin:0 10px 0 0;border-radius:4px}.co-product-page .product-page-block-variants co-tile.small:hover{border-color:#22313c}.co-product-page .product-page-block-variants co-tile.small .tile-wrapper{padding:0}.co-product-page .product-page-block-variants co-tile.small .tile-wrapper .tile-top{display:none}.co-product-page .product-page-block-variants co-tile.small .tile-wrapper .image{height:40px!important;padding:5px;margin-bottom:10px}.co-product-page .product-page-block-variants co-tile.small .tile-wrapper .image .no-image-wrapper .no-image{width:40px;height:40px}.co-product-page .product-page-block-variants co-tile.small .tile-wrapper .image .no-image-wrapper span{display:none!important}.co-product-page .product-page-block-variants co-tile.small .tile-wrapper .tile-bottom{display:none}.co-product-page .product-page-block-variants co-tile.small .tile-extra-bottom{display:none}.co-product-page .product-page-block-alternatives .co-scroll-container,.co-product-page .product-page-block-alternatives .co-scroll-container .content-wrapper{width:auto}.co-product-page .product-page-block-alternatives .article-wrapper{margin:0 20px 0 0}.co-product-page .product-page-block-alternatives .article-wrapper:last-child{margin:0}.co-product-page .product-page-block-alternatives .co-tile{cursor:pointer;transition:all .14s ease-out;border:1px solid transparent;padding:15px 10px 0;width:319px;max-width:none;min-width:0;box-sizing:border-box}.co-product-page .product-page-block-alternatives .co-tile:hover{box-shadow:none;border-color:#f6f5f4}.co-product-page .product-page-block-alternatives .co-tile:hover .tile-wrapper div.image co-image{transform:scale(1.05)}.co-product-page .product-page-block-alternatives .co-tile:hover .tile-wrapper .tile-bottom{margin:0}.co-product-page .product-page-block-alternatives .co-tile:hover .tile-extra-bottom .main .description{text-decoration:underline}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper{padding:0;position:relative;outline:none;overflow:hidden}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper .tile-top{position:absolute;left:0;top:0;width:100%}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper div.image{position:relative;padding:1px;display:flex;align-items:center;justify-content:center;overflow:hidden;max-width:250px;margin:0 auto 10px;height:auto}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper div.image:after{content:\"\";padding:100% 0 0;float:left;width:100%}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper div.image .co-image{position:absolute;left:0;top:0;overflow:hidden;width:100%;height:100%;object-fit:contain;z-index:-1;transition:all .2s ease}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper div.image .no-image-wrapper{position:absolute;display:flex;left:50%;top:50%;margin:-48px 0 0 -54px;flex-direction:column;align-items:center;opacity:.25}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper .tile-bottom{transition:all .2s ease;height:auto}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper .tile-bottom .co-button{margin:0 0 5px!important;width:36px;height:36px;border:1px solid #22313C;background:#2b60a7;cursor:pointer;border-radius:4px;padding:0!important;font-size:0}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper .tile-bottom .co-button .co-icon{width:32px;height:32px;margin:0 2px}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom{outline:none;padding:15px 0;background:transparent!important;min-height:60px}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom .main{padding:0 10px}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom .main .description{font-size:15px;font-weight:700;margin:0 0 2px}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom .main .price{font-size:16px;margin:15px 0 0;font-weight:700;color:#2b60a7}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom .main .co-button{margin:0 0 5px!important;width:36px;height:36px;border:1px solid #22313C;background:#2b60a7;cursor:pointer;border-radius:4px;padding:0!important;font-size:0}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom .main .co-button .co-icon{width:32px;height:32px;margin:0 2px}.co-product-page .product-page-block-additional-information{grid-column:1/6;grid-row:4/4}.co-product-page .product-page-block-properties{grid-column:7/10;grid-row:3/3}.co-product-page .product-page-block-related-articles{grid-column:2/6;grid-row:4/4}.co-product-page .product-page-block-alternative-articles{grid-column:6/10;grid-row:4/4}.co-product-page .product-page-block-documents{grid-column:2/6;grid-row:5/5}.co-product-page .product-page-block-symbols{grid-column:6/10;grid-row:5/5}@media screen and (max-width: 950px){.co-product-page .default-padding{padding-top:20px;padding-bottom:20px}.co-product-page .m-padding{padding-top:15px;padding-bottom:15px}.co-product-page .s-padding{padding-top:5px;padding-bottom:5px}.co-product-page .page-wrapper{max-width:650px}.co-product-page .page-wrapper .page-wrapper-content{flex-direction:column;margin:30px 0}.co-product-page .page-wrapper .page-wrapper-content .page-wrapper-left,.co-product-page .page-wrapper .page-wrapper-content .page-wrapper-right{width:100%}.co-product-page .product-page-block-alternatives ::ng-deep co-tile{width:284px!important}}@media screen and (max-width: 650px){.co-product-page [class*=-padding]{padding-left:0!important;padding-right:0!important}.co-product-page .product-page-block-addtocart ::ng-deep co-number-picker co-button{height:38px!important}.co-product-page .product-page-block-addtocart ::ng-deep co-number-picker co-input-text{height:38px!important;width:36px!important}.co-product-page .product-page-block-addtocart ::ng-deep co-button.cart-button{height:40px;font-size:13px}}\n"] }]
3540
- }], ctorParameters: () => [{ type: IconCacheService }, { type: ProductSettingsService }, { type: ProductEventService }, { type: i0.ChangeDetectorRef }, { type: ProductConnectorService }, { type: i5.ConfiguringService }, { type: i5.SceneService }], propDecorators: { showClass: [{
3362
+ ], standalone: false, styles: [".co-product-page .page-wrapper{font-family:Public Sans;font-size:12px;display:flex;flex-direction:column;max-width:100%;padding:0 10px;margin:0 auto}.co-product-page .page-wrapper-content{display:flex;flex-direction:row;margin:0 0 10px;gap:10px}.co-product-page .page-wrapper-content:first-child{margin-top:10px}.co-product-page .page-wrapper-content.no-top-margin{margin-top:0}.co-product-page .swimming-lane{display:flex;flex-wrap:wrap;box-shadow:1px 1px 4px #0000001a;padding:30px;background:#fff}.co-product-page .page-wrapper-left{display:flex;width:65%;flex-direction:column}.co-product-page .page-wrapper-right{display:flex;width:35%;flex-direction:column}.co-product-page .page-wrapper-right .product-page-scroll-container{max-height:100vh;overflow-y:scroll}.co-product-page .page-wrapper-full{display:flex;width:100%;flex-direction:column}.co-product-page .page-wrapper-66{display:flex;width:60%;flex-direction:column}.co-product-page .page-wrapper-33{display:flex;width:40%;flex-direction:column}.co-product-page .product-action-buttons{position:relative}.co-product-page .product-action-buttons.full-screen{z-index:10}.co-product-page .product-image-container{grid-column:1/7;grid-row:1/6;position:relative}.co-product-page .product-page-block-selector-type{width:auto;position:absolute;top:10px;right:10px;z-index:2}.co-product-page .product-page-block-image{box-sizing:border-box;width:100%;z-index:1;position:relative}.co-product-page .product-page-block-image .co-configurator-scene{width:100%;height:300px;display:block;position:relative}.co-product-page .product-page-block-image .co-configurator-scene .configurator-bundle-container{position:relative;height:650px;width:100%}.co-product-page .product-page-block-image .co-configurator-scene .configurator-bundle-container .threedviewer{min-height:0;min-width:0;width:auto;height:auto}.co-product-page .product-page-block-image .co-configurator-scene .configurator-bundle-container .threedviewer canvas{width:100%;height:100%}.co-product-page .product-page-block-image .co-configurator-scene.hide-3d-scene{visibility:hidden;overflow:hidden;height:0}.co-product-page .product-page-block-image .co-configurator-scene.show-3d-scene{min-height:650px;position:relative}.co-product-page .product-page-block-image .co-configurator-scene.show-full-screen{position:fixed;inset:0;width:100%;height:100%}.co-product-page .product-page-block-image .co-configurator-scene.show-full-screen .configurator-bundle-container{height:100%}.co-product-page .product-page-block-image .co-configurator-scene canvas{height:100%}.co-product-page .product-page-block-image app-image-carousel.show-animated,.co-product-page .product-page-block-image threed-configurator.show-animated{opacity:1;z-index:0;transition:all .2s ease-in-out}.co-product-page .product-page-block-image .fullscreen-button{cursor:pointer;height:50px;width:50px;position:absolute;left:30px;z-index:100;top:30px}.co-product-page .product-page-block-image.full{grid-column:1/11;grid-row:2/span 10;z-index:3}.co-product-page .product-page-block-description{grid-column:7/12;grid-row:1/1}.co-product-page .product-page-block-additional,.co-product-page .product-page-block-additional-description{width:100%}.co-product-page .product-page-block-price{grid-column:1/3;grid-row:2/2;align-self:center}.co-product-page .product-page-block-price.full{grid-column:1/5}.co-product-page .product-page-block-price .hide-configurator{display:none}.co-product-page .product-page-block-price .show-configurator{display:block}.co-product-page .product-page-block-price .show-configurator .co-lite-selector.floating co-selections-summary{position:relative}.co-product-page .product-page-block-price .show-configurator .co-lite-selector:not(.custom-dimensions).floating co-selections-summary{top:auto;background:none}.co-product-page .product-page-block-price .show-configurator .co-selections-summary .selections-content{gap:10px;box-sizing:border-box;padding:10px}.co-product-page .product-page-block-price .show-configurator .co-product-configurator .product-configurator-container{position:relative;width:auto;top:auto;right:auto;padding-left:0;padding-right:0;height:auto;max-height:100%}.co-product-page .preset-container{display:flex;justify-content:right}.co-product-page .preset-container .save-preset-button{cursor:pointer;width:100%;max-width:205px;box-sizing:border-box}.co-product-page .preset-container .save-preset-button:hover{background:#4e9b7e}.co-product-page .product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button{cursor:pointer}.co-product-page .product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button:hover div.rippler{background:#f6f5f4}.co-product-page .product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button ::ng-deep co-icon{position:relative;z-index:2}.co-product-page .product-page-block-addtocart ::ng-deep co-button.cart-button{cursor:pointer}.co-product-page .product-page-block-addtocart ::ng-deep co-button.cart-button:hover{background:#4e9b7e}.co-product-page .addtocart-reserved{grid-column:1/3;grid-row:3/3}.co-product-page .product-page-block-stock{grid-column:1/3;grid-row:4/4}.co-product-page .product-page-block-delivery{grid-column:3/5;grid-row:4/4}.co-product-page ::ng-deep co-scroll-container{overflow:hidden;position:relative}.co-product-page ::ng-deep co-scroll-container .content-wrapper{padding:0}.co-product-page ::ng-deep co-scroll-container .scroll-layer{left:0;top:0}.co-product-page ::ng-deep co-scroll-container .scroll-layer .scroller{width:34px;height:34px;border-radius:36px;background:#fff;cursor:pointer;box-shadow:0 0 5px #0003}.co-product-page ::ng-deep co-scroll-container .scroll-layer .scroller:hover{background:#f6f5f4}.co-product-page ::ng-deep co-scroll-container .scroll-layer .scroller.left-scroll{left:5px}.co-product-page ::ng-deep co-scroll-container .scroll-layer .scroller.left-scroll:before{border-width:0 3px 3px 0;padding:4px;margin-left:13px;margin-top:11px}.co-product-page ::ng-deep co-scroll-container .scroll-layer .scroller.right-scroll{right:5px}.co-product-page ::ng-deep co-scroll-container .scroll-layer .scroller.right-scroll:after{border-width:0 3px 3px 0;padding:4px;margin-left:9px;margin-top:11px}.co-product-page .product-page-block-variants{margin:20px 0 0}.co-product-page .product-page-block-variants app-product-related>div{display:flex;gap:15px;align-items:center;border-top:1px solid #f6f5f4;padding:5px 0 7px 15px}.co-product-page .product-page-block-variants app-product-related>div app-header h3{font-size:14px}.co-product-page .product-page-block-variants app-product-related>div co-scroll-container{width:320px;max-width:100%;padding:0 16px}.co-product-page .product-page-block-variants app-product-related>div co-scroll-container .scroller{width:26px;height:26px}.co-product-page .product-page-block-variants app-product-related>div co-scroll-container .scroller.left-scroll{left:5px}.co-product-page .product-page-block-variants app-product-related>div co-scroll-container .scroller.left-scroll:before{border-width:0 2px 2px 0;margin-left:9px;margin-top:9px}.co-product-page .product-page-block-variants app-product-related>div co-scroll-container .scroller.right-scroll{right:5px}.co-product-page .product-page-block-variants app-product-related>div co-scroll-container .scroller.right-scroll:after{border-width:0 2px 2px 0;margin-left:6px;margin-top:9px}.co-product-page .product-page-block-variants co-tile.small{min-width:50px!important;max-width:50px!important;border:1px solid #f6f5f4;margin:0 10px 0 0;border-radius:4px}.co-product-page .product-page-block-variants co-tile.small:hover{border-color:#22313c}.co-product-page .product-page-block-variants co-tile.small .tile-wrapper{padding:0}.co-product-page .product-page-block-variants co-tile.small .tile-wrapper .tile-top{display:none}.co-product-page .product-page-block-variants co-tile.small .tile-wrapper .image{height:40px!important;padding:5px;margin-bottom:10px}.co-product-page .product-page-block-variants co-tile.small .tile-wrapper .image .no-image-wrapper .no-image{width:40px;height:40px}.co-product-page .product-page-block-variants co-tile.small .tile-wrapper .image .no-image-wrapper span{display:none!important}.co-product-page .product-page-block-variants co-tile.small .tile-wrapper .tile-bottom{display:none}.co-product-page .product-page-block-variants co-tile.small .tile-extra-bottom{display:none}.co-product-page .product-page-block-alternatives .co-scroll-container,.co-product-page .product-page-block-alternatives .co-scroll-container .content-wrapper{width:auto}.co-product-page .product-page-block-alternatives .article-wrapper{margin:0 20px 0 0}.co-product-page .product-page-block-alternatives .article-wrapper:last-child{margin:0}.co-product-page .product-page-block-alternatives .co-tile{cursor:pointer;transition:all .14s ease-out;border:1px solid transparent;padding:15px 10px 0;width:319px;max-width:none;min-width:0;box-sizing:border-box}.co-product-page .product-page-block-alternatives .co-tile:hover{box-shadow:none;border-color:#f6f5f4}.co-product-page .product-page-block-alternatives .co-tile:hover .tile-wrapper div.image co-image{transform:scale(1.05)}.co-product-page .product-page-block-alternatives .co-tile:hover .tile-wrapper .tile-bottom{margin:0}.co-product-page .product-page-block-alternatives .co-tile:hover .tile-extra-bottom .main .description{text-decoration:underline}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper{padding:0;position:relative;outline:none;overflow:hidden}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper .tile-top{position:absolute;left:0;top:0;width:100%}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper div.image{position:relative;padding:1px;display:flex;align-items:center;justify-content:center;overflow:hidden;max-width:250px;margin:0 auto 10px;height:auto}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper div.image:after{content:\"\";padding:100% 0 0;float:left;width:100%}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper div.image .co-image{position:absolute;left:0;top:0;overflow:hidden;width:100%;height:100%;object-fit:contain;transition:all .2s ease}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper div.image .no-image-wrapper{position:absolute;display:flex;left:50%;top:50%;margin:-48px 0 0 -54px;flex-direction:column;align-items:center;opacity:.25}.co-product-page .product-page-block-alternatives .co-tile .tile-wrapper .tile-bottom{transition:all .2s ease;height:auto}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom{outline:none;padding:5px 0;background:transparent!important;min-height:60px}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom .co-button{margin:0 0 5px!important;width:34px;height:34px;border:none;background:#1a73e8;cursor:pointer;border-radius:4px;padding:0!important;font-size:0}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom .co-button .co-icon{width:28px;height:28px;margin:0 2px}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom .main{padding:0 10px}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom .main .description{font-size:15px;font-weight:700;margin:0 0 2px}.co-product-page .product-page-block-alternatives .co-tile .tile-extra-bottom .main .price{font-size:16px;margin:15px 0 0;font-weight:700;color:#1a73e8}.co-product-page .product-page-block-additional-information{grid-column:1/6;grid-row:4/4}.co-product-page .product-page-block-properties{grid-column:7/10;grid-row:3/3}.co-product-page .product-page-block-related-articles{grid-column:2/6;grid-row:4/4}.co-product-page .product-page-block-alternative-articles{grid-column:6/10;grid-row:4/4}.co-product-page .product-page-block-documents{grid-column:2/6;grid-row:5/5}.co-product-page .product-page-block-symbols{grid-column:6/10;grid-row:5/5}@media screen and (max-width: 950px){.co-product-page .default-padding{padding-top:20px;padding-bottom:20px}.co-product-page .m-padding{padding-top:15px;padding-bottom:15px}.co-product-page .s-padding{padding-top:5px;padding-bottom:5px}.co-product-page .page-wrapper{max-width:650px}.co-product-page .page-wrapper .page-wrapper-content{flex-direction:column;margin:30px 0}.co-product-page .page-wrapper .page-wrapper-content .page-wrapper-left,.co-product-page .page-wrapper .page-wrapper-content .page-wrapper-right{width:100%}.co-product-page .product-page-block-alternatives ::ng-deep co-tile{width:284px!important}}@media screen and (max-width: 650px){.co-product-page [class*=-padding]{padding-left:0!important;padding-right:0!important}.co-product-page .product-page-block-addtocart ::ng-deep co-number-picker co-button{height:38px!important}.co-product-page .product-page-block-addtocart ::ng-deep co-number-picker co-input-text{height:38px!important;width:36px!important}.co-product-page .product-page-block-addtocart ::ng-deep co-button.cart-button{height:40px;font-size:13px}}\n"] }]
3363
+ }], ctorParameters: () => [{ type: IconCacheService }, { type: ProductSettingsService }, { type: ProductEventService }, { type: i0.ChangeDetectorRef }, { type: ProductConnectorService }, { type: i5.ConfiguratorEventService }, { type: i5.ConfiguratorConnectorService }, { type: i5.ConfiguringService }], propDecorators: { showClass: [{
3541
3364
  type: HostBinding,
3542
3365
  args: ['class.co-product-page']
3543
3366
  }], fullscreenbutton: [{
@@ -3827,14 +3650,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
3827
3650
 
3828
3651
  class ProductDescriptionModule {
3829
3652
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductDescriptionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
3830
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: ProductDescriptionModule, declarations: [ProductDescriptionComponent], imports: [CommonModule], exports: [ProductDescriptionComponent] }); }
3831
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductDescriptionModule, imports: [CommonModule] }); }
3653
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: ProductDescriptionModule, declarations: [ProductDescriptionComponent], imports: [CommonModule,
3654
+ PipeModule,
3655
+ ConfigurationPresetModule], exports: [ProductDescriptionComponent] }); }
3656
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductDescriptionModule, imports: [CommonModule,
3657
+ PipeModule,
3658
+ ConfigurationPresetModule] }); }
3832
3659
  }
3833
3660
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductDescriptionModule, decorators: [{
3834
3661
  type: NgModule,
3835
3662
  args: [{
3836
3663
  imports: [
3837
- CommonModule
3664
+ CommonModule,
3665
+ PipeModule,
3666
+ ConfigurationPresetModule
3838
3667
  ],
3839
3668
  declarations: [
3840
3669
  ProductDescriptionComponent
@@ -4273,32 +4102,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
4273
4102
  }]
4274
4103
  }] });
4275
4104
 
4276
- class PresetDialogModule {
4277
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: PresetDialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
4278
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: PresetDialogModule, declarations: [PresetDialogComponent], imports: [IconModule,
4279
- PipeModule,
4280
- ProductRelatedModule], exports: [PresetDialogComponent] }); }
4281
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: PresetDialogModule, imports: [IconModule,
4282
- PipeModule,
4283
- ProductRelatedModule] }); }
4284
- }
4285
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: PresetDialogModule, decorators: [{
4286
- type: NgModule,
4287
- args: [{
4288
- imports: [
4289
- IconModule,
4290
- PipeModule,
4291
- ProductRelatedModule
4292
- ],
4293
- declarations: [
4294
- PresetDialogComponent
4295
- ],
4296
- exports: [
4297
- PresetDialogComponent
4298
- ]
4299
- }]
4300
- }] });
4301
-
4302
4105
  class ProductPageModule {
4303
4106
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductPageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
4304
4107
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: ProductPageModule, declarations: [ProductPageComponent], imports: [CommonModule,
@@ -4318,7 +4121,6 @@ class ProductPageModule {
4318
4121
  LoaderModule,
4319
4122
  RenderCarouselModule,
4320
4123
  ButtonModule,
4321
- PresetDialogModule,
4322
4124
  ConfiguratorModule,
4323
4125
  ConfiguratorSceneModule], exports: [ProductPageComponent] }); }
4324
4126
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductPageModule, imports: [CommonModule,
@@ -4338,7 +4140,6 @@ class ProductPageModule {
4338
4140
  LoaderModule,
4339
4141
  RenderCarouselModule,
4340
4142
  ButtonModule,
4341
- PresetDialogModule,
4342
4143
  ConfiguratorModule,
4343
4144
  ConfiguratorSceneModule] }); }
4344
4145
  }
@@ -4363,7 +4164,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
4363
4164
  LoaderModule,
4364
4165
  RenderCarouselModule,
4365
4166
  ButtonModule,
4366
- PresetDialogModule,
4367
4167
  ConfiguratorModule,
4368
4168
  ConfiguratorSceneModule
4369
4169
  ],
@@ -4736,8 +4536,9 @@ class ProductExternalSourceComponent {
4736
4536
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductExternalSourceComponent, deps: [{ token: i1.DomSanitizer }, { token: ProductConnectorService }, { token: ProductEventService }], target: i0.ɵɵFactoryTarget.Component }); }
4737
4537
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: ProductExternalSourceComponent, isStandalone: false, selector: "co-product-external-source", inputs: { sku: "sku", catalogDefinition: "catalogDefinition", externalSource: "externalSource", externalCatalogStartupInfo: "externalCatalogStartupInfo", options: "options" }, outputs: { addToCart: "addToCart", addToQuote: "addToQuote", alternativeClick: "alternativeClick", configuratorFinished: "configuratorFinished" }, host: { properties: { "class.co-product-external-source": "this.showClass" } }, providers: [
4738
4538
  ProductSettingsService,
4739
- ProductConnectorAdapterService,
4740
- ProductConnectorService
4539
+ ProductConnectorService,
4540
+ ProductEventService,
4541
+ ProductConnectorAdapterService
4741
4542
  ], ngImport: i0, template: `
4742
4543
  @if (loaded) {
4743
4544
  @if (showProduct) {
@@ -4789,8 +4590,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
4789
4590
  `,
4790
4591
  providers: [
4791
4592
  ProductSettingsService,
4792
- ProductConnectorAdapterService,
4793
- ProductConnectorService
4593
+ ProductConnectorService,
4594
+ ProductEventService,
4595
+ ProductConnectorAdapterService
4794
4596
  ],
4795
4597
  encapsulation: ViewEncapsulation.None,
4796
4598
  standalone: false