@colijnit/product 2.9.1 → 12.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/components/core/header/header.module.d.ts +2 -0
- package/app/components/image-carousel/image-carousel.module.d.ts +2 -0
- package/app/components/product-additional-description/product-additional-description.module.d.ts +2 -0
- package/app/components/product-additional-info/product-additional-info.module.d.ts +2 -0
- package/app/components/product-addtocart/product-addtocart.module.d.ts +2 -0
- package/app/components/product-delivery/product-delivery.module.d.ts +2 -0
- package/app/components/product-description/product-description.module.d.ts +2 -0
- package/app/components/product-documents/product-document.module.d.ts +2 -0
- package/app/components/product-info-tabs/product-info-tabs.module.d.ts +2 -0
- package/app/components/product-page/product-page.component.d.ts +3 -1
- package/app/components/product-price/product-price.module.d.ts +2 -0
- package/app/components/product-properties/product-properties.module.d.ts +2 -0
- package/app/components/product-related/product-related.module.d.ts +2 -0
- package/app/components/product-selector-type/product-selector-type.module.d.ts +2 -0
- package/app/components/product-stock/product-stock.component.d.ts +3 -1
- package/app/components/product-stock/product-stock.module.d.ts +2 -0
- package/app/components/product-symbols/product-symbols.module.d.ts +2 -0
- package/app/ione-product.component.d.ts +2 -0
- package/bundles/colijnit-product.umd.js +1433 -959
- package/bundles/colijnit-product.umd.js.map +1 -1
- package/colijnit-product.d.ts +40 -27
- package/colijnit-product.metadata.json +1 -1
- package/esm2015/app/components/core/header/header.component.js +21 -17
- package/esm2015/app/components/core/header/header.module.js +19 -0
- package/esm2015/app/components/image-carousel/image-carousel.component.js +51 -35
- package/esm2015/app/components/image-carousel/image-carousel.module.js +23 -0
- package/esm2015/app/components/product-additional-description/product-additional-description.component.js +20 -15
- package/esm2015/app/components/product-additional-description/product-additional-description.module.js +21 -0
- package/esm2015/app/components/product-additional-info/product-additional-info.component.js +22 -20
- package/esm2015/app/components/product-additional-info/product-additional-info.module.js +21 -0
- package/esm2015/app/components/product-addtocart/product-addtocart.component.js +43 -40
- package/esm2015/app/components/product-addtocart/product-addtocart.module.js +24 -0
- package/esm2015/app/components/product-delivery/product-delivery.component.js +22 -15
- package/esm2015/app/components/product-delivery/product-delivery.module.js +23 -0
- package/esm2015/app/components/product-description/product-description.component.js +18 -14
- package/esm2015/app/components/product-description/product-description.module.js +19 -0
- package/esm2015/app/components/product-documents/product-document.module.js +25 -0
- package/esm2015/app/components/product-documents/product-documents.component.js +19 -18
- package/esm2015/app/components/product-external-source/product-external-source.component.js +32 -45
- package/esm2015/app/components/product-external-source/product-external-source.module.js +17 -19
- package/esm2015/app/components/product-info-tabs/product-info-tabs.component.js +36 -18
- package/esm2015/app/components/product-info-tabs/product-info-tabs.module.js +29 -0
- package/esm2015/app/components/product-page/product-page.component.js +56 -60
- package/esm2015/app/components/product-page/product-page.module.js +40 -62
- package/esm2015/app/components/product-price/product-price.component.js +26 -19
- package/esm2015/app/components/product-price/product-price.module.js +23 -0
- package/esm2015/app/components/product-properties/product-properties.component.js +24 -17
- package/esm2015/app/components/product-properties/product-properties.module.js +21 -0
- package/esm2015/app/components/product-related/product-related.component.js +33 -24
- package/esm2015/app/components/product-related/product-related.module.js +24 -0
- package/esm2015/app/components/product-selector-type/product-selector-type.component.js +30 -28
- package/esm2015/app/components/product-selector-type/product-selector-type.module.js +26 -0
- package/esm2015/app/components/product-stock/product-stock.component.js +29 -16
- package/esm2015/app/components/product-stock/product-stock.module.js +23 -0
- package/esm2015/app/components/product-symbols/product-symbols.component.js +28 -17
- package/esm2015/app/components/product-symbols/product-symbols.module.js +26 -0
- package/esm2015/app/enum/icon.enum.js +1 -1
- package/esm2015/app/enum/language-code.enum.js +1 -1
- package/esm2015/app/enum/selector-type.enum.js +1 -1
- package/esm2015/app/ione-product.component.js +39 -51
- package/esm2015/app/ione-product.module.js +21 -27
- package/esm2015/app/model/article-quantity.model.js +1 -1
- package/esm2015/app/model/icon.js +1 -1
- package/esm2015/app/model/productSettings.js +1 -1
- package/esm2015/app/model/render-modes.js +1 -1
- package/esm2015/app/model/render-parameters.js +1 -1
- package/esm2015/app/model/settings-options.js +1 -1
- package/esm2015/app/model/stock-and-delivery.js +1 -1
- package/esm2015/app/pipe/localize.pipe.js +8 -12
- package/esm2015/app/pipe/pipe.module.js +16 -18
- package/esm2015/app/product-version.js +3 -3
- package/esm2015/app/service/dictionary.service.js +10 -11
- package/esm2015/app/service/icon-cache.service.js +10 -12
- package/esm2015/app/service/product-connector-adapter.service.js +8 -8
- package/esm2015/app/service/product-connector.service.js +7 -8
- package/esm2015/app/service/product-event.service.js +12 -20
- package/esm2015/app/service/product-settings.service.js +7 -8
- package/esm2015/app/utils/bit-utils.js +1 -1
- package/esm2015/app/utils/json-utils.service.js +9 -10
- package/esm2015/assets/dictionary/text.properties.js +1 -1
- package/esm2015/colijnit-product.js +41 -28
- package/esm2015/public_api.js +2 -1
- package/fesm2015/colijnit-product.js +1053 -722
- package/fesm2015/colijnit-product.js.map +1 -1
- package/package.json +15 -18
- package/public_api.d.ts +1 -0
- package/app/components/product-info/product-info.component.d.ts +0 -14
- package/bundles/colijnit-product.umd.min.js +0 -16
- package/bundles/colijnit-product.umd.min.js.map +0 -1
- package/esm2015/app/components/product-info/product-info.component.js +0 -38
- package/esm5/app/components/core/header/header.component.js +0 -24
- package/esm5/app/components/image-carousel/image-carousel.component.js +0 -170
- package/esm5/app/components/product-additional-description/product-additional-description.component.js +0 -59
- package/esm5/app/components/product-additional-info/product-additional-info.component.js +0 -142
- package/esm5/app/components/product-addtocart/product-addtocart.component.js +0 -133
- package/esm5/app/components/product-delivery/product-delivery.component.js +0 -47
- package/esm5/app/components/product-description/product-description.component.js +0 -21
- package/esm5/app/components/product-documents/product-documents.component.js +0 -31
- package/esm5/app/components/product-external-source/product-external-source.component.js +0 -126
- package/esm5/app/components/product-external-source/product-external-source.module.js +0 -26
- package/esm5/app/components/product-info/product-info.component.js +0 -39
- package/esm5/app/components/product-info-tabs/product-info-tabs.component.js +0 -70
- package/esm5/app/components/product-page/product-page.component.js +0 -247
- package/esm5/app/components/product-page/product-page.module.js +0 -69
- package/esm5/app/components/product-price/product-price.component.js +0 -74
- package/esm5/app/components/product-properties/product-properties.component.js +0 -60
- package/esm5/app/components/product-related/product-related.component.js +0 -78
- package/esm5/app/components/product-selector-type/product-selector-type.component.js +0 -54
- package/esm5/app/components/product-stock/product-stock.component.js +0 -41
- package/esm5/app/components/product-symbols/product-symbols.component.js +0 -43
- package/esm5/app/enum/icon.enum.js +0 -19
- package/esm5/app/enum/language-code.enum.js +0 -8
- package/esm5/app/enum/selector-type.enum.js +0 -7
- package/esm5/app/ione-product.component.js +0 -194
- package/esm5/app/ione-product.module.js +0 -35
- package/esm5/app/model/article-quantity.model.js +0 -7
- package/esm5/app/model/icon.js +0 -18
- package/esm5/app/model/productSettings.js +0 -18
- package/esm5/app/model/render-modes.js +0 -7
- package/esm5/app/model/render-parameters.js +0 -12
- package/esm5/app/model/settings-options.js +0 -15
- package/esm5/app/model/stock-and-delivery.js +0 -10
- package/esm5/app/pipe/localize.pipe.js +0 -33
- package/esm5/app/pipe/pipe.module.js +0 -23
- package/esm5/app/product-version.js +0 -12
- package/esm5/app/service/dictionary.service.js +0 -95
- package/esm5/app/service/icon-cache.service.js +0 -47
- package/esm5/app/service/product-connector-adapter.service.js +0 -248
- package/esm5/app/service/product-connector.service.js +0 -141
- package/esm5/app/service/product-event.service.js +0 -38
- package/esm5/app/service/product-settings.service.js +0 -107
- package/esm5/app/utils/bit-utils.js +0 -22
- package/esm5/app/utils/json-utils.service.js +0 -42
- package/esm5/assets/dictionary/text.properties.js +0 -67
- package/esm5/colijnit-product.js +0 -33
- package/esm5/public_api.js +0 -5
- package/fesm5/colijnit-product.js +0 -2581
- package/fesm5/colijnit-product.js.map +0 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Injectable, Directive, Output, EventEmitter, Component, ViewEncapsulation, ChangeDetectorRef, Input, Renderer2, ViewChild, ElementRef, Pipe, NgModule, HostListener, HostBinding, SecurityContext, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
|
3
|
+
import { __awaiter } from 'tslib';
|
|
3
4
|
import { Subject, BehaviorSubject } from 'rxjs';
|
|
4
5
|
import { Options } from '@colijnit/ioneconnector/build/model/options';
|
|
5
6
|
import { ArticleFullObject } from '@colijnit/articleapi/build/model/article-full-object';
|
|
@@ -10,13 +11,15 @@ import { DocumentContent } from '@colijnit/articleapi/build/model/document-conte
|
|
|
10
11
|
import { BusinessObjectFactory } from '@colijnit/ioneconnector/build/service/business-object-factory';
|
|
11
12
|
import { Transaction } from '@colijnit/transactionapi/build/transaction';
|
|
12
13
|
import { MainApi } from '@colijnit/mainapi';
|
|
14
|
+
import * as i1 from '@angular/common/http';
|
|
13
15
|
import { HttpClient } from '@angular/common/http';
|
|
14
16
|
import { StringUtils } from '@colijnit/ioneconnector/build/utils/string-utils';
|
|
15
17
|
import { CommonModule } from '@angular/common';
|
|
16
|
-
import { DomSanitizer } from '@angular/platform-browser';
|
|
17
18
|
import { trigger, state, style, transition, animate } from '@angular/animations';
|
|
19
|
+
import * as i1$1 from '@angular/platform-browser';
|
|
20
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
|
21
|
+
import { IconModule, LoaderModule, ScrollContainerModule, PriceDisplayPipeModule, NumberPickerModule, ButtonModule, ArticleTileModule, FilesUploadModule, TileModule } from '@colijnit/corecomponents';
|
|
18
22
|
import { CoDocument } from '@colijnit/mainapi/build/model/co-document';
|
|
19
|
-
import { IconModule, LoaderModule, NumberPickerModule, ButtonModule, PriceDisplayPipeModule, InputTextModule, FilesUploadModule, ScrollContainerModule, TileModule, LevelIndicatorModule, ArticleTileModule } from '@colijnit/corecomponents';
|
|
20
23
|
import { ConfiguratorStatisticsEnvironment } from '@colijnit/articleapi/build/model/configurator-statistics-environment';
|
|
21
24
|
|
|
22
25
|
// this file is dynamically created, do not change this
|
|
@@ -24,12 +27,12 @@ class Version {
|
|
|
24
27
|
constructor() {
|
|
25
28
|
this.name = "@colijnit/product";
|
|
26
29
|
this.description = "Product detail page project for iOne";
|
|
27
|
-
this.symVer = "
|
|
28
|
-
this.publishDate = "
|
|
30
|
+
this.symVer = "12.0.1";
|
|
31
|
+
this.publishDate = "29-9-2023 13:41:37";
|
|
29
32
|
}
|
|
30
33
|
}
|
|
31
34
|
|
|
32
|
-
|
|
35
|
+
class JsonUtilsService {
|
|
33
36
|
readJsonFile(filePath) {
|
|
34
37
|
return __awaiter(this, void 0, void 0, function* () {
|
|
35
38
|
try {
|
|
@@ -47,13 +50,13 @@ let JsonUtilsService = class JsonUtilsService {
|
|
|
47
50
|
}
|
|
48
51
|
});
|
|
49
52
|
}
|
|
50
|
-
}
|
|
51
|
-
JsonUtilsService.ɵprov =
|
|
52
|
-
JsonUtilsService =
|
|
53
|
-
Injectable
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
]
|
|
53
|
+
}
|
|
54
|
+
JsonUtilsService.ɵprov = i0.ɵɵdefineInjectable({ factory: function JsonUtilsService_Factory() { return new JsonUtilsService(); }, token: JsonUtilsService, providedIn: "root" });
|
|
55
|
+
JsonUtilsService.decorators = [
|
|
56
|
+
{ type: Injectable, args: [{
|
|
57
|
+
providedIn: 'root'
|
|
58
|
+
},] }
|
|
59
|
+
];
|
|
57
60
|
|
|
58
61
|
class SettingsOptions {
|
|
59
62
|
constructor() {
|
|
@@ -100,7 +103,7 @@ class ProductSettings {
|
|
|
100
103
|
|
|
101
104
|
// Sole responsibility is simply to wrap around a colijn.Connector to create a stable inner interface to the library in a 1:1 method way.
|
|
102
105
|
// Only to be used by the IOneControllerService.
|
|
103
|
-
|
|
106
|
+
class ProductConnectorAdapterService {
|
|
104
107
|
constructor() {
|
|
105
108
|
this.showLoader = new Subject();
|
|
106
109
|
this._boFactory = new BusinessObjectFactory();
|
|
@@ -233,10 +236,11 @@ let ProductConnectorAdapterService = class ProductConnectorAdapterService {
|
|
|
233
236
|
return yield this.transactionConnector.getWebSessionSalesOrder();
|
|
234
237
|
});
|
|
235
238
|
}
|
|
236
|
-
}
|
|
237
|
-
ProductConnectorAdapterService =
|
|
238
|
-
Injectable
|
|
239
|
-
]
|
|
239
|
+
}
|
|
240
|
+
ProductConnectorAdapterService.decorators = [
|
|
241
|
+
{ type: Injectable }
|
|
242
|
+
];
|
|
243
|
+
ProductConnectorAdapterService.ctorParameters = () => [];
|
|
240
244
|
|
|
241
245
|
var LanguageCode;
|
|
242
246
|
(function (LanguageCode) {
|
|
@@ -312,7 +316,7 @@ class Dictionary {
|
|
|
312
316
|
}
|
|
313
317
|
|
|
314
318
|
// The localization service, providing peers with text translation functionality.
|
|
315
|
-
|
|
319
|
+
class DictionaryService {
|
|
316
320
|
constructor(_http, _jsonUtils) {
|
|
317
321
|
this._http = _http;
|
|
318
322
|
this._jsonUtils = _jsonUtils;
|
|
@@ -383,19 +387,19 @@ let DictionaryService = class DictionaryService {
|
|
|
383
387
|
}
|
|
384
388
|
return text;
|
|
385
389
|
}
|
|
386
|
-
}
|
|
390
|
+
}
|
|
391
|
+
DictionaryService.ɵprov = i0.ɵɵdefineInjectable({ factory: function DictionaryService_Factory() { return new DictionaryService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(JsonUtilsService)); }, token: DictionaryService, providedIn: "root" });
|
|
392
|
+
DictionaryService.decorators = [
|
|
393
|
+
{ type: Injectable, args: [{
|
|
394
|
+
providedIn: 'root'
|
|
395
|
+
},] }
|
|
396
|
+
];
|
|
387
397
|
DictionaryService.ctorParameters = () => [
|
|
388
398
|
{ type: HttpClient },
|
|
389
399
|
{ type: JsonUtilsService }
|
|
390
|
-
];
|
|
391
|
-
DictionaryService.ɵprov = ɵɵdefineInjectable({ factory: function DictionaryService_Factory() { return new DictionaryService(ɵɵinject(HttpClient), ɵɵinject(JsonUtilsService)); }, token: DictionaryService, providedIn: "root" });
|
|
392
|
-
DictionaryService = __decorate([
|
|
393
|
-
Injectable({
|
|
394
|
-
providedIn: 'root'
|
|
395
|
-
})
|
|
396
|
-
], DictionaryService);
|
|
400
|
+
];
|
|
397
401
|
|
|
398
|
-
|
|
402
|
+
class ProductSettingsService {
|
|
399
403
|
constructor(_jsonUtilsService, _dictionaryService) {
|
|
400
404
|
this._jsonUtilsService = _jsonUtilsService;
|
|
401
405
|
this._dictionaryService = _dictionaryService;
|
|
@@ -461,17 +465,17 @@ let ProductSettingsService = class ProductSettingsService {
|
|
|
461
465
|
this.settingsLoaded.next(true);
|
|
462
466
|
});
|
|
463
467
|
}
|
|
464
|
-
}
|
|
468
|
+
}
|
|
469
|
+
ProductSettingsService.decorators = [
|
|
470
|
+
{ type: Injectable }
|
|
471
|
+
];
|
|
465
472
|
ProductSettingsService.ctorParameters = () => [
|
|
466
473
|
{ type: JsonUtilsService },
|
|
467
474
|
{ type: DictionaryService }
|
|
468
|
-
];
|
|
469
|
-
ProductSettingsService = __decorate([
|
|
470
|
-
Injectable()
|
|
471
|
-
], ProductSettingsService);
|
|
475
|
+
];
|
|
472
476
|
|
|
473
477
|
// Holds all iONE backend related state and methods for a running HomeDecorator. To be used anywhere internally.
|
|
474
|
-
|
|
478
|
+
class ProductConnectorService {
|
|
475
479
|
constructor(_adapterService, _settingsService) {
|
|
476
480
|
this._adapterService = _adapterService;
|
|
477
481
|
this._settingsService = _settingsService;
|
|
@@ -560,16 +564,16 @@ let ProductConnectorService = class ProductConnectorService {
|
|
|
560
564
|
onShowLoaderChange(showLoader) {
|
|
561
565
|
this._shouldShowLoader = showLoader;
|
|
562
566
|
}
|
|
563
|
-
}
|
|
567
|
+
}
|
|
568
|
+
ProductConnectorService.decorators = [
|
|
569
|
+
{ type: Injectable }
|
|
570
|
+
];
|
|
564
571
|
ProductConnectorService.ctorParameters = () => [
|
|
565
572
|
{ type: ProductConnectorAdapterService },
|
|
566
573
|
{ type: ProductSettingsService }
|
|
567
|
-
];
|
|
568
|
-
ProductConnectorService = __decorate([
|
|
569
|
-
Injectable()
|
|
570
|
-
], ProductConnectorService);
|
|
574
|
+
];
|
|
571
575
|
|
|
572
|
-
|
|
576
|
+
class ProductEventService {
|
|
573
577
|
constructor() {
|
|
574
578
|
this.onAddToCart = new Subject();
|
|
575
579
|
this.onAlternativeClick = new Subject();
|
|
@@ -584,25 +588,19 @@ let ProductEventService = class ProductEventService {
|
|
|
584
588
|
this.onArticleInfoReceived = new Subject();
|
|
585
589
|
this.onUpdateProductInfoTab = new Subject();
|
|
586
590
|
}
|
|
587
|
-
}
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
Output
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
Output()
|
|
599
|
-
], ProductEventService.prototype, "onForceRenderImage", void 0);
|
|
600
|
-
ProductEventService = __decorate([
|
|
601
|
-
Directive(),
|
|
602
|
-
Injectable()
|
|
603
|
-
], ProductEventService);
|
|
591
|
+
}
|
|
592
|
+
ProductEventService.decorators = [
|
|
593
|
+
{ type: Directive },
|
|
594
|
+
{ type: Injectable }
|
|
595
|
+
];
|
|
596
|
+
ProductEventService.propDecorators = {
|
|
597
|
+
onAddToCart: [{ type: Output }],
|
|
598
|
+
onAlternativeClick: [{ type: Output }],
|
|
599
|
+
onAddToQuote: [{ type: Output }],
|
|
600
|
+
onForceRenderImage: [{ type: Output }]
|
|
601
|
+
};
|
|
604
602
|
|
|
605
|
-
|
|
603
|
+
class IoneProductComponent {
|
|
606
604
|
constructor(_dictionary, _jsonUtils, _ione, _changeDetector, _appEventService, _settingsService) {
|
|
607
605
|
// this.sku = 'CF-HILL';
|
|
608
606
|
// this.sku = 'CF-ALMADA';
|
|
@@ -627,6 +625,7 @@ let IoneProductComponent = class IoneProductComponent {
|
|
|
627
625
|
this.onArticleReceived = new EventEmitter();
|
|
628
626
|
this.onSelectionsReceived = new EventEmitter();
|
|
629
627
|
this.onAddToQuote = new EventEmitter();
|
|
628
|
+
this.openStockEvent = new EventEmitter();
|
|
630
629
|
this.settingsLoaded = false;
|
|
631
630
|
this._subs = [];
|
|
632
631
|
// this.sku = "70000107";
|
|
@@ -696,7 +695,28 @@ let IoneProductComponent = class IoneProductComponent {
|
|
|
696
695
|
this.onAddToCart.emit(json);
|
|
697
696
|
});
|
|
698
697
|
}
|
|
699
|
-
|
|
698
|
+
openStock() {
|
|
699
|
+
this.openStockEvent.emit();
|
|
700
|
+
}
|
|
701
|
+
}
|
|
702
|
+
IoneProductComponent.decorators = [
|
|
703
|
+
{ type: Component, args: [{
|
|
704
|
+
selector: 'app-ione-product',
|
|
705
|
+
template: `
|
|
706
|
+
<app-product-page *ngIf="settingsLoaded"
|
|
707
|
+
(openStockEvent)="openStock()" [sku]="sku"
|
|
708
|
+
></app-product-page>
|
|
709
|
+
`,
|
|
710
|
+
providers: [
|
|
711
|
+
ProductEventService,
|
|
712
|
+
ProductSettingsService,
|
|
713
|
+
ProductConnectorAdapterService,
|
|
714
|
+
ProductConnectorService
|
|
715
|
+
],
|
|
716
|
+
encapsulation: ViewEncapsulation.Emulated,
|
|
717
|
+
styles: [""]
|
|
718
|
+
},] }
|
|
719
|
+
];
|
|
700
720
|
IoneProductComponent.ctorParameters = () => [
|
|
701
721
|
{ type: DictionaryService },
|
|
702
722
|
{ type: JsonUtilsService },
|
|
@@ -705,166 +725,18 @@ IoneProductComponent.ctorParameters = () => [
|
|
|
705
725
|
{ type: ProductEventService },
|
|
706
726
|
{ type: ProductSettingsService }
|
|
707
727
|
];
|
|
708
|
-
|
|
709
|
-
Input
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
Output
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
Output
|
|
719
|
-
|
|
720
|
-
__decorate([
|
|
721
|
-
Output()
|
|
722
|
-
], IoneProductComponent.prototype, "onAlternativeClick", void 0);
|
|
723
|
-
__decorate([
|
|
724
|
-
Output()
|
|
725
|
-
], IoneProductComponent.prototype, "onArticleInfoReceived", void 0);
|
|
726
|
-
__decorate([
|
|
727
|
-
Output()
|
|
728
|
-
], IoneProductComponent.prototype, "onArticleReceived", void 0);
|
|
729
|
-
__decorate([
|
|
730
|
-
Output()
|
|
731
|
-
], IoneProductComponent.prototype, "onSelectionsReceived", void 0);
|
|
732
|
-
__decorate([
|
|
733
|
-
Output()
|
|
734
|
-
], IoneProductComponent.prototype, "onAddToQuote", void 0);
|
|
735
|
-
IoneProductComponent = __decorate([
|
|
736
|
-
Component({
|
|
737
|
-
selector: 'app-ione-product',
|
|
738
|
-
template: `
|
|
739
|
-
<app-product-page *ngIf="settingsLoaded"
|
|
740
|
-
[sku]="sku"
|
|
741
|
-
></app-product-page>
|
|
742
|
-
`,
|
|
743
|
-
providers: [
|
|
744
|
-
ProductEventService,
|
|
745
|
-
ProductSettingsService,
|
|
746
|
-
ProductConnectorAdapterService,
|
|
747
|
-
ProductConnectorService
|
|
748
|
-
],
|
|
749
|
-
encapsulation: ViewEncapsulation.Emulated,
|
|
750
|
-
styles: [""]
|
|
751
|
-
})
|
|
752
|
-
], IoneProductComponent);
|
|
753
|
-
|
|
754
|
-
let ProductExternalSourceComponent = class ProductExternalSourceComponent {
|
|
755
|
-
constructor(_sanitizer, _productConnectorService, _appEventService) {
|
|
756
|
-
this._sanitizer = _sanitizer;
|
|
757
|
-
this._productConnectorService = _productConnectorService;
|
|
758
|
-
this._appEventService = _appEventService;
|
|
759
|
-
this.addToCart = new EventEmitter();
|
|
760
|
-
this.addToQuote = new EventEmitter();
|
|
761
|
-
this.alternativeClick = new EventEmitter();
|
|
762
|
-
this.showProduct = false;
|
|
763
|
-
this.loaded = false;
|
|
764
|
-
this.externalSettings = {};
|
|
765
|
-
this._subs = [];
|
|
766
|
-
}
|
|
767
|
-
set externalSource(value) {
|
|
768
|
-
this._externalSource = value;
|
|
769
|
-
this.loaded = false;
|
|
770
|
-
this._prepareExternalSource();
|
|
771
|
-
}
|
|
772
|
-
get externalSource() {
|
|
773
|
-
return this._externalSource;
|
|
774
|
-
}
|
|
775
|
-
showClass() {
|
|
776
|
-
return true;
|
|
777
|
-
}
|
|
778
|
-
ngOnInit() {
|
|
779
|
-
this._subs.push(this._appEventService.onAddToCart.subscribe(json => this.addToCart.next(json)), this._appEventService.onAddToQuote.subscribe(json => this.addToQuote.next(json)), this._appEventService.onAlternativeClick.subscribe(article => this.alternativeClick.next(article)));
|
|
780
|
-
}
|
|
781
|
-
ngOnDestroy() {
|
|
782
|
-
this._subs.forEach(s => s.unsubscribe());
|
|
783
|
-
}
|
|
784
|
-
_prepareExternalSource() {
|
|
785
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
786
|
-
if (!this._externalSource) {
|
|
787
|
-
return;
|
|
788
|
-
}
|
|
789
|
-
this.externalUrl = undefined;
|
|
790
|
-
this.externalSettings = {};
|
|
791
|
-
if (this.externalSource.type === 'CATF') {
|
|
792
|
-
// get bundle settings from external source
|
|
793
|
-
const bundleSettings = yield this._productConnectorService.getProductBundleSettings(this.externalSource.url, parseInt(this.externalSource.schema, 0));
|
|
794
|
-
this.externalSettings = JSON.parse(bundleSettings);
|
|
795
|
-
if (this.options) {
|
|
796
|
-
this.externalSettings.options = this.options;
|
|
797
|
-
}
|
|
798
|
-
// this.externalSettings.assetPath = "https://cdn1.colijn-it.nl/content43";
|
|
799
|
-
// this.externalSettings.threeDAssetPath = "https://cdn1.colijn-it.nl/content43";
|
|
800
|
-
if (this.externalSource.username && this.externalSource.password) {
|
|
801
|
-
this.externalSettings.useLoginEncryption = true;
|
|
802
|
-
this.externalSettings.username = this.externalSource.username;
|
|
803
|
-
this.externalSettings.password = this.externalSource.password;
|
|
804
|
-
}
|
|
805
|
-
// finally show the catalog
|
|
806
|
-
this.showProduct = true;
|
|
807
|
-
}
|
|
808
|
-
else {
|
|
809
|
-
this.externalUrl = this.externalSource.url;
|
|
810
|
-
this.safeUrl = this._sanitizer.bypassSecurityTrustResourceUrl(this.externalUrl);
|
|
811
|
-
this.showProduct = false;
|
|
812
|
-
}
|
|
813
|
-
this.loaded = true;
|
|
814
|
-
});
|
|
815
|
-
}
|
|
816
|
-
};
|
|
817
|
-
ProductExternalSourceComponent.ctorParameters = () => [
|
|
818
|
-
{ type: DomSanitizer },
|
|
819
|
-
{ type: ProductConnectorService },
|
|
820
|
-
{ type: ProductEventService }
|
|
821
|
-
];
|
|
822
|
-
__decorate([
|
|
823
|
-
Input()
|
|
824
|
-
], ProductExternalSourceComponent.prototype, "sku", void 0);
|
|
825
|
-
__decorate([
|
|
826
|
-
Input()
|
|
827
|
-
], ProductExternalSourceComponent.prototype, "externalSource", null);
|
|
828
|
-
__decorate([
|
|
829
|
-
Input()
|
|
830
|
-
], ProductExternalSourceComponent.prototype, "options", void 0);
|
|
831
|
-
__decorate([
|
|
832
|
-
Output()
|
|
833
|
-
], ProductExternalSourceComponent.prototype, "addToCart", void 0);
|
|
834
|
-
__decorate([
|
|
835
|
-
Output()
|
|
836
|
-
], ProductExternalSourceComponent.prototype, "addToQuote", void 0);
|
|
837
|
-
__decorate([
|
|
838
|
-
Output()
|
|
839
|
-
], ProductExternalSourceComponent.prototype, "alternativeClick", void 0);
|
|
840
|
-
__decorate([
|
|
841
|
-
HostBinding('class.co-product-external-source')
|
|
842
|
-
], ProductExternalSourceComponent.prototype, "showClass", null);
|
|
843
|
-
ProductExternalSourceComponent = __decorate([
|
|
844
|
-
Component({
|
|
845
|
-
selector: 'co-product-external-source',
|
|
846
|
-
template: `
|
|
847
|
-
<ng-container *ngIf="loaded">
|
|
848
|
-
<ng-container *ngIf="showProduct">
|
|
849
|
-
<app-product-page
|
|
850
|
-
[sku]="sku"
|
|
851
|
-
[settings]="externalSettings"
|
|
852
|
-
></app-product-page>
|
|
853
|
-
</ng-container>
|
|
854
|
-
<ng-container *ngIf="!showProduct">
|
|
855
|
-
<iframe width="100%" height="100%" [src]="safeUrl" frameborder="0" allowfullscreen></iframe>
|
|
856
|
-
</ng-container>
|
|
857
|
-
</ng-container>
|
|
858
|
-
`,
|
|
859
|
-
providers: [
|
|
860
|
-
ProductEventService,
|
|
861
|
-
ProductSettingsService,
|
|
862
|
-
ProductConnectorAdapterService,
|
|
863
|
-
ProductConnectorService
|
|
864
|
-
],
|
|
865
|
-
encapsulation: ViewEncapsulation.None
|
|
866
|
-
})
|
|
867
|
-
], ProductExternalSourceComponent);
|
|
728
|
+
IoneProductComponent.propDecorators = {
|
|
729
|
+
sku: [{ type: Input }],
|
|
730
|
+
settings: [{ type: Input }],
|
|
731
|
+
onAddToCart: [{ type: Output }],
|
|
732
|
+
forceRenderImage: [{ type: Output }],
|
|
733
|
+
onAlternativeClick: [{ type: Output }],
|
|
734
|
+
onArticleInfoReceived: [{ type: Output }],
|
|
735
|
+
onArticleReceived: [{ type: Output }],
|
|
736
|
+
onSelectionsReceived: [{ type: Output }],
|
|
737
|
+
onAddToQuote: [{ type: Output }],
|
|
738
|
+
openStockEvent: [{ type: Output }]
|
|
739
|
+
};
|
|
868
740
|
|
|
869
741
|
class StockAndDelivery {
|
|
870
742
|
constructor(stock, deliveryDescription) {
|
|
@@ -918,7 +790,7 @@ const IconSvg = {
|
|
|
918
790
|
"warehouse": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\" version=\"1.1\" sodipodi:docname=\"warehouse.svg\" inkscape:version=\"0.92.4 (5da689c313, 2019-01-14)\"><metadata ><rdf:RDF><cc:Work rdf:about=\"\"><dc:format>image/svg+xml</dc:format><dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs /><sodipodi:namedview pagecolor=\"#ffffff\" bordercolor=\"#666666\" borderopacity=\"1\" objecttolerance=\"10\" gridtolerance=\"10\" guidetolerance=\"10\" inkscape:pageopacity=\"0\" inkscape:pageshadow=\"2\" inkscape:window-width=\"1920\" inkscape:window-height=\"1017\" showgr inkscape:zoom=\"6.675088\" inkscape:cx=\"9.6569985\" inkscape:cy=\"12.384637\" inkscape:window-x=\"-8\" inkscape:window-y=\"-8\" inkscape:window-maximized=\"1\" inkscape:current-layer=\"svg8\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"M 507.785,146.242 260.318,1.175 c -2.603,-1.519 -5.803,-1.57 -8.439,-0.111 L 4.412,137.598 C 1.69,139.091 0,141.958 0,145.064 v 358.4 c 0,4.719 3.823,8.533 8.533,8.533 H 51.2 c 4.71,0 8.533,-3.814 8.533,-8.533 V 204.798 h 392.533 v 298.667 c 0,4.719 3.814,8.533 8.533,8.533 h 42.667 c 4.719,0 8.533,-3.814 8.533,-8.533 V 153.598 c 10e-4,-3.03 -1.603,-5.829 -4.214,-7.356 z m -12.852,348.689 h -25.6 V 196.264 c 0,-4.71 -3.814,-8.533 -8.533,-8.533 H 51.2 c -4.71,0 -8.533,3.823 -8.533,8.533 v 298.667 h -25.6 V 150.099 L 255.872,18.344 494.933,158.487 Z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"m 426.667,392.531 h -102.4 c -4.719,0 -8.533,3.814 -8.533,8.533 v 102.4 c 0,4.719 3.814,8.533 8.533,8.533 h 102.4 c 4.719,0 8.533,-3.814 8.533,-8.533 v -102.4 c 0,-4.719 -3.814,-8.533 -8.533,-8.533 z m -8.534,102.4 H 332.8 v -85.333 h 85.333 z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"m 384,401.064 v 25.6 h -17.067 v -25.6 h -17.067 v 34.133 c 0,4.719 3.814,8.533 8.533,8.533 h 34.133 c 4.719,0 8.533,-3.814 8.533,-8.533 v -34.133 z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"m 324.267,392.531 h -102.4 c -4.71,0 -8.533,3.814 -8.533,8.533 v 102.4 c 0,4.719 3.823,8.533 8.533,8.533 h 102.4 c 4.719,0 8.533,-3.814 8.533,-8.533 v -102.4 c 0,-4.719 -3.814,-8.533 -8.533,-8.533 z m -8.534,102.4 H 230.4 v -85.333 h 85.333 z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"m 281.6,401.064 v 25.6 h -17.067 v -25.6 h -17.067 v 34.133 c 0,4.719 3.823,8.533 8.533,8.533 h 34.133 c 4.719,0 8.533,-3.814 8.533,-8.533 v -34.133 z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"m 426.667,290.131 h -102.4 c -4.719,0 -8.533,3.814 -8.533,8.533 v 102.4 c 0,4.719 3.814,8.533 8.533,8.533 h 102.4 c 4.719,0 8.533,-3.814 8.533,-8.533 v -102.4 c 0,-4.719 -3.814,-8.533 -8.533,-8.533 z m -8.534,102.4 H 332.8 v -85.333 h 85.333 z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"m 384,298.664 v 25.6 h -17.067 v -25.6 h -17.067 v 34.133 c 0,4.719 3.814,8.533 8.533,8.533 h 34.133 c 4.719,0 8.533,-3.814 8.533,-8.533 v -34.133 z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><rect x=\"51.200001\" y=\"255.998\" width=\"409.60001\" height=\"17.066999\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><rect x=\"51.200001\" y=\"221.864\" width=\"409.60001\" height=\"17.066999\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"m 298.667,119.464 h -85.333 c -4.71,0 -8.533,3.823 -8.533,8.533 v 34.133 c 0,4.71 3.823,8.533 8.533,8.533 h 85.333 c 4.719,0 8.533,-3.823 8.533,-8.533 v -34.133 c 0,-4.71 -3.814,-8.533 -8.533,-8.533 z m -8.534,34.134 h -68.267 v -17.067 h 68.267 z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /></svg>"
|
|
919
791
|
};
|
|
920
792
|
|
|
921
|
-
|
|
793
|
+
class IconCacheService {
|
|
922
794
|
constructor(_sanitizer) {
|
|
923
795
|
this._sanitizer = _sanitizer;
|
|
924
796
|
this._iconCache = {};
|
|
@@ -942,18 +814,18 @@ let IconCacheService = class IconCacheService {
|
|
|
942
814
|
}
|
|
943
815
|
}
|
|
944
816
|
}
|
|
945
|
-
}
|
|
817
|
+
}
|
|
818
|
+
IconCacheService.ɵprov = i0.ɵɵdefineInjectable({ factory: function IconCacheService_Factory() { return new IconCacheService(i0.ɵɵinject(i1$1.DomSanitizer)); }, token: IconCacheService, providedIn: "root" });
|
|
819
|
+
IconCacheService.decorators = [
|
|
820
|
+
{ type: Injectable, args: [{
|
|
821
|
+
providedIn: 'root'
|
|
822
|
+
},] }
|
|
823
|
+
];
|
|
946
824
|
IconCacheService.ctorParameters = () => [
|
|
947
825
|
{ type: DomSanitizer }
|
|
948
|
-
];
|
|
949
|
-
IconCacheService.ɵprov = ɵɵdefineInjectable({ factory: function IconCacheService_Factory() { return new IconCacheService(ɵɵinject(DomSanitizer)); }, token: IconCacheService, providedIn: "root" });
|
|
950
|
-
IconCacheService = __decorate([
|
|
951
|
-
Injectable({
|
|
952
|
-
providedIn: 'root'
|
|
953
|
-
})
|
|
954
|
-
], IconCacheService);
|
|
826
|
+
];
|
|
955
827
|
|
|
956
|
-
|
|
828
|
+
class ProductPageComponent {
|
|
957
829
|
constructor(_ione, _renderer, _changeDetector, iconCache, settingsService, appEventService) {
|
|
958
830
|
this._ione = _ione;
|
|
959
831
|
this._renderer = _renderer;
|
|
@@ -962,6 +834,7 @@ let ProductPageComponent = class ProductPageComponent {
|
|
|
962
834
|
this.settingsService = settingsService;
|
|
963
835
|
this.appEventService = appEventService;
|
|
964
836
|
this.icon = IconEnum;
|
|
837
|
+
this.openStockEvent = new EventEmitter();
|
|
965
838
|
this.configurable = false;
|
|
966
839
|
this.threeD = false;
|
|
967
840
|
this.show2D = true;
|
|
@@ -1095,7 +968,49 @@ let ProductPageComponent = class ProductPageComponent {
|
|
|
1095
968
|
}));
|
|
1096
969
|
});
|
|
1097
970
|
}
|
|
1098
|
-
|
|
971
|
+
openStock() {
|
|
972
|
+
this.openStockEvent.emit();
|
|
973
|
+
}
|
|
974
|
+
}
|
|
975
|
+
ProductPageComponent.decorators = [
|
|
976
|
+
{ type: Component, args: [{
|
|
977
|
+
selector: 'app-product-page',
|
|
978
|
+
template: "<ng-container *ngIf=\"settingsLoaded\">\r\n <div class=\"page-wrapper\">\r\n <div class=\"page-wrapper-content\">\r\n <div class=\"page-wrapper-left\">\r\n <div class=\"product-image-container\">\r\n <div class=\"product-page-block-selector-type\">\r\n <app-product-selector-type class=\"default-padding\"\r\n [(currentType)]=\"currentView\"\r\n [show2D]=\"configurable\"\r\n [show3D]=\"threeD\"\r\n ></app-product-selector-type>\r\n </div>\r\n <div class=\"product-page-block-image default-padding\" [class.full]=\"fullScreen\">\r\n <app-image-carousel [@toggleVisibilityByState]=\"show2D ? 'show' : 'hide'\" [images]=\"article?.images\" [showRefresh]=\"configurable && threeD\"></app-image-carousel>\r\n <ng-container *ngIf=\"settingsLoaded\">\r\n <threed-configurator #configurator class=\"threed-configurator\"\r\n [class.configurator-full-screen]=\"fullScreen\"\r\n [@toggleVisibilityByState]=\"show3D ? 'show' : 'hide'\"\r\n [@toggleFullScreen]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\r\n ></threed-configurator>\r\n </ng-container>\r\n <co-icon #fullscreenbutton class=\"fullscreen-button\" *ngIf=\"show3D\"\r\n [@toggleTopLeft]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\r\n [iconData]=\"iconCache.getIcon(fullScreenIcon)\"\r\n (click)=\"showFullScreen()\"></co-icon>\r\n <co-icon class=\"threed-watermark\" *ngIf=\"show3D && fullScreen\"\r\n [iconData]=\"iconCache.getIcon(icon.Logo)\"></co-icon>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"page-wrapper-right\">\r\n <div class=\"product-page-block-description\">\r\n <app-product-description class=\"default-padding\" [article]=\"article\"></app-product-description>\r\n </div>\r\n <div class=\"product-page-block-additional\">\r\n <div class=\"product-page-block-additional-description\">\r\n <app-product-additional-description class=\"default-padding\" [article]=\"article\"></app-product-additional-description>\r\n </div>\r\n <div class=\"product-page-block-price\" [class.full]=\"configuring\">\r\n <app-product-price class=\"s-padding\" *ngIf=\"!configuring\"\r\n [pricing]=\"article?.pricing\"\r\n [configurable]=\"configurable\"\r\n ></app-product-price>\r\n <ng-container *ngIf=\"settingsLoaded\">\r\n <threed-selections #selections class=\"threed-selections\" [class.show-selections]=\"configuring\" [@toggleFullScreenRight]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\r\n [class.default-padding]=\"!fullScreen\"\r\n [class.show-full-screen]=\"fullScreen\"\r\n [class.mini-scrollbar]=\"fullScreen\"\r\n [sku]=\"sku\"\r\n [settings]=\"settings\"\r\n (onUserActionFromThreeD)=\"configuring = true\"\r\n (instanceSet)=\"setInstance($event)\"\r\n (onImageReceived)=\"appEventService.onImageReceived.next($event)\"\r\n (onRenderStarted)=\"appEventService.onRenderStarted.next()\"\r\n (onDraftRenderImageReceived)=\"appEventService.onDraftRenderImageReceived.next($event)\"\r\n (onArticleReceived)=\"appEventService.onArticleReceived.next($event.detail)\"\r\n (onSelectionsReceived)=\"appEventService.onSelectionsReceived.next($event.detail)\"\r\n (onArticleInfoReceived)=\"appEventService.onArticleInfoReceived.next($event.detail)\"\r\n ></threed-selections>\r\n </ng-container>\r\n </div>\r\n <div class=\"product-page-block-addtocart no-padding product-action-buttons\" *ngIf=\"!configuring\" [@toggleTopRight]=\"fullScreen ? 'fullscreen' : 'halfscreen'\">\r\n <app-product-addtocart\r\n [configurable]=\"configurable\"\r\n [configuring]=\"configuring\"\r\n [article]=\"article\"\r\n (startConfiguration)=\"handleStartConfiguration()\"\r\n ></app-product-addtocart>\r\n </div>\r\n <div class=\"addtocart-reserved product-action-buttons\" *ngIf=\"configuring\" [class.full-screen]=\"fullScreen\">\r\n <app-product-addtocart class=\"default-padding\"\r\n [configurable]=\"false\"\r\n [fullscreen]=\"fullScreen\"\r\n [configuring]=\"configuring\"\r\n [article]=\"article\"\r\n (startConfiguration)=\"handleStartConfiguration()\"\r\n ></app-product-addtocart>\r\n </div>\r\n <div class=\"product-page-block-variants\">\r\n <app-product-related class=\"no-padding\" *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\r\n [articles]=\"article?.relatedArticles\" [refType]=\"64\" [label]=\"'VARIANTS' | localize\"></app-product-related>\r\n </div>\r\n <div class=\"product-page-block-stock\">\r\n <app-product-stock class=\"no-padding\" (openStockEvent)=\"openStock()\" [stockAndDelivery]=\"stockAndDelivery\"></app-product-stock>\r\n </div>\r\n <div class=\"product-page-block-delivery\">\r\n <app-product-delivery class=\"no-padding\" [stockAndDelivery]=\"stockAndDelivery\"></app-product-delivery>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"page-wrapper-content\">\r\n <div class=\"page-wrapper-left\">\r\n <app-product-info-tabs class=\"no-padding\" [article]=\"article\"></app-product-info-tabs>\r\n </div>\r\n <div class=\"page-wrapper-right\">\r\n <div class=\"product-page-block-related s-padding\">\r\n <app-product-related *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\r\n [articles]=\"article?.relatedArticles\" [refType]=\"1\" [label]=\"'RELATED_PRODUCTS' | localize\"></app-product-related>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"page-wrapper-content no-top-margin\">\r\n <div class=\"page-wrapper-full\">\r\n <div class=\"product-page-block-alternatives s-padding\">\r\n <app-product-related *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\r\n [articles]=\"article?.relatedArticles\" [refType]=\"4\" [isSmallModus]=\"false\" [label]=\"'ALTERNATIVE_PRODUCTS' | localize\"></app-product-related>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>\r\n",
|
|
979
|
+
animations: [
|
|
980
|
+
trigger('toggleFullScreen', [
|
|
981
|
+
state('fullscreen', style({ 'position': 'fixed', 'top': '0', 'left': '0', 'width': '100%', 'height': '100%' })),
|
|
982
|
+
state('halfscreen', style({ 'position': '*', 'top': '*', 'left': '*', 'width': '*', 'height': '*' })),
|
|
983
|
+
transition('halfscreen <=> fullscreen', animate('200ms ease-in-out')),
|
|
984
|
+
]),
|
|
985
|
+
trigger('toggleTopLeft', [
|
|
986
|
+
state('fullscreen', style({ 'position': 'fixed', 'top': '0', 'left': '0' })),
|
|
987
|
+
state('halfscreen', style({ 'position': 'absolute', 'top': '*', 'left': '*' })),
|
|
988
|
+
transition('halfscreen <=> fullscreen', animate('200ms ease-in-out')),
|
|
989
|
+
]),
|
|
990
|
+
trigger('toggleTopRight', [
|
|
991
|
+
state('fullscreen', style({ 'position': 'fixed', 'top': '0', 'right': '0' })),
|
|
992
|
+
state('halfscreen', style({ 'position': '*', 'top': '*', 'right': '*' })),
|
|
993
|
+
transition('halfscreen <=> fullscreen', animate('200ms ease-in-out')),
|
|
994
|
+
]),
|
|
995
|
+
trigger('toggleFullScreenRight', [
|
|
996
|
+
state('fullscreen', style({ 'position': 'fixed', 'width': '400px', 'top': '0', 'right': '0' })),
|
|
997
|
+
state('halfscreen', style({ 'position': '*', 'width': '*', 'top': '*', 'right': '*' })),
|
|
998
|
+
transition('halfscreen <=> fullscreen', animate('200ms ease-in-out')),
|
|
999
|
+
]),
|
|
1000
|
+
trigger('toggleVisibilityByState', [
|
|
1001
|
+
state('hide', style({ 'opacity': '0', 'display': 'none' })),
|
|
1002
|
+
state('show', style({ 'display': 'block', 'opacity': '1' })),
|
|
1003
|
+
transition('hide <=> show', animate('200ms 100ms ease-in-out')),
|
|
1004
|
+
]),
|
|
1005
|
+
trigger('toggleVisibility', [
|
|
1006
|
+
state('void', style({ 'opacity': '0' })),
|
|
1007
|
+
state('*', style({ 'opacity': '1' })),
|
|
1008
|
+
transition('void => *', animate('200ms ease-in-out')),
|
|
1009
|
+
])
|
|
1010
|
+
],
|
|
1011
|
+
styles: [".page-wrapper{font-family:iOneMontserrat;font-size:12px;display:flex;flex-direction:column;max-width:1400px;padding:0 15px;margin:0 auto}.page-wrapper-content{display:flex;flex-direction:row;margin:40px 0}.page-wrapper-content:first-child{margin-top:0}.page-wrapper-content.no-top-margin{margin-top:0}.page-wrapper-left{display:flex;width:55%;flex-direction:column}.page-wrapper-right{display:flex;width:45%;flex-direction:column}.page-wrapper-full{display:flex;width:100%;flex-direction:column}.page-wrapper-66{display:flex;width:60%;flex-direction:column}.page-wrapper-33{display:flex;width:40%;flex-direction:column}.threed-selections{display:none}.threed-selections.show-selections{display:block}.threed-selections ::ng-deep .rp-lite-selector .rp-answers-slideout ::ng-deep co-slideout{width:480px;z-index:3}.product-action-buttons{position:relative}.product-action-buttons.full-screen{z-index:10}.product-image-container{grid-column:1/7;grid-row:1/6;position:relative}.product-page-block-selector-type{width:auto;position:absolute;top:10px;right:10px;z-index:2}.product-page-block-image{box-sizing:border-box;width:100%;z-index:1;position:relative}.product-page-block-image .threed-configurator{border:1px solid #efefef}.product-page-block-image .threed-configurator .layer .viewer canvas{height:100%;width:100%}.product-page-block-image .threed-configurator ::ng-deep .rp-element-toolbar{top:30px}.product-page-block-image app-image-carousel.show-animated,.product-page-block-image threed-configurator.show-animated{opacity:1;z-index:0;transition:all .2s ease-in-out}.product-page-block-image .fullscreen-button{cursor:pointer;height:50px;width:50px;position:absolute;left:30px;z-index:100;top:30px}.product-page-block-image.full{grid-column:1/11;grid-row:2/span 10;z-index:3}.product-page-block-description{grid-column:7/12;grid-row:1/1}.product-page-block-additional{width:100%}.product-page-block-additional-description{width:100%}.product-page-block-price{grid-column:1/3;grid-row:2/2;align-self:center}.product-page-block-price.full{grid-column:1/5}.product-page-block-addtocart{grid-column:3/5;grid-row:2/2;align-self:center;padding-top:30px!important}.product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button{cursor:pointer}.product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button:hover div.rippler{background:#f6f5f4}.product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button ::ng-deep co-icon{position:relative;z-index:2}.product-page-block-addtocart ::ng-deep co-button.cart-button{cursor:pointer}.product-page-block-addtocart ::ng-deep co-button.cart-button:hover{background:#74B77F}.addtocart-reserved{grid-column:1/3;grid-row:3/3}.product-page-block-stock{grid-column:1/3;grid-row:4/4}.product-page-block-delivery{grid-column:3/5;grid-row:4/4}::ng-deep co-scroll-container{overflow:hidden;position:relative}::ng-deep co-scroll-container .content-wrapper{padding:0}::ng-deep co-scroll-container .scroll-layer{left:0;top:0}::ng-deep co-scroll-container .scroll-layer .scroller{width:34px;height:34px;border-radius:36px;background:#fff;cursor:pointer;box-shadow:0 0 5px #0003}::ng-deep co-scroll-container .scroll-layer .scroller:hover{background:#f6f5f4}::ng-deep co-scroll-container .scroll-layer .scroller.left-scroll{left:5px}::ng-deep co-scroll-container .scroll-layer .scroller.left-scroll:before{border-width:0 3px 3px 0;padding:4px;margin-left:13px;margin-top:11px}::ng-deep co-scroll-container .scroll-layer .scroller.right-scroll{right:5px}::ng-deep co-scroll-container .scroll-layer .scroller.right-scroll:after{border-width:0 3px 3px 0;padding:4px;margin-left:9px;margin-top:11px}.product-page-block-variants{margin:20px 0 0}.product-page-block-variants ::ng-deep app-product-related>div{display:flex;grid-gap:15px;gap:15px;align-items:center;border-top:1px solid #f6f5f4;padding:5px 0 7px 15px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep app-header h3{font-size:14px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container{width:320px;max-width:100%;padding:0 16px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller{width:26px;height:26px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller.left-scroll{left:5px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller.left-scroll:before{border-width:0 2px 2px 0;margin-left:9px;margin-top:9px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller.right-scroll{right:5px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller.right-scroll:after{border-width:0 2px 2px 0;margin-left:6px;margin-top:9px}.product-page-block-variants ::ng-deep co-tile.small{min-width:50px!important;max-width:50px!important;border:1px solid #f6f5f4;margin:0 10px 0 0;border-radius:4px}.product-page-block-variants ::ng-deep co-tile.small:hover{border-color:#22313c}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper{padding:0}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .tile-top{display:none}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .image{height:40px!important;padding:5px}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .image .no-image-wrapper .no-image{width:40px;height:40px}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .image .no-image-wrapper span{display:none!important}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .tile-bottom{display:none}.product-page-block-variants ::ng-deep co-tile.small .tile-extra-bottom{display:none}.product-page-block-alternatives ::ng-deep .article-wrapper{margin:0 20px 0 0}.product-page-block-alternatives ::ng-deep .article-wrapper:last-child{margin:0}.product-page-block-alternatives ::ng-deep co-tile{cursor:pointer;transition:all .14s ease-out;border:1px solid transparent;border-bottom-color:#f6f5f4;padding:15px 10px 0;width:319px;max-width:none;min-width:0;box-sizing:border-box}.product-page-block-alternatives ::ng-deep co-tile:hover{box-shadow:none;border-color:#f6f5f4}.product-page-block-alternatives ::ng-deep co-tile:hover .tile-wrapper div.image co-image{transform:scale(1.05)}.product-page-block-alternatives ::ng-deep co-tile:hover .tile-wrapper .tile-bottom{margin:0}.product-page-block-alternatives ::ng-deep co-tile:hover .tile-extra-bottom .main .description{text-decoration:underline}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper{padding:0;position:relative;outline:none;overflow:hidden}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper .tile-top{position:absolute;left:0;top:0;width:100%}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper div.image{position:relative;padding:1px;display:flex;align-items:center;justify-content:center;overflow:hidden;max-width:250px;margin:0 auto;height:auto}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper div.image:after{content:\"\";padding:100% 0 0;float:left;width:100%}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper div.image co-image{position:absolute;left:0;top:0;overflow:hidden;width:100%;height:100%;-o-object-fit:contain;object-fit:contain;z-index:-1;transition:all .2s ease}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper div.image .no-image-wrapper{position:absolute;display:flex;left:50%;top:50%;margin:-48px 0 0 -54px;flex-direction:column;align-items:center;opacity:.25}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper .tile-bottom{position:absolute;right:0;bottom:0;margin:0 -40px 0 0;transition:all .2s ease;height:auto}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper .tile-bottom ::ng-deep co-button{margin:0 0 5px!important;width:36px;height:36px;border:1px solid #22313C;cursor:pointer;border-radius:4px;padding:0!important;font-size:0}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper .tile-bottom ::ng-deep co-button co-icon{width:32px;height:32px;margin:0 2px}.product-page-block-alternatives ::ng-deep co-tile .tile-extra-bottom{outline:none;padding:15px 0;background:transparent!important;min-height:60px}.product-page-block-alternatives ::ng-deep co-tile .tile-extra-bottom .main{padding:0 10px}.product-page-block-alternatives ::ng-deep co-tile .tile-extra-bottom .main .description{font-size:15px;font-weight:bold;margin:0 0 2px}.product-page-block-alternatives ::ng-deep co-tile .tile-extra-bottom .main .price{font-size:16px;margin:15px 0 0;font-weight:bold;color:#2b60a7}.product-page-block-additional-information{grid-column:1/6;grid-row:4/4}.product-page-block-properties{grid-column:7/10;grid-row:3/3}.product-page-block-related-articles{grid-column:2/6;grid-row:4/4}.product-page-block-alternative-articles{grid-column:6/10;grid-row:4/4}.product-page-block-documents{grid-column:2/6;grid-row:5/5}.product-page-block-symbols{grid-column:6/10;grid-row:5/5}@media screen and (max-width: 950px){.default-padding{padding-top:20px;padding-bottom:20px}.m-padding{padding-top:15px;padding-bottom:15px}.s-padding{padding-top:5px;padding-bottom:5px}.page-wrapper{max-width:650px}.page-wrapper .page-wrapper-content{flex-direction:column;margin:30px 0}.page-wrapper .page-wrapper-content .page-wrapper-left{width:100%}.page-wrapper .page-wrapper-content .page-wrapper-right{width:100%}.product-page-block-alternatives ::ng-deep co-tile{width:284px!important}}@media screen and (max-width: 650px){[class*=-padding]{padding-left:0!important;padding-right:0!important}.product-page-block-addtocart ::ng-deep co-number-picker co-button{height:38px!important}.product-page-block-addtocart ::ng-deep co-number-picker co-input-text{height:38px!important;width:36px!important}.product-page-block-addtocart ::ng-deep co-button.cart-button{height:40px;font-size:13px}}\n"]
|
|
1012
|
+
},] }
|
|
1013
|
+
];
|
|
1099
1014
|
ProductPageComponent.ctorParameters = () => [
|
|
1100
1015
|
{ type: ProductConnectorService },
|
|
1101
1016
|
{ type: Renderer2 },
|
|
@@ -1104,62 +1019,16 @@ ProductPageComponent.ctorParameters = () => [
|
|
|
1104
1019
|
{ type: ProductSettingsService },
|
|
1105
1020
|
{ type: ProductEventService }
|
|
1106
1021
|
];
|
|
1107
|
-
|
|
1108
|
-
ViewChild
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
], ProductPageComponent.prototype, "fullscreenbutton", void 0);
|
|
1116
|
-
__decorate([
|
|
1117
|
-
Input()
|
|
1118
|
-
], ProductPageComponent.prototype, "sku", null);
|
|
1119
|
-
__decorate([
|
|
1120
|
-
Input()
|
|
1121
|
-
], ProductPageComponent.prototype, "settings", null);
|
|
1122
|
-
ProductPageComponent = __decorate([
|
|
1123
|
-
Component({
|
|
1124
|
-
selector: 'app-product-page',
|
|
1125
|
-
template: "<ng-container *ngIf=\"settingsLoaded\">\r\n <div class=\"page-wrapper\">\r\n <div class=\"page-wrapper-content\">\r\n <div class=\"page-wrapper-left\">\r\n <div class=\"product-image-container\">\r\n <div class=\"product-page-block-selector-type\">\r\n <app-product-selector-type class=\"default-padding\"\r\n [(currentType)]=\"currentView\"\r\n [show2D]=\"configurable\"\r\n [show3D]=\"threeD\"\r\n ></app-product-selector-type>\r\n </div>\r\n <div class=\"product-page-block-image default-padding\" [class.full]=\"fullScreen\">\r\n <app-image-carousel [@toggleVisibilityByState]=\"show2D ? 'show' : 'hide'\" [images]=\"article?.images\" [showRefresh]=\"configurable && threeD\"></app-image-carousel>\r\n <ng-container *ngIf=\"settingsLoaded\">\r\n <threed-configurator #configurator class=\"threed-configurator\"\r\n [class.configurator-full-screen]=\"fullScreen\"\r\n [@toggleVisibilityByState]=\"show3D ? 'show' : 'hide'\"\r\n [@toggleFullScreen]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\r\n ></threed-configurator>\r\n </ng-container>\r\n <co-icon #fullscreenbutton class=\"fullscreen-button\" *ngIf=\"show3D\"\r\n [@toggleTopLeft]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\r\n [iconData]=\"iconCache.getIcon(fullScreenIcon)\"\r\n (click)=\"showFullScreen()\"></co-icon>\r\n <co-icon class=\"threed-watermark\" *ngIf=\"show3D && fullScreen\"\r\n [iconData]=\"iconCache.getIcon(icon.Logo)\"></co-icon>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"page-wrapper-right\">\r\n <div class=\"product-page-block-description\">\r\n <app-product-description class=\"default-padding\" [article]=\"article\"></app-product-description>\r\n </div>\r\n <div class=\"product-page-block-additional\">\r\n <div class=\"product-page-block-additional-description\">\r\n <app-product-additional-description class=\"default-padding\" [article]=\"article\"></app-product-additional-description>\r\n </div>\r\n <div class=\"product-page-block-price\" [class.full]=\"configuring\">\r\n <app-product-price class=\"s-padding\" *ngIf=\"!configuring\"\r\n [pricing]=\"article?.pricing\"\r\n [configurable]=\"configurable\"\r\n ></app-product-price>\r\n <ng-container *ngIf=\"settingsLoaded\">\r\n <threed-selections #selections class=\"threed-selections\" [class.show-selections]=\"configuring\" [@toggleFullScreenRight]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\r\n [class.default-padding]=\"!fullScreen\"\r\n [class.show-full-screen]=\"fullScreen\"\r\n [class.mini-scrollbar]=\"fullScreen\"\r\n [sku]=\"sku\"\r\n [settings]=\"settings\"\r\n (onUserActionFromThreeD)=\"configuring = true\"\r\n (instanceSet)=\"setInstance($event)\"\r\n (onImageReceived)=\"appEventService.onImageReceived.next($event)\"\r\n (onRenderStarted)=\"appEventService.onRenderStarted.next()\"\r\n (onDraftRenderImageReceived)=\"appEventService.onDraftRenderImageReceived.next($event)\"\r\n (onArticleReceived)=\"appEventService.onArticleReceived.next($event.detail)\"\r\n (onSelectionsReceived)=\"appEventService.onSelectionsReceived.next($event.detail)\"\r\n (onArticleInfoReceived)=\"appEventService.onArticleInfoReceived.next($event.detail)\"\r\n ></threed-selections>\r\n </ng-container>\r\n </div>\r\n <div class=\"product-page-block-addtocart no-padding product-action-buttons\" *ngIf=\"!configuring\" [@toggleTopRight]=\"fullScreen ? 'fullscreen' : 'halfscreen'\">\r\n <app-product-addtocart\r\n [configurable]=\"configurable\"\r\n [configuring]=\"configuring\"\r\n [article]=\"article\"\r\n (startConfiguration)=\"handleStartConfiguration()\"\r\n ></app-product-addtocart>\r\n </div>\r\n <div class=\"addtocart-reserved product-action-buttons\" *ngIf=\"configuring\" [class.full-screen]=\"fullScreen\">\r\n <app-product-addtocart class=\"default-padding\"\r\n [configurable]=\"false\"\r\n [fullscreen]=\"fullScreen\"\r\n [configuring]=\"configuring\"\r\n [article]=\"article\"\r\n (startConfiguration)=\"handleStartConfiguration()\"\r\n ></app-product-addtocart>\r\n </div>\r\n <div class=\"product-page-block-variants\">\r\n <app-product-related class=\"no-padding\" *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\r\n [articles]=\"article?.relatedArticles\" [refType]=\"64\" [label]=\"'VARIANTS' | localize\"></app-product-related>\r\n </div>\r\n <div class=\"product-page-block-stock\">\r\n <app-product-stock class=\"no-padding\" [stockAndDelivery]=\"stockAndDelivery\"></app-product-stock>\r\n </div>\r\n <div class=\"product-page-block-delivery\">\r\n <app-product-delivery class=\"no-padding\" [stockAndDelivery]=\"stockAndDelivery\"></app-product-delivery>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"page-wrapper-content\">\r\n <div class=\"page-wrapper-left\">\r\n <app-product-info-tabs class=\"no-padding\" [article]=\"article\"></app-product-info-tabs>\r\n </div>\r\n <div class=\"page-wrapper-right\">\r\n <div class=\"product-page-block-related s-padding\">\r\n <app-product-related *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\r\n [articles]=\"article?.relatedArticles\" [refType]=\"1\" [label]=\"'RELATED_PRODUCTS' | localize\"></app-product-related>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"page-wrapper-content no-top-margin\">\r\n <div class=\"page-wrapper-full\">\r\n <div class=\"product-page-block-alternatives s-padding\">\r\n <app-product-related *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\r\n [articles]=\"article?.relatedArticles\" [refType]=\"4\" [isSmallModus]=\"false\" [label]=\"'ALTERNATIVE_PRODUCTS' | localize\"></app-product-related>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>\r\n",
|
|
1126
|
-
animations: [
|
|
1127
|
-
trigger('toggleFullScreen', [
|
|
1128
|
-
state('fullscreen', style({ 'position': 'fixed', 'top': '0', 'left': '0', 'width': '100%', 'height': '100%' })),
|
|
1129
|
-
state('halfscreen', style({ 'position': '*', 'top': '*', 'left': '*', 'width': '*', 'height': '*' })),
|
|
1130
|
-
transition('halfscreen <=> fullscreen', animate('200ms ease-in-out')),
|
|
1131
|
-
]),
|
|
1132
|
-
trigger('toggleTopLeft', [
|
|
1133
|
-
state('fullscreen', style({ 'position': 'fixed', 'top': '0', 'left': '0' })),
|
|
1134
|
-
state('halfscreen', style({ 'position': 'absolute', 'top': '*', 'left': '*' })),
|
|
1135
|
-
transition('halfscreen <=> fullscreen', animate('200ms ease-in-out')),
|
|
1136
|
-
]),
|
|
1137
|
-
trigger('toggleTopRight', [
|
|
1138
|
-
state('fullscreen', style({ 'position': 'fixed', 'top': '0', 'right': '0' })),
|
|
1139
|
-
state('halfscreen', style({ 'position': '*', 'top': '*', 'right': '*' })),
|
|
1140
|
-
transition('halfscreen <=> fullscreen', animate('200ms ease-in-out')),
|
|
1141
|
-
]),
|
|
1142
|
-
trigger('toggleFullScreenRight', [
|
|
1143
|
-
state('fullscreen', style({ 'position': 'fixed', 'width': '400px', 'top': '0', 'right': '0' })),
|
|
1144
|
-
state('halfscreen', style({ 'position': '*', 'width': '*', 'top': '*', 'right': '*' })),
|
|
1145
|
-
transition('halfscreen <=> fullscreen', animate('200ms ease-in-out')),
|
|
1146
|
-
]),
|
|
1147
|
-
trigger('toggleVisibilityByState', [
|
|
1148
|
-
state('hide', style({ 'opacity': '0', 'display': 'none' })),
|
|
1149
|
-
state('show', style({ 'display': 'block', 'opacity': '1' })),
|
|
1150
|
-
transition('hide <=> show', animate('200ms 100ms ease-in-out')),
|
|
1151
|
-
]),
|
|
1152
|
-
trigger('toggleVisibility', [
|
|
1153
|
-
state('void', style({ 'opacity': '0' })),
|
|
1154
|
-
state('*', style({ 'opacity': '1' })),
|
|
1155
|
-
transition('void => *', animate('200ms ease-in-out')),
|
|
1156
|
-
])
|
|
1157
|
-
],
|
|
1158
|
-
styles: [".page-wrapper{font-family:iOneMontserrat;font-size:12px;display:flex;flex-direction:column;max-width:1400px;padding:0 15px;margin:0 auto}.page-wrapper-content{display:flex;flex-direction:row;margin:40px 0}.page-wrapper-content.no-top-margin,.page-wrapper-content:first-child{margin-top:0}.page-wrapper-left{display:flex;width:55%;flex-direction:column}.page-wrapper-right{display:flex;width:45%;flex-direction:column}.page-wrapper-full{display:flex;width:100%;flex-direction:column}.page-wrapper-66{display:flex;width:60%;flex-direction:column}.page-wrapper-33{display:flex;width:40%;flex-direction:column}.threed-selections{display:none}.threed-selections.show-selections{display:block}.threed-selections ::ng-deep .rp-lite-selector .rp-answers-slideout ::ng-deep co-slideout{width:480px;z-index:3}.product-action-buttons{position:relative}.product-action-buttons.full-screen{z-index:10}.product-image-container{grid-column:1/7;grid-row:1/6;position:relative}.product-page-block-selector-type{width:auto;position:absolute;top:10px;right:10px;z-index:2}.product-page-block-image{box-sizing:border-box;width:100%;z-index:1;position:relative}.product-page-block-image .threed-configurator{border:1px solid #efefef}.product-page-block-image .threed-configurator .layer .viewer canvas{height:100%;width:100%}.product-page-block-image .threed-configurator ::ng-deep .rp-element-toolbar{top:30px}.product-page-block-image app-image-carousel.show-animated,.product-page-block-image threed-configurator.show-animated{opacity:1;z-index:0;transition:.2s ease-in-out}.product-page-block-image .fullscreen-button{cursor:pointer;height:50px;width:50px;position:absolute;left:30px;z-index:100;top:30px}.product-page-block-image.full{grid-column:1/11;grid-row:2/span 10;z-index:3}.product-page-block-description{grid-column:7/12;grid-row:1/1}.product-page-block-additional,.product-page-block-additional-description{width:100%}.product-page-block-price{grid-column:1/3;grid-row:2/2;align-self:center}.product-page-block-price.full{grid-column:1/5}.product-page-block-addtocart{grid-column:3/5;grid-row:2/2;align-self:center;padding-top:30px!important}.product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button{cursor:pointer}.product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button:hover div.rippler{background:#f6f5f4}.product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button ::ng-deep co-icon{position:relative;z-index:2}.product-page-block-addtocart ::ng-deep co-button.cart-button{cursor:pointer}.product-page-block-addtocart ::ng-deep co-button.cart-button:hover{background:#74b77f}.addtocart-reserved{grid-column:1/3;grid-row:3/3}.product-page-block-stock{grid-column:1/3;grid-row:4/4}.product-page-block-delivery{grid-column:3/5;grid-row:4/4}::ng-deep co-scroll-container{overflow:hidden;position:relative}::ng-deep co-scroll-container .content-wrapper{padding:0}::ng-deep co-scroll-container .scroll-layer{left:0;top:0}::ng-deep co-scroll-container .scroll-layer .scroller{width:34px;height:34px;border-radius:36px;background:#fff;cursor:pointer;box-shadow:0 0 5px 0 rgba(0,0,0,.2)}::ng-deep co-scroll-container .scroll-layer .scroller:hover{background:#f6f5f4}::ng-deep co-scroll-container .scroll-layer .scroller.left-scroll{left:5px}::ng-deep co-scroll-container .scroll-layer .scroller.left-scroll:before{border-width:0 3px 3px 0;padding:4px;margin-left:13px;margin-top:11px}::ng-deep co-scroll-container .scroll-layer .scroller.right-scroll{right:5px}::ng-deep co-scroll-container .scroll-layer .scroller.right-scroll:after{border-width:0 3px 3px 0;padding:4px;margin-left:9px;margin-top:11px}.product-page-block-variants{margin:20px 0 0}.product-page-block-variants ::ng-deep app-product-related>div{display:flex;gap:15px;align-items:center;border-top:1px solid #f6f5f4;padding:5px 0 7px 15px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep app-header h3{font-size:14px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container{width:320px;max-width:100%;padding:0 16px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller{width:26px;height:26px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller.left-scroll{left:5px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller.left-scroll:before{border-width:0 2px 2px 0;margin-left:9px;margin-top:9px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller.right-scroll{right:5px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller.right-scroll:after{border-width:0 2px 2px 0;margin-left:6px;margin-top:9px}.product-page-block-variants ::ng-deep co-tile.small{min-width:50px!important;max-width:50px!important;border:1px solid #f6f5f4;margin:0 10px 0 0;border-radius:4px}.product-page-block-variants ::ng-deep co-tile.small:hover{border-color:#22313c}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper{padding:0}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .tile-top{display:none}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .image{height:40px!important;padding:5px}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .image .no-image-wrapper .no-image{width:40px;height:40px}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .image .no-image-wrapper span{display:none!important}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .tile-bottom{display:none}.product-page-block-variants ::ng-deep co-tile.small .tile-extra-bottom{display:none}.product-page-block-alternatives ::ng-deep .article-wrapper{margin:0 20px 0 0}.product-page-block-alternatives ::ng-deep .article-wrapper:last-child{margin:0}.product-page-block-alternatives ::ng-deep co-tile{cursor:pointer;transition:.14s ease-out;border:1px solid transparent;border-bottom-color:#f6f5f4;padding:15px 10px 0;width:319px;max-width:none;min-width:0;box-sizing:border-box}.product-page-block-alternatives ::ng-deep co-tile:hover{box-shadow:none;border-color:#f6f5f4}.product-page-block-alternatives ::ng-deep co-tile:hover .tile-wrapper div.image co-image{transform:scale(1.05)}.product-page-block-alternatives ::ng-deep co-tile:hover .tile-wrapper .tile-bottom{margin:0}.product-page-block-alternatives ::ng-deep co-tile:hover .tile-extra-bottom .main .description{text-decoration:underline}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper{padding:0;position:relative;outline:0;overflow:hidden}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper .tile-top{position:absolute;left:0;top:0;width:100%}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper div.image{position:relative;padding:1px;display:flex;align-items:center;justify-content:center;overflow:hidden;max-width:250px;margin:0 auto;height:auto}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper div.image:after{content:\"\";padding:100% 0 0;float:left;width:100%}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper div.image co-image{position:absolute;left:0;top:0;overflow:hidden;width:100%;height:100%;-o-object-fit:contain;object-fit:contain;z-index:-1;transition:.2s}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper div.image .no-image-wrapper{position:absolute;display:flex;left:50%;top:50%;margin:-48px 0 0 -54px;flex-direction:column;align-items:center;opacity:.25}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper .tile-bottom{position:absolute;right:0;bottom:0;margin:0 -40px 0 0;transition:.2s;height:auto}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper .tile-bottom ::ng-deep co-button{margin:0 0 5px!important;width:36px;height:36px;border:1px solid #22313c;cursor:pointer;border-radius:4px;padding:0!important;font-size:0}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper .tile-bottom ::ng-deep co-button co-icon{width:32px;height:32px;margin:0 2px}.product-page-block-alternatives ::ng-deep co-tile .tile-extra-bottom{outline:0;padding:15px 0;background:0 0!important;min-height:60px}.product-page-block-alternatives ::ng-deep co-tile .tile-extra-bottom .main{padding:0 10px}.product-page-block-alternatives ::ng-deep co-tile .tile-extra-bottom .main .description{font-size:15px;font-weight:700;margin:0 0 2px}.product-page-block-alternatives ::ng-deep co-tile .tile-extra-bottom .main .price{font-size:16px;margin:15px 0 0;font-weight:700;color:#2b60a7}.product-page-block-additional-information{grid-column:1/6;grid-row:4/4}.product-page-block-properties{grid-column:7/10;grid-row:3/3}.product-page-block-related-articles{grid-column:2/6;grid-row:4/4}.product-page-block-alternative-articles{grid-column:6/10;grid-row:4/4}.product-page-block-documents{grid-column:2/6;grid-row:5/5}.product-page-block-symbols{grid-column:6/10;grid-row:5/5}@media screen and (max-width:950px){.default-padding{padding-top:20px;padding-bottom:20px}.m-padding{padding-top:15px;padding-bottom:15px}.s-padding{padding-top:5px;padding-bottom:5px}.page-wrapper{max-width:650px}.page-wrapper .page-wrapper-content{flex-direction:column;margin:30px 0}.page-wrapper .page-wrapper-content .page-wrapper-left,.page-wrapper .page-wrapper-content .page-wrapper-right{width:100%}.product-page-block-alternatives ::ng-deep co-tile{width:284px!important}}@media screen and (max-width:650px){[class*=-padding]{padding-left:0!important;padding-right:0!important}.product-page-block-addtocart ::ng-deep co-number-picker co-button{height:38px!important}.product-page-block-addtocart ::ng-deep co-number-picker co-input-text{height:38px!important;width:36px!important}.product-page-block-addtocart ::ng-deep co-button.cart-button{height:40px;font-size:13px}}"]
|
|
1159
|
-
})
|
|
1160
|
-
], ProductPageComponent);
|
|
1022
|
+
ProductPageComponent.propDecorators = {
|
|
1023
|
+
configurator: [{ type: ViewChild, args: ['configurator', { read: ElementRef },] }],
|
|
1024
|
+
selections: [{ type: ViewChild, args: ['selections', { read: ElementRef },] }],
|
|
1025
|
+
fullscreenbutton: [{ type: ViewChild, args: ['fullscreenbutton', { read: ElementRef },] }],
|
|
1026
|
+
sku: [{ type: Input }],
|
|
1027
|
+
settings: [{ type: Input }],
|
|
1028
|
+
openStockEvent: [{ type: Output }]
|
|
1029
|
+
};
|
|
1161
1030
|
|
|
1162
|
-
|
|
1031
|
+
class ProductSelectorTypeComponent {
|
|
1163
1032
|
constructor(_iconCache, _changeDetector) {
|
|
1164
1033
|
this._iconCache = _iconCache;
|
|
1165
1034
|
this._changeDetector = _changeDetector;
|
|
@@ -1178,35 +1047,101 @@ let ProductSelectorTypeComponent = class ProductSelectorTypeComponent {
|
|
|
1178
1047
|
this.onIconClick.next(this.currentType);
|
|
1179
1048
|
this._changeDetector.detectChanges();
|
|
1180
1049
|
}
|
|
1181
|
-
}
|
|
1050
|
+
}
|
|
1051
|
+
ProductSelectorTypeComponent.decorators = [
|
|
1052
|
+
{ type: Component, args: [{
|
|
1053
|
+
selector: 'app-product-selector-type',
|
|
1054
|
+
template: `
|
|
1055
|
+
<div *ngIf="show2D || show3D" class="show-in" [textContent]="'SHOW_IN' | localize"></div>
|
|
1056
|
+
<co-icon *ngIf="show2D" class="selector-type-icon"
|
|
1057
|
+
[class.active]="currentType === type.TwoD"
|
|
1058
|
+
[iconData]="twoDIcon"
|
|
1059
|
+
(click)="handleIconClick(type.TwoD)"
|
|
1060
|
+
></co-icon>
|
|
1061
|
+
<co-icon *ngIf="show3D" class="selector-type-icon"
|
|
1062
|
+
[class.active]="currentType === type.ThreeD"
|
|
1063
|
+
[iconData]="threeDIcon"
|
|
1064
|
+
(click)="handleIconClick(type.ThreeD)"
|
|
1065
|
+
></co-icon>
|
|
1066
|
+
`,
|
|
1067
|
+
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"]
|
|
1068
|
+
},] }
|
|
1069
|
+
];
|
|
1182
1070
|
ProductSelectorTypeComponent.ctorParameters = () => [
|
|
1183
1071
|
{ type: IconCacheService },
|
|
1184
1072
|
{ type: ChangeDetectorRef }
|
|
1185
1073
|
];
|
|
1186
|
-
|
|
1187
|
-
Input
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1074
|
+
ProductSelectorTypeComponent.propDecorators = {
|
|
1075
|
+
show2D: [{ type: Input }],
|
|
1076
|
+
show3D: [{ type: Input }],
|
|
1077
|
+
currentType: [{ type: Input }],
|
|
1078
|
+
onIconClick: [{ type: Output }],
|
|
1079
|
+
currentTypeChange: [{ type: Output }]
|
|
1080
|
+
};
|
|
1081
|
+
|
|
1082
|
+
// A pipe for localizing string values in view templates.
|
|
1083
|
+
class LocalizePipe {
|
|
1084
|
+
constructor(_dictionaryService) {
|
|
1085
|
+
this._dictionaryService = _dictionaryService;
|
|
1086
|
+
}
|
|
1087
|
+
transform(value, upperCaseFirst = true, replace = []) {
|
|
1088
|
+
if (!value) {
|
|
1089
|
+
return '';
|
|
1090
|
+
}
|
|
1091
|
+
replace = replace ? replace : [];
|
|
1092
|
+
if (!Array.isArray(replace)) {
|
|
1093
|
+
replace = [replace];
|
|
1094
|
+
}
|
|
1095
|
+
return this._dictionaryService.get(value, upperCaseFirst, ...replace);
|
|
1096
|
+
}
|
|
1097
|
+
}
|
|
1098
|
+
LocalizePipe.decorators = [
|
|
1099
|
+
{ type: Pipe, args: [{
|
|
1100
|
+
name: 'localize'
|
|
1101
|
+
},] }
|
|
1102
|
+
];
|
|
1103
|
+
LocalizePipe.ctorParameters = () => [
|
|
1104
|
+
{ type: DictionaryService }
|
|
1105
|
+
];
|
|
1106
|
+
|
|
1107
|
+
class PipeModule {
|
|
1108
|
+
}
|
|
1109
|
+
PipeModule.decorators = [
|
|
1110
|
+
{ type: NgModule, args: [{
|
|
1111
|
+
declarations: [
|
|
1112
|
+
LocalizePipe
|
|
1113
|
+
],
|
|
1114
|
+
providers: [
|
|
1115
|
+
LocalizePipe
|
|
1116
|
+
],
|
|
1117
|
+
exports: [
|
|
1118
|
+
LocalizePipe
|
|
1119
|
+
]
|
|
1120
|
+
},] }
|
|
1121
|
+
];
|
|
1122
|
+
|
|
1123
|
+
// import {IconModule} from '@colijnit/corecomponents';
|
|
1124
|
+
class ProductSelectorTypeModule {
|
|
1125
|
+
}
|
|
1126
|
+
ProductSelectorTypeModule.decorators = [
|
|
1127
|
+
{ type: NgModule, args: [{
|
|
1128
|
+
imports: [
|
|
1129
|
+
CommonModule,
|
|
1130
|
+
PipeModule,
|
|
1131
|
+
IconModule,
|
|
1132
|
+
/*,
|
|
1133
|
+
IconModule*/
|
|
1134
|
+
],
|
|
1135
|
+
declarations: [
|
|
1136
|
+
ProductSelectorTypeComponent
|
|
1137
|
+
],
|
|
1138
|
+
exports: [
|
|
1139
|
+
ProductSelectorTypeComponent
|
|
1140
|
+
]
|
|
1141
|
+
},] }
|
|
1142
|
+
];
|
|
1208
1143
|
|
|
1209
|
-
|
|
1144
|
+
class ImageCarouselComponent {
|
|
1210
1145
|
constructor(_ione, _appEventService, _changeDetector, _domSanitizer, iconCache) {
|
|
1211
1146
|
this._ione = _ione;
|
|
1212
1147
|
this._appEventService = _appEventService;
|
|
@@ -1318,7 +1253,44 @@ let ImageCarouselComponent = class ImageCarouselComponent {
|
|
|
1318
1253
|
}
|
|
1319
1254
|
}
|
|
1320
1255
|
}
|
|
1321
|
-
}
|
|
1256
|
+
}
|
|
1257
|
+
ImageCarouselComponent.decorators = [
|
|
1258
|
+
{ type: Component, args: [{
|
|
1259
|
+
selector: 'app-image-carousel',
|
|
1260
|
+
template: `
|
|
1261
|
+
<div id="product_page_carousel">
|
|
1262
|
+
<div id="product_page_carousel_items">
|
|
1263
|
+
<co-loader [isShown]="showLoader"></co-loader>
|
|
1264
|
+
<div #carousel class="inner-carousel">
|
|
1265
|
+
<!-- This has been taken out of the for loop to prevent flashing images when updating. -->
|
|
1266
|
+
<div *ngIf="images[0]" class="carousel-item" [id]="'slide-0'" [class.active]="isCurrentIndex(0)">
|
|
1267
|
+
<img [src]="getImageSrc(images[0])">
|
|
1268
|
+
</div>
|
|
1269
|
+
<div *ngFor="let image of images.slice(1); let index = index" class="carousel-item" [id]="'slide-' + (index + 1)" [class.active]="isCurrentIndex((index + 1))">
|
|
1270
|
+
<img [src]="getImageSrc(image)">
|
|
1271
|
+
</div>
|
|
1272
|
+
<div class="carousel-scroller-layer" *ngIf="images && images.length > 1">
|
|
1273
|
+
<div class="carousel-item-scroller prev" (click)="gotoPrevSlide()" *ngIf="currentIndex > 0"></div>
|
|
1274
|
+
<div class="carousel-item-scroller next" (click)="gotoNextSlide()" *ngIf="currentIndex < images.length - 1"></div>
|
|
1275
|
+
</div>
|
|
1276
|
+
</div>
|
|
1277
|
+
<!--
|
|
1278
|
+
<co-icon class="selector-type-icon refresh-button" [iconData]="iconCache.getIcon(icons.Refresh)" (click)="onForceRenderImage()" [class.loading]="showLoader" *ngIf="showRefresh"></co-icon>
|
|
1279
|
+
-->
|
|
1280
|
+
</div>
|
|
1281
|
+
|
|
1282
|
+
<div id="product_page_carousel_thumbs">
|
|
1283
|
+
<co-scroll-container class="scroll-container" *ngIf="images && images.length > 1">
|
|
1284
|
+
<div *ngFor="let image of images; let index = index" class="carousel-thumb" [class.active]="index === currentIndex">
|
|
1285
|
+
<img [src]="getImageSrc(image)" (click)="handleThumbClick(index)"/>
|
|
1286
|
+
</div>
|
|
1287
|
+
</co-scroll-container>
|
|
1288
|
+
</div>
|
|
1289
|
+
</div>
|
|
1290
|
+
`,
|
|
1291
|
+
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;flex-shrink:0;flex-grow:0}#product_page_carousel .carousel-item img{width:100%;height:auto;-o-object-fit:contain;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}@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"]
|
|
1292
|
+
},] }
|
|
1293
|
+
];
|
|
1322
1294
|
ImageCarouselComponent.ctorParameters = () => [
|
|
1323
1295
|
{ type: ProductConnectorService },
|
|
1324
1296
|
{ type: ProductEventService },
|
|
@@ -1326,50 +1298,72 @@ ImageCarouselComponent.ctorParameters = () => [
|
|
|
1326
1298
|
{ type: DomSanitizer },
|
|
1327
1299
|
{ type: IconCacheService }
|
|
1328
1300
|
];
|
|
1329
|
-
|
|
1330
|
-
ViewChild
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
ImageCarouselComponent
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
]
|
|
1301
|
+
ImageCarouselComponent.propDecorators = {
|
|
1302
|
+
carousel: [{ type: ViewChild, args: ['carousel', { read: ElementRef },] }],
|
|
1303
|
+
showRefresh: [{ type: Input }],
|
|
1304
|
+
images: [{ type: Input }],
|
|
1305
|
+
handleWindowResize: [{ type: HostListener, args: ['window:resize',] }],
|
|
1306
|
+
gotoNextSlide: [{ type: HostListener, args: ['swipeleft',] }],
|
|
1307
|
+
gotoPrevSlide: [{ type: HostListener, args: ['swiperight',] }],
|
|
1308
|
+
resizing: [{ type: HostBinding, args: ['class.resizing',] }]
|
|
1309
|
+
};
|
|
1310
|
+
|
|
1311
|
+
class ImageCarouselModule {
|
|
1312
|
+
}
|
|
1313
|
+
ImageCarouselModule.decorators = [
|
|
1314
|
+
{ type: NgModule, args: [{
|
|
1315
|
+
imports: [
|
|
1316
|
+
CommonModule,
|
|
1317
|
+
LoaderModule,
|
|
1318
|
+
// IconModule,
|
|
1319
|
+
ScrollContainerModule
|
|
1320
|
+
],
|
|
1321
|
+
declarations: [
|
|
1322
|
+
ImageCarouselComponent
|
|
1323
|
+
],
|
|
1324
|
+
exports: [
|
|
1325
|
+
ImageCarouselComponent
|
|
1326
|
+
]
|
|
1327
|
+
},] }
|
|
1328
|
+
];
|
|
1357
1329
|
|
|
1358
|
-
|
|
1330
|
+
class ProductDescriptionComponent {
|
|
1359
1331
|
constructor() { }
|
|
1360
1332
|
ngOnInit() {
|
|
1361
1333
|
}
|
|
1362
|
-
}
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1334
|
+
}
|
|
1335
|
+
ProductDescriptionComponent.decorators = [
|
|
1336
|
+
{ type: Component, args: [{
|
|
1337
|
+
selector: 'app-product-description',
|
|
1338
|
+
template: `
|
|
1339
|
+
<div class="pd-title-wrapper">
|
|
1340
|
+
<span class="pd-description" [textContent]="article?.descriptionRetail" *ngIf="article?.descriptionRetail"></span>
|
|
1341
|
+
<span class="pd-sku" [textContent]="article?.articleNr" *ngIf="article?.articleNr"></span>
|
|
1342
|
+
</div>
|
|
1343
|
+
`,
|
|
1344
|
+
styles: [":host{display:block}.pd-title-wrapper{margin:20px 0 0}.pd-description{color:#22313c;font-size:25px;font-weight:bold;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"]
|
|
1345
|
+
},] }
|
|
1346
|
+
];
|
|
1347
|
+
ProductDescriptionComponent.ctorParameters = () => [];
|
|
1348
|
+
ProductDescriptionComponent.propDecorators = {
|
|
1349
|
+
article: [{ type: Input }]
|
|
1350
|
+
};
|
|
1351
|
+
|
|
1352
|
+
class ProductDescriptionModule {
|
|
1353
|
+
}
|
|
1354
|
+
ProductDescriptionModule.decorators = [
|
|
1355
|
+
{ type: NgModule, args: [{
|
|
1356
|
+
imports: [
|
|
1357
|
+
CommonModule
|
|
1358
|
+
],
|
|
1359
|
+
declarations: [
|
|
1360
|
+
ProductDescriptionComponent
|
|
1361
|
+
],
|
|
1362
|
+
exports: [
|
|
1363
|
+
ProductDescriptionComponent
|
|
1364
|
+
]
|
|
1365
|
+
},] }
|
|
1366
|
+
];
|
|
1373
1367
|
|
|
1374
1368
|
class BitUtils {
|
|
1375
1369
|
static IsShortDescription(bit) {
|
|
@@ -1389,7 +1383,7 @@ class BitUtils {
|
|
|
1389
1383
|
}
|
|
1390
1384
|
}
|
|
1391
1385
|
|
|
1392
|
-
|
|
1386
|
+
class ProductAdditionalDescriptionComponent {
|
|
1393
1387
|
constructor(_appEventService) {
|
|
1394
1388
|
this._appEventService = _appEventService;
|
|
1395
1389
|
}
|
|
@@ -1422,22 +1416,46 @@ let ProductAdditionalDescriptionComponent = class ProductAdditionalDescriptionCo
|
|
|
1422
1416
|
}
|
|
1423
1417
|
}
|
|
1424
1418
|
}
|
|
1425
|
-
}
|
|
1419
|
+
}
|
|
1420
|
+
ProductAdditionalDescriptionComponent.decorators = [
|
|
1421
|
+
{ type: Component, args: [{
|
|
1422
|
+
selector: 'app-product-additional-description',
|
|
1423
|
+
template: `
|
|
1424
|
+
<ng-container *ngIf="description !== ''">
|
|
1425
|
+
<div class="pd-additional-description">
|
|
1426
|
+
<p [innerHTML]="description"></p>
|
|
1427
|
+
<button class="pd-read-more-btn" [textContent]="'READ_MORE' | localize" (click)="onReadMore()"></button>
|
|
1428
|
+
</div>
|
|
1429
|
+
</ng-container>
|
|
1430
|
+
`,
|
|
1431
|
+
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"]
|
|
1432
|
+
},] }
|
|
1433
|
+
];
|
|
1426
1434
|
ProductAdditionalDescriptionComponent.ctorParameters = () => [
|
|
1427
1435
|
{ type: ProductEventService }
|
|
1428
1436
|
];
|
|
1429
|
-
|
|
1430
|
-
Input
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1437
|
+
ProductAdditionalDescriptionComponent.propDecorators = {
|
|
1438
|
+
article: [{ type: Input }]
|
|
1439
|
+
};
|
|
1440
|
+
|
|
1441
|
+
class ProductAdditionalDescriptionModule {
|
|
1442
|
+
}
|
|
1443
|
+
ProductAdditionalDescriptionModule.decorators = [
|
|
1444
|
+
{ type: NgModule, args: [{
|
|
1445
|
+
imports: [
|
|
1446
|
+
CommonModule,
|
|
1447
|
+
PipeModule
|
|
1448
|
+
],
|
|
1449
|
+
declarations: [
|
|
1450
|
+
ProductAdditionalDescriptionComponent
|
|
1451
|
+
],
|
|
1452
|
+
exports: [
|
|
1453
|
+
ProductAdditionalDescriptionComponent
|
|
1454
|
+
]
|
|
1455
|
+
},] }
|
|
1456
|
+
];
|
|
1439
1457
|
|
|
1440
|
-
|
|
1458
|
+
class ProductPriceComponent {
|
|
1441
1459
|
constructor(_changeDetector) {
|
|
1442
1460
|
this._changeDetector = _changeDetector;
|
|
1443
1461
|
this.showFromPrice = false;
|
|
@@ -1481,25 +1499,52 @@ let ProductPriceComponent = class ProductPriceComponent {
|
|
|
1481
1499
|
return '€';
|
|
1482
1500
|
}
|
|
1483
1501
|
}
|
|
1484
|
-
}
|
|
1502
|
+
}
|
|
1503
|
+
ProductPriceComponent.decorators = [
|
|
1504
|
+
{ type: Component, args: [{
|
|
1505
|
+
selector: 'app-product-price',
|
|
1506
|
+
template: `
|
|
1507
|
+
<div *ngIf="toPrice">
|
|
1508
|
+
<div class="price-wrapper" *ngIf="fromPrice > toPrice">
|
|
1509
|
+
<div class="from-price-label" [textContent]="fromLabel | localize"></div>
|
|
1510
|
+
<div class="from-price" [textContent]="fromPrice | priceDisplay: valutaSign"></div>
|
|
1511
|
+
</div>
|
|
1512
|
+
<div class="price-wrapper">
|
|
1513
|
+
<div class="to-price-label" [textContent]="toLabel | localize"></div>
|
|
1514
|
+
<div class="to-price" [textContent]="toPrice | priceDisplay: valutaSign"></div>
|
|
1515
|
+
</div>
|
|
1516
|
+
</div>
|
|
1517
|
+
`,
|
|
1518
|
+
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:bold;text-decoration:line-through;color:#5b6875}.to-price{font-size:25px;font-weight:bold;color:#74b77f}@media screen and (max-width: 650px){.from-price{font-size:13px}.to-price{font-size:21px}}\n"]
|
|
1519
|
+
},] }
|
|
1520
|
+
];
|
|
1485
1521
|
ProductPriceComponent.ctorParameters = () => [
|
|
1486
1522
|
{ type: ChangeDetectorRef }
|
|
1487
1523
|
];
|
|
1488
|
-
|
|
1489
|
-
Input
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
|
|
1524
|
+
ProductPriceComponent.propDecorators = {
|
|
1525
|
+
pricing: [{ type: Input }],
|
|
1526
|
+
configurable: [{ type: Input }]
|
|
1527
|
+
};
|
|
1528
|
+
|
|
1529
|
+
class ProductPriceModule {
|
|
1530
|
+
}
|
|
1531
|
+
ProductPriceModule.decorators = [
|
|
1532
|
+
{ type: NgModule, args: [{
|
|
1533
|
+
imports: [
|
|
1534
|
+
CommonModule,
|
|
1535
|
+
PipeModule,
|
|
1536
|
+
PriceDisplayPipeModule
|
|
1537
|
+
],
|
|
1538
|
+
declarations: [
|
|
1539
|
+
ProductPriceComponent
|
|
1540
|
+
],
|
|
1541
|
+
exports: [
|
|
1542
|
+
ProductPriceComponent
|
|
1543
|
+
]
|
|
1544
|
+
},] }
|
|
1545
|
+
];
|
|
1501
1546
|
|
|
1502
|
-
|
|
1547
|
+
class ProductAddtocartComponent {
|
|
1503
1548
|
constructor(iconCache, _ioneControllerService, _appEventService, _settingsService) {
|
|
1504
1549
|
this.iconCache = iconCache;
|
|
1505
1550
|
this._ioneControllerService = _ioneControllerService;
|
|
@@ -1548,50 +1593,73 @@ let ProductAddtocartComponent = class ProductAddtocartComponent {
|
|
|
1548
1593
|
return yield this._ioneControllerService.getJsonArticleFlatTree(article.article.goodId, article.article.goodType, article.quantity, true, configuratorStatistics);
|
|
1549
1594
|
});
|
|
1550
1595
|
}
|
|
1551
|
-
}
|
|
1596
|
+
}
|
|
1597
|
+
ProductAddtocartComponent.decorators = [
|
|
1598
|
+
{ type: Component, args: [{
|
|
1599
|
+
selector: 'app-product-addtocart',
|
|
1600
|
+
template: `
|
|
1601
|
+
<div class="atc-wrapper">
|
|
1602
|
+
<co-number-picker *ngIf="!configurable && !configuring" class="quantity-select" [(model)]="quantity" [min]="1" horizontal></co-number-picker>
|
|
1603
|
+
<div class="button-wrapper">
|
|
1604
|
+
<co-button class="configure-button" *ngIf="configurable"
|
|
1605
|
+
[iconData]="iconCache.getIcon(icon.MagicWand)"
|
|
1606
|
+
[label]="'CONFIGURE' | localize"
|
|
1607
|
+
(onClick)="startConfiguration.emit()"
|
|
1608
|
+
></co-button>
|
|
1609
|
+
<co-button #addtocartbutton class="cart-button" *ngIf="!configurable"
|
|
1610
|
+
[iconData]="iconCache.getIcon(icon.AddToCartDrop)"
|
|
1611
|
+
[label]="'SHOPPING_CART_IN' | localize"
|
|
1612
|
+
(onClick)="handleAddToCartClick(quantity)"
|
|
1613
|
+
></co-button>
|
|
1614
|
+
<co-button class="cart-button quote" *ngIf="!configurable && showQuoteButton"
|
|
1615
|
+
[iconData]="iconCache.getIcon(icon.Quote)"
|
|
1616
|
+
[label]="'QUOTATION' | localize"
|
|
1617
|
+
(onClick)="handleAddToQuoteClick(quantity)"
|
|
1618
|
+
></co-button>
|
|
1619
|
+
</div>
|
|
1620
|
+
</div>
|
|
1621
|
+
`,
|
|
1622
|
+
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"]
|
|
1623
|
+
},] }
|
|
1624
|
+
];
|
|
1552
1625
|
ProductAddtocartComponent.ctorParameters = () => [
|
|
1553
1626
|
{ type: IconCacheService },
|
|
1554
1627
|
{ type: ProductConnectorService },
|
|
1555
1628
|
{ type: ProductEventService },
|
|
1556
1629
|
{ type: ProductSettingsService }
|
|
1557
1630
|
];
|
|
1558
|
-
|
|
1559
|
-
ViewChild
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
Input
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
], ProductAddtocartComponent.prototype, "configuring", void 0);
|
|
1570
|
-
__decorate([
|
|
1571
|
-
HostBinding('class.full-screen'),
|
|
1572
|
-
Input()
|
|
1573
|
-
], ProductAddtocartComponent.prototype, "fullscreen", void 0);
|
|
1574
|
-
__decorate([
|
|
1575
|
-
Input()
|
|
1576
|
-
], ProductAddtocartComponent.prototype, "quantity", null);
|
|
1577
|
-
__decorate([
|
|
1578
|
-
Output()
|
|
1579
|
-
], ProductAddtocartComponent.prototype, "startConfiguration", void 0);
|
|
1580
|
-
__decorate([
|
|
1581
|
-
Output()
|
|
1582
|
-
], ProductAddtocartComponent.prototype, "addToCartClick", void 0);
|
|
1583
|
-
__decorate([
|
|
1584
|
-
Output()
|
|
1585
|
-
], ProductAddtocartComponent.prototype, "addToQuoteClick", void 0);
|
|
1586
|
-
ProductAddtocartComponent = __decorate([
|
|
1587
|
-
Component({
|
|
1588
|
-
selector: 'app-product-addtocart',
|
|
1589
|
-
template: "<div class=\"atc-wrapper\">\n <co-number-picker *ngIf=\"!configurable && !configuring\" class=\"quantity-select\" [(model)]=\"quantity\" [min]=\"1\" horizontal></co-number-picker>\n <div class=\"button-wrapper\">\n <co-button class=\"configure-button\" *ngIf=\"configurable\"\n [iconData]=\"iconCache.getIcon(icon.MagicWand)\"\n [label]=\"'CONFIGURE' | localize\"\n (onClick)=\"startConfiguration.emit()\"\n ></co-button>\n <co-button #addtocartbutton class=\"cart-button\" *ngIf=\"!configurable\"\n [iconData]=\"iconCache.getIcon(icon.AddToCartDrop)\"\n [label]=\"'SHOPPING_CART_IN' | localize\"\n (onClick)=\"handleAddToCartClick(quantity)\"\n ></co-button>\n <co-button class=\"cart-button quote\" *ngIf=\"!configurable && showQuoteButton\"\n [iconData]=\"iconCache.getIcon(icon.Quote)\"\n [label]=\"'QUOTATION' | localize\"\n (onClick)=\"handleAddToQuoteClick(quantity)\"\n ></co-button>\n </div>\n</div>\n",
|
|
1590
|
-
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:0 0!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}"]
|
|
1591
|
-
})
|
|
1592
|
-
], ProductAddtocartComponent);
|
|
1631
|
+
ProductAddtocartComponent.propDecorators = {
|
|
1632
|
+
addToCartButton: [{ type: ViewChild, args: ['addtocartbutton', { read: ElementRef },] }],
|
|
1633
|
+
article: [{ type: Input }],
|
|
1634
|
+
configurable: [{ type: Input }],
|
|
1635
|
+
configuring: [{ type: Input }],
|
|
1636
|
+
fullscreen: [{ type: HostBinding, args: ['class.full-screen',] }, { type: Input }],
|
|
1637
|
+
quantity: [{ type: Input }],
|
|
1638
|
+
startConfiguration: [{ type: Output }],
|
|
1639
|
+
addToCartClick: [{ type: Output }],
|
|
1640
|
+
addToQuoteClick: [{ type: Output }]
|
|
1641
|
+
};
|
|
1593
1642
|
|
|
1594
|
-
|
|
1643
|
+
class ProductAddtocartModule {
|
|
1644
|
+
}
|
|
1645
|
+
ProductAddtocartModule.decorators = [
|
|
1646
|
+
{ type: NgModule, args: [{
|
|
1647
|
+
imports: [
|
|
1648
|
+
CommonModule,
|
|
1649
|
+
NumberPickerModule,
|
|
1650
|
+
ButtonModule,
|
|
1651
|
+
PipeModule
|
|
1652
|
+
],
|
|
1653
|
+
declarations: [
|
|
1654
|
+
ProductAddtocartComponent
|
|
1655
|
+
],
|
|
1656
|
+
exports: [
|
|
1657
|
+
ProductAddtocartComponent
|
|
1658
|
+
]
|
|
1659
|
+
},] }
|
|
1660
|
+
];
|
|
1661
|
+
|
|
1662
|
+
class ProductRelatedComponent {
|
|
1595
1663
|
constructor(_iOne, _appEventService) {
|
|
1596
1664
|
this._iOne = _iOne;
|
|
1597
1665
|
this._appEventService = _appEventService;
|
|
@@ -1632,36 +1700,108 @@ let ProductRelatedComponent = class ProductRelatedComponent {
|
|
|
1632
1700
|
}
|
|
1633
1701
|
});
|
|
1634
1702
|
}
|
|
1635
|
-
}
|
|
1703
|
+
}
|
|
1704
|
+
ProductRelatedComponent.decorators = [
|
|
1705
|
+
{ type: Component, args: [{
|
|
1706
|
+
selector: 'app-product-related',
|
|
1707
|
+
template: `
|
|
1708
|
+
<div *ngIf="articles && articles.length > 0">
|
|
1709
|
+
<app-header [label]="label" [amount]="articles?.length" *ngIf="label"></app-header>
|
|
1710
|
+
<co-scroll-container>
|
|
1711
|
+
<div class="article-wrapper" *ngFor="let article of articles">
|
|
1712
|
+
<co-article-tile
|
|
1713
|
+
[imageData]="article.image.documentBodyAsDataUri"
|
|
1714
|
+
[description]="article.description"
|
|
1715
|
+
[price]="article.price"
|
|
1716
|
+
[level]="article.stockStatus"
|
|
1717
|
+
[isSmallModus]="isSmallModus"
|
|
1718
|
+
[hasConfigureButton]="article.goodType === 'B'"
|
|
1719
|
+
(contentClick)="handleContentClick(article)"
|
|
1720
|
+
></co-article-tile>
|
|
1721
|
+
</div>
|
|
1722
|
+
</co-scroll-container>
|
|
1723
|
+
</div>
|
|
1724
|
+
`,
|
|
1725
|
+
styles: [":host{display:block}.article-wrapper{display:flex;flex-direction:row}.article-wrapper ::ng-deep co-tile.small{min-width:189px;max-width:189px;height:100%}.article-wrapper ::ng-deep co-tile.small:hover{box-shadow:none;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}.article-wrapper ::ng-deep co-tile.small .tile-wrapper div.image{height:100px}.article-wrapper ::ng-deep co-tile.small .tile-wrapper .tile-bottom .left-buttons{position:absolute;top:0;right:0;margin:0 -32px 0 0;align-items:flex-end;transition:.2s ease-in-out}.article-wrapper ::ng-deep co-tile.small .tile-wrapper .tile-bottom .left-buttons ::ng-deep co-button.card-button.mini{width:30px;height:30px;transform:none;border-radius:4px;margin:0 0 5px}.article-wrapper ::ng-deep co-tile.small .tile-wrapper .tile-bottom .left-buttons ::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"]
|
|
1726
|
+
},] }
|
|
1727
|
+
];
|
|
1636
1728
|
ProductRelatedComponent.ctorParameters = () => [
|
|
1637
1729
|
{ type: ProductConnectorService },
|
|
1638
1730
|
{ type: ProductEventService }
|
|
1639
1731
|
];
|
|
1640
|
-
|
|
1641
|
-
Input
|
|
1642
|
-
|
|
1643
|
-
|
|
1644
|
-
Input
|
|
1645
|
-
|
|
1646
|
-
__decorate([
|
|
1647
|
-
Input()
|
|
1648
|
-
], ProductRelatedComponent.prototype, "isSmallModus", void 0);
|
|
1649
|
-
__decorate([
|
|
1650
|
-
Input()
|
|
1651
|
-
], ProductRelatedComponent.prototype, "articles", null);
|
|
1652
|
-
ProductRelatedComponent = __decorate([
|
|
1653
|
-
Component({
|
|
1654
|
-
selector: 'app-product-related',
|
|
1655
|
-
template: "<div *ngIf=\"articles && articles.length > 0\">\n <app-header [label]=\"label\" [amount]=\"articles?.length\" *ngIf=\"label\"></app-header>\n <co-scroll-container>\n <div class=\"article-wrapper\" *ngFor=\"let article of articles\">\n <co-article-tile\n [imageData]=\"article.image.documentBodyAsDataUri\"\n [description]=\"article.description\"\n [price]=\"article.price\"\n [level]=\"article.stockStatus\"\n [isSmallModus]=\"isSmallModus\"\n [hasConfigureButton]=\"article.goodType === 'B'\"\n (contentClick)=\"handleContentClick(article)\"\n ></co-article-tile>\n </div>\n </co-scroll-container>\n</div>\n",
|
|
1656
|
-
styles: [":host{display:block}.article-wrapper{display:flex;flex-direction:row}.article-wrapper ::ng-deep co-tile.small{min-width:189px;max-width:189px;height:100%}.article-wrapper ::ng-deep co-tile.small:hover{box-shadow:none;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:0!important;padding-bottom:0;overflow:hidden}.article-wrapper ::ng-deep co-tile.small .tile-wrapper div.image{height:100px}.article-wrapper ::ng-deep co-tile.small .tile-wrapper .tile-bottom .left-buttons{position:absolute;top:0;right:0;margin:0 -32px 0 0;align-items:flex-end;transition:.2s ease-in-out}.article-wrapper ::ng-deep co-tile.small .tile-wrapper .tile-bottom .left-buttons ::ng-deep co-button.card-button.mini{width:30px;height:30px;transform:none;border-radius:4px;margin:0 0 5px}.article-wrapper ::ng-deep co-tile.small .tile-wrapper .tile-bottom .left-buttons ::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:0!important;background:0 0!important}.article-wrapper ::ng-deep co-tile.small .tile-extra-bottom .price{color:#74b77f;margin:5px 0 0;font-weight:400;font-size:12px}"]
|
|
1657
|
-
})
|
|
1658
|
-
], ProductRelatedComponent);
|
|
1732
|
+
ProductRelatedComponent.propDecorators = {
|
|
1733
|
+
refType: [{ type: Input }],
|
|
1734
|
+
label: [{ type: Input }],
|
|
1735
|
+
isSmallModus: [{ type: Input }],
|
|
1736
|
+
articles: [{ type: Input }]
|
|
1737
|
+
};
|
|
1659
1738
|
|
|
1660
|
-
|
|
1739
|
+
class HeaderComponent {
|
|
1740
|
+
constructor() { }
|
|
1741
|
+
ngOnInit() {
|
|
1742
|
+
}
|
|
1743
|
+
}
|
|
1744
|
+
HeaderComponent.decorators = [
|
|
1745
|
+
{ type: Component, args: [{
|
|
1746
|
+
selector: 'app-header',
|
|
1747
|
+
template: `
|
|
1748
|
+
<ng-container *ngIf="label">
|
|
1749
|
+
<div class="header-wrapper">
|
|
1750
|
+
<h3 [textContent]="label"></h3>
|
|
1751
|
+
<span *ngIf="amount" class="amount" [textContent]="'(' + amount + ')'"></span>
|
|
1752
|
+
</div>
|
|
1753
|
+
</ng-container>
|
|
1754
|
+
`,
|
|
1755
|
+
styles: [".header-wrapper{display:flex;flex-direction:row;align-items:center}.header-wrapper .amount{margin-left:5px}\n"]
|
|
1756
|
+
},] }
|
|
1757
|
+
];
|
|
1758
|
+
HeaderComponent.ctorParameters = () => [];
|
|
1759
|
+
HeaderComponent.propDecorators = {
|
|
1760
|
+
label: [{ type: Input }],
|
|
1761
|
+
amount: [{ type: Input }]
|
|
1762
|
+
};
|
|
1763
|
+
|
|
1764
|
+
class HeaderModule {
|
|
1765
|
+
}
|
|
1766
|
+
HeaderModule.decorators = [
|
|
1767
|
+
{ type: NgModule, args: [{
|
|
1768
|
+
imports: [
|
|
1769
|
+
CommonModule
|
|
1770
|
+
],
|
|
1771
|
+
declarations: [
|
|
1772
|
+
HeaderComponent
|
|
1773
|
+
],
|
|
1774
|
+
exports: [
|
|
1775
|
+
HeaderComponent
|
|
1776
|
+
]
|
|
1777
|
+
},] }
|
|
1778
|
+
];
|
|
1779
|
+
|
|
1780
|
+
class ProductRelatedModule {
|
|
1781
|
+
}
|
|
1782
|
+
ProductRelatedModule.decorators = [
|
|
1783
|
+
{ type: NgModule, args: [{
|
|
1784
|
+
imports: [
|
|
1785
|
+
CommonModule,
|
|
1786
|
+
HeaderModule,
|
|
1787
|
+
ScrollContainerModule,
|
|
1788
|
+
ArticleTileModule
|
|
1789
|
+
],
|
|
1790
|
+
declarations: [
|
|
1791
|
+
ProductRelatedComponent
|
|
1792
|
+
],
|
|
1793
|
+
exports: [
|
|
1794
|
+
ProductRelatedComponent
|
|
1795
|
+
]
|
|
1796
|
+
},] }
|
|
1797
|
+
];
|
|
1798
|
+
|
|
1799
|
+
class ProductStockComponent {
|
|
1661
1800
|
constructor(_iOne, _iconCache) {
|
|
1662
1801
|
this._iOne = _iOne;
|
|
1663
1802
|
this._iconCache = _iconCache;
|
|
1664
1803
|
this.icon = IconEnum;
|
|
1804
|
+
this.openStockEvent = new EventEmitter();
|
|
1665
1805
|
this.iconData = this._iconCache.getIcon(this.icon.Warehouse);
|
|
1666
1806
|
}
|
|
1667
1807
|
set stockAndDelivery(value) {
|
|
@@ -1671,50 +1811,55 @@ let ProductStockComponent = class ProductStockComponent {
|
|
|
1671
1811
|
}
|
|
1672
1812
|
ngOnInit() {
|
|
1673
1813
|
}
|
|
1674
|
-
|
|
1814
|
+
openStock() {
|
|
1815
|
+
this.openStockEvent.emit();
|
|
1816
|
+
}
|
|
1817
|
+
}
|
|
1818
|
+
ProductStockComponent.decorators = [
|
|
1819
|
+
{ type: Component, args: [{
|
|
1820
|
+
selector: 'app-product-stock',
|
|
1821
|
+
template: `
|
|
1822
|
+
<!--<app-header [label]="'STOCK' | localize"></app-header>-->
|
|
1823
|
+
<!--<co-level-indicator [model]="'medium'"></co-level-indicator>-->
|
|
1824
|
+
<div class="product-stock-wrapper">
|
|
1825
|
+
<co-icon class="stock-icon" [iconData]="iconData"></co-icon>
|
|
1826
|
+
<div class="product-stock-fields" (click)="openStock()">
|
|
1827
|
+
<div class="pp-default-label in-stock" [textContent]="'PRODUCT_IN_STOCK' | localize" *ngIf="numberInStock > 0"></div>
|
|
1828
|
+
<div class="pp-default-label not-in-stock" [textContent]="'PRODUCT_NOT_IN_STOCK' | localize" *ngIf="!(numberInStock > 0)"></div>
|
|
1829
|
+
</div>
|
|
1830
|
+
</div>
|
|
1831
|
+
`,
|
|
1832
|
+
styles: [":host{display:block}.product-stock-wrapper{display:flex;flex-direction:row;align-items:center;border-top:1px solid #f6f5f4;border-bottom:1px solid #f6f5f4;padding:20px 15px;cursor:pointer}.product-stock-wrapper .stock-icon{margin:0 15px 0 0;width:40px;height:37px}.product-stock-wrapper .product-stock-fields{display:flex;flex-direction:row}.product-stock-wrapper .product-stock-fields .pp-default-label{font-size:14px;margin:0;color:#2b60a7;text-decoration:underline}.product-stock-wrapper .product-stock-fields .pp-default-label:after{content:\"\";width:10px;height:10px;border-radius:10px;background:#74B77F;display:inline-block;margin:0 0 0 15px}.product-stock-wrapper .product-stock-fields .pp-default-label.not-in-stock:after{background:#f15152}@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"]
|
|
1833
|
+
},] }
|
|
1834
|
+
];
|
|
1675
1835
|
ProductStockComponent.ctorParameters = () => [
|
|
1676
1836
|
{ type: ProductConnectorService },
|
|
1677
1837
|
{ type: IconCacheService }
|
|
1678
1838
|
];
|
|
1679
|
-
|
|
1680
|
-
Input
|
|
1681
|
-
|
|
1682
|
-
|
|
1683
|
-
Component({
|
|
1684
|
-
selector: 'app-product-stock',
|
|
1685
|
-
template: "<!--<app-header [label]=\"'STOCK' | localize\"></app-header>-->\n<!--<co-level-indicator [model]=\"'medium'\"></co-level-indicator>-->\n<div class=\"product-stock-wrapper\">\n <co-icon class=\"stock-icon\" [iconData]=\"iconData\"></co-icon>\n <div class=\"product-stock-fields\">\n <div class=\"pp-default-label in-stock\" [textContent]=\"'PRODUCT_IN_STOCK' | localize\" *ngIf=\"numberInStock > 0\"></div>\n <div class=\"pp-default-label not-in-stock\" [textContent]=\"'PRODUCT_NOT_IN_STOCK' | localize\" *ngIf=\"!(numberInStock > 0)\"></div>\n </div>\n</div>\n",
|
|
1686
|
-
styles: [":host{display:block}.product-stock-wrapper{display:flex;flex-direction:row;align-items:center;border-top:1px solid #f6f5f4;border-bottom:1px solid #f6f5f4;padding:20px 15px}.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}.product-stock-wrapper .product-stock-fields .pp-default-label:after{content:\"\";width:10px;height:10px;border-radius:10px;background:#74b77f;display:inline-block;margin:0 0 0 15px}.product-stock-wrapper .product-stock-fields .pp-default-label.not-in-stock:after{background:#f15152}@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}}"]
|
|
1687
|
-
})
|
|
1688
|
-
], ProductStockComponent);
|
|
1839
|
+
ProductStockComponent.propDecorators = {
|
|
1840
|
+
stockAndDelivery: [{ type: Input }],
|
|
1841
|
+
openStockEvent: [{ type: Output }]
|
|
1842
|
+
};
|
|
1689
1843
|
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
|
|
1693
|
-
|
|
1694
|
-
|
|
1695
|
-
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
LocalizePipe.ctorParameters = () => [
|
|
1708
|
-
{ type: DictionaryService }
|
|
1709
|
-
];
|
|
1710
|
-
LocalizePipe = __decorate([
|
|
1711
|
-
Pipe({
|
|
1712
|
-
name: 'localize'
|
|
1713
|
-
})
|
|
1714
|
-
// A pipe for localizing string values in view templates.
|
|
1715
|
-
], LocalizePipe);
|
|
1844
|
+
class ProductStockModule {
|
|
1845
|
+
}
|
|
1846
|
+
ProductStockModule.decorators = [
|
|
1847
|
+
{ type: NgModule, args: [{
|
|
1848
|
+
imports: [
|
|
1849
|
+
CommonModule,
|
|
1850
|
+
IconModule,
|
|
1851
|
+
PipeModule
|
|
1852
|
+
],
|
|
1853
|
+
declarations: [
|
|
1854
|
+
ProductStockComponent
|
|
1855
|
+
],
|
|
1856
|
+
exports: [
|
|
1857
|
+
ProductStockComponent
|
|
1858
|
+
]
|
|
1859
|
+
},] }
|
|
1860
|
+
];
|
|
1716
1861
|
|
|
1717
|
-
|
|
1862
|
+
class ProductDeliveryComponent {
|
|
1718
1863
|
constructor(_localizePipe, _iOne, _iconCache) {
|
|
1719
1864
|
this._localizePipe = _localizePipe;
|
|
1720
1865
|
this._iOne = _iOne;
|
|
@@ -1732,24 +1877,51 @@ let ProductDeliveryComponent = class ProductDeliveryComponent {
|
|
|
1732
1877
|
}
|
|
1733
1878
|
ngOnInit() {
|
|
1734
1879
|
}
|
|
1735
|
-
}
|
|
1880
|
+
}
|
|
1881
|
+
ProductDeliveryComponent.decorators = [
|
|
1882
|
+
{ type: Component, args: [{
|
|
1883
|
+
selector: 'app-product-delivery',
|
|
1884
|
+
template: `
|
|
1885
|
+
<!--<app-header [label]="'DELIVERY_TIME_PERIOD' | localize"></app-header>-->
|
|
1886
|
+
<div class="product-delivery-wrapper">
|
|
1887
|
+
<co-icon class="delivery-icon" [iconData]="iconData"></co-icon>
|
|
1888
|
+
<div class="product-delivery-fields">
|
|
1889
|
+
<div class="pp-default-label" [textContent]="'DELIVERY_TIME_PERIOD' | localize"></div>
|
|
1890
|
+
<div class="pp-default-description" [textContent]="deliveryDescription | date:'dd MMMM yyyy'"></div>
|
|
1891
|
+
</div>
|
|
1892
|
+
</div>
|
|
1893
|
+
`,
|
|
1894
|
+
styles: [":host{display:block}.product-delivery-wrapper{display:flex;flex-direction:row;align-items:center;border-bottom:1px solid #f6f5f4;padding:20px 15px}.product-delivery-wrapper .delivery-icon{margin:0 15px 0 0;width:40px;height:37px}.product-delivery-wrapper .product-delivery-fields{display:flex;flex-direction:column}.product-delivery-wrapper .product-delivery-fields .pp-default-label{font-size:14px;margin:0}@media screen and (max-width: 400px){.product-delivery-wrapper{padding:15px 0 15px 10px}.product-delivery-wrapper .delivery-icon{margin:0 15px 0 0;width:32px;height:28px}.product-delivery-wrapper .product-delivery-fields .pp-default-label{font-size:13px}}\n"]
|
|
1895
|
+
},] }
|
|
1896
|
+
];
|
|
1736
1897
|
ProductDeliveryComponent.ctorParameters = () => [
|
|
1737
1898
|
{ type: LocalizePipe },
|
|
1738
1899
|
{ type: ProductConnectorService },
|
|
1739
1900
|
{ type: IconCacheService }
|
|
1740
1901
|
];
|
|
1741
|
-
|
|
1742
|
-
Input
|
|
1743
|
-
|
|
1744
|
-
ProductDeliveryComponent = __decorate([
|
|
1745
|
-
Component({
|
|
1746
|
-
selector: 'app-product-delivery',
|
|
1747
|
-
template: "<!--<app-header [label]=\"'DELIVERY_TIME_PERIOD' | localize\"></app-header>-->\n<div class=\"product-delivery-wrapper\">\n <co-icon class=\"delivery-icon\" [iconData]=\"iconData\"></co-icon>\n <div class=\"product-delivery-fields\">\n <div class=\"pp-default-label\" [textContent]=\"'DELIVERY_TIME_PERIOD' | localize\"></div>\n <div class=\"pp-default-description\" [textContent]=\"deliveryDescription | date:'dd MMMM yyyy'\"></div>\n </div>\n</div>\n",
|
|
1748
|
-
styles: [":host{display:block}.product-delivery-wrapper{display:flex;flex-direction:row;align-items:center;border-bottom:1px solid #f6f5f4;padding:20px 15px}.product-delivery-wrapper .delivery-icon{margin:0 15px 0 0;width:40px;height:37px}.product-delivery-wrapper .product-delivery-fields{display:flex;flex-direction:column}.product-delivery-wrapper .product-delivery-fields .pp-default-label{font-size:14px;margin:0}@media screen and (max-width:400px){.product-delivery-wrapper{padding:15px 0 15px 10px}.product-delivery-wrapper .delivery-icon{margin:0 15px 0 0;width:32px;height:28px}.product-delivery-wrapper .product-delivery-fields .pp-default-label{font-size:13px}}"]
|
|
1749
|
-
})
|
|
1750
|
-
], ProductDeliveryComponent);
|
|
1902
|
+
ProductDeliveryComponent.propDecorators = {
|
|
1903
|
+
stockAndDelivery: [{ type: Input }]
|
|
1904
|
+
};
|
|
1751
1905
|
|
|
1752
|
-
|
|
1906
|
+
class ProductDeliveryModule {
|
|
1907
|
+
}
|
|
1908
|
+
ProductDeliveryModule.decorators = [
|
|
1909
|
+
{ type: NgModule, args: [{
|
|
1910
|
+
imports: [
|
|
1911
|
+
CommonModule,
|
|
1912
|
+
IconModule,
|
|
1913
|
+
PipeModule
|
|
1914
|
+
],
|
|
1915
|
+
declarations: [
|
|
1916
|
+
ProductDeliveryComponent
|
|
1917
|
+
],
|
|
1918
|
+
exports: [
|
|
1919
|
+
ProductDeliveryComponent
|
|
1920
|
+
]
|
|
1921
|
+
},] }
|
|
1922
|
+
];
|
|
1923
|
+
|
|
1924
|
+
class ProductInfoTabsComponent {
|
|
1753
1925
|
constructor(_appEventService) {
|
|
1754
1926
|
this._appEventService = _appEventService;
|
|
1755
1927
|
this.activeTabHeight = 0;
|
|
@@ -1791,119 +1963,45 @@ let ProductInfoTabsComponent = class ProductInfoTabsComponent {
|
|
|
1791
1963
|
this.tabs.push({ title: 'SYMBOLS' });
|
|
1792
1964
|
}
|
|
1793
1965
|
}
|
|
1794
|
-
}
|
|
1966
|
+
}
|
|
1967
|
+
ProductInfoTabsComponent.decorators = [
|
|
1968
|
+
{ type: Component, args: [{
|
|
1969
|
+
selector: 'app-product-info-tabs',
|
|
1970
|
+
template: `
|
|
1971
|
+
<div class="tab-container">
|
|
1972
|
+
<div class="tab-header">
|
|
1973
|
+
<button *ngFor="let tab of tabs; let i = index" class="tab-header-button" [class.active]="activeTab === i" [textContent]="tab.title | localize" (click)="updateTab(i)"></button>
|
|
1974
|
+
</div>
|
|
1975
|
+
<div class="tab-content" #tabContent [style.height.px]="(activeTabHeight > 0 ? activeTabHeight : '')">
|
|
1976
|
+
<div class="tab-content-item" *ngFor="let tab of tabs; let i = index" [class.active]="activeTab === i">
|
|
1977
|
+
<ng-container *ngIf="i === 0">
|
|
1978
|
+
<app-product-additional-info class="" [article]="articleObject" [showLabel]="false"></app-product-additional-info>
|
|
1979
|
+
</ng-container>
|
|
1980
|
+
<ng-container *ngIf="i === 1">
|
|
1981
|
+
<app-product-properties class="" [article]="articleObject" [showLabel]="false"></app-product-properties>
|
|
1982
|
+
</ng-container>
|
|
1983
|
+
<ng-container *ngIf="i === 2">
|
|
1984
|
+
<app-product-documents [showLabel]="false" class="" *ngIf="articleObject?.documents && articleObject?.documents.length > 0" [documents]="articleObject?.documents"></app-product-documents>
|
|
1985
|
+
</ng-container>
|
|
1986
|
+
<ng-container *ngIf="i === 3">
|
|
1987
|
+
<app-product-symbols class="" *ngIf="articleObject?.symbols && articleObject?.symbols.length > 0" [symbols]="articleObject?.symbols"></app-product-symbols>
|
|
1988
|
+
</ng-container>
|
|
1989
|
+
</div>
|
|
1990
|
+
</div>
|
|
1991
|
+
</div>
|
|
1992
|
+
`,
|
|
1993
|
+
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:bold;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"]
|
|
1994
|
+
},] }
|
|
1995
|
+
];
|
|
1795
1996
|
ProductInfoTabsComponent.ctorParameters = () => [
|
|
1796
1997
|
{ type: ProductEventService }
|
|
1797
1998
|
];
|
|
1798
|
-
|
|
1799
|
-
ViewChild
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
Input()
|
|
1803
|
-
], ProductInfoTabsComponent.prototype, "article", null);
|
|
1804
|
-
ProductInfoTabsComponent = __decorate([
|
|
1805
|
-
Component({
|
|
1806
|
-
selector: 'app-product-info-tabs',
|
|
1807
|
-
template: "<div class=\"tab-container\">\r\n <div class=\"tab-header\">\r\n <button *ngFor=\"let tab of tabs; let i = index\" class=\"tab-header-button\" [class.active]=\"activeTab === i\" [textContent]=\"tab.title | localize\" (click)=\"updateTab(i)\"></button>\r\n </div>\r\n <div class=\"tab-content\" #tabContent [style.height.px]=\"(activeTabHeight > 0 ? activeTabHeight : '')\">\r\n <div class=\"tab-content-item\" *ngFor=\"let tab of tabs; let i = index\" [class.active]=\"activeTab === i\">\r\n <ng-container *ngIf=\"i === 0\">\r\n <app-product-additional-info class=\"\" [article]=\"articleObject\" [showLabel]=\"false\"></app-product-additional-info>\r\n </ng-container>\r\n <ng-container *ngIf=\"i === 1\">\r\n <app-product-properties class=\"\" [article]=\"articleObject\" [showLabel]=\"false\"></app-product-properties>\r\n </ng-container>\r\n <ng-container *ngIf=\"i === 2\">\r\n <app-product-documents [showLabel]=\"false\" class=\"\" *ngIf=\"articleObject?.documents && articleObject?.documents.length > 0\" [documents]=\"articleObject?.documents\"></app-product-documents>\r\n </ng-container>\r\n <ng-container *ngIf=\"i === 3\">\r\n <app-product-symbols class=\"\" *ngIf=\"articleObject?.symbols && articleObject?.symbols.length > 0\" [symbols]=\"articleObject?.symbols\"></app-product-symbols>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n",
|
|
1808
|
-
styles: [":focus{outline:0}:host .tab-header{border-bottom:3px solid #f6f5f4;margin:0 0 30px}:host .tab-header .tab-header-button{background:0 0;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:.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}}"]
|
|
1809
|
-
})
|
|
1810
|
-
], ProductInfoTabsComponent);
|
|
1811
|
-
|
|
1812
|
-
let PipeModule = class PipeModule {
|
|
1813
|
-
};
|
|
1814
|
-
PipeModule = __decorate([
|
|
1815
|
-
NgModule({
|
|
1816
|
-
exports: [
|
|
1817
|
-
LocalizePipe
|
|
1818
|
-
],
|
|
1819
|
-
declarations: [
|
|
1820
|
-
LocalizePipe
|
|
1821
|
-
],
|
|
1822
|
-
providers: [
|
|
1823
|
-
LocalizePipe
|
|
1824
|
-
]
|
|
1825
|
-
})
|
|
1826
|
-
], PipeModule);
|
|
1827
|
-
|
|
1828
|
-
let ProductDocumentsComponent = class ProductDocumentsComponent {
|
|
1829
|
-
constructor(iconCache) {
|
|
1830
|
-
this.iconCache = iconCache;
|
|
1831
|
-
this.icon = IconEnum;
|
|
1832
|
-
this.showLabel = false;
|
|
1833
|
-
this.documents = [];
|
|
1834
|
-
}
|
|
1835
|
-
};
|
|
1836
|
-
ProductDocumentsComponent.ctorParameters = () => [
|
|
1837
|
-
{ type: IconCacheService }
|
|
1838
|
-
];
|
|
1839
|
-
__decorate([
|
|
1840
|
-
Input()
|
|
1841
|
-
], ProductDocumentsComponent.prototype, "showLabel", void 0);
|
|
1842
|
-
__decorate([
|
|
1843
|
-
Input()
|
|
1844
|
-
], ProductDocumentsComponent.prototype, "documents", void 0);
|
|
1845
|
-
ProductDocumentsComponent = __decorate([
|
|
1846
|
-
Component({
|
|
1847
|
-
selector: 'app-product-documents',
|
|
1848
|
-
template: "<app-header *ngIf=\"showLabel\" [label]=\"'DOCUMENTS' | localize\" [amount]=\"documents?.length\"></app-header>\n<div *ngIf=\"documents && documents.length > 0\">\n <co-files-upload [documents]=\"documents\" [canAdd]=\"false\" readonly></co-files-upload>\n</div>\n",
|
|
1849
|
-
styles: [":host{display:block}::ng-deep co-files-upload{flex-direction:column!important;width:100%}::ng-deep co-file-upload{margin:0!important;border-bottom:1px solid #f6f5f4}::ng-deep co-file-upload:first-child{border-top:1px solid #f6f5f4}::ng-deep co-files-upload .files-upload-wrapper{flex-direction:column!important;width:100%}::ng-deep co-file-upload co-tile{max-width:100%!important;width:100%;position:relative}::ng-deep co-file-upload co-tile:hover{box-shadow:none!important}::ng-deep co-file-upload co-tile:hover .tile-extra-bottom{background-color:#f6f5f4!important}::ng-deep co-file-upload co-tile .tile-wrapper{position:absolute!important;left:0;top:0;width:100%;height:100%;z-index:2;opacity:0;box-sizing:border-box}::ng-deep co-file-upload co-tile .tile-wrapper .image{position:absolute!important;left:0;top:0;width:100%!important;height:100%!important;cursor:pointer}::ng-deep co-file-upload co-tile .tile-extra-bottom{outline:0!important;border:none!important;background:url(../../../assets/icons/download.svg) left 6px center/36px auto no-repeat!important;line-height:20px;padding:20px 20px 20px 60px!important;margin:0!important}::ng-deep co-file-upload co-tile .tile-extra-bottom .main{padding:0!important}"]
|
|
1850
|
-
})
|
|
1851
|
-
], ProductDocumentsComponent);
|
|
1852
|
-
|
|
1853
|
-
let HeaderComponent = class HeaderComponent {
|
|
1854
|
-
constructor() { }
|
|
1855
|
-
ngOnInit() {
|
|
1856
|
-
}
|
|
1857
|
-
};
|
|
1858
|
-
__decorate([
|
|
1859
|
-
Input()
|
|
1860
|
-
], HeaderComponent.prototype, "label", void 0);
|
|
1861
|
-
__decorate([
|
|
1862
|
-
Input()
|
|
1863
|
-
], HeaderComponent.prototype, "amount", void 0);
|
|
1864
|
-
HeaderComponent = __decorate([
|
|
1865
|
-
Component({
|
|
1866
|
-
selector: 'app-header',
|
|
1867
|
-
template: "<ng-container *ngIf=\"label\">\n <div class=\"header-wrapper\">\n <h3 [textContent]=\"label\"></h3>\n <span *ngIf=\"amount\" class=\"amount\" [textContent]=\"'(' + amount + ')'\"></span>\n </div>\n</ng-container>\n",
|
|
1868
|
-
styles: [".header-wrapper{display:flex;flex-direction:row;align-items:center}.header-wrapper .amount{margin-left:5px}"]
|
|
1869
|
-
})
|
|
1870
|
-
], HeaderComponent);
|
|
1871
|
-
|
|
1872
|
-
var TabType;
|
|
1873
|
-
(function (TabType) {
|
|
1874
|
-
TabType["Additional"] = "additional";
|
|
1875
|
-
TabType["Properties"] = "properties";
|
|
1876
|
-
})(TabType || (TabType = {}));
|
|
1877
|
-
let ProductInfoComponent = class ProductInfoComponent {
|
|
1878
|
-
constructor() {
|
|
1879
|
-
this.tabType = TabType;
|
|
1880
|
-
this.currentTab = TabType.Additional;
|
|
1881
|
-
}
|
|
1882
|
-
ngOnInit() {
|
|
1883
|
-
}
|
|
1884
|
-
switchTab(tab) {
|
|
1885
|
-
this.currentTab = tab;
|
|
1886
|
-
}
|
|
1887
|
-
};
|
|
1888
|
-
__decorate([
|
|
1889
|
-
Input()
|
|
1890
|
-
], ProductInfoComponent.prototype, "article", void 0);
|
|
1891
|
-
ProductInfoComponent = __decorate([
|
|
1892
|
-
Component({
|
|
1893
|
-
selector: 'app-product-info',
|
|
1894
|
-
template: "<div>\n <div class=\"info-wrapper\">\n <div class=\"info-navigation\">\n <span [textContent]=\"'ADDITIONAL_DATA' | localize\" class=\"navigator\" [class.selected]=\"currentTab === tabType.Additional\" (mouseup)=\"switchTab(tabType.Additional)\"></span>\n <span [textContent]=\"'PROPERTIES' | localize\" class=\"navigator\" [class.selected]=\"currentTab === tabType.Properties\" (mouseup)=\"switchTab(tabType.Properties)\"></span>\n </div>\n <ng-container [ngSwitch]=\"currentTab\" class=\"content\">\n <div *ngSwitchCase=\"tabType.Additional\" @showContent>\n <app-product-additional-info\n [article]=\"article\"\n ></app-product-additional-info>\n </div>\n <div *ngSwitchCase=\"tabType.Properties\" @showContent>\n <app-product-properties [article]=\"article\"></app-product-properties>\n </div>\n </ng-container>\n </div>\n</div>\n",
|
|
1895
|
-
animations: [
|
|
1896
|
-
trigger('showContent', [
|
|
1897
|
-
state('void', style({ 'opacity': '0' })),
|
|
1898
|
-
state('*', style({ 'opacity': '1' })),
|
|
1899
|
-
transition('void => *', animate('200ms 100ms ease-in-out')),
|
|
1900
|
-
])
|
|
1901
|
-
],
|
|
1902
|
-
styles: [".info-navigation{margin:30px 0}.info-navigation .navigator:not(:last-child){margin-right:30px}.navigator{font-size:15px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.navigator.selected{color:#2b60a7}"]
|
|
1903
|
-
})
|
|
1904
|
-
], ProductInfoComponent);
|
|
1999
|
+
ProductInfoTabsComponent.propDecorators = {
|
|
2000
|
+
tabContent: [{ type: ViewChild, args: ['tabContent',] }],
|
|
2001
|
+
article: [{ type: Input }]
|
|
2002
|
+
};
|
|
1905
2003
|
|
|
1906
|
-
|
|
2004
|
+
class ProductAdditionalInfoComponent {
|
|
1907
2005
|
constructor(_sanitizer, _connectorService, _changeDetector) {
|
|
1908
2006
|
this._sanitizer = _sanitizer;
|
|
1909
2007
|
this._connectorService = _connectorService;
|
|
@@ -1983,25 +2081,45 @@ let ProductAdditionalInfoComponent = class ProductAdditionalInfoComponent {
|
|
|
1983
2081
|
return;
|
|
1984
2082
|
});
|
|
1985
2083
|
}
|
|
1986
|
-
}
|
|
2084
|
+
}
|
|
2085
|
+
ProductAdditionalInfoComponent.decorators = [
|
|
2086
|
+
{ type: Component, args: [{
|
|
2087
|
+
selector: 'app-product-additional-info',
|
|
2088
|
+
template: `
|
|
2089
|
+
<h3 *ngIf="showLabel" [textContent]="'ADDITIONAL_DATA' | localize"></h3>
|
|
2090
|
+
<ng-container *ngIf="textParts && textParts.length > 0">
|
|
2091
|
+
<div class="additional-info-parts" *ngFor="let text of textParts" [innerHTML]="text"></div>
|
|
2092
|
+
</ng-container>
|
|
2093
|
+
`,
|
|
2094
|
+
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"]
|
|
2095
|
+
},] }
|
|
2096
|
+
];
|
|
1987
2097
|
ProductAdditionalInfoComponent.ctorParameters = () => [
|
|
1988
2098
|
{ type: DomSanitizer },
|
|
1989
2099
|
{ type: ProductConnectorService },
|
|
1990
2100
|
{ type: ChangeDetectorRef }
|
|
1991
2101
|
];
|
|
1992
|
-
|
|
1993
|
-
Input
|
|
1994
|
-
|
|
1995
|
-
|
|
1996
|
-
|
|
1997
|
-
|
|
1998
|
-
|
|
1999
|
-
|
|
2000
|
-
|
|
2001
|
-
|
|
2002
|
-
|
|
2003
|
-
|
|
2004
|
-
],
|
|
2102
|
+
ProductAdditionalInfoComponent.propDecorators = {
|
|
2103
|
+
article: [{ type: Input }],
|
|
2104
|
+
showLabel: [{ type: Input }]
|
|
2105
|
+
};
|
|
2106
|
+
|
|
2107
|
+
class ProductAdditionalInfoModule {
|
|
2108
|
+
}
|
|
2109
|
+
ProductAdditionalInfoModule.decorators = [
|
|
2110
|
+
{ type: NgModule, args: [{
|
|
2111
|
+
imports: [
|
|
2112
|
+
CommonModule,
|
|
2113
|
+
PipeModule
|
|
2114
|
+
],
|
|
2115
|
+
declarations: [
|
|
2116
|
+
ProductAdditionalInfoComponent
|
|
2117
|
+
],
|
|
2118
|
+
exports: [
|
|
2119
|
+
ProductAdditionalInfoComponent
|
|
2120
|
+
]
|
|
2121
|
+
},] }
|
|
2122
|
+
];
|
|
2005
2123
|
|
|
2006
2124
|
const propertyMap = new Map([
|
|
2007
2125
|
['articleNr', 'ARTICLE_NUMBER'],
|
|
@@ -2014,7 +2132,7 @@ const propertyMap = new Map([
|
|
|
2014
2132
|
['height', 'HEIGHT'],
|
|
2015
2133
|
['width', 'WIDTH']
|
|
2016
2134
|
]);
|
|
2017
|
-
|
|
2135
|
+
class ProductPropertiesComponent {
|
|
2018
2136
|
constructor() {
|
|
2019
2137
|
this.showLabel = false;
|
|
2020
2138
|
this.properties = [];
|
|
@@ -2039,22 +2157,95 @@ let ProductPropertiesComponent = class ProductPropertiesComponent {
|
|
|
2039
2157
|
}
|
|
2040
2158
|
});
|
|
2041
2159
|
}
|
|
2042
|
-
}
|
|
2043
|
-
|
|
2044
|
-
|
|
2045
|
-
|
|
2046
|
-
|
|
2047
|
-
|
|
2048
|
-
|
|
2049
|
-
|
|
2050
|
-
|
|
2051
|
-
|
|
2052
|
-
|
|
2053
|
-
|
|
2054
|
-
|
|
2055
|
-
|
|
2160
|
+
}
|
|
2161
|
+
ProductPropertiesComponent.decorators = [
|
|
2162
|
+
{ type: Component, args: [{
|
|
2163
|
+
selector: 'app-product-properties',
|
|
2164
|
+
template: `
|
|
2165
|
+
<div class="article-properties-wrapper">
|
|
2166
|
+
<h3 *ngIf="showLabel" [textContent]="'PROPERTIES' | localize"></h3>
|
|
2167
|
+
<ng-container *ngFor="let property of properties">
|
|
2168
|
+
<div class="article-property">
|
|
2169
|
+
<div class="article-property-key" [textContent]="property.key | localize"></div>
|
|
2170
|
+
<div class="article-property-value" [textContent]="property.value"></div>
|
|
2171
|
+
</div>
|
|
2172
|
+
</ng-container>
|
|
2173
|
+
</div>
|
|
2174
|
+
`,
|
|
2175
|
+
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"]
|
|
2176
|
+
},] }
|
|
2177
|
+
];
|
|
2178
|
+
ProductPropertiesComponent.ctorParameters = () => [];
|
|
2179
|
+
ProductPropertiesComponent.propDecorators = {
|
|
2180
|
+
article: [{ type: Input }],
|
|
2181
|
+
showLabel: [{ type: Input }]
|
|
2182
|
+
};
|
|
2056
2183
|
|
|
2057
|
-
|
|
2184
|
+
class ProductPropertiesModule {
|
|
2185
|
+
}
|
|
2186
|
+
ProductPropertiesModule.decorators = [
|
|
2187
|
+
{ type: NgModule, args: [{
|
|
2188
|
+
imports: [
|
|
2189
|
+
CommonModule,
|
|
2190
|
+
PipeModule
|
|
2191
|
+
],
|
|
2192
|
+
declarations: [
|
|
2193
|
+
ProductPropertiesComponent
|
|
2194
|
+
],
|
|
2195
|
+
exports: [
|
|
2196
|
+
ProductPropertiesComponent
|
|
2197
|
+
]
|
|
2198
|
+
},] }
|
|
2199
|
+
];
|
|
2200
|
+
|
|
2201
|
+
class ProductDocumentsComponent {
|
|
2202
|
+
constructor(iconCache) {
|
|
2203
|
+
this.iconCache = iconCache;
|
|
2204
|
+
this.icon = IconEnum;
|
|
2205
|
+
this.showLabel = false;
|
|
2206
|
+
this.documents = [];
|
|
2207
|
+
}
|
|
2208
|
+
}
|
|
2209
|
+
ProductDocumentsComponent.decorators = [
|
|
2210
|
+
{ type: Component, args: [{
|
|
2211
|
+
selector: 'app-product-documents',
|
|
2212
|
+
template: `
|
|
2213
|
+
<app-header *ngIf="showLabel" [label]="'DOCUMENTS' | localize" [amount]="documents?.length"></app-header>
|
|
2214
|
+
<div *ngIf="documents && documents.length > 0">
|
|
2215
|
+
<co-files-upload [documents]="documents" [canAdd]="false" readonly></co-files-upload>
|
|
2216
|
+
</div>
|
|
2217
|
+
`,
|
|
2218
|
+
styles: [":host{display:block}::ng-deep co-files-upload{flex-direction:column!important;width:100%}::ng-deep co-file-upload{margin:0!important;border-bottom:1px solid #f6f5f4}::ng-deep co-file-upload:first-child{border-top:1px solid #f6f5f4}::ng-deep co-files-upload .files-upload-wrapper{flex-direction:column!important;width:100%}::ng-deep co-file-upload co-tile{max-width:100%!important;width:100%;position:relative}::ng-deep co-file-upload co-tile:hover{box-shadow:none!important}::ng-deep co-file-upload co-tile:hover .tile-extra-bottom{background-color:#f6f5f4!important}::ng-deep co-file-upload co-tile .tile-wrapper{position:absolute!important;left:0;top:0;width:100%;height:100%;z-index:2;opacity:0;box-sizing:border-box}::ng-deep co-file-upload co-tile .tile-wrapper .image{position:absolute!important;left:0;top:0;width:100%!important;height:100%!important;cursor:pointer}::ng-deep co-file-upload co-tile .tile-extra-bottom{outline:none!important;border:none!important;background:transparent!important;line-height:20px;padding:20px 20px 20px 60px!important;margin:0!important;background:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22 standalone%3D%22no%22%3F%3E%3Csvg xmlns%3Adc%3D%22http%3A%2F%2Fpurl.org%2Fdc%2Felements%2F1.1%2F%22 xmlns%3Acc%3D%22http%3A%2F%2Fcreativecommons.org%2Fns%23%22 xmlns%3Ardf%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23%22 xmlns%3Asvg%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Asodipodi%3D%22http%3A%2F%2Fsodipodi.sourceforge.net%2FDTD%2Fsodipodi-0.dtd%22 xmlns%3Ainkscape%3D%22http%3A%2F%2Fwww.inkscape.org%2Fnamespaces%2Finkscape%22 viewBox%3D%220 0 50 50%22 version%3D%221.1%22 id%3D%22svg8%22 sodipodi%3Adocname%3D%22download.svg%22 inkscape%3Aversion%3D%220.92.4 (5da689c313%2C 2019-01-14)%22%3E %3Cmetadata id%3D%22metadata14%22%3E %3Crdf%3ARDF%3E %3Ccc%3AWork rdf%3Aabout%3D%22%22%3E %3Cdc%3Aformat%3Eimage%2Fsvg%2Bxml%3C%2Fdc%3Aformat%3E %3Cdc%3Atype rdf%3Aresource%3D%22http%3A%2F%2Fpurl.org%2Fdc%2Fdcmitype%2FStillImage%22 %2F%3E %3Cdc%3Atitle%3E%3C%2Fdc%3Atitle%3E %3C%2Fcc%3AWork%3E %3C%2Frdf%3ARDF%3E %3C%2Fmetadata%3E %3Cdefs id%3D%22defs12%22 %2F%3E %3Csodipodi%3Anamedview pagecolor%3D%22%23ffffff%22 bordercolor%3D%22%23666666%22 borderopacity%3D%221%22 objecttolerance%3D%2210%22 gridtolerance%3D%2210%22 guidetolerance%3D%2210%22 inkscape%3Apageopacity%3D%220%22 inkscape%3Apageshadow%3D%222%22 inkscape%3Awindow-width%3D%221920%22 inkscape%3Awindow-height%3D%221017%22 id%3D%22namedview10%22 showgrid%3D%22false%22 inkscape%3Azoom%3D%226.675088%22 inkscape%3Acx%3D%22-14.056273%22 inkscape%3Acy%3D%2229.806579%22 inkscape%3Awindow-x%3D%22-8%22 inkscape%3Awindow-y%3D%22-8%22 inkscape%3Awindow-maximized%3D%221%22 inkscape%3Acurrent-layer%3D%22svg8%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g62%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g64%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g66%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g68%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g70%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g72%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g74%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g76%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g78%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g80%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g82%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g84%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g86%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g88%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g90%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g6-0%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22%3E %3Cg id%3D%22g4-9%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22%3E %3Cpath inkscape%3Aconnector-curvature%3D%220%22 d%3D%22m 498.966%2C339.946 c -7.197%2C0 -13.034%2C5.837 -13.034%2C13.034 v 49.804 c 0%2C28.747 -23.388%2C52.135 -52.135%2C52.135 H 78.203 c -28.747%2C0 -52.135%2C-23.388 -52.135%2C-52.135 V 352.98 c 0%2C-7.197 -5.835%2C-13.034 -13.034%2C-13.034 C 5.835%2C339.946 0%2C345.782 0%2C352.98 v 49.804 c 0%2C43.121 35.082%2C78.203 78.203%2C78.203 h 355.594 c 43.121%2C0 78.203%2C-35.082 78.203%2C-78.203 V 352.98 c 0%2C-7.198 -5.835%2C-13.034 -13.034%2C-13.034 z%22 id%3D%22path2%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3C%2Fg%3E %3C%2Fg%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g12-0%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22%3E %3Cg id%3D%22g10-8%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22%3E %3Cpath inkscape%3Aconnector-curvature%3D%220%22 d%3D%22M 419.833%2C391.3 H 92.167 c -7.197%2C0 -13.034%2C5.837 -13.034%2C13.034 0%2C7.197 5.835%2C13.034 13.034%2C13.034 h 327.665 c 7.199%2C0 13.034%2C-5.835 13.034%2C-13.034 0%2C-7.197 -5.835%2C-13.034 -13.033%2C-13.034 z%22 id%3D%22path8-3%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3C%2Fg%3E %3C%2Fg%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g18-4%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22%3E %3Cg id%3D%22g16-7%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22%3E %3Cpath inkscape%3Aconnector-curvature%3D%220%22 d%3D%22m 387.919%2C207.93 c -4.795%2C-5.367 -13.034%2C-5.834 -18.404%2C-1.038 L 269.033%2C296.657 V 44.048 c 0%2C-7.197 -5.835%2C-13.034 -13.034%2C-13.034 -7.197%2C0 -13.034%2C5.835 -13.034%2C13.034 V 296.657 L 142.483%2C206.893 c -5.367%2C-4.796 -13.607%2C-4.328 -18.404%2C1.038 -4.794%2C5.369 -4.331%2C13.609 1.037%2C18.404 l 109.174%2C97.527 c 6.187%2C5.529 13.946%2C8.292 21.708%2C8.292 7.759%2C0 15.519%2C-2.763 21.708%2C-8.289 l 109.174%2C-97.53 c 5.37%2C-4.798 5.834%2C-13.038 1.039%2C-18.405 z%22 id%3D%22path14-9%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3C%2Fg%3E %3C%2Fg%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g20%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g22-9%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g24-3%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g26%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g28-4%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g30-2%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g32%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g34-2%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g36-1%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g38%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g40-6%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g42-4%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g44%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g46-7%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g48-3%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E%3C%2Fsvg%3E\") no-repeat left 6px center / 36px auto!important}::ng-deep co-file-upload co-tile .tile-extra-bottom .main{padding:0!important}\n"]
|
|
2219
|
+
},] }
|
|
2220
|
+
];
|
|
2221
|
+
ProductDocumentsComponent.ctorParameters = () => [
|
|
2222
|
+
{ type: IconCacheService }
|
|
2223
|
+
];
|
|
2224
|
+
ProductDocumentsComponent.propDecorators = {
|
|
2225
|
+
showLabel: [{ type: Input }],
|
|
2226
|
+
documents: [{ type: Input }]
|
|
2227
|
+
};
|
|
2228
|
+
|
|
2229
|
+
class ProductDocumentModule {
|
|
2230
|
+
}
|
|
2231
|
+
ProductDocumentModule.decorators = [
|
|
2232
|
+
{ type: NgModule, args: [{
|
|
2233
|
+
imports: [
|
|
2234
|
+
CommonModule,
|
|
2235
|
+
HeaderModule,
|
|
2236
|
+
PipeModule,
|
|
2237
|
+
FilesUploadModule
|
|
2238
|
+
],
|
|
2239
|
+
declarations: [
|
|
2240
|
+
ProductDocumentsComponent
|
|
2241
|
+
],
|
|
2242
|
+
exports: [
|
|
2243
|
+
ProductDocumentsComponent
|
|
2244
|
+
]
|
|
2245
|
+
},] }
|
|
2246
|
+
];
|
|
2247
|
+
|
|
2248
|
+
class ProductSymbolsComponent {
|
|
2058
2249
|
constructor() {
|
|
2059
2250
|
this.symbolStrings = [];
|
|
2060
2251
|
}
|
|
@@ -2074,108 +2265,248 @@ let ProductSymbolsComponent = class ProductSymbolsComponent {
|
|
|
2074
2265
|
}
|
|
2075
2266
|
ngOnInit() {
|
|
2076
2267
|
}
|
|
2077
|
-
}
|
|
2078
|
-
|
|
2079
|
-
|
|
2080
|
-
|
|
2081
|
-
|
|
2082
|
-
|
|
2083
|
-
]
|
|
2084
|
-
|
|
2085
|
-
|
|
2086
|
-
|
|
2087
|
-
|
|
2088
|
-
|
|
2089
|
-
|
|
2090
|
-
]
|
|
2268
|
+
}
|
|
2269
|
+
ProductSymbolsComponent.decorators = [
|
|
2270
|
+
{ type: Component, args: [{
|
|
2271
|
+
selector: 'app-product-symbols',
|
|
2272
|
+
template: `
|
|
2273
|
+
<div *ngIf="symbols && symbols.length > 0">
|
|
2274
|
+
<app-header [label]="'SYMBOLS' | localize" [amount]="symbols?.length"></app-header>
|
|
2275
|
+
<co-scroll-container>
|
|
2276
|
+
<co-tile small noImagePlaceholder *ngFor="let symbol of symbolStrings">
|
|
2277
|
+
<ng-container tile-over-image>
|
|
2278
|
+
<div class="symbol" [textContent]="symbol"></div>
|
|
2279
|
+
</ng-container>
|
|
2280
|
+
<ng-container tile-extra-bottom-content>
|
|
2281
|
+
<div class="symbol-name" [textContent]="'Wat moet hier?'"></div>
|
|
2282
|
+
</ng-container>
|
|
2283
|
+
</co-tile>
|
|
2284
|
+
</co-scroll-container>
|
|
2285
|
+
</div>
|
|
2286
|
+
`,
|
|
2287
|
+
styles: [":host{display:block}:host.floor .symbol{font-family:iOneFloorsymbols}:host.ginetex .symbol{font-family:iOneGinetexsymbols}.symbol{font-size:100px}\n"]
|
|
2288
|
+
},] }
|
|
2289
|
+
];
|
|
2290
|
+
ProductSymbolsComponent.ctorParameters = () => [];
|
|
2291
|
+
ProductSymbolsComponent.propDecorators = {
|
|
2292
|
+
symbols: [{ type: Input }],
|
|
2293
|
+
_className: [{ type: HostBinding, args: ['class',] }]
|
|
2294
|
+
};
|
|
2295
|
+
|
|
2296
|
+
class ProductSymbolsModule {
|
|
2297
|
+
}
|
|
2298
|
+
ProductSymbolsModule.decorators = [
|
|
2299
|
+
{ type: NgModule, args: [{
|
|
2300
|
+
imports: [
|
|
2301
|
+
CommonModule,
|
|
2302
|
+
HeaderModule,
|
|
2303
|
+
PipeModule,
|
|
2304
|
+
ScrollContainerModule,
|
|
2305
|
+
TileModule
|
|
2306
|
+
],
|
|
2307
|
+
declarations: [
|
|
2308
|
+
ProductSymbolsComponent
|
|
2309
|
+
],
|
|
2310
|
+
exports: [
|
|
2311
|
+
ProductSymbolsComponent
|
|
2312
|
+
]
|
|
2313
|
+
},] }
|
|
2314
|
+
];
|
|
2315
|
+
|
|
2316
|
+
class ProductInfoTabsModule {
|
|
2317
|
+
}
|
|
2318
|
+
ProductInfoTabsModule.decorators = [
|
|
2319
|
+
{ type: NgModule, args: [{
|
|
2320
|
+
imports: [
|
|
2321
|
+
CommonModule,
|
|
2322
|
+
PipeModule,
|
|
2323
|
+
ProductAdditionalInfoModule,
|
|
2324
|
+
ProductPropertiesModule,
|
|
2325
|
+
ProductDocumentModule,
|
|
2326
|
+
ProductSymbolsModule
|
|
2327
|
+
],
|
|
2328
|
+
declarations: [
|
|
2329
|
+
ProductInfoTabsComponent
|
|
2330
|
+
],
|
|
2331
|
+
exports: [
|
|
2332
|
+
ProductInfoTabsComponent
|
|
2333
|
+
]
|
|
2334
|
+
},] }
|
|
2335
|
+
];
|
|
2091
2336
|
|
|
2092
|
-
|
|
2093
|
-
}
|
|
2094
|
-
ProductPageModule =
|
|
2095
|
-
NgModule
|
|
2096
|
-
|
|
2097
|
-
|
|
2098
|
-
|
|
2099
|
-
|
|
2100
|
-
|
|
2101
|
-
|
|
2102
|
-
|
|
2103
|
-
|
|
2104
|
-
|
|
2105
|
-
|
|
2106
|
-
|
|
2107
|
-
|
|
2108
|
-
|
|
2109
|
-
|
|
2110
|
-
|
|
2111
|
-
|
|
2112
|
-
|
|
2113
|
-
|
|
2114
|
-
|
|
2115
|
-
|
|
2116
|
-
|
|
2117
|
-
|
|
2118
|
-
|
|
2119
|
-
|
|
2120
|
-
ProductRelatedComponent,
|
|
2121
|
-
ProductStockComponent,
|
|
2122
|
-
ProductDeliveryComponent,
|
|
2123
|
-
ProductInfoTabsComponent,
|
|
2124
|
-
ProductDocumentsComponent,
|
|
2125
|
-
HeaderComponent,
|
|
2126
|
-
ProductInfoComponent,
|
|
2127
|
-
ProductAdditionalInfoComponent,
|
|
2128
|
-
ProductPropertiesComponent,
|
|
2129
|
-
ProductSymbolsComponent
|
|
2130
|
-
],
|
|
2131
|
-
exports: [ProductPageComponent]
|
|
2132
|
-
})
|
|
2133
|
-
], ProductPageModule);
|
|
2337
|
+
class ProductPageModule {
|
|
2338
|
+
}
|
|
2339
|
+
ProductPageModule.decorators = [
|
|
2340
|
+
{ type: NgModule, args: [{
|
|
2341
|
+
imports: [
|
|
2342
|
+
CommonModule,
|
|
2343
|
+
ProductSelectorTypeModule,
|
|
2344
|
+
ImageCarouselModule,
|
|
2345
|
+
IconModule,
|
|
2346
|
+
ProductDescriptionModule,
|
|
2347
|
+
ProductAdditionalDescriptionModule,
|
|
2348
|
+
ProductPriceModule,
|
|
2349
|
+
ProductAddtocartModule,
|
|
2350
|
+
ProductRelatedModule,
|
|
2351
|
+
ProductStockModule,
|
|
2352
|
+
ProductDeliveryModule,
|
|
2353
|
+
ProductInfoTabsModule,
|
|
2354
|
+
PipeModule
|
|
2355
|
+
],
|
|
2356
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
2357
|
+
declarations: [
|
|
2358
|
+
ProductPageComponent
|
|
2359
|
+
],
|
|
2360
|
+
exports: [
|
|
2361
|
+
ProductPageComponent
|
|
2362
|
+
]
|
|
2363
|
+
},] }
|
|
2364
|
+
];
|
|
2134
2365
|
|
|
2135
|
-
|
|
2136
|
-
}
|
|
2137
|
-
|
|
2138
|
-
NgModule
|
|
2139
|
-
|
|
2140
|
-
|
|
2141
|
-
|
|
2142
|
-
|
|
2143
|
-
|
|
2144
|
-
|
|
2145
|
-
|
|
2146
|
-
|
|
2147
|
-
|
|
2148
|
-
|
|
2149
|
-
|
|
2150
|
-
|
|
2366
|
+
class IoneProductModule {
|
|
2367
|
+
}
|
|
2368
|
+
IoneProductModule.decorators = [
|
|
2369
|
+
{ type: NgModule, args: [{
|
|
2370
|
+
imports: [
|
|
2371
|
+
// BrowserAnimationsModule,
|
|
2372
|
+
CommonModule,
|
|
2373
|
+
ProductPageModule
|
|
2374
|
+
],
|
|
2375
|
+
declarations: [
|
|
2376
|
+
IoneProductComponent
|
|
2377
|
+
],
|
|
2378
|
+
exports: [
|
|
2379
|
+
IoneProductComponent
|
|
2380
|
+
],
|
|
2381
|
+
bootstrap: [
|
|
2382
|
+
IoneProductComponent
|
|
2383
|
+
]
|
|
2384
|
+
},] }
|
|
2385
|
+
];
|
|
2386
|
+
|
|
2387
|
+
class ProductExternalSourceComponent {
|
|
2388
|
+
constructor(_sanitizer, _productConnectorService, _appEventService) {
|
|
2389
|
+
this._sanitizer = _sanitizer;
|
|
2390
|
+
this._productConnectorService = _productConnectorService;
|
|
2391
|
+
this._appEventService = _appEventService;
|
|
2392
|
+
this.addToCart = new EventEmitter();
|
|
2393
|
+
this.addToQuote = new EventEmitter();
|
|
2394
|
+
this.alternativeClick = new EventEmitter();
|
|
2395
|
+
this.showProduct = false;
|
|
2396
|
+
this.loaded = false;
|
|
2397
|
+
this.externalSettings = {};
|
|
2398
|
+
this._subs = [];
|
|
2399
|
+
}
|
|
2400
|
+
set externalSource(value) {
|
|
2401
|
+
this._externalSource = value;
|
|
2402
|
+
this.loaded = false;
|
|
2403
|
+
this._prepareExternalSource();
|
|
2404
|
+
}
|
|
2405
|
+
get externalSource() {
|
|
2406
|
+
return this._externalSource;
|
|
2407
|
+
}
|
|
2408
|
+
showClass() {
|
|
2409
|
+
return true;
|
|
2410
|
+
}
|
|
2411
|
+
ngOnInit() {
|
|
2412
|
+
this._subs.push(this._appEventService.onAddToCart.subscribe(json => this.addToCart.next(json)), this._appEventService.onAddToQuote.subscribe(json => this.addToQuote.next(json)), this._appEventService.onAlternativeClick.subscribe(article => this.alternativeClick.next(article)));
|
|
2413
|
+
}
|
|
2414
|
+
ngOnDestroy() {
|
|
2415
|
+
this._subs.forEach(s => s.unsubscribe());
|
|
2416
|
+
}
|
|
2417
|
+
_prepareExternalSource() {
|
|
2418
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
2419
|
+
if (!this._externalSource) {
|
|
2420
|
+
return;
|
|
2421
|
+
}
|
|
2422
|
+
this.externalUrl = undefined;
|
|
2423
|
+
this.externalSettings = {};
|
|
2424
|
+
if (this.externalSource.type === 'CATF') {
|
|
2425
|
+
// get bundle settings from external source
|
|
2426
|
+
const bundleSettings = yield this._productConnectorService.getProductBundleSettings(this.externalSource.url, parseInt(this.externalSource.schema, 0));
|
|
2427
|
+
this.externalSettings = JSON.parse(bundleSettings);
|
|
2428
|
+
if (this.options) {
|
|
2429
|
+
this.externalSettings.options = this.options;
|
|
2430
|
+
}
|
|
2431
|
+
// this.externalSettings.assetPath = "https://cdn1.colijn-it.nl/content43";
|
|
2432
|
+
// this.externalSettings.threeDAssetPath = "https://cdn1.colijn-it.nl/content43";
|
|
2433
|
+
if (this.externalSource.username && this.externalSource.password) {
|
|
2434
|
+
this.externalSettings.useLoginEncryption = true;
|
|
2435
|
+
this.externalSettings.username = this.externalSource.username;
|
|
2436
|
+
this.externalSettings.password = this.externalSource.password;
|
|
2437
|
+
}
|
|
2438
|
+
// finally show the catalog
|
|
2439
|
+
this.showProduct = true;
|
|
2440
|
+
}
|
|
2441
|
+
else {
|
|
2442
|
+
this.externalUrl = this.externalSource.url;
|
|
2443
|
+
this.safeUrl = this._sanitizer.bypassSecurityTrustResourceUrl(this.externalUrl);
|
|
2444
|
+
this.showProduct = false;
|
|
2445
|
+
}
|
|
2446
|
+
this.loaded = true;
|
|
2447
|
+
});
|
|
2448
|
+
}
|
|
2449
|
+
}
|
|
2450
|
+
ProductExternalSourceComponent.decorators = [
|
|
2451
|
+
{ type: Component, args: [{
|
|
2452
|
+
selector: 'co-product-external-source',
|
|
2453
|
+
template: `
|
|
2454
|
+
<ng-container *ngIf="loaded">
|
|
2455
|
+
<ng-container *ngIf="showProduct">
|
|
2456
|
+
<app-product-page
|
|
2457
|
+
[sku]="sku"
|
|
2458
|
+
[settings]="externalSettings"
|
|
2459
|
+
></app-product-page>
|
|
2460
|
+
</ng-container>
|
|
2461
|
+
<ng-container *ngIf="!showProduct">
|
|
2462
|
+
<iframe width="100%" height="100%" [src]="safeUrl" frameborder="0" allowfullscreen></iframe>
|
|
2463
|
+
</ng-container>
|
|
2464
|
+
</ng-container>
|
|
2465
|
+
`,
|
|
2466
|
+
providers: [
|
|
2467
|
+
ProductEventService,
|
|
2468
|
+
ProductSettingsService,
|
|
2469
|
+
ProductConnectorAdapterService,
|
|
2470
|
+
ProductConnectorService
|
|
2471
|
+
],
|
|
2472
|
+
encapsulation: ViewEncapsulation.None
|
|
2473
|
+
},] }
|
|
2474
|
+
];
|
|
2475
|
+
ProductExternalSourceComponent.ctorParameters = () => [
|
|
2476
|
+
{ type: DomSanitizer },
|
|
2477
|
+
{ type: ProductConnectorService },
|
|
2478
|
+
{ type: ProductEventService }
|
|
2479
|
+
];
|
|
2480
|
+
ProductExternalSourceComponent.propDecorators = {
|
|
2481
|
+
sku: [{ type: Input }],
|
|
2482
|
+
externalSource: [{ type: Input }],
|
|
2483
|
+
options: [{ type: Input }],
|
|
2484
|
+
addToCart: [{ type: Output }],
|
|
2485
|
+
addToQuote: [{ type: Output }],
|
|
2486
|
+
alternativeClick: [{ type: Output }],
|
|
2487
|
+
showClass: [{ type: HostBinding, args: ['class.co-product-external-source',] }]
|
|
2488
|
+
};
|
|
2151
2489
|
|
|
2152
|
-
|
|
2153
|
-
}
|
|
2154
|
-
|
|
2155
|
-
NgModule
|
|
2156
|
-
|
|
2157
|
-
|
|
2158
|
-
|
|
2159
|
-
|
|
2160
|
-
|
|
2161
|
-
|
|
2162
|
-
|
|
2163
|
-
|
|
2164
|
-
|
|
2165
|
-
|
|
2166
|
-
|
|
2167
|
-
|
|
2168
|
-
providers: [],
|
|
2169
|
-
exports: [IoneProductComponent],
|
|
2170
|
-
bootstrap: [
|
|
2171
|
-
IoneProductComponent
|
|
2172
|
-
]
|
|
2173
|
-
})
|
|
2174
|
-
], IoneProductModule);
|
|
2490
|
+
class ProductExternalSourceModule {
|
|
2491
|
+
}
|
|
2492
|
+
ProductExternalSourceModule.decorators = [
|
|
2493
|
+
{ type: NgModule, args: [{
|
|
2494
|
+
imports: [
|
|
2495
|
+
CommonModule,
|
|
2496
|
+
ProductPageModule
|
|
2497
|
+
],
|
|
2498
|
+
declarations: [
|
|
2499
|
+
ProductExternalSourceComponent
|
|
2500
|
+
],
|
|
2501
|
+
exports: [
|
|
2502
|
+
ProductExternalSourceComponent
|
|
2503
|
+
]
|
|
2504
|
+
},] }
|
|
2505
|
+
];
|
|
2175
2506
|
|
|
2176
2507
|
/**
|
|
2177
2508
|
* Generated bundle index. Do not edit.
|
|
2178
2509
|
*/
|
|
2179
2510
|
|
|
2180
|
-
export { IoneProductModule, ProductExternalSourceComponent, ProductExternalSourceModule, Version, ProductPageModule as ɵa,
|
|
2511
|
+
export { IoneProductComponent, IoneProductModule, ProductExternalSourceComponent, ProductExternalSourceModule, Version, ProductPageModule as ɵa, ProductSelectorTypeModule as ɵb, ProductStockModule as ɵba, ProductStockComponent as ɵbb, ProductDeliveryModule as ɵbc, ProductDeliveryComponent as ɵbd, ProductInfoTabsModule as ɵbe, ProductAdditionalInfoModule as ɵbf, ProductAdditionalInfoComponent as ɵbg, ProductPropertiesModule as ɵbh, ProductPropertiesComponent as ɵbi, ProductDocumentModule as ɵbj, ProductDocumentsComponent as ɵbk, ProductSymbolsModule as ɵbl, ProductSymbolsComponent as ɵbm, ProductInfoTabsComponent as ɵbn, ProductPageComponent as ɵbo, PipeModule as ɵc, LocalizePipe as ɵd, DictionaryService as ɵe, JsonUtilsService as ɵf, ProductSelectorTypeComponent as ɵg, IconCacheService as ɵh, ImageCarouselModule as ɵi, ImageCarouselComponent as ɵj, ProductConnectorService as ɵk, ProductConnectorAdapterService as ɵl, ProductSettingsService as ɵm, ProductEventService as ɵn, ProductDescriptionModule as ɵo, ProductDescriptionComponent as ɵp, ProductAdditionalDescriptionModule as ɵq, ProductAdditionalDescriptionComponent as ɵr, ProductPriceModule as ɵs, ProductPriceComponent as ɵt, ProductAddtocartModule as ɵu, ProductAddtocartComponent as ɵv, ProductRelatedModule as ɵw, HeaderModule as ɵx, HeaderComponent as ɵy, ProductRelatedComponent as ɵz };
|
|
2181
2512
|
//# sourceMappingURL=colijnit-product.js.map
|