@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.
Files changed (109) hide show
  1. package/app/components/image-carousel/image-carousel.component.d.ts +4 -4
  2. package/app/components/product-additional-description/product-additional-description.component.d.ts +3 -3
  3. package/app/components/product-additional-info/product-additional-info.component.d.ts +3 -3
  4. package/app/components/product-addtocart/product-addtocart.component.d.ts +6 -4
  5. package/app/components/product-delivery/product-delivery.component.d.ts +2 -2
  6. package/app/components/product-description/product-description.component.d.ts +1 -1
  7. package/app/components/product-documents/product-documents.component.d.ts +1 -1
  8. package/app/components/product-info/product-info.component.d.ts +1 -1
  9. package/app/components/product-info-tabs/product-info-tabs.component.d.ts +3 -3
  10. package/app/components/product-page/product-page.component.d.ts +8 -7
  11. package/app/components/product-properties/product-properties.component.d.ts +1 -1
  12. package/app/components/product-related/product-related.component.d.ts +4 -4
  13. package/app/components/product-stock/product-stock.component.d.ts +2 -2
  14. package/app/ione-product.component.d.ts +8 -8
  15. package/app/ione-product.module.d.ts +2 -2
  16. package/app/model/article-quantity.model.d.ts +1 -1
  17. package/app/product-version.d.ts +6 -0
  18. package/app/service/product-connector-adapter.service.d.ts +27 -0
  19. package/app/service/product-connector.service.d.ts +32 -0
  20. package/app/service/{app-event.service.d.ts → product-event.service.d.ts} +5 -5
  21. package/app/service/product-initializer.service.d.ts +6 -0
  22. package/app/service/product-module.service.d.ts +9 -0
  23. package/app/service/{settings.service.d.ts → product-settings.service.d.ts} +1 -1
  24. package/app/style/product-globals.scss +12 -10
  25. package/bundles/colijnit-product.umd.js +348 -264
  26. package/bundles/colijnit-product.umd.js.map +1 -1
  27. package/bundles/colijnit-product.umd.min.js +2 -2
  28. package/bundles/colijnit-product.umd.min.js.map +1 -1
  29. package/colijnit-product.d.ts +6 -6
  30. package/colijnit-product.metadata.json +1 -1
  31. package/esm2015/app/components/image-carousel/image-carousel.component.js +10 -8
  32. package/esm2015/app/components/product-additional-description/product-additional-description.component.js +3 -3
  33. package/esm2015/app/components/product-additional-info/product-additional-info.component.js +3 -3
  34. package/esm2015/app/components/product-addtocart/product-addtocart.component.js +18 -28
  35. package/esm2015/app/components/product-delivery/product-delivery.component.js +4 -4
  36. package/esm2015/app/components/product-description/product-description.component.js +1 -1
  37. package/esm2015/app/components/product-documents/product-documents.component.js +1 -1
  38. package/esm2015/app/components/product-info/product-info.component.js +1 -1
  39. package/esm2015/app/components/product-info-tabs/product-info-tabs.component.js +3 -3
  40. package/esm2015/app/components/product-page/product-page.component.js +13 -10
  41. package/esm2015/app/components/product-price/product-price.component.js +1 -1
  42. package/esm2015/app/components/product-properties/product-properties.component.js +1 -1
  43. package/esm2015/app/components/product-related/product-related.component.js +10 -6
  44. package/esm2015/app/components/product-stock/product-stock.component.js +3 -3
  45. package/esm2015/app/ione-product.component.js +12 -8
  46. package/esm2015/app/ione-product.module.js +9 -9
  47. package/esm2015/app/model/article-quantity.model.js +1 -1
  48. package/esm2015/app/product-version.js +10 -0
  49. package/esm2015/app/service/dictionary.service.js +2 -2
  50. package/esm2015/app/service/product-connector-adapter.service.js +128 -0
  51. package/esm2015/app/service/product-connector.service.js +108 -0
  52. package/esm2015/app/service/product-event.service.js +41 -0
  53. package/esm2015/app/service/product-initializer.service.js +26 -0
  54. package/esm2015/app/service/product-module.service.js +39 -0
  55. package/esm2015/app/service/product-settings.service.js +144 -0
  56. package/esm2015/colijnit-product.js +7 -7
  57. package/esm2015/public_api.js +2 -1
  58. package/esm5/app/components/image-carousel/image-carousel.component.js +10 -8
  59. package/esm5/app/components/product-additional-description/product-additional-description.component.js +3 -3
  60. package/esm5/app/components/product-additional-info/product-additional-info.component.js +3 -3
  61. package/esm5/app/components/product-addtocart/product-addtocart.component.js +20 -35
  62. package/esm5/app/components/product-delivery/product-delivery.component.js +4 -4
  63. package/esm5/app/components/product-description/product-description.component.js +1 -1
  64. package/esm5/app/components/product-documents/product-documents.component.js +1 -1
  65. package/esm5/app/components/product-info/product-info.component.js +1 -1
  66. package/esm5/app/components/product-info-tabs/product-info-tabs.component.js +3 -3
  67. package/esm5/app/components/product-page/product-page.component.js +13 -10
  68. package/esm5/app/components/product-price/product-price.component.js +1 -1
  69. package/esm5/app/components/product-properties/product-properties.component.js +1 -1
  70. package/esm5/app/components/product-related/product-related.component.js +10 -6
  71. package/esm5/app/components/product-stock/product-stock.component.js +3 -3
  72. package/esm5/app/ione-product.component.js +12 -8
  73. package/esm5/app/ione-product.module.js +9 -9
  74. package/esm5/app/model/article-quantity.model.js +1 -1
  75. package/esm5/app/product-version.js +12 -0
  76. package/esm5/app/service/dictionary.service.js +2 -2
  77. package/esm5/app/service/product-connector-adapter.service.js +197 -0
  78. package/esm5/app/service/product-connector.service.js +128 -0
  79. package/esm5/app/service/product-event.service.js +42 -0
  80. package/esm5/app/service/product-initializer.service.js +29 -0
  81. package/esm5/app/service/product-module.service.js +50 -0
  82. package/esm5/app/service/product-settings.service.js +167 -0
  83. package/esm5/colijnit-product.js +7 -7
  84. package/esm5/public_api.js +2 -1
  85. package/fesm2015/colijnit-product.js +235 -207
  86. package/fesm2015/colijnit-product.js.map +1 -1
  87. package/fesm5/colijnit-product.js +345 -256
  88. package/fesm5/colijnit-product.js.map +1 -1
  89. package/package.json +7 -5
  90. package/public_api.d.ts +1 -0
  91. package/app/service/app-initializer.service.d.ts +0 -6
  92. package/app/service/i-one-connector-adapter.service.d.ts +0 -27
  93. package/app/service/i-one-controller.service.d.ts +0 -37
  94. package/app/service/module.service.d.ts +0 -9
  95. package/app/utils/string-utils.d.ts +0 -21
  96. package/esm2015/app/service/app-event.service.js +0 -41
  97. package/esm2015/app/service/app-initializer.service.js +0 -26
  98. package/esm2015/app/service/i-one-connector-adapter.service.js +0 -58
  99. package/esm2015/app/service/i-one-controller.service.js +0 -117
  100. package/esm2015/app/service/module.service.js +0 -39
  101. package/esm2015/app/service/settings.service.js +0 -136
  102. package/esm2015/app/utils/string-utils.js +0 -51
  103. package/esm5/app/service/app-event.service.js +0 -42
  104. package/esm5/app/service/app-initializer.service.js +0 -29
  105. package/esm5/app/service/i-one-connector-adapter.service.js +0 -61
  106. package/esm5/app/service/i-one-controller.service.js +0 -131
  107. package/esm5/app/service/module.service.js +0 -50
  108. package/esm5/app/service/settings.service.js +0 -159
  109. 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//ioneconnector/build/model/co-document';
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 { Connector } from '@colijnit//ioneconnector';
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 { ConfiguratorStatisticsEnvironment } from '@colijnit/ioneconnector/build/model/configurator-statistics-environment';
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 IOneConnectorAdapterService = /** @class */ (function () {
35
- function IOneConnectorAdapterService() {
51
+ var ProductConnectorAdapterService = /** @class */ (function () {
52
+ function ProductConnectorAdapterService() {
36
53
  this.showLoader = new Subject();
54
+ this._boFactory = new BusinessObjectFactory();
37
55
  }
38
- IOneConnectorAdapterService.prototype.ngOnDestroy = function () {
39
- this.connector.showLoader.unsubscribe();
56
+ ProductConnectorAdapterService.prototype.ngOnDestroy = function () {
57
+ this.articleConnector.showLoader.unsubscribe();
40
58
  };
41
- IOneConnectorAdapterService.prototype.initConnector = function (options) {
59
+ ProductConnectorAdapterService.prototype.initConnector = function (options) {
42
60
  var _this = this;
43
- this.connector = new Connector(options);
44
- options.session = this.connector.session;
45
- this.connector.showLoader.subscribe(function (value) { return _this.showLoader.next(value); });
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
- IOneConnectorAdapterService.prototype.setInstance = function (instanceId) {
48
- this.connector.setInstanceToConfigure(instanceId, false);
65
+ ProductConnectorAdapterService.prototype.setInstance = function (instanceId) {
66
+ // this.articleConnector.setInstanceToConfigure(instanceId, false);
49
67
  };
50
- IOneConnectorAdapterService.prototype.getDeliveryPrognosis = function (goodId) {
51
- return this.connector.getDeliveryPrognosisForArticle(goodId);
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
- IOneConnectorAdapterService.prototype.getArticleGroupImages = function () {
54
- return this.connector.getArticleGroupImages();
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
- IOneConnectorAdapterService.prototype.getTurnoverGroupImages = function () {
57
- return this.connector.getTurnoverGroupImages();
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
- IOneConnectorAdapterService.prototype.getSuperArticleImages = function () {
60
- return this.connector.getSuperArticleImages();
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
- IOneConnectorAdapterService.prototype.getJsonConfiguredArticles = function (configuratorStatistics) {
63
- return this.connector.getJsonConfiguredArticles(configuratorStatistics);
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
- IOneConnectorAdapterService.prototype.getJsonArticleFlatTree = function (goodId) {
66
- return this.connector.getJsonArticleFlatTree(goodId);
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
- IOneConnectorAdapterService.prototype.getFullArticle = function (skuOrId) {
69
- return this.connector.getFullArticle(skuOrId);
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
- IOneConnectorAdapterService.prototype.getSuperArticle = function (id) {
72
- return this.connector.getSuperArticle(id);
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
- IOneConnectorAdapterService.prototype.getDocumentContent = function (docId, thumbnail) {
206
+ ProductConnectorAdapterService.prototype.getDocumentContent = function (docId, thumbnail) {
75
207
  if (thumbnail === void 0) { thumbnail = true; }
76
- return this.connector.getDocumentContent(docId, thumbnail);
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
- IOneConnectorAdapterService.ɵprov = ɵɵdefineInjectable({ factory: function IOneConnectorAdapterService_Factory() { return new IOneConnectorAdapterService(); }, token: IOneConnectorAdapterService, providedIn: "root" });
79
- IOneConnectorAdapterService = __decorate([
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
- ], IOneConnectorAdapterService);
84
- return IOneConnectorAdapterService;
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 SettingsService = /** @class */ (function () {
387
- function SettingsService(_jsonUtilsService, _dictionaryService) {
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(SettingsService.prototype, "settings", {
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
- SettingsService.prototype.initializeSettings = function () {
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
- this.settings = Object.assign(new Settings(), jsonSettings);
413
- this.settings.options = Object.assign(new SettingsOptions(), this.settings.options);
414
- this.settingsFinished();
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
- SettingsService.prototype.createSettingsFromObject = function (obj) {
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
- SettingsService.prototype.settingsFinished = function () {
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
- SettingsService.ctorParameters = function () { return [
619
+ ProductSettingsService.ctorParameters = function () { return [
528
620
  { type: JsonUtilsService },
529
621
  { type: DictionaryService }
530
622
  ]; };
531
- SettingsService = __decorate([
532
- Injectable()
533
- ], SettingsService);
534
- return SettingsService;
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 IOneControllerService = /** @class */ (function () {
539
- function IOneControllerService(connector, _settingsService) {
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.defaultDevTestOptions = new Options();
640
+ this.connectorOptions = new Options();
546
641
  this.subs = [];
547
642
  }
548
- Object.defineProperty(IOneControllerService.prototype, "article", {
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
- IOneControllerService.prototype.ngOnDestroy = function () {
650
+ ProductConnectorService.prototype.ngOnDestroy = function () {
563
651
  this.subs.forEach(function (sub) { return sub.unsubscribe(); });
564
652
  };
565
- IOneControllerService.prototype.initDefaultDevelopTestConnection = function () {
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.defaultDevTestOptions.url = settings.url;
579
- this.defaultDevTestOptions.schema = settings.schema;
580
- this.defaultDevTestOptions.version = settings.version;
581
- this.defaultDevTestOptions.branch = settings.branch;
582
- this.defaultDevTestOptions.username = settings.username;
583
- this.defaultDevTestOptions.password = settings.password;
584
- this.defaultDevTestOptions.currencyId = settings.currency;
585
- this.defaultDevTestOptions.useGroups = settings.useGroups;
586
- this.defaultDevTestOptions.useRenders = settings.useRenders;
587
- this.defaultDevTestOptions.useLoginEncryption = settings.useEncryption;
588
- this.connector.initConnector(this.defaultDevTestOptions);
589
- this._settingsService.settings.session = this.defaultDevTestOptions.session;
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
- IOneControllerService.prototype.setInstance = function (instanceId) {
691
+ ProductConnectorService.prototype.setInstance = function (instanceId) {
602
692
  this.connector.setInstance(instanceId);
603
693
  };
604
- IOneControllerService.prototype.getFullArticle = function (skuOrId) {
605
- return this.connector.getFullArticle(skuOrId);
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
- IOneControllerService.prototype.getDocumentContent = function (docId, thumbnail) {
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
- IOneControllerService.prototype.getDeliveryPrognosis = function (goodId) {
714
+ ProductConnectorService.prototype.getDeliveryPrognosis = function (goodId) {
612
715
  return this.connector.getDeliveryPrognosis(goodId);
613
716
  };
614
- // will be called in future
615
- IOneControllerService.prototype.getArticleGroupImages = function () {
616
- return this.connector.getArticleGroupImages();
617
- };
618
- IOneControllerService.prototype.getTurnoverGroupImages = function () {
619
- return this.connector.getTurnoverGroupImages();
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
- // will be called in future
622
- IOneControllerService.prototype.getSuperArticleImages = function () {
623
- return this.connector.getSuperArticleImages();
724
+ ProductConnectorService.prototype.getDeliveryDate2 = function (goodId) {
725
+ return this.connector.getDeliveryDate2(goodId);
624
726
  };
625
- IOneControllerService.prototype.getSuperArticle = function (id) {
727
+ ProductConnectorService.prototype.getSuperArticle = function (id) {
626
728
  return this.connector.getSuperArticle(id);
627
729
  };
628
- IOneControllerService.prototype.getJsonConfiguredArticles = function () {
629
- var configuratorStatistics = new ConfiguratorStatisticsEnvironment();
630
- configuratorStatistics.userType = 'iOneProductPage';
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
- IOneControllerService.prototype.onShowLoaderChange = function (showLoader) {
734
+ ProductConnectorService.prototype.onShowLoaderChange = function (showLoader) {
642
735
  this._shouldShowLoader = showLoader;
643
736
  };
644
- IOneControllerService.ctorParameters = function () { return [
645
- { type: IOneConnectorAdapterService },
646
- { type: SettingsService }
737
+ ProductConnectorService.ctorParameters = function () { return [
738
+ { type: ProductConnectorAdapterService },
739
+ { type: ProductSettingsService }
647
740
  ]; };
648
- IOneControllerService.ɵprov = ɵɵdefineInjectable({ factory: function IOneControllerService_Factory() { return new IOneControllerService(ɵɵinject(IOneConnectorAdapterService), ɵɵinject(SettingsService)); }, token: IOneControllerService, providedIn: "root" });
649
- IOneControllerService = __decorate([
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
- ], IOneControllerService);
654
- return IOneControllerService;
746
+ ], ProductConnectorService);
747
+ return ProductConnectorService;
655
748
  }());
656
749
 
657
- var AppEventService = /** @class */ (function () {
658
- function AppEventService() {
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
- AppEventService.ɵprov = ɵɵdefineInjectable({ factory: function AppEventService_Factory() { return new AppEventService(); }, token: AppEventService, providedIn: "root" });
765
+ ProductEventService.ɵprov = ɵɵdefineInjectable({ factory: function ProductEventService_Factory() { return new ProductEventService(); }, token: ProductEventService, providedIn: "root" });
673
766
  __decorate([
674
767
  Output()
675
- ], AppEventService.prototype, "onAddToCart", void 0);
768
+ ], ProductEventService.prototype, "onAddToCart", void 0);
676
769
  __decorate([
677
770
  Output()
678
- ], AppEventService.prototype, "onAlternativeClick", void 0);
771
+ ], ProductEventService.prototype, "onAlternativeClick", void 0);
679
772
  __decorate([
680
773
  Output()
681
- ], AppEventService.prototype, "onAddToQuote", void 0);
774
+ ], ProductEventService.prototype, "onAddToQuote", void 0);
682
775
  __decorate([
683
776
  Output()
684
- ], AppEventService.prototype, "onForceRenderImage", void 0);
685
- AppEventService = __decorate([
777
+ ], ProductEventService.prototype, "onForceRenderImage", void 0);
778
+ ProductEventService = __decorate([
686
779
  Directive(),
687
780
  Injectable({
688
781
  providedIn: 'root'
689
782
  })
690
- ], AppEventService);
691
- return AppEventService;
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 (body) {
874
- i.documentBody = body;
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: IOneControllerService },
894
- { type: AppEventService },
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.homeBrandId !== undefined && _this.article.homeBrandId !== null;
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.stock, stockAndDelivery.deliveryDescription);
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: IOneControllerService },
1182
+ { type: ProductConnectorService },
1085
1183
  { type: Renderer2 },
1086
1184
  { type: ChangeDetectorRef },
1087
1185
  { type: IconCacheService },
1088
- { type: SettingsService },
1089
- { type: AppEventService }
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 [class.configurator-full-screen]=\"fullScreen\"\r\n [@toggleVisibilityByState]=\"show3D ? 'show' : 'hide'\"\r\n [@toggleFullScreen]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\r\n ></threed-configurator>\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 <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 </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",
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 (d) { return a.image.documentBody = d; });
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: IOneControllerService },
1216
- { type: AppEventService }
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 ModuleService = /** @class */ (function () {
1297
- function ModuleService(_iOneConnectorService) {
1398
+ var ProductModuleService = /** @class */ (function () {
1399
+ function ProductModuleService(_iOneConnectorService) {
1298
1400
  this._iOneConnectorService = _iOneConnectorService;
1299
1401
  this._superArticles = new Map();
1300
1402
  }
1301
- ModuleService.prototype.getArticle = function (id) {
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
- ModuleService.prototype._getArticle = function (id) {
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
- ModuleService.ctorParameters = function () { return [
1329
- { type: IOneControllerService }
1430
+ ProductModuleService.ctorParameters = function () { return [
1431
+ { type: ProductConnectorService }
1330
1432
  ]; };
1331
- ModuleService.ɵprov = ɵɵdefineInjectable({ factory: function ModuleService_Factory() { return new ModuleService(ɵɵinject(IOneControllerService)); }, token: ModuleService, providedIn: "root" });
1332
- ModuleService = __decorate([
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
- ], ModuleService);
1337
- return ModuleService;
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: ModuleService },
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: IOneControllerService },
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: IOneControllerService },
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 returnObject, selectorDataJson, selectorDataObject, articleFlatTreeJson, articleFlatTreeJson;
1916
+ var configuratorStatistics;
1814
1917
  return __generator(this, function (_a) {
1815
1918
  switch (_a.label) {
1816
1919
  case 0:
1817
- returnObject = { goodId: 0, baseGoodId: 0, selectorData: {}, quantity: 0, articleTree: {} };
1818
- returnObject.baseGoodId = article.article.goodId;
1819
- returnObject.selectorData = {};
1820
- returnObject.quantity = article.quantity;
1821
- if (!(article.article.goodType === 'B')) return [3 /*break*/, 3];
1822
- return [4 /*yield*/, this._ioneControllerService.getJsonConfiguredArticles()];
1823
- case 1:
1824
- selectorDataJson = _a.sent();
1825
- selectorDataObject = JSON.parse(selectorDataJson);
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: IOneControllerService },
1852
- { type: AppEventService }
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: IOneControllerService },
2108
+ { type: ProductConnectorService },
2020
2109
  { type: ChangeDetectorRef },
2021
- { type: AppEventService },
2022
- { type: SettingsService }
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: AppEventService }
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: AppEventService }
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 AppInitializerService = /** @class */ (function () {
2183
- function AppInitializerService(_settingsService) {
2271
+ var ProductInitializerService = /** @class */ (function () {
2272
+ function ProductInitializerService(_settingsService) {
2184
2273
  this._settingsService = _settingsService;
2185
2274
  }
2186
- AppInitializerService.prototype.initializeApp = function () {
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
- AppInitializerService.ctorParameters = function () { return [
2194
- { type: SettingsService }
2282
+ ProductInitializerService.ctorParameters = function () { return [
2283
+ { type: ProductSettingsService }
2195
2284
  ]; };
2196
- AppInitializerService.ɵprov = ɵɵdefineInjectable({ factory: function AppInitializerService_Factory() { return new AppInitializerService(ɵɵinject(SettingsService)); }, token: AppInitializerService, providedIn: "root" });
2197
- AppInitializerService = __decorate([
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
- ], AppInitializerService);
2202
- return AppInitializerService;
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
- SettingsService,
2256
- IOneControllerService,
2257
- IOneConnectorAdapterService,
2344
+ ProductSettingsService,
2345
+ ProductConnectorService,
2346
+ ProductConnectorAdapterService,
2258
2347
  IconCacheService,
2259
2348
  {
2260
2349
  provide: APP_INITIALIZER,
2261
2350
  useFactory: initializeApp,
2262
- deps: [AppInitializerService],
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, AppInitializerService as ɵbb, JsonUtilsService as ɵc, IOneControllerService as ɵd, IOneConnectorAdapterService as ɵe, SettingsService as ɵf, AppEventService 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, ModuleService 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 };
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