@colijnit/product 2.9.1 → 12.0.0
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 +1431 -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 +32 -28
- package/esm2015/app/components/product-selector-type/product-selector-type.module.js +23 -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';
|
|
18
21
|
import { CoDocument } from '@colijnit/mainapi/build/model/co-document';
|
|
19
|
-
import {
|
|
22
|
+
import { LoaderModule, ScrollContainerModule, PriceDisplayPipeModule, NumberPickerModule, ButtonModule, ArticleTileModule, IconModule, FilesUploadModule, TileModule } 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.0";
|
|
31
|
+
this.publishDate = "23-9-2023 11:50:39";
|
|
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
|
+
<!--
|
|
1057
|
+
<co-icon *ngIf="show2D" class="selector-type-icon"
|
|
1058
|
+
[class.active]="currentType === type.TwoD"
|
|
1059
|
+
[iconData]="twoDIcon"
|
|
1060
|
+
(click)="handleIconClick(type.TwoD)"
|
|
1061
|
+
></co-icon>
|
|
1062
|
+
<co-icon *ngIf="show3D" class="selector-type-icon"
|
|
1063
|
+
[class.active]="currentType === type.ThreeD"
|
|
1064
|
+
[iconData]="threeDIcon"
|
|
1065
|
+
(click)="handleIconClick(type.ThreeD)"
|
|
1066
|
+
></co-icon>
|
|
1067
|
+
-->
|
|
1068
|
+
`,
|
|
1069
|
+
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"]
|
|
1070
|
+
},] }
|
|
1071
|
+
];
|
|
1182
1072
|
ProductSelectorTypeComponent.ctorParameters = () => [
|
|
1183
1073
|
{ type: IconCacheService },
|
|
1184
1074
|
{ type: ChangeDetectorRef }
|
|
1185
1075
|
];
|
|
1186
|
-
|
|
1187
|
-
Input
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1076
|
+
ProductSelectorTypeComponent.propDecorators = {
|
|
1077
|
+
show2D: [{ type: Input }],
|
|
1078
|
+
show3D: [{ type: Input }],
|
|
1079
|
+
currentType: [{ type: Input }],
|
|
1080
|
+
onIconClick: [{ type: Output }],
|
|
1081
|
+
currentTypeChange: [{ type: Output }]
|
|
1082
|
+
};
|
|
1083
|
+
|
|
1084
|
+
// A pipe for localizing string values in view templates.
|
|
1085
|
+
class LocalizePipe {
|
|
1086
|
+
constructor(_dictionaryService) {
|
|
1087
|
+
this._dictionaryService = _dictionaryService;
|
|
1088
|
+
}
|
|
1089
|
+
transform(value, upperCaseFirst = true, replace = []) {
|
|
1090
|
+
if (!value) {
|
|
1091
|
+
return '';
|
|
1092
|
+
}
|
|
1093
|
+
replace = replace ? replace : [];
|
|
1094
|
+
if (!Array.isArray(replace)) {
|
|
1095
|
+
replace = [replace];
|
|
1096
|
+
}
|
|
1097
|
+
return this._dictionaryService.get(value, upperCaseFirst, ...replace);
|
|
1098
|
+
}
|
|
1099
|
+
}
|
|
1100
|
+
LocalizePipe.decorators = [
|
|
1101
|
+
{ type: Pipe, args: [{
|
|
1102
|
+
name: 'localize'
|
|
1103
|
+
},] }
|
|
1104
|
+
];
|
|
1105
|
+
LocalizePipe.ctorParameters = () => [
|
|
1106
|
+
{ type: DictionaryService }
|
|
1107
|
+
];
|
|
1108
|
+
|
|
1109
|
+
class PipeModule {
|
|
1110
|
+
}
|
|
1111
|
+
PipeModule.decorators = [
|
|
1112
|
+
{ type: NgModule, args: [{
|
|
1113
|
+
declarations: [
|
|
1114
|
+
LocalizePipe
|
|
1115
|
+
],
|
|
1116
|
+
providers: [
|
|
1117
|
+
LocalizePipe
|
|
1118
|
+
],
|
|
1119
|
+
exports: [
|
|
1120
|
+
LocalizePipe
|
|
1121
|
+
]
|
|
1122
|
+
},] }
|
|
1123
|
+
];
|
|
1124
|
+
|
|
1125
|
+
// import {IconModule} from '@colijnit/corecomponents';
|
|
1126
|
+
class ProductSelectorTypeModule {
|
|
1127
|
+
}
|
|
1128
|
+
ProductSelectorTypeModule.decorators = [
|
|
1129
|
+
{ type: NgModule, args: [{
|
|
1130
|
+
imports: [
|
|
1131
|
+
CommonModule,
|
|
1132
|
+
PipeModule /*,
|
|
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
|