@colijnit/product 1.9.3 → 1.9.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/components/image-carousel/image-carousel.component.d.ts +4 -4
- package/app/components/product-additional-description/product-additional-description.component.d.ts +3 -3
- package/app/components/product-additional-info/product-additional-info.component.d.ts +3 -3
- package/app/components/product-addtocart/product-addtocart.component.d.ts +6 -4
- package/app/components/product-delivery/product-delivery.component.d.ts +2 -2
- package/app/components/product-description/product-description.component.d.ts +1 -1
- package/app/components/product-documents/product-documents.component.d.ts +1 -1
- package/app/components/product-info/product-info.component.d.ts +1 -1
- package/app/components/product-info-tabs/product-info-tabs.component.d.ts +3 -3
- package/app/components/product-page/product-page.component.d.ts +8 -7
- package/app/components/product-properties/product-properties.component.d.ts +1 -1
- package/app/components/product-related/product-related.component.d.ts +4 -4
- package/app/components/product-stock/product-stock.component.d.ts +2 -2
- package/app/ione-product.component.d.ts +8 -8
- package/app/ione-product.module.d.ts +2 -2
- package/app/model/article-quantity.model.d.ts +1 -1
- package/app/product-version.d.ts +6 -0
- package/app/service/product-connector-adapter.service.d.ts +27 -0
- package/app/service/product-connector.service.d.ts +32 -0
- package/app/service/{app-event.service.d.ts → product-event.service.d.ts} +5 -5
- package/app/service/product-initializer.service.d.ts +6 -0
- package/app/service/product-module.service.d.ts +9 -0
- package/app/service/{settings.service.d.ts → product-settings.service.d.ts} +1 -1
- package/app/style/product-globals.scss +12 -10
- package/bundles/colijnit-product.umd.js +348 -264
- package/bundles/colijnit-product.umd.js.map +1 -1
- package/bundles/colijnit-product.umd.min.js +2 -2
- package/bundles/colijnit-product.umd.min.js.map +1 -1
- package/colijnit-product.d.ts +6 -6
- package/colijnit-product.metadata.json +1 -1
- package/esm2015/app/components/image-carousel/image-carousel.component.js +10 -8
- package/esm2015/app/components/product-additional-description/product-additional-description.component.js +3 -3
- package/esm2015/app/components/product-additional-info/product-additional-info.component.js +3 -3
- package/esm2015/app/components/product-addtocart/product-addtocart.component.js +18 -28
- package/esm2015/app/components/product-delivery/product-delivery.component.js +4 -4
- package/esm2015/app/components/product-description/product-description.component.js +1 -1
- package/esm2015/app/components/product-documents/product-documents.component.js +1 -1
- package/esm2015/app/components/product-info/product-info.component.js +1 -1
- package/esm2015/app/components/product-info-tabs/product-info-tabs.component.js +3 -3
- package/esm2015/app/components/product-page/product-page.component.js +13 -10
- package/esm2015/app/components/product-price/product-price.component.js +1 -1
- package/esm2015/app/components/product-properties/product-properties.component.js +1 -1
- package/esm2015/app/components/product-related/product-related.component.js +10 -6
- package/esm2015/app/components/product-stock/product-stock.component.js +3 -3
- package/esm2015/app/ione-product.component.js +12 -8
- package/esm2015/app/ione-product.module.js +9 -9
- package/esm2015/app/model/article-quantity.model.js +1 -1
- package/esm2015/app/product-version.js +10 -0
- package/esm2015/app/service/dictionary.service.js +2 -2
- package/esm2015/app/service/product-connector-adapter.service.js +128 -0
- package/esm2015/app/service/product-connector.service.js +108 -0
- package/esm2015/app/service/product-event.service.js +41 -0
- package/esm2015/app/service/product-initializer.service.js +26 -0
- package/esm2015/app/service/product-module.service.js +39 -0
- package/esm2015/app/service/product-settings.service.js +144 -0
- package/esm2015/colijnit-product.js +7 -7
- package/esm2015/public_api.js +2 -1
- package/esm5/app/components/image-carousel/image-carousel.component.js +10 -8
- package/esm5/app/components/product-additional-description/product-additional-description.component.js +3 -3
- package/esm5/app/components/product-additional-info/product-additional-info.component.js +3 -3
- package/esm5/app/components/product-addtocart/product-addtocart.component.js +20 -35
- package/esm5/app/components/product-delivery/product-delivery.component.js +4 -4
- package/esm5/app/components/product-description/product-description.component.js +1 -1
- package/esm5/app/components/product-documents/product-documents.component.js +1 -1
- package/esm5/app/components/product-info/product-info.component.js +1 -1
- package/esm5/app/components/product-info-tabs/product-info-tabs.component.js +3 -3
- package/esm5/app/components/product-page/product-page.component.js +13 -10
- package/esm5/app/components/product-price/product-price.component.js +1 -1
- package/esm5/app/components/product-properties/product-properties.component.js +1 -1
- package/esm5/app/components/product-related/product-related.component.js +10 -6
- package/esm5/app/components/product-stock/product-stock.component.js +3 -3
- package/esm5/app/ione-product.component.js +12 -8
- package/esm5/app/ione-product.module.js +9 -9
- package/esm5/app/model/article-quantity.model.js +1 -1
- package/esm5/app/product-version.js +12 -0
- package/esm5/app/service/dictionary.service.js +2 -2
- package/esm5/app/service/product-connector-adapter.service.js +197 -0
- package/esm5/app/service/product-connector.service.js +128 -0
- package/esm5/app/service/product-event.service.js +42 -0
- package/esm5/app/service/product-initializer.service.js +29 -0
- package/esm5/app/service/product-module.service.js +50 -0
- package/esm5/app/service/product-settings.service.js +167 -0
- package/esm5/colijnit-product.js +7 -7
- package/esm5/public_api.js +2 -1
- package/fesm2015/colijnit-product.js +235 -207
- package/fesm2015/colijnit-product.js.map +1 -1
- package/fesm5/colijnit-product.js +345 -256
- package/fesm5/colijnit-product.js.map +1 -1
- package/package.json +7 -5
- package/public_api.d.ts +1 -0
- package/app/service/app-initializer.service.d.ts +0 -6
- package/app/service/i-one-connector-adapter.service.d.ts +0 -27
- package/app/service/i-one-controller.service.d.ts +0 -37
- package/app/service/module.service.d.ts +0 -9
- package/app/utils/string-utils.d.ts +0 -21
- package/esm2015/app/service/app-event.service.js +0 -41
- package/esm2015/app/service/app-initializer.service.js +0 -26
- package/esm2015/app/service/i-one-connector-adapter.service.js +0 -58
- package/esm2015/app/service/i-one-controller.service.js +0 -117
- package/esm2015/app/service/module.service.js +0 -39
- package/esm2015/app/service/settings.service.js +0 -136
- package/esm2015/app/utils/string-utils.js +0 -51
- package/esm5/app/service/app-event.service.js +0 -42
- package/esm5/app/service/app-initializer.service.js +0 -29
- package/esm5/app/service/i-one-connector-adapter.service.js +0 -61
- package/esm5/app/service/i-one-controller.service.js +0 -131
- package/esm5/app/service/module.service.js +0 -50
- package/esm5/app/service/settings.service.js +0 -159
- package/esm5/app/utils/string-utils.js +0 -59
|
@@ -1,16 +1,33 @@
|
|
|
1
1
|
import { __decorate, __awaiter, __generator, __spread } from 'tslib';
|
|
2
2
|
import { Input, Component, ɵɵdefineInjectable, Injectable, ɵɵinject, Output, Directive, ChangeDetectorRef, ViewChild, ElementRef, HostListener, HostBinding, Renderer2, SecurityContext, Pipe, EventEmitter, ViewEncapsulation, NgModule, CUSTOM_ELEMENTS_SCHEMA, APP_INITIALIZER } from '@angular/core';
|
|
3
3
|
import { ButtonModule, IconModule, NumberPickerModule, InputTextModule, FilesUploadModule, LoaderModule, ScrollContainerModule, TileModule, LevelIndicatorModule, PriceDisplayPipeModule, ArticleTileModule } from '@colijnit/corecomponents';
|
|
4
|
-
import { CoDocument } from '@colijnit
|
|
5
|
-
import { Options } from '@colijnit//ioneconnector/build/model/options';
|
|
4
|
+
import { CoDocument } from '@colijnit/mainapi/build/model/co-document';
|
|
6
5
|
import { Subject, BehaviorSubject } from 'rxjs';
|
|
7
|
-
import {
|
|
6
|
+
import { Options } from '@colijnit/ioneconnector/build/model/options';
|
|
7
|
+
import { ArticleFullObject } from '@colijnit/articleapi/build/model/article-full-object';
|
|
8
|
+
import { SuperArticle } from '@colijnit/articleapi/build/model/super-article';
|
|
9
|
+
import { Articles } from '@colijnit/articleapi/build/articles';
|
|
10
|
+
import { DeliveryPrognosis } from '@colijnit/articleapi/build/model/delivery-prognosis';
|
|
11
|
+
import { DocumentContent } from '@colijnit/articleapi/build/model/document-content';
|
|
12
|
+
import { BusinessObjectFactory } from '@colijnit/ioneconnector/build/service/business-object-factory';
|
|
8
13
|
import { HttpClient } from '@angular/common/http';
|
|
9
|
-
import {
|
|
14
|
+
import { StringUtils } from '@colijnit/ioneconnector/build/utils/string-utils';
|
|
10
15
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
11
16
|
import { trigger, state, style, transition, animate } from '@angular/animations';
|
|
17
|
+
import { ConfiguratorStatisticsEnvironment } from '@colijnit/articleapi/build/model/configurator-statistics-environment';
|
|
12
18
|
import { CommonModule } from '@angular/common';
|
|
13
19
|
|
|
20
|
+
// this file is dynamically created, do not change this
|
|
21
|
+
var Version = /** @class */ (function () {
|
|
22
|
+
function Version() {
|
|
23
|
+
this.name = "@colijnit/product";
|
|
24
|
+
this.description = "Product detail page project for iOne";
|
|
25
|
+
this.symVer = "1.9.5";
|
|
26
|
+
this.publishDate = "21-6-2023 11:47:53";
|
|
27
|
+
}
|
|
28
|
+
return Version;
|
|
29
|
+
}());
|
|
30
|
+
|
|
14
31
|
var ProductDescriptionComponent = /** @class */ (function () {
|
|
15
32
|
function ProductDescriptionComponent() {
|
|
16
33
|
}
|
|
@@ -31,57 +48,188 @@ var ProductDescriptionComponent = /** @class */ (function () {
|
|
|
31
48
|
|
|
32
49
|
// 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.
|
|
33
50
|
// Only to be used by the IOneControllerService.
|
|
34
|
-
var
|
|
35
|
-
function
|
|
51
|
+
var ProductConnectorAdapterService = /** @class */ (function () {
|
|
52
|
+
function ProductConnectorAdapterService() {
|
|
36
53
|
this.showLoader = new Subject();
|
|
54
|
+
this._boFactory = new BusinessObjectFactory();
|
|
37
55
|
}
|
|
38
|
-
|
|
39
|
-
this.
|
|
56
|
+
ProductConnectorAdapterService.prototype.ngOnDestroy = function () {
|
|
57
|
+
this.articleConnector.showLoader.unsubscribe();
|
|
40
58
|
};
|
|
41
|
-
|
|
59
|
+
ProductConnectorAdapterService.prototype.initConnector = function (options) {
|
|
42
60
|
var _this = this;
|
|
43
|
-
this.
|
|
44
|
-
options.session = this.
|
|
45
|
-
this.
|
|
61
|
+
this.articleConnector = new Articles(options);
|
|
62
|
+
options.session = this.articleConnector.session;
|
|
63
|
+
this.articleConnector.showLoader.subscribe(function (value) { return _this.showLoader.next(value); });
|
|
46
64
|
};
|
|
47
|
-
|
|
48
|
-
this.
|
|
65
|
+
ProductConnectorAdapterService.prototype.setInstance = function (instanceId) {
|
|
66
|
+
// this.articleConnector.setInstanceToConfigure(instanceId, false);
|
|
49
67
|
};
|
|
50
|
-
|
|
51
|
-
return this
|
|
68
|
+
ProductConnectorAdapterService.prototype.getDeliveryPrognosis = function (goodId, branchNr) {
|
|
69
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
70
|
+
var deliveryPrognosis;
|
|
71
|
+
return __generator(this, function (_a) {
|
|
72
|
+
switch (_a.label) {
|
|
73
|
+
case 0: return [4 /*yield*/, this.getSelectorDeliveryDate()];
|
|
74
|
+
case 1:
|
|
75
|
+
deliveryPrognosis = _a.sent();
|
|
76
|
+
if (!deliveryPrognosis || !deliveryPrognosis.returnValue) {
|
|
77
|
+
return [2 /*return*/, this.getDeliveryDate2(goodId)];
|
|
78
|
+
}
|
|
79
|
+
return [2 /*return*/, deliveryPrognosis];
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
});
|
|
52
83
|
};
|
|
53
|
-
|
|
54
|
-
return this
|
|
84
|
+
ProductConnectorAdapterService.prototype.getSelectorDeliveryDate = function () {
|
|
85
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
86
|
+
var response;
|
|
87
|
+
return __generator(this, function (_a) {
|
|
88
|
+
switch (_a.label) {
|
|
89
|
+
case 0: return [4 /*yield*/, this.articleConnector.getSelectorDeliveryDate()];
|
|
90
|
+
case 1:
|
|
91
|
+
response = _a.sent();
|
|
92
|
+
if (response && response.validationResult && response.validationResult.success) {
|
|
93
|
+
return [2 /*return*/, this._boFactory.makeWithRawBackendData(DeliveryPrognosis, response.resultObject)];
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
return [2 /*return*/, null];
|
|
97
|
+
}
|
|
98
|
+
return [2 /*return*/];
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
});
|
|
55
102
|
};
|
|
56
|
-
|
|
57
|
-
return this
|
|
103
|
+
ProductConnectorAdapterService.prototype.getDeliveryDate2 = function (goodId) {
|
|
104
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
105
|
+
var response;
|
|
106
|
+
return __generator(this, function (_a) {
|
|
107
|
+
switch (_a.label) {
|
|
108
|
+
case 0: return [4 /*yield*/, this.articleConnector.getDeliveryDate2(goodId)];
|
|
109
|
+
case 1:
|
|
110
|
+
response = _a.sent();
|
|
111
|
+
if (response && response.validationResult && response.validationResult.success) {
|
|
112
|
+
return [2 /*return*/, this._boFactory.makeWithRawBackendData(DeliveryPrognosis, response.resultObject)];
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
return [2 /*return*/, null];
|
|
116
|
+
}
|
|
117
|
+
return [2 /*return*/];
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
});
|
|
58
121
|
};
|
|
59
|
-
|
|
60
|
-
return this
|
|
122
|
+
ProductConnectorAdapterService.prototype.getJsonConfiguredArticles = function (configuratorStatistics) {
|
|
123
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
124
|
+
var response;
|
|
125
|
+
return __generator(this, function (_a) {
|
|
126
|
+
switch (_a.label) {
|
|
127
|
+
case 0: return [4 /*yield*/, this.articleConnector.getJsonConfiguredArticles(configuratorStatistics)];
|
|
128
|
+
case 1:
|
|
129
|
+
response = _a.sent();
|
|
130
|
+
if (response && response.validationResult && response.validationResult.success) {
|
|
131
|
+
return [2 /*return*/, response.resultObject];
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
return [2 /*return*/, ''];
|
|
135
|
+
}
|
|
136
|
+
return [2 /*return*/];
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
});
|
|
61
140
|
};
|
|
62
|
-
|
|
63
|
-
|
|
141
|
+
ProductConnectorAdapterService.prototype.getJsonArticleFlatTree = function (goodId, goodType, quantity, showLoader, instanceId, configuratorStatistics) {
|
|
142
|
+
if (showLoader === void 0) { showLoader = true; }
|
|
143
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
144
|
+
return __generator(this, function (_a) {
|
|
145
|
+
return [2 /*return*/, this.articleConnector.getJsonArticleFlatTree(goodId, goodType, quantity, showLoader, instanceId, configuratorStatistics)];
|
|
146
|
+
});
|
|
147
|
+
});
|
|
64
148
|
};
|
|
65
|
-
|
|
66
|
-
return this
|
|
149
|
+
ProductConnectorAdapterService.prototype.getGoodIdFromArticleNr = function (sku) {
|
|
150
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
151
|
+
var response;
|
|
152
|
+
return __generator(this, function (_a) {
|
|
153
|
+
switch (_a.label) {
|
|
154
|
+
case 0: return [4 /*yield*/, this.articleConnector.getGoodIdFromArticleNr(sku)];
|
|
155
|
+
case 1:
|
|
156
|
+
response = _a.sent();
|
|
157
|
+
if (response && response.validationResult && response.validationResult.success) {
|
|
158
|
+
return [2 /*return*/, response.resultObject];
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
return [2 /*return*/, null];
|
|
162
|
+
}
|
|
163
|
+
return [2 /*return*/];
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
});
|
|
67
167
|
};
|
|
68
|
-
|
|
69
|
-
return this
|
|
168
|
+
ProductConnectorAdapterService.prototype.getArticleFullObject = function (goodId) {
|
|
169
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
170
|
+
var response;
|
|
171
|
+
return __generator(this, function (_a) {
|
|
172
|
+
switch (_a.label) {
|
|
173
|
+
case 0: return [4 /*yield*/, this.articleConnector.getArticleFullObject(goodId)];
|
|
174
|
+
case 1:
|
|
175
|
+
response = _a.sent();
|
|
176
|
+
if (response && response.validationResult && response.validationResult.success) {
|
|
177
|
+
return [2 /*return*/, this._boFactory.makeWithRawBackendData(ArticleFullObject, response.resultObject)];
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
return [2 /*return*/, null];
|
|
181
|
+
}
|
|
182
|
+
return [2 /*return*/];
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
});
|
|
70
186
|
};
|
|
71
|
-
|
|
72
|
-
return this
|
|
187
|
+
ProductConnectorAdapterService.prototype.getSuperArticle = function (id, branch) {
|
|
188
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
189
|
+
var response;
|
|
190
|
+
return __generator(this, function (_a) {
|
|
191
|
+
switch (_a.label) {
|
|
192
|
+
case 0: return [4 /*yield*/, this.articleConnector.getSuperArticleQuickSel(id, branch)];
|
|
193
|
+
case 1:
|
|
194
|
+
response = _a.sent();
|
|
195
|
+
if (response && response.validationResult && response.validationResult.success) {
|
|
196
|
+
return [2 /*return*/, this._boFactory.makeWithRawBackendData(SuperArticle, response.resultObject)];
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
return [2 /*return*/, null];
|
|
200
|
+
}
|
|
201
|
+
return [2 /*return*/];
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
});
|
|
73
205
|
};
|
|
74
|
-
|
|
206
|
+
ProductConnectorAdapterService.prototype.getDocumentContent = function (docId, thumbnail) {
|
|
75
207
|
if (thumbnail === void 0) { thumbnail = true; }
|
|
76
|
-
return this
|
|
208
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
209
|
+
var response;
|
|
210
|
+
return __generator(this, function (_a) {
|
|
211
|
+
switch (_a.label) {
|
|
212
|
+
case 0: return [4 /*yield*/, this.articleConnector.getDocumentContent(docId, thumbnail)];
|
|
213
|
+
case 1:
|
|
214
|
+
response = _a.sent();
|
|
215
|
+
if (response && response.validationResult && response.validationResult.success) {
|
|
216
|
+
return [2 /*return*/, this._boFactory.makeWithRawBackendData(DocumentContent, response.resultObject)];
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
return [2 /*return*/, null];
|
|
220
|
+
}
|
|
221
|
+
return [2 /*return*/];
|
|
222
|
+
}
|
|
223
|
+
});
|
|
224
|
+
});
|
|
77
225
|
};
|
|
78
|
-
|
|
79
|
-
|
|
226
|
+
ProductConnectorAdapterService.ɵprov = ɵɵdefineInjectable({ factory: function ProductConnectorAdapterService_Factory() { return new ProductConnectorAdapterService(); }, token: ProductConnectorAdapterService, providedIn: "root" });
|
|
227
|
+
ProductConnectorAdapterService = __decorate([
|
|
80
228
|
Injectable({
|
|
81
229
|
providedIn: 'root'
|
|
82
230
|
})
|
|
83
|
-
],
|
|
84
|
-
return
|
|
231
|
+
], ProductConnectorAdapterService);
|
|
232
|
+
return ProductConnectorAdapterService;
|
|
85
233
|
}());
|
|
86
234
|
|
|
87
235
|
var JsonUtilsService = /** @class */ (function () {
|
|
@@ -130,64 +278,6 @@ var LanguageCode;
|
|
|
130
278
|
LanguageCode["French"] = "fr-FR";
|
|
131
279
|
})(LanguageCode || (LanguageCode = {}));
|
|
132
280
|
|
|
133
|
-
var StringUtils = /** @class */ (function () {
|
|
134
|
-
function StringUtils() {
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
* Returns a new string where given placeholder in given source string are replaced by given replacement texts.
|
|
138
|
-
*
|
|
139
|
-
* Example usage:
|
|
140
|
-
*
|
|
141
|
-
* source = "ABCDABCD"
|
|
142
|
-
* placeholder = "BC"
|
|
143
|
-
* replacementTexts = "Z", "Z" (REST arguments)
|
|
144
|
-
* OUTPUT = "AZDAZD"
|
|
145
|
-
*
|
|
146
|
-
* @param {string} source
|
|
147
|
-
* @param {string} placeholder
|
|
148
|
-
* @param {string} replacementTexts If only one is given, this function replaces all placeholders with that single replacementText.
|
|
149
|
-
* If more are given, placeholders without a corresponding replacementText will remain their original placeholder characters.
|
|
150
|
-
*/
|
|
151
|
-
StringUtils.ReplaceOccurrencesIn = function (source, placeholder) {
|
|
152
|
-
var replacementTexts = [];
|
|
153
|
-
for (var _i = 2; _i < arguments.length; _i++) {
|
|
154
|
-
replacementTexts[_i - 2] = arguments[_i];
|
|
155
|
-
}
|
|
156
|
-
// parameter guards
|
|
157
|
-
if (!(source)) {
|
|
158
|
-
return undefined;
|
|
159
|
-
}
|
|
160
|
-
if (!placeholder || replacementTexts.length === 0) {
|
|
161
|
-
return source;
|
|
162
|
-
}
|
|
163
|
-
var outString = source;
|
|
164
|
-
// one replacementText means replace for all
|
|
165
|
-
if (replacementTexts.length === 1) {
|
|
166
|
-
// "g" is the g flag to replace globally
|
|
167
|
-
outString = outString.replace(new RegExp(this._escapeRegExp(placeholder), "g"), replacementTexts[0]);
|
|
168
|
-
}
|
|
169
|
-
else {
|
|
170
|
-
// replace occurence i by replacementTexts[i], one at a time in loop (there might be a faster way..)
|
|
171
|
-
for (var i = 0, len = replacementTexts.length; i < len; i++) {
|
|
172
|
-
outString = outString.replace(placeholder, replacementTexts[i]);
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
return outString;
|
|
176
|
-
};
|
|
177
|
-
StringUtils.IsString = function (str) {
|
|
178
|
-
return typeof str === 'string';
|
|
179
|
-
};
|
|
180
|
-
// Returns whether given str is a string and has a length > 0.
|
|
181
|
-
StringUtils.IsStringWithLength = function (str) {
|
|
182
|
-
return str && StringUtils.IsString(str) && str.length > 0;
|
|
183
|
-
};
|
|
184
|
-
// Returns given string, escaped for use as string literal in regular expressions.
|
|
185
|
-
StringUtils._escapeRegExp = function (str) {
|
|
186
|
-
return str; // .replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^$\|]/g, "\\$&");
|
|
187
|
-
};
|
|
188
|
-
return StringUtils;
|
|
189
|
-
}());
|
|
190
|
-
|
|
191
281
|
var Dictionary = /** @class */ (function () {
|
|
192
282
|
function Dictionary() {
|
|
193
283
|
this.strings = {
|
|
@@ -383,13 +473,13 @@ var Settings = /** @class */ (function () {
|
|
|
383
473
|
return Settings;
|
|
384
474
|
}());
|
|
385
475
|
|
|
386
|
-
var
|
|
387
|
-
function
|
|
476
|
+
var ProductSettingsService = /** @class */ (function () {
|
|
477
|
+
function ProductSettingsService(_jsonUtilsService, _dictionaryService) {
|
|
388
478
|
this._jsonUtilsService = _jsonUtilsService;
|
|
389
479
|
this._dictionaryService = _dictionaryService;
|
|
390
480
|
this.settingsLoaded = new BehaviorSubject(false);
|
|
391
481
|
}
|
|
392
|
-
Object.defineProperty(
|
|
482
|
+
Object.defineProperty(ProductSettingsService.prototype, "settings", {
|
|
393
483
|
get: function () {
|
|
394
484
|
return this._settings;
|
|
395
485
|
},
|
|
@@ -399,7 +489,7 @@ var SettingsService = /** @class */ (function () {
|
|
|
399
489
|
enumerable: true,
|
|
400
490
|
configurable: true
|
|
401
491
|
});
|
|
402
|
-
|
|
492
|
+
ProductSettingsService.prototype.initializeSettings = function () {
|
|
403
493
|
return __awaiter(this, void 0, void 0, function () {
|
|
404
494
|
var jsonSettings;
|
|
405
495
|
return __generator(this, function (_a) {
|
|
@@ -409,9 +499,11 @@ var SettingsService = /** @class */ (function () {
|
|
|
409
499
|
return [4 /*yield*/, this._jsonUtilsService.readJsonFile('product-settings.json')];
|
|
410
500
|
case 1:
|
|
411
501
|
jsonSettings = _a.sent();
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
502
|
+
if (jsonSettings) {
|
|
503
|
+
this.settings = Object.assign(new Settings(), jsonSettings);
|
|
504
|
+
this.settings.options = Object.assign(new SettingsOptions(), this.settings.options);
|
|
505
|
+
this.settingsFinished();
|
|
506
|
+
}
|
|
415
507
|
return [3 /*break*/, 3];
|
|
416
508
|
case 2:
|
|
417
509
|
this.settings = Object.assign(new Settings(), settings);
|
|
@@ -423,7 +515,7 @@ var SettingsService = /** @class */ (function () {
|
|
|
423
515
|
});
|
|
424
516
|
});
|
|
425
517
|
};
|
|
426
|
-
|
|
518
|
+
ProductSettingsService.prototype.createSettingsFromObject = function (obj) {
|
|
427
519
|
return __awaiter(this, void 0, void 0, function () {
|
|
428
520
|
return __generator(this, function (_a) {
|
|
429
521
|
if (!this.settings) {
|
|
@@ -511,7 +603,7 @@ var SettingsService = /** @class */ (function () {
|
|
|
511
603
|
});
|
|
512
604
|
});
|
|
513
605
|
};
|
|
514
|
-
|
|
606
|
+
ProductSettingsService.prototype.settingsFinished = function () {
|
|
515
607
|
return __awaiter(this, void 0, void 0, function () {
|
|
516
608
|
return __generator(this, function (_a) {
|
|
517
609
|
switch (_a.label) {
|
|
@@ -524,45 +616,41 @@ var SettingsService = /** @class */ (function () {
|
|
|
524
616
|
});
|
|
525
617
|
});
|
|
526
618
|
};
|
|
527
|
-
|
|
619
|
+
ProductSettingsService.ctorParameters = function () { return [
|
|
528
620
|
{ type: JsonUtilsService },
|
|
529
621
|
{ type: DictionaryService }
|
|
530
622
|
]; };
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
623
|
+
ProductSettingsService.ɵprov = ɵɵdefineInjectable({ factory: function ProductSettingsService_Factory() { return new ProductSettingsService(ɵɵinject(JsonUtilsService), ɵɵinject(DictionaryService)); }, token: ProductSettingsService, providedIn: "root" });
|
|
624
|
+
ProductSettingsService = __decorate([
|
|
625
|
+
Injectable({
|
|
626
|
+
providedIn: 'root'
|
|
627
|
+
})
|
|
628
|
+
], ProductSettingsService);
|
|
629
|
+
return ProductSettingsService;
|
|
535
630
|
}());
|
|
536
631
|
|
|
537
632
|
// Holds all iONE backend related state and methods for a running HomeDecorator. To be used anywhere internally.
|
|
538
|
-
var
|
|
539
|
-
function
|
|
633
|
+
var ProductConnectorService = /** @class */ (function () {
|
|
634
|
+
function ProductConnectorService(connector, _settingsService) {
|
|
540
635
|
this.connector = connector;
|
|
541
636
|
this._settingsService = _settingsService;
|
|
542
637
|
this.controllerInitialized = new BehaviorSubject(false);
|
|
543
638
|
this._initializing = false;
|
|
544
639
|
this._initialized = false;
|
|
545
|
-
this.
|
|
640
|
+
this.connectorOptions = new Options();
|
|
546
641
|
this.subs = [];
|
|
547
642
|
}
|
|
548
|
-
Object.defineProperty(
|
|
549
|
-
get: function () {
|
|
550
|
-
return this._article;
|
|
551
|
-
},
|
|
552
|
-
enumerable: true,
|
|
553
|
-
configurable: true
|
|
554
|
-
});
|
|
555
|
-
Object.defineProperty(IOneControllerService.prototype, "shouldShowLoader", {
|
|
643
|
+
Object.defineProperty(ProductConnectorService.prototype, "shouldShowLoader", {
|
|
556
644
|
get: function () {
|
|
557
645
|
return this._shouldShowLoader;
|
|
558
646
|
},
|
|
559
647
|
enumerable: true,
|
|
560
648
|
configurable: true
|
|
561
649
|
});
|
|
562
|
-
|
|
650
|
+
ProductConnectorService.prototype.ngOnDestroy = function () {
|
|
563
651
|
this.subs.forEach(function (sub) { return sub.unsubscribe(); });
|
|
564
652
|
};
|
|
565
|
-
|
|
653
|
+
ProductConnectorService.prototype.initDefaultDevelopTestConnection = function () {
|
|
566
654
|
return __awaiter(this, void 0, void 0, function () {
|
|
567
655
|
var settings;
|
|
568
656
|
return __generator(this, function (_a) {
|
|
@@ -575,18 +663,20 @@ var IOneControllerService = /** @class */ (function () {
|
|
|
575
663
|
if (!settings) {
|
|
576
664
|
throw Error('Settings are not defined!');
|
|
577
665
|
}
|
|
578
|
-
this.
|
|
579
|
-
this.
|
|
580
|
-
this.
|
|
581
|
-
this.
|
|
582
|
-
this.
|
|
583
|
-
this.
|
|
584
|
-
this.
|
|
585
|
-
this.
|
|
586
|
-
this.
|
|
587
|
-
this.
|
|
588
|
-
this.
|
|
589
|
-
this.
|
|
666
|
+
this.connectorOptions.url = settings.url;
|
|
667
|
+
this.connectorOptions.schema = settings.schema;
|
|
668
|
+
this.connectorOptions.version = settings.version;
|
|
669
|
+
this.connectorOptions.branch = settings.branch;
|
|
670
|
+
this.connectorOptions.username = settings.username;
|
|
671
|
+
this.connectorOptions.password = settings.password;
|
|
672
|
+
this.connectorOptions.session = settings.session;
|
|
673
|
+
this.connectorOptions.currencyId = settings.currency;
|
|
674
|
+
this.connectorOptions.useGroups = settings.useGroups;
|
|
675
|
+
this.connectorOptions.useRenders = settings.useRenders;
|
|
676
|
+
this.connectorOptions.useLoginEncryption = settings.useEncryption;
|
|
677
|
+
this.connectorOptions.languageCode = settings.languageCode;
|
|
678
|
+
this.connector.initConnector(this.connectorOptions);
|
|
679
|
+
this._settingsService.settings.session = this.connectorOptions.session;
|
|
590
680
|
this.controllerInitialized.next(true);
|
|
591
681
|
this._initialized = true;
|
|
592
682
|
this._initializing = false;
|
|
@@ -598,64 +688,67 @@ var IOneControllerService = /** @class */ (function () {
|
|
|
598
688
|
});
|
|
599
689
|
});
|
|
600
690
|
};
|
|
601
|
-
|
|
691
|
+
ProductConnectorService.prototype.setInstance = function (instanceId) {
|
|
602
692
|
this.connector.setInstance(instanceId);
|
|
603
693
|
};
|
|
604
|
-
|
|
605
|
-
return this
|
|
694
|
+
ProductConnectorService.prototype.getFullArticle = function (sku) {
|
|
695
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
696
|
+
var goodId;
|
|
697
|
+
return __generator(this, function (_a) {
|
|
698
|
+
switch (_a.label) {
|
|
699
|
+
case 0: return [4 /*yield*/, this.connector.getGoodIdFromArticleNr(sku)];
|
|
700
|
+
case 1:
|
|
701
|
+
goodId = _a.sent();
|
|
702
|
+
if (goodId) {
|
|
703
|
+
return [2 /*return*/, this.connector.getArticleFullObject(goodId)];
|
|
704
|
+
}
|
|
705
|
+
return [2 /*return*/, null];
|
|
706
|
+
}
|
|
707
|
+
});
|
|
708
|
+
});
|
|
606
709
|
};
|
|
607
|
-
|
|
710
|
+
ProductConnectorService.prototype.getDocumentContent = function (docId, thumbnail) {
|
|
608
711
|
if (thumbnail === void 0) { thumbnail = true; }
|
|
609
712
|
return this.connector.getDocumentContent(docId, thumbnail);
|
|
610
713
|
};
|
|
611
|
-
|
|
714
|
+
ProductConnectorService.prototype.getDeliveryPrognosis = function (goodId) {
|
|
612
715
|
return this.connector.getDeliveryPrognosis(goodId);
|
|
613
716
|
};
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
717
|
+
ProductConnectorService.prototype.getSelectorDeliveryDate = function () {
|
|
718
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
719
|
+
return __generator(this, function (_a) {
|
|
720
|
+
return [2 /*return*/, this.connector.getSelectorDeliveryDate()];
|
|
721
|
+
});
|
|
722
|
+
});
|
|
620
723
|
};
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
return this.connector.getSuperArticleImages();
|
|
724
|
+
ProductConnectorService.prototype.getDeliveryDate2 = function (goodId) {
|
|
725
|
+
return this.connector.getDeliveryDate2(goodId);
|
|
624
726
|
};
|
|
625
|
-
|
|
727
|
+
ProductConnectorService.prototype.getSuperArticle = function (id) {
|
|
626
728
|
return this.connector.getSuperArticle(id);
|
|
627
729
|
};
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
configuratorStatistics.transactionType = 'Sales';
|
|
632
|
-
configuratorStatistics.actionDomain = 'bundle';
|
|
633
|
-
configuratorStatistics.sessionId = this._settingsService.settings.session ? this._settingsService.settings.session.sessionId : 'unknown';
|
|
634
|
-
configuratorStatistics.webHost = window.location.host;
|
|
635
|
-
configuratorStatistics.bundleHost = window.location.host;
|
|
636
|
-
return this.connector.getJsonConfiguredArticles(configuratorStatistics);
|
|
637
|
-
};
|
|
638
|
-
IOneControllerService.prototype.getJsonArticleFlatTree = function (goodId) {
|
|
639
|
-
return this.connector.getJsonArticleFlatTree(goodId);
|
|
730
|
+
ProductConnectorService.prototype.getJsonArticleFlatTree = function (goodId, goodType, quantity, showLoader, instanceId, configuratorStatistics) {
|
|
731
|
+
if (showLoader === void 0) { showLoader = true; }
|
|
732
|
+
return this.connector.getJsonArticleFlatTree(goodId, goodType, quantity, showLoader, instanceId, configuratorStatistics);
|
|
640
733
|
};
|
|
641
|
-
|
|
734
|
+
ProductConnectorService.prototype.onShowLoaderChange = function (showLoader) {
|
|
642
735
|
this._shouldShowLoader = showLoader;
|
|
643
736
|
};
|
|
644
|
-
|
|
645
|
-
{ type:
|
|
646
|
-
{ type:
|
|
737
|
+
ProductConnectorService.ctorParameters = function () { return [
|
|
738
|
+
{ type: ProductConnectorAdapterService },
|
|
739
|
+
{ type: ProductSettingsService }
|
|
647
740
|
]; };
|
|
648
|
-
|
|
649
|
-
|
|
741
|
+
ProductConnectorService.ɵprov = ɵɵdefineInjectable({ factory: function ProductConnectorService_Factory() { return new ProductConnectorService(ɵɵinject(ProductConnectorAdapterService), ɵɵinject(ProductSettingsService)); }, token: ProductConnectorService, providedIn: "root" });
|
|
742
|
+
ProductConnectorService = __decorate([
|
|
650
743
|
Injectable({
|
|
651
744
|
providedIn: 'root'
|
|
652
745
|
})
|
|
653
|
-
],
|
|
654
|
-
return
|
|
746
|
+
], ProductConnectorService);
|
|
747
|
+
return ProductConnectorService;
|
|
655
748
|
}());
|
|
656
749
|
|
|
657
|
-
var
|
|
658
|
-
function
|
|
750
|
+
var ProductEventService = /** @class */ (function () {
|
|
751
|
+
function ProductEventService() {
|
|
659
752
|
this.onAddToCart = new Subject();
|
|
660
753
|
this.onAlternativeClick = new Subject();
|
|
661
754
|
this.onAddToQuote = new Subject();
|
|
@@ -669,26 +762,26 @@ var AppEventService = /** @class */ (function () {
|
|
|
669
762
|
this.onArticleInfoReceived = new Subject();
|
|
670
763
|
this.onUpdateProductInfoTab = new Subject();
|
|
671
764
|
}
|
|
672
|
-
|
|
765
|
+
ProductEventService.ɵprov = ɵɵdefineInjectable({ factory: function ProductEventService_Factory() { return new ProductEventService(); }, token: ProductEventService, providedIn: "root" });
|
|
673
766
|
__decorate([
|
|
674
767
|
Output()
|
|
675
|
-
],
|
|
768
|
+
], ProductEventService.prototype, "onAddToCart", void 0);
|
|
676
769
|
__decorate([
|
|
677
770
|
Output()
|
|
678
|
-
],
|
|
771
|
+
], ProductEventService.prototype, "onAlternativeClick", void 0);
|
|
679
772
|
__decorate([
|
|
680
773
|
Output()
|
|
681
|
-
],
|
|
774
|
+
], ProductEventService.prototype, "onAddToQuote", void 0);
|
|
682
775
|
__decorate([
|
|
683
776
|
Output()
|
|
684
|
-
],
|
|
685
|
-
|
|
777
|
+
], ProductEventService.prototype, "onForceRenderImage", void 0);
|
|
778
|
+
ProductEventService = __decorate([
|
|
686
779
|
Directive(),
|
|
687
780
|
Injectable({
|
|
688
781
|
providedIn: 'root'
|
|
689
782
|
})
|
|
690
|
-
],
|
|
691
|
-
return
|
|
783
|
+
], ProductEventService);
|
|
784
|
+
return ProductEventService;
|
|
692
785
|
}());
|
|
693
786
|
|
|
694
787
|
/** AUTO GENERATED FILE. DO NOT CHANGE.. **/
|
|
@@ -870,8 +963,10 @@ var ImageCarouselComponent = /** @class */ (function () {
|
|
|
870
963
|
if (this._images) {
|
|
871
964
|
this._images.forEach(function (i) {
|
|
872
965
|
if (!i.documentBody && !i.filePath) {
|
|
873
|
-
_this._ione.getDocumentContent(i.documentId, false).then(function (
|
|
874
|
-
|
|
966
|
+
_this._ione.getDocumentContent(i.documentId, false).then(function (content) {
|
|
967
|
+
if (content) {
|
|
968
|
+
i.documentBody = content.documentContent;
|
|
969
|
+
}
|
|
875
970
|
});
|
|
876
971
|
}
|
|
877
972
|
});
|
|
@@ -890,8 +985,8 @@ var ImageCarouselComponent = /** @class */ (function () {
|
|
|
890
985
|
}
|
|
891
986
|
};
|
|
892
987
|
ImageCarouselComponent.ctorParameters = function () { return [
|
|
893
|
-
{ type:
|
|
894
|
-
{ type:
|
|
988
|
+
{ type: ProductConnectorService },
|
|
989
|
+
{ type: ProductEventService },
|
|
895
990
|
{ type: ChangeDetectorRef },
|
|
896
991
|
{ type: DomSanitizer },
|
|
897
992
|
{ type: IconCacheService }
|
|
@@ -959,12 +1054,15 @@ var ProductPageComponent = /** @class */ (function () {
|
|
|
959
1054
|
this.show3D = false;
|
|
960
1055
|
this.configuring = false;
|
|
961
1056
|
this.fullscreenAnimationEnd = false;
|
|
1057
|
+
this.settingsLoaded = false;
|
|
962
1058
|
this._fullScreen = false;
|
|
963
1059
|
this._subs = [];
|
|
964
1060
|
this._subs.push(this.appEventService.onForceRenderImage.subscribe(function (x) {
|
|
965
1061
|
if (_this.selections.nativeElement) {
|
|
966
1062
|
_this.selections.nativeElement.forceRenderImage();
|
|
967
1063
|
}
|
|
1064
|
+
}), this.settingsService.settingsLoaded.subscribe(function (loaded) {
|
|
1065
|
+
_this.settingsLoaded = loaded;
|
|
968
1066
|
}));
|
|
969
1067
|
}
|
|
970
1068
|
Object.defineProperty(ProductPageComponent.prototype, "sku", {
|
|
@@ -1063,11 +1161,11 @@ var ProductPageComponent = /** @class */ (function () {
|
|
|
1063
1161
|
if (_this.configurable) {
|
|
1064
1162
|
_this.currentView = SelectorType.TwoD;
|
|
1065
1163
|
}
|
|
1066
|
-
_this.threeD = _this.article.
|
|
1164
|
+
_this.threeD = _this.article.is3D;
|
|
1067
1165
|
_this.selectorType = _this.article.selectorTypeCustomer;
|
|
1068
1166
|
_this._ione.getDeliveryPrognosis(_this.article.goodId).then(function (stockInfo) {
|
|
1069
1167
|
var stockAndDelivery = stockInfo;
|
|
1070
|
-
_this.stockAndDelivery = new StockAndDelivery(stockAndDelivery.
|
|
1168
|
+
_this.stockAndDelivery = new StockAndDelivery(0, stockAndDelivery.returnValue ? stockAndDelivery.returnValue : ' ');
|
|
1071
1169
|
_this._changeDetector.detectChanges();
|
|
1072
1170
|
});
|
|
1073
1171
|
_this._changeDetector.detectChanges();
|
|
@@ -1081,12 +1179,12 @@ var ProductPageComponent = /** @class */ (function () {
|
|
|
1081
1179
|
});
|
|
1082
1180
|
};
|
|
1083
1181
|
ProductPageComponent.ctorParameters = function () { return [
|
|
1084
|
-
{ type:
|
|
1182
|
+
{ type: ProductConnectorService },
|
|
1085
1183
|
{ type: Renderer2 },
|
|
1086
1184
|
{ type: ChangeDetectorRef },
|
|
1087
1185
|
{ type: IconCacheService },
|
|
1088
|
-
{ type:
|
|
1089
|
-
{ type:
|
|
1186
|
+
{ type: ProductSettingsService },
|
|
1187
|
+
{ type: ProductEventService }
|
|
1090
1188
|
]; };
|
|
1091
1189
|
__decorate([
|
|
1092
1190
|
ViewChild('configurator', { read: ElementRef })
|
|
@@ -1103,7 +1201,7 @@ var ProductPageComponent = /** @class */ (function () {
|
|
|
1103
1201
|
ProductPageComponent = __decorate([
|
|
1104
1202
|
Component({
|
|
1105
1203
|
selector: 'app-product-page',
|
|
1106
|
-
template: "<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 <threed-configurator #configurator class=\"threed-configurator\"\r\n
|
|
1204
|
+
template: "<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]=\"settingsService.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",
|
|
1107
1205
|
animations: [
|
|
1108
1206
|
trigger('toggleFullScreen', [
|
|
1109
1207
|
state('fullscreen', style({ 'position': 'fixed', 'top': '0', 'left': '0', 'width': '100%', 'height': '100%' })),
|
|
@@ -1207,13 +1305,17 @@ var ProductRelatedComponent = /** @class */ (function () {
|
|
|
1207
1305
|
var _this = this;
|
|
1208
1306
|
this._articles.forEach(function (a) {
|
|
1209
1307
|
if (!a.image.documentBody) {
|
|
1210
|
-
_this._iOne.getDocumentContent(a.image.documentId).then(function (
|
|
1308
|
+
_this._iOne.getDocumentContent(a.image.documentId).then(function (content) {
|
|
1309
|
+
if (content) {
|
|
1310
|
+
a.image.documentBody = content.documentContent;
|
|
1311
|
+
}
|
|
1312
|
+
});
|
|
1211
1313
|
}
|
|
1212
1314
|
});
|
|
1213
1315
|
};
|
|
1214
1316
|
ProductRelatedComponent.ctorParameters = function () { return [
|
|
1215
|
-
{ type:
|
|
1216
|
-
{ type:
|
|
1317
|
+
{ type: ProductConnectorService },
|
|
1318
|
+
{ type: ProductEventService }
|
|
1217
1319
|
]; };
|
|
1218
1320
|
__decorate([
|
|
1219
1321
|
Input()
|
|
@@ -1293,12 +1395,12 @@ var ProductInfoComponent = /** @class */ (function () {
|
|
|
1293
1395
|
return ProductInfoComponent;
|
|
1294
1396
|
}());
|
|
1295
1397
|
|
|
1296
|
-
var
|
|
1297
|
-
function
|
|
1398
|
+
var ProductModuleService = /** @class */ (function () {
|
|
1399
|
+
function ProductModuleService(_iOneConnectorService) {
|
|
1298
1400
|
this._iOneConnectorService = _iOneConnectorService;
|
|
1299
1401
|
this._superArticles = new Map();
|
|
1300
1402
|
}
|
|
1301
|
-
|
|
1403
|
+
ProductModuleService.prototype.getArticle = function (id) {
|
|
1302
1404
|
return __awaiter(this, void 0, void 0, function () {
|
|
1303
1405
|
return __generator(this, function (_a) {
|
|
1304
1406
|
switch (_a.label) {
|
|
@@ -1308,7 +1410,7 @@ var ModuleService = /** @class */ (function () {
|
|
|
1308
1410
|
});
|
|
1309
1411
|
});
|
|
1310
1412
|
};
|
|
1311
|
-
|
|
1413
|
+
ProductModuleService.prototype._getArticle = function (id) {
|
|
1312
1414
|
return __awaiter(this, void 0, void 0, function () {
|
|
1313
1415
|
var mainArticle;
|
|
1314
1416
|
return __generator(this, function (_a) {
|
|
@@ -1325,16 +1427,16 @@ var ModuleService = /** @class */ (function () {
|
|
|
1325
1427
|
});
|
|
1326
1428
|
});
|
|
1327
1429
|
};
|
|
1328
|
-
|
|
1329
|
-
{ type:
|
|
1430
|
+
ProductModuleService.ctorParameters = function () { return [
|
|
1431
|
+
{ type: ProductConnectorService }
|
|
1330
1432
|
]; };
|
|
1331
|
-
|
|
1332
|
-
|
|
1433
|
+
ProductModuleService.ɵprov = ɵɵdefineInjectable({ factory: function ProductModuleService_Factory() { return new ProductModuleService(ɵɵinject(ProductConnectorService)); }, token: ProductModuleService, providedIn: "root" });
|
|
1434
|
+
ProductModuleService = __decorate([
|
|
1333
1435
|
Injectable({
|
|
1334
1436
|
providedIn: 'root'
|
|
1335
1437
|
})
|
|
1336
|
-
],
|
|
1337
|
-
return
|
|
1438
|
+
], ProductModuleService);
|
|
1439
|
+
return ProductModuleService;
|
|
1338
1440
|
}());
|
|
1339
1441
|
|
|
1340
1442
|
var BitUtils = /** @class */ (function () {
|
|
@@ -1456,7 +1558,7 @@ var ProductAdditionalInfoComponent = /** @class */ (function () {
|
|
|
1456
1558
|
};
|
|
1457
1559
|
ProductAdditionalInfoComponent.ctorParameters = function () { return [
|
|
1458
1560
|
{ type: DomSanitizer },
|
|
1459
|
-
{ type:
|
|
1561
|
+
{ type: ProductModuleService },
|
|
1460
1562
|
{ type: ChangeDetectorRef }
|
|
1461
1563
|
]; };
|
|
1462
1564
|
__decorate([
|
|
@@ -1585,7 +1687,7 @@ var ProductDeliveryComponent = /** @class */ (function () {
|
|
|
1585
1687
|
};
|
|
1586
1688
|
ProductDeliveryComponent.ctorParameters = function () { return [
|
|
1587
1689
|
{ type: LocalizePipe },
|
|
1588
|
-
{ type:
|
|
1690
|
+
{ type: ProductConnectorService },
|
|
1589
1691
|
{ type: IconCacheService }
|
|
1590
1692
|
]; };
|
|
1591
1693
|
__decorate([
|
|
@@ -1594,7 +1696,7 @@ var ProductDeliveryComponent = /** @class */ (function () {
|
|
|
1594
1696
|
ProductDeliveryComponent = __decorate([
|
|
1595
1697
|
Component({
|
|
1596
1698
|
selector: 'app-product-delivery',
|
|
1597
|
-
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\"></div>\n </div>\n</div>\n",
|
|
1699
|
+
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",
|
|
1598
1700
|
providers: [LocalizePipe],
|
|
1599
1701
|
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}}"]
|
|
1600
1702
|
})
|
|
@@ -1621,7 +1723,7 @@ var ProductStockComponent = /** @class */ (function () {
|
|
|
1621
1723
|
ProductStockComponent.prototype.ngOnInit = function () {
|
|
1622
1724
|
};
|
|
1623
1725
|
ProductStockComponent.ctorParameters = function () { return [
|
|
1624
|
-
{ type:
|
|
1726
|
+
{ type: ProductConnectorService },
|
|
1625
1727
|
{ type: IconCacheService }
|
|
1626
1728
|
]; };
|
|
1627
1729
|
__decorate([
|
|
@@ -1749,10 +1851,11 @@ var ProductPriceComponent = /** @class */ (function () {
|
|
|
1749
1851
|
}());
|
|
1750
1852
|
|
|
1751
1853
|
var ProductAddtocartComponent = /** @class */ (function () {
|
|
1752
|
-
function ProductAddtocartComponent(iconCache, _ioneControllerService, _appEventService) {
|
|
1854
|
+
function ProductAddtocartComponent(iconCache, _ioneControllerService, _appEventService, _settingsService) {
|
|
1753
1855
|
this.iconCache = iconCache;
|
|
1754
1856
|
this._ioneControllerService = _ioneControllerService;
|
|
1755
1857
|
this._appEventService = _appEventService;
|
|
1858
|
+
this._settingsService = _settingsService;
|
|
1756
1859
|
this.icon = IconEnum;
|
|
1757
1860
|
this.configurable = false;
|
|
1758
1861
|
this.configuring = false;
|
|
@@ -1810,46 +1913,28 @@ var ProductAddtocartComponent = /** @class */ (function () {
|
|
|
1810
1913
|
};
|
|
1811
1914
|
ProductAddtocartComponent.prototype._getJSONFromArticleObject = function (article) {
|
|
1812
1915
|
return __awaiter(this, void 0, void 0, function () {
|
|
1813
|
-
var
|
|
1916
|
+
var configuratorStatistics;
|
|
1814
1917
|
return __generator(this, function (_a) {
|
|
1815
1918
|
switch (_a.label) {
|
|
1816
1919
|
case 0:
|
|
1817
|
-
|
|
1818
|
-
|
|
1819
|
-
|
|
1820
|
-
|
|
1821
|
-
|
|
1822
|
-
|
|
1823
|
-
|
|
1824
|
-
|
|
1825
|
-
|
|
1826
|
-
returnObject.goodId = selectorDataObject.hasOwnProperty('compositionGoodId') ? selectorDataObject['compositionGoodId'] : selectorDataObject['goodId'];
|
|
1827
|
-
returnObject.selectorData = selectorDataObject;
|
|
1828
|
-
return [4 /*yield*/, this._ioneControllerService.getJsonArticleFlatTree(returnObject.goodId)];
|
|
1829
|
-
case 2:
|
|
1830
|
-
articleFlatTreeJson = _a.sent();
|
|
1831
|
-
if (articleFlatTreeJson) {
|
|
1832
|
-
returnObject.articleTree = JSON.parse(articleFlatTreeJson);
|
|
1833
|
-
}
|
|
1834
|
-
return [3 /*break*/, 5];
|
|
1835
|
-
case 3:
|
|
1836
|
-
returnObject.goodId = article.article.goodId;
|
|
1837
|
-
return [4 /*yield*/, this._ioneControllerService.getJsonArticleFlatTree(returnObject.goodId)];
|
|
1838
|
-
case 4:
|
|
1839
|
-
articleFlatTreeJson = _a.sent();
|
|
1840
|
-
if (articleFlatTreeJson) {
|
|
1841
|
-
returnObject.articleTree = JSON.parse(articleFlatTreeJson);
|
|
1842
|
-
}
|
|
1843
|
-
_a.label = 5;
|
|
1844
|
-
case 5: return [2 /*return*/, JSON.stringify(returnObject)];
|
|
1920
|
+
configuratorStatistics = new ConfiguratorStatisticsEnvironment();
|
|
1921
|
+
configuratorStatistics.userType = 'iOneProductPage';
|
|
1922
|
+
configuratorStatistics.transactionType = 'Sales';
|
|
1923
|
+
configuratorStatistics.actionDomain = 'bundle';
|
|
1924
|
+
configuratorStatistics.sessionId = this._settingsService.settings.session ? this._settingsService.settings.session.sessionId : 'unknown';
|
|
1925
|
+
configuratorStatistics.webHost = window.location.host;
|
|
1926
|
+
configuratorStatistics.bundleHost = window.location.host;
|
|
1927
|
+
return [4 /*yield*/, this._ioneControllerService.getJsonArticleFlatTree(article.article.goodId, article.article.goodType, article.quantity, true, undefined, configuratorStatistics)];
|
|
1928
|
+
case 1: return [2 /*return*/, _a.sent()];
|
|
1845
1929
|
}
|
|
1846
1930
|
});
|
|
1847
1931
|
});
|
|
1848
1932
|
};
|
|
1849
1933
|
ProductAddtocartComponent.ctorParameters = function () { return [
|
|
1850
1934
|
{ type: IconCacheService },
|
|
1851
|
-
{ type:
|
|
1852
|
-
{ type:
|
|
1935
|
+
{ type: ProductConnectorService },
|
|
1936
|
+
{ type: ProductEventService },
|
|
1937
|
+
{ type: ProductSettingsService }
|
|
1853
1938
|
]; };
|
|
1854
1939
|
__decorate([
|
|
1855
1940
|
ViewChild('addtocartbutton', { read: ElementRef })
|
|
@@ -1944,6 +2029,10 @@ var IoneProductComponent = /** @class */ (function () {
|
|
|
1944
2029
|
// this.sku = 'CF-39904ANT';
|
|
1945
2030
|
// this.sku = 'CF-22346001';
|
|
1946
2031
|
// this.sku = '104';
|
|
2032
|
+
// this.sku = '1000561986';
|
|
2033
|
+
// this.sku = '1000234793';
|
|
2034
|
+
// this.sku = '1066';
|
|
2035
|
+
// this.sku = '104';
|
|
1947
2036
|
var _this = this;
|
|
1948
2037
|
this._dictionary = _dictionary;
|
|
1949
2038
|
this._jsonUtils = _jsonUtils;
|
|
@@ -2016,10 +2105,10 @@ var IoneProductComponent = /** @class */ (function () {
|
|
|
2016
2105
|
IoneProductComponent.ctorParameters = function () { return [
|
|
2017
2106
|
{ type: DictionaryService },
|
|
2018
2107
|
{ type: JsonUtilsService },
|
|
2019
|
-
{ type:
|
|
2108
|
+
{ type: ProductConnectorService },
|
|
2020
2109
|
{ type: ChangeDetectorRef },
|
|
2021
|
-
{ type:
|
|
2022
|
-
{ type:
|
|
2110
|
+
{ type: ProductEventService },
|
|
2111
|
+
{ type: ProductSettingsService }
|
|
2023
2112
|
]; };
|
|
2024
2113
|
__decorate([
|
|
2025
2114
|
Input()
|
|
@@ -2098,7 +2187,7 @@ var ProductAdditionalDescriptionComponent = /** @class */ (function () {
|
|
|
2098
2187
|
}
|
|
2099
2188
|
};
|
|
2100
2189
|
ProductAdditionalDescriptionComponent.ctorParameters = function () { return [
|
|
2101
|
-
{ type:
|
|
2190
|
+
{ type: ProductEventService }
|
|
2102
2191
|
]; };
|
|
2103
2192
|
__decorate([
|
|
2104
2193
|
Input()
|
|
@@ -2161,7 +2250,7 @@ var ProductInfoTabsComponent = /** @class */ (function () {
|
|
|
2161
2250
|
}
|
|
2162
2251
|
};
|
|
2163
2252
|
ProductInfoTabsComponent.ctorParameters = function () { return [
|
|
2164
|
-
{ type:
|
|
2253
|
+
{ type: ProductEventService }
|
|
2165
2254
|
]; };
|
|
2166
2255
|
__decorate([
|
|
2167
2256
|
ViewChild('tabContent')
|
|
@@ -2179,27 +2268,27 @@ var ProductInfoTabsComponent = /** @class */ (function () {
|
|
|
2179
2268
|
return ProductInfoTabsComponent;
|
|
2180
2269
|
}());
|
|
2181
2270
|
|
|
2182
|
-
var
|
|
2183
|
-
function
|
|
2271
|
+
var ProductInitializerService = /** @class */ (function () {
|
|
2272
|
+
function ProductInitializerService(_settingsService) {
|
|
2184
2273
|
this._settingsService = _settingsService;
|
|
2185
2274
|
}
|
|
2186
|
-
|
|
2275
|
+
ProductInitializerService.prototype.initializeApp = function () {
|
|
2187
2276
|
return __awaiter(this, void 0, void 0, function () {
|
|
2188
2277
|
return __generator(this, function (_a) {
|
|
2189
2278
|
return [2 /*return*/, this._settingsService.initializeSettings()];
|
|
2190
2279
|
});
|
|
2191
2280
|
});
|
|
2192
2281
|
};
|
|
2193
|
-
|
|
2194
|
-
{ type:
|
|
2282
|
+
ProductInitializerService.ctorParameters = function () { return [
|
|
2283
|
+
{ type: ProductSettingsService }
|
|
2195
2284
|
]; };
|
|
2196
|
-
|
|
2197
|
-
|
|
2285
|
+
ProductInitializerService.ɵprov = ɵɵdefineInjectable({ factory: function ProductInitializerService_Factory() { return new ProductInitializerService(ɵɵinject(ProductSettingsService)); }, token: ProductInitializerService, providedIn: "root" });
|
|
2286
|
+
ProductInitializerService = __decorate([
|
|
2198
2287
|
Injectable({
|
|
2199
2288
|
providedIn: 'root',
|
|
2200
2289
|
})
|
|
2201
|
-
],
|
|
2202
|
-
return
|
|
2290
|
+
], ProductInitializerService);
|
|
2291
|
+
return ProductInitializerService;
|
|
2203
2292
|
}());
|
|
2204
2293
|
|
|
2205
2294
|
function initializeApp(context) {
|
|
@@ -2252,14 +2341,14 @@ var IoneProductModule = /** @class */ (function () {
|
|
|
2252
2341
|
IoneProductComponent
|
|
2253
2342
|
],
|
|
2254
2343
|
providers: [
|
|
2255
|
-
|
|
2256
|
-
|
|
2257
|
-
|
|
2344
|
+
ProductSettingsService,
|
|
2345
|
+
ProductConnectorService,
|
|
2346
|
+
ProductConnectorAdapterService,
|
|
2258
2347
|
IconCacheService,
|
|
2259
2348
|
{
|
|
2260
2349
|
provide: APP_INITIALIZER,
|
|
2261
2350
|
useFactory: initializeApp,
|
|
2262
|
-
deps: [
|
|
2351
|
+
deps: [ProductInitializerService],
|
|
2263
2352
|
multi: true
|
|
2264
2353
|
}
|
|
2265
2354
|
],
|
|
@@ -2276,5 +2365,5 @@ var IoneProductModule = /** @class */ (function () {
|
|
|
2276
2365
|
* Generated bundle index. Do not edit.
|
|
2277
2366
|
*/
|
|
2278
2367
|
|
|
2279
|
-
export { IoneProductModule, initializeApp, IoneProductComponent as ɵa, DictionaryService as ɵb, ProductAdditionalDescriptionComponent as ɵba,
|
|
2368
|
+
export { IoneProductModule, Version, initializeApp, IoneProductComponent as ɵa, DictionaryService as ɵb, ProductAdditionalDescriptionComponent as ɵba, ProductInitializerService as ɵbb, JsonUtilsService as ɵc, ProductConnectorService as ɵd, ProductConnectorAdapterService as ɵe, ProductSettingsService as ɵf, ProductEventService as ɵg, ProductPageComponent as ɵh, IconCacheService as ɵi, ImageCarouselComponent as ɵj, ProductDescriptionComponent as ɵk, ProductDocumentsComponent as ɵl, ProductRelatedComponent as ɵm, HeaderComponent as ɵn, ProductInfoComponent as ɵo, ProductAdditionalInfoComponent as ɵp, ProductModuleService as ɵq, ProductPropertiesComponent as ɵr, ProductDeliveryComponent as ɵs, LocalizePipe as ɵt, ProductStockComponent as ɵu, ProductSymbolsComponent as ɵv, ProductPriceComponent as ɵw, ProductAddtocartComponent as ɵx, ProductInfoTabsComponent as ɵy, ProductSelectorTypeComponent as ɵz };
|
|
2280
2369
|
//# sourceMappingURL=colijnit-product.js.map
|