@colijnit/product 12.0.8 → 253.1.2

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 (129) hide show
  1. package/app/components/core/header/header.component.d.ts +7 -7
  2. package/app/components/core/header/header.module.d.ts +2 -2
  3. package/app/components/image-carousel/image-carousel.component.d.ts +39 -39
  4. package/app/components/image-carousel/image-carousel.module.d.ts +2 -2
  5. package/app/components/product-additional-description/product-additional-description.component.d.ts +14 -14
  6. package/app/components/product-additional-description/product-additional-description.module.d.ts +2 -2
  7. package/app/components/product-additional-info/product-additional-info.component.d.ts +21 -21
  8. package/app/components/product-additional-info/product-additional-info.module.d.ts +2 -2
  9. package/app/components/product-addtocart/product-addtocart.component.d.ts +34 -33
  10. package/app/components/product-addtocart/product-addtocart.module.d.ts +2 -2
  11. package/app/components/product-delivery/product-delivery.component.d.ts +18 -18
  12. package/app/components/product-delivery/product-delivery.module.d.ts +2 -2
  13. package/app/components/product-description/product-description.component.d.ts +7 -7
  14. package/app/components/product-description/product-description.module.d.ts +2 -2
  15. package/app/components/product-documents/product-document.module.d.ts +2 -2
  16. package/app/components/product-documents/product-documents.component.d.ts +10 -10
  17. package/app/components/product-external-source/product-external-source.component.d.ts +34 -34
  18. package/app/components/product-external-source/product-external-source.module.d.ts +2 -2
  19. package/app/components/product-info-tabs/product-info-tabs.component.d.ts +18 -18
  20. package/app/components/product-info-tabs/product-info-tabs.module.d.ts +2 -2
  21. package/app/components/product-page/product-page.component.d.ts +59 -58
  22. package/app/components/product-page/product-page.module.d.ts +2 -2
  23. package/app/components/product-price/product-price.component.d.ts +19 -19
  24. package/app/components/product-price/product-price.module.d.ts +2 -2
  25. package/app/components/product-properties/product-properties.component.d.ts +16 -16
  26. package/app/components/product-properties/product-properties.module.d.ts +2 -2
  27. package/app/components/product-related/product-related.component.d.ts +16 -16
  28. package/app/components/product-related/product-related.module.d.ts +2 -2
  29. package/app/components/product-selector-type/product-selector-type.component.d.ts +21 -21
  30. package/app/components/product-selector-type/product-selector-type.module.d.ts +2 -2
  31. package/app/components/product-stock/product-stock.component.d.ts +20 -20
  32. package/app/components/product-stock/product-stock.module.d.ts +2 -2
  33. package/app/components/product-symbols/product-symbols.component.d.ts +10 -10
  34. package/app/components/product-symbols/product-symbols.module.d.ts +2 -2
  35. package/app/enum/icon.enum.d.ts +17 -17
  36. package/app/enum/language-code.enum.d.ts +6 -6
  37. package/app/enum/selector-type.enum.d.ts +5 -5
  38. package/app/ione-product.component.d.ts +44 -43
  39. package/app/ione-product.module.d.ts +2 -2
  40. package/app/model/article-quantity.model.d.ts +5 -5
  41. package/app/model/icon.d.ts +4 -4
  42. package/app/model/productSettings.d.ts +30 -30
  43. package/app/model/render-modes.d.ts +5 -5
  44. package/app/model/render-parameters.d.ts +7 -7
  45. package/app/model/settings-options.d.ts +10 -10
  46. package/app/model/stock-and-delivery.d.ts +5 -5
  47. package/app/pipe/localize.pipe.d.ts +7 -7
  48. package/app/pipe/pipe.module.d.ts +2 -2
  49. package/app/product-version.d.ts +6 -6
  50. package/app/service/dictionary.service.d.ts +24 -24
  51. package/app/service/icon-cache.service.d.ts +17 -17
  52. package/app/service/product-connector-adapter.service.d.ts +34 -34
  53. package/app/service/product-connector.service.d.ts +38 -38
  54. package/app/service/product-event.service.d.ts +22 -22
  55. package/app/service/product-settings.service.d.ts +16 -16
  56. package/app/style/_scrollbars.mixins.scss +18 -18
  57. package/app/style/_variables.scss +21 -21
  58. package/app/utils/bit-utils.d.ts +7 -7
  59. package/app/utils/json-utils.service.d.ts +3 -3
  60. package/assets/dictionary/text.properties.d.ts +3 -3
  61. package/bundles/colijnit-product.umd.js +3136 -3108
  62. package/bundles/colijnit-product.umd.js.map +1 -1
  63. package/colijnit-product-253.1.1.tgz +0 -0
  64. package/colijnit-product.d.ts +41 -41
  65. package/colijnit-product.metadata.json +1 -1
  66. package/esm2015/app/components/core/header/header.component.js +18 -18
  67. package/esm2015/app/components/core/header/header.module.js +19 -19
  68. package/esm2015/app/components/image-carousel/image-carousel.component.js +143 -143
  69. package/esm2015/app/components/image-carousel/image-carousel.module.js +23 -23
  70. package/esm2015/app/components/product-additional-description/product-additional-description.component.js +50 -50
  71. package/esm2015/app/components/product-additional-description/product-additional-description.module.js +21 -21
  72. package/esm2015/app/components/product-additional-info/product-additional-info.component.js +102 -102
  73. package/esm2015/app/components/product-additional-info/product-additional-info.module.js +21 -21
  74. package/esm2015/app/components/product-addtocart/product-addtocart.component.js +110 -92
  75. package/esm2015/app/components/product-addtocart/product-addtocart.module.js +24 -24
  76. package/esm2015/app/components/product-delivery/product-delivery.component.js +39 -39
  77. package/esm2015/app/components/product-delivery/product-delivery.module.js +23 -23
  78. package/esm2015/app/components/product-description/product-description.component.js +17 -17
  79. package/esm2015/app/components/product-description/product-description.module.js +19 -19
  80. package/esm2015/app/components/product-documents/product-document.module.js +25 -25
  81. package/esm2015/app/components/product-documents/product-documents.component.js +25 -25
  82. package/esm2015/app/components/product-external-source/product-external-source.component.js +110 -110
  83. package/esm2015/app/components/product-external-source/product-external-source.module.js +21 -21
  84. package/esm2015/app/components/product-info-tabs/product-info-tabs.component.js +59 -59
  85. package/esm2015/app/components/product-info-tabs/product-info-tabs.module.js +29 -29
  86. package/esm2015/app/components/product-page/product-page.component.js +217 -215
  87. package/esm2015/app/components/product-page/product-page.module.js +44 -44
  88. package/esm2015/app/components/product-price/product-price.component.js +60 -60
  89. package/esm2015/app/components/product-price/product-price.module.js +23 -23
  90. package/esm2015/app/components/product-properties/product-properties.component.js +50 -50
  91. package/esm2015/app/components/product-properties/product-properties.module.js +21 -21
  92. package/esm2015/app/components/product-related/product-related.component.js +62 -62
  93. package/esm2015/app/components/product-related/product-related.module.js +24 -24
  94. package/esm2015/app/components/product-selector-type/product-selector-type.component.js +42 -42
  95. package/esm2015/app/components/product-selector-type/product-selector-type.module.js +26 -26
  96. package/esm2015/app/components/product-stock/product-stock.component.js +59 -59
  97. package/esm2015/app/components/product-stock/product-stock.module.js +23 -23
  98. package/esm2015/app/components/product-symbols/product-symbols.component.js +34 -34
  99. package/esm2015/app/components/product-symbols/product-symbols.module.js +26 -26
  100. package/esm2015/app/enum/icon.enum.js +18 -18
  101. package/esm2015/app/enum/language-code.enum.js +8 -8
  102. package/esm2015/app/enum/selector-type.enum.js +7 -7
  103. package/esm2015/app/ione-product.component.js +117 -115
  104. package/esm2015/app/ione-product.module.js +29 -29
  105. package/esm2015/app/model/article-quantity.model.js +3 -3
  106. package/esm2015/app/model/icon.js +17 -17
  107. package/esm2015/app/model/productSettings.js +16 -16
  108. package/esm2015/app/model/render-modes.js +7 -7
  109. package/esm2015/app/model/render-parameters.js +10 -10
  110. package/esm2015/app/model/settings-options.js +13 -13
  111. package/esm2015/app/model/stock-and-delivery.js +8 -8
  112. package/esm2015/app/pipe/localize.pipe.js +27 -27
  113. package/esm2015/app/pipe/pipe.module.js +18 -18
  114. package/esm2015/app/product-version.js +10 -10
  115. package/esm2015/app/service/dictionary.service.js +94 -94
  116. package/esm2015/app/service/icon-cache.service.js +40 -40
  117. package/esm2015/app/service/product-connector-adapter.service.js +171 -171
  118. package/esm2015/app/service/product-connector.service.js +106 -106
  119. package/esm2015/app/service/product-event.service.js +29 -29
  120. package/esm2015/app/service/product-settings.service.js +86 -86
  121. package/esm2015/app/utils/bit-utils.js +18 -18
  122. package/esm2015/app/utils/json-utils.service.js +29 -29
  123. package/esm2015/assets/dictionary/text.properties.js +67 -67
  124. package/esm2015/colijnit-product.js +41 -41
  125. package/esm2015/public_api.js +10 -10
  126. package/fesm2015/colijnit-product.js +2235 -2213
  127. package/fesm2015/colijnit-product.js.map +1 -1
  128. package/package.json +5 -5
  129. package/public_api.d.ts +9 -9
@@ -24,1035 +24,1039 @@ import { IconModule, LoaderModule, ScrollContainerModule, PriceDisplayPipeModule
24
24
  import { CoDocument } from '@colijnit/mainapi/build/model/co-document';
25
25
  import { ConfiguratorStatisticsEnvironment } from '@colijnit/articleapi/build/model/configurator-statistics-environment';
26
26
 
27
- // this file is dynamically created, do not change this
28
- class Version {
29
- constructor() {
30
- this.name = "@colijnit/product";
31
- this.description = "Product detail page project for iOne";
32
- this.symVer = "12.0.8";
33
- this.publishDate = "4/25/2024, 5:03:50 PM";
34
- }
27
+ // this file is dynamically created, do not change this
28
+ class Version {
29
+ constructor() {
30
+ this.name = "@colijnit/product";
31
+ this.description = "Product detail page project for iOne";
32
+ this.symVer = "253.1.2";
33
+ this.publishDate = "2-7-2024 10:15:01";
34
+ }
35
35
  }
36
36
 
37
- class JsonUtilsService {
38
- readJsonFile(filePath) {
39
- return __awaiter(this, void 0, void 0, function* () {
40
- try {
41
- const response = yield fetch(filePath);
42
- if (!response.ok) {
43
- return null;
44
- }
45
- else {
46
- return response.json();
47
- }
48
- }
49
- catch (e) {
50
- console.error('Error getting file:', e.message);
51
- return '';
52
- }
53
- });
54
- }
55
- }
56
- JsonUtilsService.ɵprov = i0.ɵɵdefineInjectable({ factory: function JsonUtilsService_Factory() { return new JsonUtilsService(); }, token: JsonUtilsService, providedIn: "root" });
57
- JsonUtilsService.decorators = [
58
- { type: Injectable, args: [{
59
- providedIn: 'root'
60
- },] }
37
+ class JsonUtilsService {
38
+ readJsonFile(filePath) {
39
+ return __awaiter(this, void 0, void 0, function* () {
40
+ try {
41
+ const response = yield fetch(filePath);
42
+ if (!response.ok) {
43
+ return null;
44
+ }
45
+ else {
46
+ return response.json();
47
+ }
48
+ }
49
+ catch (e) {
50
+ console.error('Error getting file:', e.message);
51
+ return '';
52
+ }
53
+ });
54
+ }
55
+ }
56
+ JsonUtilsService.ɵprov = i0.ɵɵdefineInjectable({ factory: function JsonUtilsService_Factory() { return new JsonUtilsService(); }, token: JsonUtilsService, providedIn: "root" });
57
+ JsonUtilsService.decorators = [
58
+ { type: Injectable, args: [{
59
+ providedIn: 'root'
60
+ },] }
61
61
  ];
62
62
 
63
- class SettingsOptions {
64
- constructor() {
65
- this.showStockStatus = false;
66
- this.showZoomButton = false;
67
- this.showTagFilter = false;
68
- this.showAsConfigured = false;
69
- this.inlineAnswers = false;
70
- this.showArButton = false;
71
- this.arEnabled = false;
72
- this.vrEnabled = false;
73
- }
63
+ class SettingsOptions {
64
+ constructor() {
65
+ this.showStockStatus = false;
66
+ this.showZoomButton = false;
67
+ this.showTagFilter = false;
68
+ this.showAsConfigured = false;
69
+ this.inlineAnswers = false;
70
+ this.showArButton = false;
71
+ this.arEnabled = false;
72
+ this.vrEnabled = false;
73
+ }
74
74
  }
75
75
 
76
- var RenderModes;
77
- (function (RenderModes) {
78
- RenderModes["RenderRoom"] = "render_room";
79
- RenderModes["RenderShop"] = "render_shop";
80
- RenderModes["RenderIone"] = "render_ione";
76
+ var RenderModes;
77
+ (function (RenderModes) {
78
+ RenderModes["RenderRoom"] = "render_room";
79
+ RenderModes["RenderShop"] = "render_shop";
80
+ RenderModes["RenderIone"] = "render_ione";
81
81
  })(RenderModes || (RenderModes = {}));
82
82
 
83
- class RenderParameters {
84
- constructor() {
85
- this.host = "";
86
- this.port = 0;
87
- this.secure = false;
88
- this.renderMode = RenderModes.RenderShop;
89
- }
83
+ class RenderParameters {
84
+ constructor() {
85
+ this.host = "";
86
+ this.port = 0;
87
+ this.secure = false;
88
+ this.renderMode = RenderModes.RenderShop;
89
+ }
90
90
  }
91
91
 
92
- class ProductSettings {
93
- constructor() {
94
- this.session = undefined;
95
- this.useGroups = true;
96
- this.useRenders = false;
97
- this.useLoginEncryption = true;
98
- this.createWebOrder = true;
99
- this.useMatch = false;
100
- this.currencySymbol = '€';
101
- this.options = new SettingsOptions();
102
- this.renderParameters = new RenderParameters();
103
- }
92
+ class ProductSettings {
93
+ constructor() {
94
+ this.session = undefined;
95
+ this.useGroups = true;
96
+ this.useRenders = false;
97
+ this.useLoginEncryption = true;
98
+ this.createWebOrder = true;
99
+ this.useMatch = false;
100
+ this.currencySymbol = '€';
101
+ this.options = new SettingsOptions();
102
+ this.renderParameters = new RenderParameters();
103
+ }
104
104
  }
105
105
 
106
- // 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.
107
- // Only to be used by the IOneControllerService.
108
- class ProductConnectorAdapterService {
109
- constructor() {
110
- this.showLoader = new Subject();
111
- this._boFactory = new BusinessObjectFactory();
112
- }
113
- ngOnDestroy() {
114
- this.articleConnector.showLoader.unsubscribe();
115
- }
116
- initConnector(options) {
117
- return __awaiter(this, void 0, void 0, function* () {
118
- this.articleConnector = new Articles(options);
119
- yield this.articleConnector.connect();
120
- this.transactionConnector = new Transaction(options);
121
- this.articleConnector.showLoader.subscribe(value => this.showLoader.next(value));
122
- });
123
- }
124
- setInstance(instanceId) {
125
- // this.articleConnector.setInstanceToConfigure(instanceId, false);
126
- }
127
- getProductBundleSettings(url, upId) {
128
- return __awaiter(this, void 0, void 0, function* () {
129
- const tempSettings = new ProductSettings();
130
- tempSettings.url = url;
131
- tempSettings.schema = upId.toString();
132
- const tempMainConnector = new MainApi(tempSettings);
133
- const response = yield tempMainConnector.getPublicParams(upId);
134
- if (response) {
135
- return response.productSettings;
136
- }
137
- return "";
138
- });
139
- }
140
- convertArticleFullObjectToArticleExtended(article) {
141
- if (article) {
142
- return this._boFactory.makeWithRawBackendData(ArticleExtended, article);
143
- }
144
- }
145
- getDeliveryPrognosis(goodId, branchNr) {
146
- return __awaiter(this, void 0, void 0, function* () {
147
- const deliveryPrognosis = yield this.getSelectorDeliveryDate();
148
- if (!deliveryPrognosis || !deliveryPrognosis.returnValue) {
149
- return this.getDeliveryDate2(goodId);
150
- }
151
- return deliveryPrognosis;
152
- });
153
- }
154
- getSelectorDeliveryDate() {
155
- return __awaiter(this, void 0, void 0, function* () {
156
- const response = yield this.articleConnector.getSelectorDeliveryDate();
157
- if (response && response.validationResult && response.validationResult.success) {
158
- return this._boFactory.makeWithRawBackendData(DeliveryPrognosis, response.resultObject);
159
- }
160
- else {
161
- return null;
162
- }
163
- });
164
- }
165
- getArtStockStatus(goodId) {
166
- return __awaiter(this, void 0, void 0, function* () {
167
- const response = yield this.articleConnector.getArtStockStatus(goodId);
168
- if (response && response.validationResult && response.validationResult.success) {
169
- return response.resultObject;
170
- }
171
- else {
172
- return null;
173
- }
174
- });
175
- }
176
- getDeliveryDate2(goodId) {
177
- return __awaiter(this, void 0, void 0, function* () {
178
- const response = yield this.articleConnector.getDeliveryDate2(goodId);
179
- if (response && response.validationResult && response.validationResult.success) {
180
- return this._boFactory.makeWithRawBackendData(DeliveryPrognosis, response.resultObject);
181
- }
182
- else {
183
- return null;
184
- }
185
- });
186
- }
187
- getJsonConfiguredArticles(configuratorStatistics) {
188
- return __awaiter(this, void 0, void 0, function* () {
189
- const response = yield this.articleConnector.getJsonConfiguredArticles(configuratorStatistics);
190
- if (response && response.validationResult && response.validationResult.success) {
191
- return response.resultObject;
192
- }
193
- else {
194
- return '';
195
- }
196
- });
197
- }
198
- getJsonArticleFlatTree(goodId, goodType, quantity, showLoader = true, instanceId, configuratorStatistics) {
199
- return __awaiter(this, void 0, void 0, function* () {
200
- return this.articleConnector.getJsonArticleFlatTree(goodId, goodType, quantity, showLoader, instanceId, configuratorStatistics);
201
- });
202
- }
203
- getGoodIdFromArticleNr(sku) {
204
- return __awaiter(this, void 0, void 0, function* () {
205
- const response = yield this.articleConnector.getGoodIdFromArticleNr(sku);
206
- if (response && response.validationResult && response.validationResult.success) {
207
- return response.resultObject;
208
- }
209
- else {
210
- return null;
211
- }
212
- });
213
- }
214
- getArticleFullObject(goodId) {
215
- return __awaiter(this, void 0, void 0, function* () {
216
- const response = yield this.articleConnector.getArticleFullObject(goodId);
217
- if (response && response.validationResult && response.validationResult.success) {
218
- return this._boFactory.makeWithRawBackendData(ArticleFullObject, response.resultObject);
219
- }
220
- else {
221
- return null;
222
- }
223
- });
224
- }
225
- getSuperArticle(id, branch) {
226
- return __awaiter(this, void 0, void 0, function* () {
227
- const response = yield this.articleConnector.getSuperArticleQuickSel(id, branch);
228
- if (response && response.validationResult && response.validationResult.success) {
229
- return this._boFactory.makeWithRawBackendData(SuperArticle, response.resultObject);
230
- }
231
- else {
232
- return null;
233
- }
234
- });
235
- }
236
- getDocumentContent(docId, thumbnail = true) {
237
- return __awaiter(this, void 0, void 0, function* () {
238
- const response = yield this.articleConnector.getDocumentContent(docId, thumbnail);
239
- if (response && response.validationResult && response.validationResult.success) {
240
- return this._boFactory.makeWithRawBackendData(DocumentContent, response.resultObject);
241
- }
242
- else {
243
- return null;
244
- }
245
- });
246
- }
247
- addWebSessionTransactionLine(transactionUuid, sku, quantity) {
248
- return __awaiter(this, void 0, void 0, function* () {
249
- const response = yield this.transactionConnector.addWebSessionTransactionLine(transactionUuid, sku, quantity);
250
- if (response && response.validationResult && response.validationResult.success) {
251
- const infoResponse = this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
252
- return infoResponse.transactionInfo.uuid;
253
- }
254
- return "";
255
- });
256
- }
257
- }
258
- ProductConnectorAdapterService.decorators = [
259
- { type: Injectable }
260
- ];
106
+ // 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.
107
+ // Only to be used by the IOneControllerService.
108
+ class ProductConnectorAdapterService {
109
+ constructor() {
110
+ this.showLoader = new Subject();
111
+ this._boFactory = new BusinessObjectFactory();
112
+ }
113
+ ngOnDestroy() {
114
+ this.articleConnector.showLoader.unsubscribe();
115
+ }
116
+ initConnector(options) {
117
+ return __awaiter(this, void 0, void 0, function* () {
118
+ this.articleConnector = new Articles(options);
119
+ yield this.articleConnector.connect();
120
+ this.transactionConnector = new Transaction(options);
121
+ this.articleConnector.showLoader.subscribe(value => this.showLoader.next(value));
122
+ });
123
+ }
124
+ setInstance(instanceId) {
125
+ // this.articleConnector.setInstanceToConfigure(instanceId, false);
126
+ }
127
+ getProductBundleSettings(url, upId) {
128
+ return __awaiter(this, void 0, void 0, function* () {
129
+ const tempSettings = new ProductSettings();
130
+ tempSettings.url = url;
131
+ tempSettings.schema = upId.toString();
132
+ const tempMainConnector = new MainApi(tempSettings);
133
+ const response = yield tempMainConnector.getPublicParams(upId);
134
+ if (response) {
135
+ return response.productSettings;
136
+ }
137
+ return "";
138
+ });
139
+ }
140
+ convertArticleFullObjectToArticleExtended(article) {
141
+ if (article) {
142
+ return this._boFactory.makeWithRawBackendData(ArticleExtended, article);
143
+ }
144
+ }
145
+ getDeliveryPrognosis(goodId, branchNr) {
146
+ return __awaiter(this, void 0, void 0, function* () {
147
+ const deliveryPrognosis = yield this.getSelectorDeliveryDate();
148
+ if (!deliveryPrognosis || !deliveryPrognosis.returnValue) {
149
+ return this.getDeliveryDate2(goodId);
150
+ }
151
+ return deliveryPrognosis;
152
+ });
153
+ }
154
+ getSelectorDeliveryDate() {
155
+ return __awaiter(this, void 0, void 0, function* () {
156
+ const response = yield this.articleConnector.getSelectorDeliveryDate();
157
+ if (response && response.validationResult && response.validationResult.success) {
158
+ return this._boFactory.makeWithRawBackendData(DeliveryPrognosis, response.resultObject);
159
+ }
160
+ else {
161
+ return null;
162
+ }
163
+ });
164
+ }
165
+ getArtStockStatus(goodId) {
166
+ return __awaiter(this, void 0, void 0, function* () {
167
+ const response = yield this.articleConnector.getArtStockStatus(goodId);
168
+ if (response && response.validationResult && response.validationResult.success) {
169
+ return response.resultObject;
170
+ }
171
+ else {
172
+ return null;
173
+ }
174
+ });
175
+ }
176
+ getDeliveryDate2(goodId) {
177
+ return __awaiter(this, void 0, void 0, function* () {
178
+ const response = yield this.articleConnector.getDeliveryDate2(goodId);
179
+ if (response && response.validationResult && response.validationResult.success) {
180
+ return this._boFactory.makeWithRawBackendData(DeliveryPrognosis, response.resultObject);
181
+ }
182
+ else {
183
+ return null;
184
+ }
185
+ });
186
+ }
187
+ getJsonConfiguredArticles(configuratorStatistics) {
188
+ return __awaiter(this, void 0, void 0, function* () {
189
+ const response = yield this.articleConnector.getJsonConfiguredArticles(configuratorStatistics);
190
+ if (response && response.validationResult && response.validationResult.success) {
191
+ return response.resultObject;
192
+ }
193
+ else {
194
+ return '';
195
+ }
196
+ });
197
+ }
198
+ getJsonArticleFlatTree(goodId, goodType, quantity, showLoader = true, instanceId, configuratorStatistics) {
199
+ return __awaiter(this, void 0, void 0, function* () {
200
+ return this.articleConnector.getJsonArticleFlatTree(goodId, goodType, quantity, showLoader, instanceId, configuratorStatistics);
201
+ });
202
+ }
203
+ getGoodIdFromArticleNr(sku) {
204
+ return __awaiter(this, void 0, void 0, function* () {
205
+ const response = yield this.articleConnector.getGoodIdFromArticleNr(sku);
206
+ if (response && response.validationResult && response.validationResult.success) {
207
+ return response.resultObject;
208
+ }
209
+ else {
210
+ return null;
211
+ }
212
+ });
213
+ }
214
+ getArticleFullObject(goodId) {
215
+ return __awaiter(this, void 0, void 0, function* () {
216
+ const response = yield this.articleConnector.getArticleFullObject(goodId);
217
+ if (response && response.validationResult && response.validationResult.success) {
218
+ return this._boFactory.makeWithRawBackendData(ArticleFullObject, response.resultObject);
219
+ }
220
+ else {
221
+ return null;
222
+ }
223
+ });
224
+ }
225
+ getSuperArticle(id, branch) {
226
+ return __awaiter(this, void 0, void 0, function* () {
227
+ const response = yield this.articleConnector.getSuperArticleQuickSel(id, branch);
228
+ if (response && response.validationResult && response.validationResult.success) {
229
+ return this._boFactory.makeWithRawBackendData(SuperArticle, response.resultObject);
230
+ }
231
+ else {
232
+ return null;
233
+ }
234
+ });
235
+ }
236
+ getDocumentContent(docId, thumbnail = true) {
237
+ return __awaiter(this, void 0, void 0, function* () {
238
+ const response = yield this.articleConnector.getDocumentContent(docId, thumbnail);
239
+ if (response && response.validationResult && response.validationResult.success) {
240
+ return this._boFactory.makeWithRawBackendData(DocumentContent, response.resultObject);
241
+ }
242
+ else {
243
+ return null;
244
+ }
245
+ });
246
+ }
247
+ addWebSessionTransactionLine(transactionUuid, sku, quantity) {
248
+ return __awaiter(this, void 0, void 0, function* () {
249
+ const response = yield this.transactionConnector.addWebSessionTransactionLine(transactionUuid, sku, quantity);
250
+ if (response && response.validationResult && response.validationResult.success) {
251
+ const infoResponse = this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
252
+ return infoResponse.transactionInfo.uuid;
253
+ }
254
+ return "";
255
+ });
256
+ }
257
+ }
258
+ ProductConnectorAdapterService.decorators = [
259
+ { type: Injectable }
260
+ ];
261
261
  ProductConnectorAdapterService.ctorParameters = () => [];
262
262
 
263
- var LanguageCode;
264
- (function (LanguageCode) {
265
- LanguageCode["Dutch"] = "nl-NL";
266
- LanguageCode["English"] = "en-GB";
267
- LanguageCode["German"] = "de-DE";
268
- LanguageCode["French"] = "fr-FR";
263
+ var LanguageCode;
264
+ (function (LanguageCode) {
265
+ LanguageCode["Dutch"] = "nl-NL";
266
+ LanguageCode["English"] = "en-GB";
267
+ LanguageCode["German"] = "de-DE";
268
+ LanguageCode["French"] = "fr-FR";
269
269
  })(LanguageCode || (LanguageCode = {}));
270
270
 
271
- class Dictionary {
272
- constructor() {
273
- this.strings = {
274
- "nl": {
275
- "ADDITIONAL_DATA": "Extra informatie",
276
- "ALTERNATIVE_PRODUCTS": "Alternatieve producten",
277
- "ARTICLE_NUMBER": "Artikel nummer",
278
- "CATEGORY": "Categorie",
279
- "CATEGORY_TYPE": "Categorie type",
280
- "CONFIGURE": "Configureren",
281
- "DELIVERY_TIME_PERIOD": "Levertijd",
282
- "DESCRIPTION": "Omschrijving",
283
- "DOCUMENTS": "Documenten",
284
- "DOWNLOADS": "Downloads",
285
- "FEATURES": "Kenmerken",
286
- "HEIGHT": "Hoogte",
287
- "MATERIAL": "Materiaal",
288
- "PRODUCT_IN_STOCK": "Op voorraad",
289
- "PRODUCT_LIMITED_STOCK": "Beperkt op voorraad",
290
- "PRODUCT_NOT_IN_STOCK": "Niet op voorraad",
291
- "PROPERTIES": "Eigenschappen",
292
- "QUOTATION": "Quotatie",
293
- "READ_MORE": "Lees meer",
294
- "RELATED_PRODUCTS": "Gerelateerde producten",
295
- "SHOPPING_CART_IN": "In winkelwagen",
296
- "SHOW_IN": "Laat zien",
297
- "STOCK": "Voorraad",
298
- "SYMBOLS": "Symbolen",
299
- "TITLE": "Titel",
300
- "TURNOVERGROUP": "Omzetgroep",
301
- "VARIANTS": "Varianten",
302
- "WIDTH": "Breedte"
303
- },
304
- "de": {
305
- "ADDITIONAL_DATA": "Extra informatie",
306
- "ALTERNATIVE_PRODUCTS": "Alternative Produkte",
307
- "ARTICLE_NUMBER": "Artikelnummer",
308
- "CATEGORY": "Kategorie",
309
- "CATEGORY_TYPE": "Kategorietype",
310
- "CONFIGURE": "Konfigurieren",
311
- "DELIVERY_TIME_PERIOD": "Lieferzeit",
312
- "DESCRIPTION": "Beschreibung",
313
- "DOCUMENTS": "Dateien",
314
- "DOWNLOADS": "Downloads",
315
- "FEATURES": "Eigenschaften",
316
- "HEIGHT": "Höhe",
317
- "MATERIAL": "Material",
318
- "PRODUCT_IN_STOCK": "Auf lager",
319
- "PRODUCT_LIMITED_STOCK": "Begrentzt auf lager",
320
- "PRODUCT_NOT_IN_STOCK": "Nicht auf lager",
321
- "PROPERTIES": "Eigenschaften",
322
- "QUOTATION": "Angebot",
323
- "READ_MORE": "Lesen Sie mehr",
324
- "RELATED_PRODUCTS": "Verwandte Produkte",
325
- "SHOPPING_CART_IN": "Im Einkaufswagen",
326
- "SHOW_IN": "Zeigen",
327
- "STOCK": "Vorrat",
328
- "SYMBOLS": "Symbole",
329
- "TITLE": "Titulatur",
330
- "TURNOVERGROUP": "Umsatzgruppe",
331
- "VARIANTS": "Varianten",
332
- "WIDTH": "Breite"
333
- }
334
- };
335
- }
271
+ class Dictionary {
272
+ constructor() {
273
+ this.strings = {
274
+ "nl": {
275
+ "ADDITIONAL_DATA": "Extra informatie",
276
+ "ALTERNATIVE_PRODUCTS": "Alternatieve producten",
277
+ "ARTICLE_NUMBER": "Artikel nummer",
278
+ "CATEGORY": "Categorie",
279
+ "CATEGORY_TYPE": "Categorie type",
280
+ "CONFIGURE": "Configureren",
281
+ "DELIVERY_TIME_PERIOD": "Levertijd",
282
+ "DESCRIPTION": "Omschrijving",
283
+ "DOCUMENTS": "Documenten",
284
+ "DOWNLOADS": "Downloads",
285
+ "FEATURES": "Kenmerken",
286
+ "HEIGHT": "Hoogte",
287
+ "MATERIAL": "Materiaal",
288
+ "PRODUCT_IN_STOCK": "Op voorraad",
289
+ "PRODUCT_LIMITED_STOCK": "Beperkt op voorraad",
290
+ "PRODUCT_NOT_IN_STOCK": "Niet op voorraad",
291
+ "PROPERTIES": "Eigenschappen",
292
+ "QUOTATION": "Quotatie",
293
+ "READ_MORE": "Lees meer",
294
+ "RELATED_PRODUCTS": "Gerelateerde producten",
295
+ "SHOPPING_CART_IN": "In winkelwagen",
296
+ "SHOW_IN": "Laat zien",
297
+ "STOCK": "Voorraad",
298
+ "SYMBOLS": "Symbolen",
299
+ "TITLE": "Titel",
300
+ "TURNOVERGROUP": "Omzetgroep",
301
+ "VARIANTS": "Varianten",
302
+ "WIDTH": "Breedte"
303
+ },
304
+ "de": {
305
+ "ADDITIONAL_DATA": "Extra informatie",
306
+ "ALTERNATIVE_PRODUCTS": "Alternative Produkte",
307
+ "ARTICLE_NUMBER": "Artikelnummer",
308
+ "CATEGORY": "Kategorie",
309
+ "CATEGORY_TYPE": "Kategorietype",
310
+ "CONFIGURE": "Konfigurieren",
311
+ "DELIVERY_TIME_PERIOD": "Lieferzeit",
312
+ "DESCRIPTION": "Beschreibung",
313
+ "DOCUMENTS": "Dateien",
314
+ "DOWNLOADS": "Downloads",
315
+ "FEATURES": "Eigenschaften",
316
+ "HEIGHT": "Höhe",
317
+ "MATERIAL": "Material",
318
+ "PRODUCT_IN_STOCK": "Auf lager",
319
+ "PRODUCT_LIMITED_STOCK": "Begrentzt auf lager",
320
+ "PRODUCT_NOT_IN_STOCK": "Nicht auf lager",
321
+ "PROPERTIES": "Eigenschaften",
322
+ "QUOTATION": "Angebot",
323
+ "READ_MORE": "Lesen Sie mehr",
324
+ "RELATED_PRODUCTS": "Verwandte Produkte",
325
+ "SHOPPING_CART_IN": "Im Einkaufswagen",
326
+ "SHOW_IN": "Zeigen",
327
+ "STOCK": "Vorrat",
328
+ "SYMBOLS": "Symbole",
329
+ "TITLE": "Titulatur",
330
+ "TURNOVERGROUP": "Umsatzgruppe",
331
+ "VARIANTS": "Varianten",
332
+ "WIDTH": "Breite"
333
+ }
334
+ };
335
+ }
336
336
  }
337
337
 
338
- // The localization service, providing peers with text translation functionality.
339
- class DictionaryService {
340
- constructor(_http, _jsonUtils) {
341
- this._http = _http;
342
- this._jsonUtils = _jsonUtils;
343
- this.dictionaryUrl = 'js/browser/res/dictionary/';
344
- // private _dictionaryPromise: Map<LanguageCode, Promise<{ [key: string]: string }>> = new Map<LanguageCode, Promise<{ [key: string]: string }>>();
345
- this._dictionaries = new Map();
346
- // Some dictionary values have one or more '|~' texts in them, meant to be replaced with client-side given texts.
347
- this._placeholder = '|~';
348
- }
349
- get language() {
350
- return this._language;
351
- }
352
- set rootUrl(value) {
353
- this._rootUrl = value;
354
- this._dictBasePath = this._rootUrl + '/' + this.dictionaryUrl;
355
- }
356
- // Loads the dictionary for given language in memory.
357
- setDictionary(language) {
358
- return __awaiter(this, void 0, void 0, function* () {
359
- this._language = language || LanguageCode.Dutch;
360
- if (!this._dictionaries.has(this._language)) {
361
- const dictionary = new Dictionary();
362
- if (dictionary.strings[this._language.substr(0, 2).toLowerCase()] !== undefined) {
363
- this._dictionaries.set(this._language, dictionary.strings[this._language.substr(0, 2).toLowerCase()]);
364
- }
365
- }
366
- // if (!this._dictionaryPromise.has(language)) {
367
- // this._dictionaryPromise.set(language,
368
- // this._jsonUtils.readJsonFile(this._dictBasePath + 'text_' + language.substr(0, 2).toLowerCase() + '.properties.json')
369
- // .then((data: { [key: string]: string }) => {
370
- // this._dictionaries.set(language, data);
371
- // this.dictionaryLoaded.next();
372
- // return data;
373
- // })
374
- // // this._http.get(this._dictBasePath + 'text_' + language.substr(0, 2).toLowerCase() + '.properties.json')
375
- // // .toPromise().then((data: { [key: string]: string }) => {
376
- // // this._dictionaries.set(language, data);
377
- // // return data;
378
- // // })
379
- // );
380
- // } else {
381
- // this.dictionaryLoaded.next();
382
- // }
383
- // await this._dictionaryPromise.get(language);
384
- });
385
- }
386
- /**
387
- * Returns the localized text for the given dictionary key.
388
- * @param {string} key
389
- * @param {boolean} [upperCaseFirst = true] False for first letter lowercase, true for first letter uppercase for returned dict val
390
- * @param {string[]} replacementTexts Rest params for replacement of '|~' in returned dict value
391
- * @returns {string} The translated text for given dictionary key
392
- */
393
- get(key, upperCaseFirst = true, ...replacementTexts) {
394
- if (!StringUtils.IsStringWithLength(key)) {
395
- return key || '';
396
- }
397
- let text = this._dictionaries.get(this.language)[key];
398
- text = StringUtils.IsStringWithLength(text) ? text : key;
399
- if (upperCaseFirst) {
400
- text = text.charAt(0).toUpperCase() + text.slice(1);
401
- }
402
- else {
403
- text = text.charAt(0).toLowerCase() + text.slice(1);
404
- }
405
- if (replacementTexts.length > 0) {
406
- text = StringUtils.ReplaceOccurrencesIn(text, this._placeholder, ...replacementTexts);
407
- }
408
- return text;
409
- }
410
- }
411
- DictionaryService.ɵprov = i0.ɵɵdefineInjectable({ factory: function DictionaryService_Factory() { return new DictionaryService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(JsonUtilsService)); }, token: DictionaryService, providedIn: "root" });
412
- DictionaryService.decorators = [
413
- { type: Injectable, args: [{
414
- providedIn: 'root'
415
- },] }
416
- ];
417
- DictionaryService.ctorParameters = () => [
418
- { type: HttpClient },
419
- { type: JsonUtilsService }
338
+ // The localization service, providing peers with text translation functionality.
339
+ class DictionaryService {
340
+ constructor(_http, _jsonUtils) {
341
+ this._http = _http;
342
+ this._jsonUtils = _jsonUtils;
343
+ this.dictionaryUrl = 'js/browser/res/dictionary/';
344
+ // private _dictionaryPromise: Map<LanguageCode, Promise<{ [key: string]: string }>> = new Map<LanguageCode, Promise<{ [key: string]: string }>>();
345
+ this._dictionaries = new Map();
346
+ // Some dictionary values have one or more '|~' texts in them, meant to be replaced with client-side given texts.
347
+ this._placeholder = '|~';
348
+ }
349
+ get language() {
350
+ return this._language;
351
+ }
352
+ set rootUrl(value) {
353
+ this._rootUrl = value;
354
+ this._dictBasePath = this._rootUrl + '/' + this.dictionaryUrl;
355
+ }
356
+ // Loads the dictionary for given language in memory.
357
+ setDictionary(language) {
358
+ return __awaiter(this, void 0, void 0, function* () {
359
+ this._language = language || LanguageCode.Dutch;
360
+ if (!this._dictionaries.has(this._language)) {
361
+ const dictionary = new Dictionary();
362
+ if (dictionary.strings[this._language.substr(0, 2).toLowerCase()] !== undefined) {
363
+ this._dictionaries.set(this._language, dictionary.strings[this._language.substr(0, 2).toLowerCase()]);
364
+ }
365
+ }
366
+ // if (!this._dictionaryPromise.has(language)) {
367
+ // this._dictionaryPromise.set(language,
368
+ // this._jsonUtils.readJsonFile(this._dictBasePath + 'text_' + language.substr(0, 2).toLowerCase() + '.properties.json')
369
+ // .then((data: { [key: string]: string }) => {
370
+ // this._dictionaries.set(language, data);
371
+ // this.dictionaryLoaded.next();
372
+ // return data;
373
+ // })
374
+ // // this._http.get(this._dictBasePath + 'text_' + language.substr(0, 2).toLowerCase() + '.properties.json')
375
+ // // .toPromise().then((data: { [key: string]: string }) => {
376
+ // // this._dictionaries.set(language, data);
377
+ // // return data;
378
+ // // })
379
+ // );
380
+ // } else {
381
+ // this.dictionaryLoaded.next();
382
+ // }
383
+ // await this._dictionaryPromise.get(language);
384
+ });
385
+ }
386
+ /**
387
+ * Returns the localized text for the given dictionary key.
388
+ * @param {string} key
389
+ * @param {boolean} [upperCaseFirst = true] False for first letter lowercase, true for first letter uppercase for returned dict val
390
+ * @param {string[]} replacementTexts Rest params for replacement of '|~' in returned dict value
391
+ * @returns {string} The translated text for given dictionary key
392
+ */
393
+ get(key, upperCaseFirst = true, ...replacementTexts) {
394
+ if (!StringUtils.IsStringWithLength(key)) {
395
+ return key || '';
396
+ }
397
+ let text = this._dictionaries.get(this.language)[key];
398
+ text = StringUtils.IsStringWithLength(text) ? text : key;
399
+ if (upperCaseFirst) {
400
+ text = text.charAt(0).toUpperCase() + text.slice(1);
401
+ }
402
+ else {
403
+ text = text.charAt(0).toLowerCase() + text.slice(1);
404
+ }
405
+ if (replacementTexts.length > 0) {
406
+ text = StringUtils.ReplaceOccurrencesIn(text, this._placeholder, ...replacementTexts);
407
+ }
408
+ return text;
409
+ }
410
+ }
411
+ DictionaryService.ɵprov = i0.ɵɵdefineInjectable({ factory: function DictionaryService_Factory() { return new DictionaryService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(JsonUtilsService)); }, token: DictionaryService, providedIn: "root" });
412
+ DictionaryService.decorators = [
413
+ { type: Injectable, args: [{
414
+ providedIn: 'root'
415
+ },] }
416
+ ];
417
+ DictionaryService.ctorParameters = () => [
418
+ { type: HttpClient },
419
+ { type: JsonUtilsService }
420
420
  ];
421
421
 
422
- class ProductSettingsService {
423
- constructor(_jsonUtilsService, _dictionaryService) {
424
- this._jsonUtilsService = _jsonUtilsService;
425
- this._dictionaryService = _dictionaryService;
426
- this.settingsLoaded = new BehaviorSubject(false);
427
- }
428
- set settings(value) {
429
- this._settings = value;
430
- }
431
- get settings() {
432
- return this._settings;
433
- }
434
- initializeSettings(finish = true) {
435
- return __awaiter(this, void 0, void 0, function* () {
436
- // see if there's a json file for application settings
437
- if (typeof settings === 'undefined') {
438
- const jsonSettings = yield this._jsonUtilsService.readJsonFile('product-settings.json');
439
- if (jsonSettings) {
440
- this.settings = Object.assign(new ProductSettings(), jsonSettings);
441
- this.settings.options = Object.assign(new SettingsOptions(), this.settings.options);
442
- if (finish) {
443
- this.settingsFinished();
444
- }
445
- }
446
- }
447
- else {
448
- this.settings = Object.assign(new ProductSettings(), settings);
449
- this.settings.options = Object.assign(new SettingsOptions(), this.settings.options);
450
- if (finish) {
451
- this.settingsFinished();
452
- }
453
- }
454
- });
455
- }
456
- createSettingsFromObject(obj) {
457
- return __awaiter(this, void 0, void 0, function* () {
458
- if (!this.settings) {
459
- this.settings = new ProductSettings();
460
- }
461
- const ownOptions = Object.assign({}, this.settings.options);
462
- const ownRenderParameters = Object.assign({}, this.settings.renderParameters);
463
- this.settings = Object.assign({}, this.settings, obj);
464
- if (obj.renderParameters) {
465
- this.settings.renderParameters = Object.assign({}, ownRenderParameters, obj.renderParameters);
466
- }
467
- if (obj.options) {
468
- this.settings.options = Object.assign({}, ownOptions, obj.options);
469
- }
470
- if (obj.hasOwnProperty('assetPath')) {
471
- this.settings.assetPath = obj['assetPath'];
472
- if (this.settings.assetPath[this.settings.assetPath.length - 1] !== '/') {
473
- this.settings.assetPath += '/';
474
- }
475
- this.settings.threeDAssetPath = this.settings.assetPath;
476
- }
477
- if (obj.hasOwnProperty('threeDAssetPath')) {
478
- this.settings.threeDAssetPath = obj['threeDAssetPath'];
479
- if (this.settings.threeDAssetPath[this.settings.threeDAssetPath.length - 1] !== '/') {
480
- this.settings.threeDAssetPath += '/';
481
- }
482
- }
483
- this.settingsFinished();
484
- });
485
- }
486
- settingsFinished() {
487
- return __awaiter(this, void 0, void 0, function* () {
488
- yield this._dictionaryService.setDictionary(this.settings.languageCode);
489
- this.settingsLoaded.next(true);
490
- });
491
- }
492
- }
493
- ProductSettingsService.decorators = [
494
- { type: Injectable }
495
- ];
496
- ProductSettingsService.ctorParameters = () => [
497
- { type: JsonUtilsService },
498
- { type: DictionaryService }
422
+ class ProductSettingsService {
423
+ constructor(_jsonUtilsService, _dictionaryService) {
424
+ this._jsonUtilsService = _jsonUtilsService;
425
+ this._dictionaryService = _dictionaryService;
426
+ this.settingsLoaded = new BehaviorSubject(false);
427
+ }
428
+ set settings(value) {
429
+ this._settings = value;
430
+ }
431
+ get settings() {
432
+ return this._settings;
433
+ }
434
+ initializeSettings(finish = true) {
435
+ return __awaiter(this, void 0, void 0, function* () {
436
+ // see if there's a json file for application settings
437
+ if (typeof settings === 'undefined') {
438
+ const jsonSettings = yield this._jsonUtilsService.readJsonFile('product-settings.json');
439
+ if (jsonSettings) {
440
+ this.settings = Object.assign(new ProductSettings(), jsonSettings);
441
+ this.settings.options = Object.assign(new SettingsOptions(), this.settings.options);
442
+ if (finish) {
443
+ this.settingsFinished();
444
+ }
445
+ }
446
+ }
447
+ else {
448
+ this.settings = Object.assign(new ProductSettings(), settings);
449
+ this.settings.options = Object.assign(new SettingsOptions(), this.settings.options);
450
+ if (finish) {
451
+ this.settingsFinished();
452
+ }
453
+ }
454
+ });
455
+ }
456
+ createSettingsFromObject(obj) {
457
+ return __awaiter(this, void 0, void 0, function* () {
458
+ if (!this.settings) {
459
+ this.settings = new ProductSettings();
460
+ }
461
+ const ownOptions = Object.assign({}, this.settings.options);
462
+ const ownRenderParameters = Object.assign({}, this.settings.renderParameters);
463
+ this.settings = Object.assign({}, this.settings, obj);
464
+ if (obj.renderParameters) {
465
+ this.settings.renderParameters = Object.assign({}, ownRenderParameters, obj.renderParameters);
466
+ }
467
+ if (obj.options) {
468
+ this.settings.options = Object.assign({}, ownOptions, obj.options);
469
+ }
470
+ if (obj.hasOwnProperty('assetPath')) {
471
+ this.settings.assetPath = obj['assetPath'];
472
+ if (this.settings.assetPath[this.settings.assetPath.length - 1] !== '/') {
473
+ this.settings.assetPath += '/';
474
+ }
475
+ this.settings.threeDAssetPath = this.settings.assetPath;
476
+ }
477
+ if (obj.hasOwnProperty('threeDAssetPath')) {
478
+ this.settings.threeDAssetPath = obj['threeDAssetPath'];
479
+ if (this.settings.threeDAssetPath[this.settings.threeDAssetPath.length - 1] !== '/') {
480
+ this.settings.threeDAssetPath += '/';
481
+ }
482
+ }
483
+ this.settingsFinished();
484
+ });
485
+ }
486
+ settingsFinished() {
487
+ return __awaiter(this, void 0, void 0, function* () {
488
+ yield this._dictionaryService.setDictionary(this.settings.languageCode);
489
+ this.settingsLoaded.next(true);
490
+ });
491
+ }
492
+ }
493
+ ProductSettingsService.decorators = [
494
+ { type: Injectable }
495
+ ];
496
+ ProductSettingsService.ctorParameters = () => [
497
+ { type: JsonUtilsService },
498
+ { type: DictionaryService }
499
499
  ];
500
500
 
501
- // Holds all iONE backend related state and methods for a running HomeDecorator. To be used anywhere internally.
502
- class ProductConnectorService {
503
- constructor(_adapterService, _settingsService) {
504
- this._adapterService = _adapterService;
505
- this._settingsService = _settingsService;
506
- this.controllerInitialized = new BehaviorSubject(false);
507
- this._initializing = false;
508
- this._initialized = false;
509
- this.connectorOptions = new Options();
510
- this.subs = [];
511
- }
512
- get shouldShowLoader() {
513
- return this._shouldShowLoader;
514
- }
515
- ngOnDestroy() {
516
- this.subs.forEach(sub => sub.unsubscribe());
517
- }
518
- initConnection() {
519
- return __awaiter(this, void 0, void 0, function* () {
520
- if (this._initialized || this._initializing) {
521
- return;
522
- }
523
- this._initializing = true;
524
- try {
525
- const settings = this._settingsService.settings;
526
- if (!settings) {
527
- throw Error('Settings are not defined!');
528
- }
529
- this.connectorOptions = Object.assign(new Options(), settings);
530
- yield this._adapterService.initConnector(this.connectorOptions);
531
- this.controllerInitialized.next(true);
532
- this._initialized = true;
533
- this._initializing = false;
534
- }
535
- catch (e) {
536
- this._initializing = false;
537
- }
538
- });
539
- }
540
- getProductBundleSettings(url, upId) {
541
- return __awaiter(this, void 0, void 0, function* () {
542
- return this._adapterService.getProductBundleSettings(url, upId);
543
- });
544
- }
545
- setInstance(instanceId) {
546
- this._instanceId = instanceId;
547
- this._adapterService.setInstance(instanceId);
548
- }
549
- convertArticleFullObjectToArticleExtended(article) {
550
- return this._adapterService.convertArticleFullObjectToArticleExtended(article);
551
- }
552
- getFullArticle(sku) {
553
- return __awaiter(this, void 0, void 0, function* () {
554
- const goodId = yield this._adapterService.getGoodIdFromArticleNr(sku);
555
- if (goodId) {
556
- return this._adapterService.getArticleFullObject(goodId);
557
- }
558
- return null;
559
- });
560
- }
561
- getDocumentContent(docId, thumbnail = true) {
562
- return this._adapterService.getDocumentContent(docId, thumbnail);
563
- }
564
- getDeliveryPrognosis(goodId) {
565
- return this._adapterService.getDeliveryPrognosis(goodId);
566
- }
567
- getSelectorDeliveryDate() {
568
- return __awaiter(this, void 0, void 0, function* () {
569
- return this._adapterService.getSelectorDeliveryDate();
570
- });
571
- }
572
- getArtStockStatus(goodId) {
573
- return this._adapterService.getArtStockStatus(goodId);
574
- }
575
- getDeliveryDate2(goodId) {
576
- return this._adapterService.getDeliveryDate2(goodId);
577
- }
578
- getSuperArticle(id) {
579
- return this._adapterService.getSuperArticle(id);
580
- }
581
- getJsonArticleFlatTree(goodId, goodType, quantity, showLoader = true, configuratorStatistics) {
582
- return this._adapterService.getJsonArticleFlatTree(goodId, goodType, quantity, showLoader, this._instanceId, configuratorStatistics);
583
- }
584
- addWebSessionTransactionLine(transactionUuid, sku, quantity) {
585
- return __awaiter(this, void 0, void 0, function* () {
586
- return yield this._adapterService.addWebSessionTransactionLine(transactionUuid, sku, quantity);
587
- });
588
- }
589
- onShowLoaderChange(showLoader) {
590
- this._shouldShowLoader = showLoader;
591
- }
592
- }
593
- ProductConnectorService.decorators = [
594
- { type: Injectable }
595
- ];
596
- ProductConnectorService.ctorParameters = () => [
597
- { type: ProductConnectorAdapterService },
598
- { type: ProductSettingsService }
501
+ // Holds all iONE backend related state and methods for a running HomeDecorator. To be used anywhere internally.
502
+ class ProductConnectorService {
503
+ constructor(_adapterService, _settingsService) {
504
+ this._adapterService = _adapterService;
505
+ this._settingsService = _settingsService;
506
+ this.controllerInitialized = new BehaviorSubject(false);
507
+ this._initializing = false;
508
+ this._initialized = false;
509
+ this.connectorOptions = new Options();
510
+ this.subs = [];
511
+ }
512
+ get shouldShowLoader() {
513
+ return this._shouldShowLoader;
514
+ }
515
+ ngOnDestroy() {
516
+ this.subs.forEach(sub => sub.unsubscribe());
517
+ }
518
+ initConnection() {
519
+ return __awaiter(this, void 0, void 0, function* () {
520
+ if (this._initialized || this._initializing) {
521
+ return;
522
+ }
523
+ this._initializing = true;
524
+ try {
525
+ const settings = this._settingsService.settings;
526
+ if (!settings) {
527
+ throw Error('Settings are not defined!');
528
+ }
529
+ this.connectorOptions = Object.assign(new Options(), settings);
530
+ yield this._adapterService.initConnector(this.connectorOptions);
531
+ this.controllerInitialized.next(true);
532
+ this._initialized = true;
533
+ this._initializing = false;
534
+ }
535
+ catch (e) {
536
+ this._initializing = false;
537
+ }
538
+ });
539
+ }
540
+ getProductBundleSettings(url, upId) {
541
+ return __awaiter(this, void 0, void 0, function* () {
542
+ return this._adapterService.getProductBundleSettings(url, upId);
543
+ });
544
+ }
545
+ setInstance(instanceId) {
546
+ this._instanceId = instanceId;
547
+ this._adapterService.setInstance(instanceId);
548
+ }
549
+ convertArticleFullObjectToArticleExtended(article) {
550
+ return this._adapterService.convertArticleFullObjectToArticleExtended(article);
551
+ }
552
+ getFullArticle(sku) {
553
+ return __awaiter(this, void 0, void 0, function* () {
554
+ const goodId = yield this._adapterService.getGoodIdFromArticleNr(sku);
555
+ if (goodId) {
556
+ return this._adapterService.getArticleFullObject(goodId);
557
+ }
558
+ return null;
559
+ });
560
+ }
561
+ getDocumentContent(docId, thumbnail = true) {
562
+ return this._adapterService.getDocumentContent(docId, thumbnail);
563
+ }
564
+ getDeliveryPrognosis(goodId) {
565
+ return this._adapterService.getDeliveryPrognosis(goodId);
566
+ }
567
+ getSelectorDeliveryDate() {
568
+ return __awaiter(this, void 0, void 0, function* () {
569
+ return this._adapterService.getSelectorDeliveryDate();
570
+ });
571
+ }
572
+ getArtStockStatus(goodId) {
573
+ return this._adapterService.getArtStockStatus(goodId);
574
+ }
575
+ getDeliveryDate2(goodId) {
576
+ return this._adapterService.getDeliveryDate2(goodId);
577
+ }
578
+ getSuperArticle(id) {
579
+ return this._adapterService.getSuperArticle(id);
580
+ }
581
+ getJsonArticleFlatTree(goodId, goodType, quantity, showLoader = true, configuratorStatistics) {
582
+ return this._adapterService.getJsonArticleFlatTree(goodId, goodType, quantity, showLoader, this._instanceId, configuratorStatistics);
583
+ }
584
+ addWebSessionTransactionLine(transactionUuid, sku, quantity) {
585
+ return __awaiter(this, void 0, void 0, function* () {
586
+ return yield this._adapterService.addWebSessionTransactionLine(transactionUuid, sku, quantity);
587
+ });
588
+ }
589
+ onShowLoaderChange(showLoader) {
590
+ this._shouldShowLoader = showLoader;
591
+ }
592
+ }
593
+ ProductConnectorService.decorators = [
594
+ { type: Injectable }
595
+ ];
596
+ ProductConnectorService.ctorParameters = () => [
597
+ { type: ProductConnectorAdapterService },
598
+ { type: ProductSettingsService }
599
599
  ];
600
600
 
601
- class ProductEventService {
602
- constructor() {
603
- this.onAddToCart = new Subject();
604
- this.onAlternativeClick = new Subject();
605
- this.onAddToQuote = new Subject();
606
- this.onForceRenderImage = new Subject();
607
- this.onArticleReceived = new Subject();
608
- this.onSelectionsReceived = new Subject();
609
- this.onImageReceived = new Subject();
610
- this.onRenderStarted = new Subject();
611
- this.onRenderImageReceived = new Subject();
612
- this.onDraftRenderImageReceived = new Subject();
613
- this.onArticleInfoReceived = new Subject();
614
- this.onUpdateProductInfoTab = new Subject();
615
- }
616
- }
617
- ProductEventService.decorators = [
618
- { type: Directive },
619
- { type: Injectable }
620
- ];
621
- ProductEventService.propDecorators = {
622
- onAddToCart: [{ type: Output }],
623
- onAlternativeClick: [{ type: Output }],
624
- onAddToQuote: [{ type: Output }],
625
- onForceRenderImage: [{ type: Output }]
601
+ class ProductEventService {
602
+ constructor() {
603
+ this.onAddToCart = new Subject();
604
+ this.onAlternativeClick = new Subject();
605
+ this.onAddToQuote = new Subject();
606
+ this.onForceRenderImage = new Subject();
607
+ this.onArticleReceived = new Subject();
608
+ this.onSelectionsReceived = new Subject();
609
+ this.onImageReceived = new Subject();
610
+ this.onRenderStarted = new Subject();
611
+ this.onRenderImageReceived = new Subject();
612
+ this.onDraftRenderImageReceived = new Subject();
613
+ this.onArticleInfoReceived = new Subject();
614
+ this.onUpdateProductInfoTab = new Subject();
615
+ }
616
+ }
617
+ ProductEventService.decorators = [
618
+ { type: Directive },
619
+ { type: Injectable }
620
+ ];
621
+ ProductEventService.propDecorators = {
622
+ onAddToCart: [{ type: Output }],
623
+ onAlternativeClick: [{ type: Output }],
624
+ onAddToQuote: [{ type: Output }],
625
+ onForceRenderImage: [{ type: Output }]
626
626
  };
627
627
 
628
- class IoneProductComponent {
629
- constructor(_dictionary, _jsonUtils, _ione, _changeDetector, _appEventService, _settingsService) {
630
- // this.sku = 'CF-HILL';
631
- // this.sku = 'CF-ALMADA';
632
- // this.sku = 'CF-39904ANT';
633
- // this.sku = 'CF-22346001';
634
- // this.sku = '104';
635
- // this.sku = '1000561986';
636
- // this.sku = '1000567768';
637
- // this.sku = '1000234793';
638
- // this.sku = '1066';
639
- // this.sku = '104';
640
- // this.sku = "70000107";
641
- // this.sku = "grover";
642
- this._dictionary = _dictionary;
643
- this._jsonUtils = _jsonUtils;
644
- this._ione = _ione;
645
- this._changeDetector = _changeDetector;
646
- this._appEventService = _appEventService;
647
- this._settingsService = _settingsService;
648
- this.handleAddArticleInternally = true;
649
- this.onAddToCart = new EventEmitter();
650
- this.forceRenderImage = new EventEmitter();
651
- this.onAlternativeClick = new EventEmitter();
652
- this.onArticleInfoReceived = new EventEmitter();
653
- this.onArticleReceived = new EventEmitter();
654
- this.onSelectionsReceived = new EventEmitter();
655
- this.onAddToQuote = new EventEmitter();
656
- this.openStockEvent = new EventEmitter();
657
- this.settingsLoaded = false;
658
- this._subs = [];
659
- this._subs.push(
660
- // this._dictionary.dictionaryLoaded.subscribe(d => this.upAndLoaded = true),
661
- this._appEventService.onAddToCart.subscribe((data) => {
662
- this._handleAddToCart(data);
663
- }), this._appEventService.onAddToQuote.subscribe(json => this.onAddToQuote.emit(json)), this._appEventService.onAlternativeClick.subscribe(article => this.onAlternativeClick.emit(article)), this._appEventService.onArticleInfoReceived.subscribe(info => this._handleAnswerInfoReceived(info)), this._appEventService.onArticleReceived.subscribe(article => this.onArticleReceived.emit(article)), this._appEventService.onSelectionsReceived.subscribe(selections => this.onSelectionsReceived.emit(selections)), this._settingsService.settingsLoaded.subscribe(loaded => {
664
- this.settingsLoaded = loaded;
665
- }));
666
- }
667
- set settings(value) {
668
- if (value) {
669
- if (typeof value === 'string') {
670
- this._settings = JSON.parse(value);
671
- }
672
- else {
673
- this._settings = value;
674
- }
675
- }
676
- }
677
- get settings() {
678
- return this._settings;
679
- }
680
- ngOnInit() {
681
- return __awaiter(this, void 0, void 0, function* () {
682
- yield this._settingsService.initializeSettings(this._settings === undefined);
683
- if (this._settings) {
684
- this._settingsService.createSettingsFromObject(this._settings);
685
- }
686
- });
687
- }
688
- ngOnChanges(changes) {
689
- this._changeDetector.detectChanges();
690
- }
691
- ngOnDestroy() {
692
- this._subs.forEach(s => s.unsubscribe());
693
- }
694
- _handleAnswerInfoReceived(info) {
695
- this.onArticleInfoReceived.next(info);
696
- }
697
- _handleAddToCart(data) {
698
- return __awaiter(this, void 0, void 0, function* () {
699
- this.onAddToCart.emit(data);
700
- });
701
- }
702
- openStock() {
703
- this.openStockEvent.emit();
704
- }
705
- }
706
- IoneProductComponent.decorators = [
707
- { type: Component, args: [{
708
- selector: 'app-ione-product',
628
+ class IoneProductComponent {
629
+ constructor(_dictionary, _jsonUtils, _ione, _changeDetector, _appEventService, _settingsService) {
630
+ // this.sku = 'CF-HILL';
631
+ // this.sku = 'CF-ALMADA';
632
+ // this.sku = 'CF-39904ANT';
633
+ // this.sku = 'CF-22346001';
634
+ // this.sku = '104';
635
+ // this.sku = '1000561986';
636
+ // this.sku = '1000567768';
637
+ // this.sku = '1000234793';
638
+ // this.sku = '1066';
639
+ // this.sku = '104';
640
+ // this.sku = "70000107";
641
+ // this.sku = "grover";
642
+ this._dictionary = _dictionary;
643
+ this._jsonUtils = _jsonUtils;
644
+ this._ione = _ione;
645
+ this._changeDetector = _changeDetector;
646
+ this._appEventService = _appEventService;
647
+ this._settingsService = _settingsService;
648
+ this.handleAddArticleInternally = true;
649
+ this.onAddToCart = new EventEmitter();
650
+ this.forceRenderImage = new EventEmitter();
651
+ this.onAlternativeClick = new EventEmitter();
652
+ this.onArticleInfoReceived = new EventEmitter();
653
+ this.onArticleReceived = new EventEmitter();
654
+ this.onSelectionsReceived = new EventEmitter();
655
+ this.onAddToQuote = new EventEmitter();
656
+ this.openStockEvent = new EventEmitter();
657
+ this.settingsLoaded = false;
658
+ this._subs = [];
659
+ this._subs.push(
660
+ // this._dictionary.dictionaryLoaded.subscribe(d => this.upAndLoaded = true),
661
+ this._appEventService.onAddToCart.subscribe((data) => {
662
+ this._handleAddToCart(data);
663
+ }), this._appEventService.onAddToQuote.subscribe(json => this.onAddToQuote.emit(json)), this._appEventService.onAlternativeClick.subscribe(article => this.onAlternativeClick.emit(article)), this._appEventService.onArticleInfoReceived.subscribe(info => this._handleAnswerInfoReceived(info)), this._appEventService.onArticleReceived.subscribe(article => this.onArticleReceived.emit(article)), this._appEventService.onSelectionsReceived.subscribe(selections => this.onSelectionsReceived.emit(selections)), this._settingsService.settingsLoaded.subscribe(loaded => {
664
+ this.settingsLoaded = loaded;
665
+ }));
666
+ }
667
+ set settings(value) {
668
+ if (value) {
669
+ if (typeof value === 'string') {
670
+ this._settings = JSON.parse(value);
671
+ }
672
+ else {
673
+ this._settings = value;
674
+ }
675
+ }
676
+ }
677
+ get settings() {
678
+ return this._settings;
679
+ }
680
+ ngOnInit() {
681
+ return __awaiter(this, void 0, void 0, function* () {
682
+ yield this._settingsService.initializeSettings(this._settings === undefined);
683
+ if (this._settings) {
684
+ this._settingsService.createSettingsFromObject(this._settings);
685
+ }
686
+ });
687
+ }
688
+ ngOnChanges(changes) {
689
+ this._changeDetector.detectChanges();
690
+ }
691
+ ngOnDestroy() {
692
+ this._subs.forEach(s => s.unsubscribe());
693
+ }
694
+ _handleAnswerInfoReceived(info) {
695
+ this.onArticleInfoReceived.next(info);
696
+ }
697
+ _handleAddToCart(data) {
698
+ return __awaiter(this, void 0, void 0, function* () {
699
+ this.onAddToCart.emit(data);
700
+ });
701
+ }
702
+ openStock() {
703
+ this.openStockEvent.emit();
704
+ }
705
+ }
706
+ IoneProductComponent.decorators = [
707
+ { type: Component, args: [{
708
+ selector: 'app-ione-product',
709
709
  template: `
710
710
  <app-product-page *ngIf="settingsLoaded"
711
711
  [createFrozenArticle]="handleAddArticleInternally"
712
+ [isReturn]="isReturn"
712
713
  (openStockEvent)="openStock()" [sku]="sku"
713
714
  ></app-product-page>
714
- `,
715
- encapsulation: ViewEncapsulation.Emulated,
716
- styles: [""]
717
- },] }
718
- ];
719
- IoneProductComponent.ctorParameters = () => [
720
- { type: DictionaryService },
721
- { type: JsonUtilsService },
722
- { type: ProductConnectorService },
723
- { type: ChangeDetectorRef },
724
- { type: ProductEventService },
725
- { type: ProductSettingsService }
726
- ];
727
- IoneProductComponent.propDecorators = {
728
- sku: [{ type: Input }],
729
- settings: [{ type: Input }],
730
- handleAddArticleInternally: [{ type: Input }],
731
- onAddToCart: [{ type: Output }],
732
- forceRenderImage: [{ type: Output }],
733
- onAlternativeClick: [{ type: Output }],
734
- onArticleInfoReceived: [{ type: Output }],
735
- onArticleReceived: [{ type: Output }],
736
- onSelectionsReceived: [{ type: Output }],
737
- onAddToQuote: [{ type: Output }],
738
- openStockEvent: [{ type: Output }]
715
+ `,
716
+ encapsulation: ViewEncapsulation.Emulated,
717
+ styles: [""]
718
+ },] }
719
+ ];
720
+ IoneProductComponent.ctorParameters = () => [
721
+ { type: DictionaryService },
722
+ { type: JsonUtilsService },
723
+ { type: ProductConnectorService },
724
+ { type: ChangeDetectorRef },
725
+ { type: ProductEventService },
726
+ { type: ProductSettingsService }
727
+ ];
728
+ IoneProductComponent.propDecorators = {
729
+ sku: [{ type: Input }],
730
+ isReturn: [{ type: Input }],
731
+ settings: [{ type: Input }],
732
+ handleAddArticleInternally: [{ type: Input }],
733
+ onAddToCart: [{ type: Output }],
734
+ forceRenderImage: [{ type: Output }],
735
+ onAlternativeClick: [{ type: Output }],
736
+ onArticleInfoReceived: [{ type: Output }],
737
+ onArticleReceived: [{ type: Output }],
738
+ onSelectionsReceived: [{ type: Output }],
739
+ onAddToQuote: [{ type: Output }],
740
+ openStockEvent: [{ type: Output }]
739
741
  };
740
742
 
741
- class StockAndDelivery {
742
- constructor(stock, deliveryDescription) {
743
- this.stock = 0;
744
- this.stock = stock;
745
- this.deliveryDescription = deliveryDescription;
746
- }
743
+ class StockAndDelivery {
744
+ constructor(stock, deliveryDescription) {
745
+ this.stock = 0;
746
+ this.stock = stock;
747
+ this.deliveryDescription = deliveryDescription;
748
+ }
747
749
  }
748
750
 
749
- var SelectorType;
750
- (function (SelectorType) {
751
- SelectorType["TwoD"] = "2D";
752
- SelectorType["ThreeD"] = "3D";
753
- SelectorType["Omni"] = "Omni";
751
+ var SelectorType;
752
+ (function (SelectorType) {
753
+ SelectorType["TwoD"] = "2D";
754
+ SelectorType["ThreeD"] = "3D";
755
+ SelectorType["Omni"] = "Omni";
754
756
  })(SelectorType || (SelectorType = {}));
755
757
 
756
- /** AUTO GENERATED FILE. DO NOT CHANGE.. **/
757
- var IconEnum;
758
- (function (IconEnum) {
759
- IconEnum["AddToCartDrop"] = "add_to_cart_drop";
760
- IconEnum["DeliveryTruck"] = "delivery_truck";
761
- IconEnum["Download"] = "download";
762
- IconEnum["FullScreen"] = "full_screen";
763
- IconEnum["Location"] = "location";
764
- IconEnum["Logo"] = "logo";
765
- IconEnum["MagicWand"] = "magic_wand";
766
- IconEnum["NormalScreen"] = "normal_screen";
767
- IconEnum["Quote"] = "quote";
768
- IconEnum["Refresh"] = "refresh";
769
- IconEnum["ThreeD"] = "three_d";
770
- IconEnum["Truck"] = "truck";
771
- IconEnum["TwoD"] = "two_d";
772
- IconEnum["Warehouse"] = "warehouse";
758
+ /** AUTO GENERATED FILE. DO NOT CHANGE.. **/
759
+ var IconEnum;
760
+ (function (IconEnum) {
761
+ IconEnum["AddToCartDrop"] = "add_to_cart_drop";
762
+ IconEnum["DeliveryTruck"] = "delivery_truck";
763
+ IconEnum["Download"] = "download";
764
+ IconEnum["FullScreen"] = "full_screen";
765
+ IconEnum["Location"] = "location";
766
+ IconEnum["Logo"] = "logo";
767
+ IconEnum["MagicWand"] = "magic_wand";
768
+ IconEnum["NormalScreen"] = "normal_screen";
769
+ IconEnum["Quote"] = "quote";
770
+ IconEnum["Refresh"] = "refresh";
771
+ IconEnum["ThreeD"] = "three_d";
772
+ IconEnum["Truck"] = "truck";
773
+ IconEnum["TwoD"] = "two_d";
774
+ IconEnum["Warehouse"] = "warehouse";
773
775
  })(IconEnum || (IconEnum = {}));
774
776
 
775
- /** AUTO GENERATED FILE. DO NOT CHANGE.. **/
776
- const IconSvg = {
777
- "add_to_cart_drop": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M16.58,34.84a1.8,1.8,0,1,0,1.8,1.8A1.79,1.79,0,0,0,16.58,34.84Z\" fill=\"#484f60\"/><path d=\"M31.49,34.84a1.8,1.8,0,1,0,1.8,1.8A1.79,1.79,0,0,0,31.49,34.84Z\" fill=\"#484f60\"/><path d=\"M35.6,17.9l-1.51.18L31.88,20.3l1.31-.17a.88.88,0,0,1,1,1.08L32.35,29.5a1.52,1.52,0,0,1-1.44,1.2H16.51a1.75,1.75,0,0,1-1.57-1.17l-2.31-5.6a1,1,0,0,1,.85-1.29l4.43-.56-1.86-1.86-5.13.61a1,1,0,0,0-.87,1.28l3.34,9.44A1.73,1.73,0,0,0,15,32.72H32.64a1.51,1.51,0,0,0,1.43-1.2L36.6,19A.89.89,0,0,0,35.6,17.9Z\" fill=\"#484f60\"/><path d=\"M39,17a1.87,1.87,0,0,0-1.36,1.46l-.42,2.89c-.1.67.31,1,.9.7a2.75,2.75,0,0,0,1.33-1.7L40,18A.73.73,0,0,0,39,17Z\" fill=\"#484f60\"/><polygon points=\"24 25.35 32.04 17.3 27.04 17.3 27.04 10 20.95 10 20.95 17.3 15.96 17.3 24 25.35\" fill=\"#484f60\"/></svg>",
778
- "delivery_truck": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M25,45A20,20,0,1,1,45,25,20,20,0,0,1,25,45ZM25,6.29A18.71,18.71,0,1,0,43.71,25,18.73,18.73,0,0,0,25,6.29Z\" fill=\"#484f60\"/><path d=\"M21.86,24.09a7.14,7.14,0,0,1,.72-3.24,6.94,6.94,0,0,1,1.18-1.66H13v10.1h8.51a3.25,3.25,0,0,1,3.27-3.07A3.33,3.33,0,0,1,27,27V25.75H21.9Z\" fill=\"#484f60\" opacity=\"0.5\"/><path d=\"M21.65,30.47h-.48a3.51,3.51,0,0,1,1.13,2.19h1.57a3.22,3.22,0,0,1-1.41-.83A3.13,3.13,0,0,1,21.65,30.47Z\" fill=\"#484f60\" opacity=\"0.5\"/><path d=\"M34.63,21.89H28.87c-.3.25-.5.43-.63.56v8H28a3.19,3.19,0,0,1-.82,1.37,3.3,3.3,0,0,1-1.41.82H29a3.53,3.53,0,0,1,7,0h1V27.1Zm-.2,5.38H30.8a.47.47,0,0,1-.46-.46V23.36a.46.46,0,0,1,.46-.46h2.1a.45.45,0,0,1,.42.27l1.53,3.45A.46.46,0,0,1,34.43,27.27Z\" fill=\"#484f60\" opacity=\"0.5\"/><path d=\"M16.42,30.47a3.51,3.51,0,0,0-1.13,2.19H14.6l-1.6-1V30.47Z\" fill=\"#484f60\" opacity=\"0.5\"/><path d=\"M30,33.08a2.53,2.53,0,1,0,2.53-2.53A2.52,2.52,0,0,0,30,33.08Z\" fill=\"#484f60\" opacity=\"0.5\"/><path d=\"M16.27,33.08a2.53,2.53,0,1,0,2.53-2.53A2.52,2.52,0,0,0,16.27,33.08Z\" fill=\"#484f60\" opacity=\"0.5\"/><path d=\"M22.45,17.27h-3.2a4.29,4.29,0,0,1,1.61-3.49,6.45,6.45,0,0,1,4.31-1.38,6.79,6.79,0,0,1,2.92.57A4.72,4.72,0,0,1,30,14.62a4,4,0,0,1,.72,2.26,3.74,3.74,0,0,1-.23,1.27,5.31,5.31,0,0,1-.73,1.29,12,12,0,0,1-1.4,1.29A8.74,8.74,0,0,0,27.06,22a3.17,3.17,0,0,0-.46.94,7.56,7.56,0,0,0-.23,1.65h-3.3v-.49a6,6,0,0,1,.59-2.68,6.8,6.8,0,0,1,1.94-2.25,9.44,9.44,0,0,0,1.56-1.41,1.5,1.5,0,0,0,.27-.9,1.47,1.47,0,0,0-.65-1.19A2.9,2.9,0,0,0,25,15.14a2.77,2.77,0,0,0-1.84.6A1.91,1.91,0,0,0,22.45,17.27Z\" fill=\"#484f60\"/><path d=\"M24.78,27.42a2.06,2.06,0,0,1,1.51.61,2,2,0,0,1,.63,1.47A2,2,0,0,1,26.3,31a2.08,2.08,0,0,1-1.5.62A2,2,0,0,1,23.31,31a2.08,2.08,0,0,1,0-2.95A2,2,0,0,1,24.78,27.42Z\" fill=\"#484f60\"/></svg>",
779
- "download": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\" version=\"1.1\" sodipodi:docname=\"download.svg\" inkscape:version=\"0.92.4 (5da689c313, 2019-01-14)\"><metadata ><rdf:RDF><cc:Work rdf:about=\"\"><dc:format>image/svg+xml</dc:format><dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs /><sodipodi:namedview pagecolor=\"#ffffff\" bordercolor=\"#666666\" borderopacity=\"1\" objecttolerance=\"10\" gridtolerance=\"10\" guidetolerance=\"10\" inkscape:pageopacity=\"0\" inkscape:pageshadow=\"2\" inkscape:window-width=\"1920\" inkscape:window-height=\"1017\" showgr inkscape:zoom=\"6.675088\" inkscape:cx=\"-14.056273\" inkscape:cy=\"29.806579\" inkscape:window-x=\"-8\" inkscape:window-y=\"-8\" inkscape:window-maximized=\"1\" inkscape:current-layer=\"svg8\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"m 498.966,339.946 c -7.197,0 -13.034,5.837 -13.034,13.034 v 49.804 c 0,28.747 -23.388,52.135 -52.135,52.135 H 78.203 c -28.747,0 -52.135,-23.388 -52.135,-52.135 V 352.98 c 0,-7.197 -5.835,-13.034 -13.034,-13.034 C 5.835,339.946 0,345.782 0,352.98 v 49.804 c 0,43.121 35.082,78.203 78.203,78.203 h 355.594 c 43.121,0 78.203,-35.082 78.203,-78.203 V 352.98 c 0,-7.198 -5.835,-13.034 -13.034,-13.034 z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"M 419.833,391.3 H 92.167 c -7.197,0 -13.034,5.837 -13.034,13.034 0,7.197 5.835,13.034 13.034,13.034 h 327.665 c 7.199,0 13.034,-5.835 13.034,-13.034 0,-7.197 -5.835,-13.034 -13.033,-13.034 z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"m 387.919,207.93 c -4.795,-5.367 -13.034,-5.834 -18.404,-1.038 L 269.033,296.657 V 44.048 c 0,-7.197 -5.835,-13.034 -13.034,-13.034 -7.197,0 -13.034,5.835 -13.034,13.034 V 296.657 L 142.483,206.893 c -5.367,-4.796 -13.607,-4.328 -18.404,1.038 -4.794,5.369 -4.331,13.609 1.037,18.404 l 109.174,97.527 c 6.187,5.529 13.946,8.292 21.708,8.292 7.759,0 15.519,-2.763 21.708,-8.289 l 109.174,-97.53 c 5.37,-4.798 5.834,-13.038 1.039,-18.405 z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /></svg>",
780
- "full_screen": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M38,38.17H12v-26H38ZM13.24,36.93H36.76V13.4H13.24Z\" fill=\"#484f60\"/><polygon points=\"17.35 32.81 17.35 26.75 19.46 28.86 28.69 19.63 26.59 17.52 32.65 17.52 32.65 23.58 30.54 21.47 21.31 30.71 23.41 32.81 17.35 32.81\" fill=\"#484f60\"/></svg>",
781
- "location": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M25,12.67A8.33,8.33,0,0,0,16.67,21c0,4.6,8.33,16.67,8.33,16.67S33.33,25.6,33.33,21A8.33,8.33,0,0,0,25,12.67Zm0,10.41A2.08,2.08,0,1,1,27.08,21,2.08,2.08,0,0,1,25,23.08Z\" fill=\"#484f60\"/></svg>",
782
- "logo": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><rect x=\"10\" y=\"21.19\" width=\"2.04\" height=\"6.32\" fill=\"#484f60\"/><path d=\"M18.66,29.24a3.84,3.84,0,0,1-2.85-1.19,4.19,4.19,0,0,1,0-5.77,4,4,0,0,1,5.71,0,4.19,4.19,0,0,1,0,5.77A3.85,3.85,0,0,1,18.66,29.24Zm0-6.16a1.79,1.79,0,0,0-1.38.58,2.12,2.12,0,0,0-.57,1.51,2,2,0,0,0,.57,1.49,1.94,1.94,0,0,0,2.76,0,2.08,2.08,0,0,0,.56-1.5,2.15,2.15,0,0,0-.56-1.51A1.76,1.76,0,0,0,18.67,23.08Z\" fill=\"#484f60\"/><polygon points=\"31.05 29.18 27.33 25.02 27.33 29.14 25.29 29.14 25.29 21.15 26.57 21.15 30.29 25.33 30.29 21.19 32.33 21.19 32.33 29.18 31.05 29.18\" fill=\"#484f60\"/><polygon points=\"35.34 29.14 35.34 21.19 39.9 21.19 39.9 23.17 37.38 23.17 37.38 23.9 39.66 23.9 39.66 25.87 37.38 25.87 37.38 27.14 40 27.14 40 29.14 35.34 29.14\" fill=\"#484f60\"/></svg>",
783
- "magic_wand": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><title>magic_wand</title><g style=\"isolation:isolate\"><path d=\"M20.45,10.71a.28.28,0,0,1,.49-.19l1.4,1.25a.93.93,0,0,0,.83.23L25,11.62a.29.29,0,0,1,.34.41l-.76,1.71a.93.93,0,0,0,0,.86l.93,1.62c.12.26,0,.45-.29.45l-1.86-.2a1,1,0,0,0-.81.32l-1.26,1.38a.28.28,0,0,1-.5-.14l-.39-1.83a1,1,0,0,0-.55-.67l-1.71-.77a.28.28,0,0,1,0-.52l1.62-.94a1,1,0,0,0,.48-.73Z\" fill=\"#484f60\"/><g style=\"mix-blend-mode:lighten\"><path d=\"M23.3,16.21a1,1,0,0,0-.8.31l-1,1.13a.29.29,0,0,1-.51-.14L20.66,16a1,1,0,0,0-.55-.68l-1.39-.62a.28.28,0,0,1,0-.52L20,13.45a1,1,0,0,0,.48-.73l.16-1.5a.29.29,0,0,1,.49-.2l1.13,1a.93.93,0,0,0,.83.23L24.58,12a.29.29,0,0,1,.34.41l-.62,1.38a.91.91,0,0,0,.05.86l.75,1.32a.29.29,0,0,1-.29.44Z\" fill=\"#484f60\"/></g><path d=\"M33.57,36.76a.53.53,0,0,1,0,.72l-2.37,2.18a.48.48,0,0,1-.7,0L18,25.34a.51.51,0,0,1,0-.71l2.36-2.19a.49.49,0,0,1,.7,0Z\" fill=\"#484f60\"/><path d=\"M18.6,19.94a.51.51,0,0,1,0,.71L16.2,22.84a.48.48,0,0,1-.7,0l-2.76-3.13a.51.51,0,0,1,0-.71l2.37-2.19a.48.48,0,0,1,.7,0Z\" fill=\"#484f60\"/><path d=\"M30.67,10.55a.29.29,0,0,1,.47.24v1.12a1,1,0,0,0,.4.77l.9.66a.29.29,0,0,1-.08.52l-1.07.35a1,1,0,0,0-.61.61l-.35,1.06a.28.28,0,0,1-.51.09l-.67-.91a1,1,0,0,0-.77-.4H27.27a.29.29,0,0,1-.25-.47l.66-.9a.93.93,0,0,0,.14-.85l-.35-1.07a.29.29,0,0,1,.38-.38l1.07.35a1,1,0,0,0,.85-.13Z\" fill=\"#484f60\"/><g style=\"mix-blend-mode:lighten\"><path d=\"M29.25,14.88a1,1,0,0,0-.77-.4h-.86a.29.29,0,0,1-.24-.47l.5-.69a.93.93,0,0,0,.14-.85l-.26-.82c-.07-.27.1-.44.37-.37l.82.26a1,1,0,0,0,.85-.13l.69-.51a.29.29,0,0,1,.47.25V12a.94.94,0,0,0,.39.76l.7.51a.29.29,0,0,1-.09.52l-.81.26a1,1,0,0,0-.62.61l-.26.82a.29.29,0,0,1-.52.08Z\" fill=\"#484f60\"/></g><path d=\"M37,15.81a.29.29,0,0,1,.32.43l-.13.26a.91.91,0,0,0,0,.85l.15.26A.29.29,0,0,1,37,18l-.29,0a.93.93,0,0,0-.81.27l-.2.21a.28.28,0,0,1-.5-.16l0-.29a1,1,0,0,0-.52-.69l-.27-.13a.28.28,0,0,1,0-.52l.26-.13a.93.93,0,0,0,.5-.71l0-.29a.29.29,0,0,1,.5-.17l.21.21a.92.92,0,0,0,.82.26Z\" fill=\"#484f60\"/><g style=\"mix-blend-mode:lighten\"><path d=\"M35.25,18a1,1,0,0,0-.52-.7l-.12-.05a.28.28,0,0,1,0-.52l.12-.06a1,1,0,0,0,.51-.7V15.8a.29.29,0,0,1,.5-.18l.09.1a.92.92,0,0,0,.82.26l.13,0a.29.29,0,0,1,.32.42L37,16.5a.91.91,0,0,0,0,.85l.07.12a.29.29,0,0,1-.31.43l-.13,0a1,1,0,0,0-.82.28l-.09.1a.28.28,0,0,1-.5-.16Z\" fill=\"#484f60\"/></g></g></svg>",
784
- "normal_screen": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M38,38.17H12v-26H38ZM13.24,36.93H36.76V13.4H13.24Z\" fill=\"#484f60\"/><polygon points=\"22.18 29.83 24.29 31.93 24.29 25.87 18.23 25.87 20.34 27.98 16.43 31.89 18.28 33.73 22.18 29.83\" fill=\"#484f60\"/><polygon points=\"33.57 18.44 31.73 16.6 27.82 20.51 25.71 18.4 25.71 24.46 31.77 24.46 29.66 22.35 33.57 18.44\" fill=\"#484f60\"/></svg>",
785
- "quote": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M14.5,31.51V12a.5.5,0,0,1,.5-.5H35a.5.5,0,0,1,.5.5V38a.5.5,0,0,1-.5.5H21.27V40H35a2,2,0,0,0,2-2V12a2,2,0,0,0-2-2H15a2,2,0,0,0-2,2V31.51Z\" fill=\"#484f60\"/><path d=\"M21.27,40V33.56c0-1.78-.27-2.05-2.05-2.05H13Z\" fill=\"#484f60\"/><rect x=\"17.5\" y=\"18.5\" width=\"6\" height=\"4\" fill=\"#484f60\"/><rect x=\"25.5\" y=\"21.5\" width=\"7\" height=\"1\" fill=\"#484f60\"/><rect x=\"25.5\" y=\"18.5\" width=\"7\" height=\"1\" fill=\"#484f60\"/><rect x=\"26.5\" y=\"25.5\" width=\"6\" height=\"4\" transform=\"translate(59 55) rotate(-180)\" fill=\"#484f60\"/><rect x=\"17.5\" y=\"28.5\" width=\"7\" height=\"1\" fill=\"#484f60\"/><rect x=\"17.5\" y=\"25.5\" width=\"7\" height=\"1\" fill=\"#484f60\"/><rect x=\"17.5\" y=\"14.5\" width=\"6\" height=\"1\" fill=\"#484f60\"/><rect x=\"26.5\" y=\"34.5\" width=\"6\" height=\"1\" fill=\"#484f60\"/></svg>",
786
- "refresh": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\" version=\"1.1\" sodipodi:docname=\"refresh.svg\" inkscape:version=\"0.92.4 (5da689c313, 2019-01-14)\"><metadata ><rdf:RDF><cc:Work rdf:about=\"\"><dc:format>image/svg+xml</dc:format><dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs /><sodipodi:namedview pagecolor=\"#ffffff\" bordercolor=\"#666666\" borderopacity=\"1\" objecttolerance=\"10\" gridtolerance=\"10\" guidetolerance=\"10\" inkscape:pageopacity=\"0\" inkscape:pageshadow=\"2\" inkscape:window-width=\"1920\" inkscape:window-height=\"1017\" showgr inkscape:zoom=\"9.44\" inkscape:cx=\"13.990693\" inkscape:cy=\"13.961336\" inkscape:window-x=\"-8\" inkscape:window-y=\"-8\" inkscape:window-maximized=\"1\" inkscape:current-layer=\"svg6\" /><g transform=\"matrix(0.05356365,0,0,0.05356365,11.44076,11.82465)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"M 414.32892,173.53368 397.86852,58.29997 c -1.3534,-9.447409 -12.96516,-13.373353 -19.75699,-6.581524 l -23.97472,23.97472 C 323.3074,57.095569 288.30682,47.308258 252.3168,47.308258 c -108.23157,0 -195.126154,84.711612 -197.8314,192.852392 -0.147446,5.91103 4.149441,10.98085 9.992183,11.82206 l 46.516107,6.64982 c 6.93462,1.01194 13.38577,-4.43269 13.28954,-11.68548 -0.9646,-71.37163 56.68057,-129.79595 128.03357,-129.79595 17.27835,0 34.3526,3.51232 50.13165,10.23043 l -23.11022,23.11022 c -6.74915,6.74915 -2.91866,18.3966 6.58152,19.75699 l 115.23371,16.4604 c 7.59269,1.14465 14.26423,-5.4586 13.17546,-13.17546 z\" style=\"fill:#484f60;fill-opacity:1;stroke-width:0.77603161\" /></g></g><path inkscape:connector-curvature=\"0\" d=\"m 35.105827,24.725982 -2.489742,-0.355606 c -0.321647,-0.04073 -0.711797,0.234897 -0.711797,0.671018 0,3.781814 -3.076753,6.858567 -6.858567,6.858567 -0.920628,0 -1.830946,-0.186303 -2.673013,-0.542533 l 1.198298,-1.198297 c 0.361507,-0.361507 0.156331,-0.985389 -0.352533,-1.058254 l -6.172336,-0.882302 c -0.405403,-0.05792 -0.764422,0.289765 -0.705726,0.705725 l 0.881637,6.172381 c 0.07258,0.506577 0.694003,0.71545 1.058254,0.352527 l 1.315225,-1.314599 c 1.643397,0.987012 3.516951,1.506391 5.450194,1.506391 5.769264,0 10.423029,-4.514936 10.595325,-10.27871 0.0091,-0.317237 -0.221012,-0.591248 -0.535219,-0.636308 z\" style=\"fill:#484f60;fill-opacity:1;stroke-width:0.04156709\" /></svg>",
787
- "three_d": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M16.08,30.77a4.85,4.85,0,0,1-3-.8,4,4,0,0,0-2.49-.15,6.21,6.21,0,0,0,2.53,1.09,12.84,12.84,0,0,0,2.93-.14\" fill=\"#484f60\" opacity=\"0.5\"/><path d=\"M14.27,19.68A4.71,4.71,0,0,0,11,20.78l2,.14c.31,0,1.2-.69,1.55-.81a3.88,3.88,0,0,1,1.65-.24l-1.94-.19\" fill=\"#484f60\" opacity=\"0.5\"/><path d=\"M21.64,28.79a4.13,4.13,0,0,0-3.1-4c.89-.7,1.77-1.09,2.26-2.21a5.12,5.12,0,0,0,.35-1.9c-.13-3.24-2.64-3.73-5.29-4.15a4,4,0,0,1,3.44,3.7,4.61,4.61,0,0,1-.83,3.12,9.7,9.7,0,0,1-1.82,1.43,4.3,4.3,0,0,1,3.17,4.34,4.9,4.9,0,0,1-4.21,5c2.09-.34,4.37-.64,5.46-2.69a5,5,0,0,0,.57-2.58\" fill=\"#484f60\" opacity=\"0.5\"/><path d=\"M28.44,18.88l.38-.07.48-.06.57,0h.75l.36,0,.35.05c-.2,0-.42-.08-1.57-.25l-.36-.05-.37,0h-.77l-.59,0-.49.07a3.08,3.08,0,0,0-.39.07l-.3.07V31.38H27l.13,0h1.63l.21,0h.2l.2,0h.05l1.55-.24h0l-.34.05-.33,0H29.12l-.36,0-.33,0a1.15,1.15,0,0,1-.28-.06V19Z\" fill=\"#484f60\" opacity=\"0.5\"/><path d=\"M40,24.34a9,9,0,0,0-3-7.1,11.06,11.06,0,0,0-4.47-1.86c4.38,1.13,6.23,5.31,6.13,9.54-.12,4.5-2.27,8.55-6.86,9.66,2.59-.63,5-1.41,6.52-3.78A12,12,0,0,0,40,24.34\" fill=\"#484f60\" opacity=\"0.5\"/><path d=\"M35.38,16.71A7.32,7.32,0,0,1,36.74,18a7.82,7.82,0,0,1,1,1.73,10.32,10.32,0,0,1,.68,2.16,13.86,13.86,0,0,1,.23,2.59,15,15,0,0,1-.25,2.78,11.39,11.39,0,0,1-.68,2.31,9.34,9.34,0,0,1-1,1.85,8.23,8.23,0,0,1-1.28,1.4,7.76,7.76,0,0,1-1.7,1.07,9.07,9.07,0,0,1-2,.69,13.36,13.36,0,0,1-2.26.33,18.25,18.25,0,0,1-2.45,0c-.5,0-1-.08-1.39-.12l-1.17-.14c-.36,0-.68-.11-1-.16l-.77-.15V15.86c.34-.09.71-.18,1.09-.26s.81-.15,1.24-.21.88-.12,1.34-.17.95-.1,1.44-.13a20.57,20.57,0,0,1,2.33,0,12,12,0,0,1,2,.24,8.24,8.24,0,0,1,1.72.55A7.1,7.1,0,0,1,35.38,16.71ZM27.92,31.53a6.53,6.53,0,0,0,2.46-.32A4.81,4.81,0,0,0,32.32,30a5.82,5.82,0,0,0,1.27-2.18A10.11,10.11,0,0,0,34,24.67a8.65,8.65,0,0,0-.42-2.85,4.94,4.94,0,0,0-1.18-2,4.45,4.45,0,0,0-1.83-1.11,6.55,6.55,0,0,0-2.35-.28l-.59,0-.49.07a3.08,3.08,0,0,0-.39.07l-.3.07V31.38a2.11,2.11,0,0,0,.29.06l.34,0,.37,0,.36,0h.07\" fill=\"#484f60\"/><path d=\"M14.57,16.47a5.49,5.49,0,0,1,2,.22,3.89,3.89,0,0,1,1.49.84A3.66,3.66,0,0,1,19,18.89a4.29,4.29,0,0,1,.33,1.7,5.29,5.29,0,0,1-.17,1.34,4.29,4.29,0,0,1-.5,1.16,4.17,4.17,0,0,1-.84.94,4.88,4.88,0,0,1-1.16.69v.05a3.7,3.7,0,0,1,1.22.5,4,4,0,0,1,1,.92,4.61,4.61,0,0,1,.69,1.3,5.24,5.24,0,0,1,.25,1.62,5.36,5.36,0,0,1-.42,2.15,4.44,4.44,0,0,1-1.2,1.64,4.84,4.84,0,0,1-1.86,1,6.78,6.78,0,0,1-2.39.23,7.69,7.69,0,0,1-2.36-.52,6.89,6.89,0,0,1-.9-.42,4.36,4.36,0,0,1-.69-.47l.62-2.9a4.12,4.12,0,0,0,.53.34,6.21,6.21,0,0,0,.73.36,5.69,5.69,0,0,0,.88.31,5.19,5.19,0,0,0,1,.15,3.11,3.11,0,0,0,1.1-.13,2,2,0,0,0,.8-.45,1.93,1.93,0,0,0,.49-.71,2.35,2.35,0,0,0,.17-.89A2.48,2.48,0,0,0,16,27.67a2.23,2.23,0,0,0-.63-.79,2.9,2.9,0,0,0-.89-.46,3.5,3.5,0,0,0-1-.15H12.2V23.44l1.23,0a3.44,3.44,0,0,0,.83-.11,2.83,2.83,0,0,0,.79-.36,2,2,0,0,0,.6-.62,2,2,0,0,0,.23-.94,1.8,1.8,0,0,0-.13-.71,1.36,1.36,0,0,0-.38-.56,1.58,1.58,0,0,0-.64-.35,2.79,2.79,0,0,0-.9-.1,4.07,4.07,0,0,0-.84.13c-.27.08-.53.18-.78.28a6.56,6.56,0,0,0-1.17.7L10.42,18a5,5,0,0,1,.72-.51,7.82,7.82,0,0,1,2.12-.82A8,8,0,0,1,14.57,16.47Z\" fill=\"#484f60\"/></svg>",
788
- "truck": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\" version=\"1.1\" sodipodi:docname=\"truck.svg\" inkscape:version=\"0.92.4 (5da689c313, 2019-01-14)\"><metadata ><rdf:RDF><cc:Work rdf:about=\"\"><dc:format>image/svg+xml</dc:format><dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs /><sodipodi:namedview pagecolor=\"#ffffff\" bordercolor=\"#666666\" borderopacity=\"1\" objecttolerance=\"10\" gridtolerance=\"10\" guidetolerance=\"10\" inkscape:pageopacity=\"0\" inkscape:pageshadow=\"2\" inkscape:window-width=\"1920\" inkscape:window-height=\"1017\" showgr inkscape:zoom=\"9.44\" inkscape:cx=\"31.555563\" inkscape:cy=\"21.585628\" inkscape:window-x=\"-8\" inkscape:window-y=\"-8\" inkscape:window-maximized=\"1\" inkscape:current-layer=\"svg8\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"m 119.467,337.067 c -28.237,0 -51.2,22.963 -51.2,51.2 0,28.237 22.963,51.2 51.2,51.2 28.237,0 51.2,-22.963 51.2,-51.2 0,-28.237 -22.964,-51.2 -51.2,-51.2 z m 0,85.333 c -18.825,0 -34.133,-15.309 -34.133,-34.133 0,-18.825 15.309,-34.133 34.133,-34.133 18.824,0 34.133,15.309 34.133,34.133 0,18.824 -15.309,34.133 -34.133,34.133 z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"m 409.6,337.067 c -28.237,0 -51.2,22.963 -51.2,51.2 0,28.237 22.963,51.2 51.2,51.2 28.237,0 51.2,-22.963 51.2,-51.2 0,-28.237 -22.963,-51.2 -51.2,-51.2 z m 0,85.333 c -18.825,0 -34.133,-15.309 -34.133,-34.133 0,-18.825 15.309,-34.133 34.133,-34.133 18.825,0 34.133,15.309 34.133,34.133 0,18.824 -15.308,34.133 -34.133,34.133 z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"m 510.643,289.784 -76.8,-119.467 c -1.57,-2.441 -4.275,-3.917 -7.177,-3.917 H 332.8 c -4.719,0 -8.533,3.823 -8.533,8.533 v 213.333 c 0,4.719 3.814,8.533 8.533,8.533 h 34.133 v -17.067 h -25.6 V 183.467 h 80.674 l 72.926,113.442 v 82.825 H 452.266 V 396.8 h 51.2 c 4.719,0 8.533,-3.814 8.533,-8.533 V 294.4 c 10e-4,-1.63 -0.468,-3.243 -1.356,-4.616 z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"M 375.467,277.333 V 217.6 h 68.267 v -17.067 h -76.8 c -4.719,0 -8.533,3.823 -8.533,8.533 v 76.8 c 0,4.719 3.814,8.533 8.533,8.533 h 128 V 277.332 H 375.467 Z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"M 332.8,106.667 H 8.533 C 3.823,106.667 0,110.49 0,115.2 v 273.067 c 0,4.719 3.823,8.533 8.533,8.533 H 76.8 V 379.733 H 17.067 v -256 h 307.2 v 256 H 162.133 V 396.8 H 332.8 c 4.719,0 8.533,-3.814 8.533,-8.533 V 115.2 c 0,-4.71 -3.814,-8.533 -8.533,-8.533 z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><rect x=\"8.533\" y=\"345.60001\" width=\"51.200001\" height=\"17.066999\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><rect x=\"179.2\" y=\"345.60001\" width=\"145.067\" height=\"17.066999\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><rect x=\"469.33301\" y=\"345.60001\" width=\"34.132999\" height=\"17.066999\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><rect x=\"34.132999\" y=\"140.8\" width=\"298.66699\" height=\"17.066999\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><rect x=\"110.933\" y=\"379.733\" width=\"17.066999\" height=\"17.066999\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><rect x=\"401.06699\" y=\"379.733\" width=\"17.066999\" height=\"17.066999\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /></svg>",
789
- "two_d": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M22.41,33.89H11V31c.87-.76,1.75-1.56,2.62-2.41S15.2,27,15.73,26.39A11.84,11.84,0,0,0,17.4,24a4.45,4.45,0,0,0,.5-2,2.52,2.52,0,0,0-.64-1.85,2.47,2.47,0,0,0-1.84-.65,4.57,4.57,0,0,0-1.89.45,8.17,8.17,0,0,0-1.84,1.14h-.31V17.2a10.26,10.26,0,0,1,2-.73,10.46,10.46,0,0,1,2.71-.36,5.79,5.79,0,0,1,4.16,1.37,5.15,5.15,0,0,1,1.44,3.9,7.37,7.37,0,0,1-.69,3.14A12.94,12.94,0,0,1,19,27.59c-.6.66-1.19,1.26-1.79,1.81s-1,.93-1.28,1.15h6.53Z\" fill=\"#484f60\"/><path d=\"M38.14,20.79a7.49,7.49,0,0,0-2.37-3,6.52,6.52,0,0,0-2.17-1,11.93,11.93,0,0,0-3.06-.35H25.26V33.89h5.13a13.25,13.25,0,0,0,3-.3,6.61,6.61,0,0,0,2.33-1.08,7.71,7.71,0,0,0,2.34-3A9.9,9.9,0,0,0,39,25.19,10.47,10.47,0,0,0,38.14,20.79Zm-3.49,7.27a4,4,0,0,1-1.51,1.88,3.77,3.77,0,0,1-1.22.54,10.07,10.07,0,0,1-2,.14H29V19.7H30a9.8,9.8,0,0,1,1.81.13,3.75,3.75,0,0,1,1.18.46,4.07,4.07,0,0,1,1.65,1.92,7.4,7.4,0,0,1,.52,2.94A7.92,7.92,0,0,1,34.65,28.06Z\" fill=\"#484f60\"/></svg>",
790
- "warehouse": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\" version=\"1.1\" sodipodi:docname=\"warehouse.svg\" inkscape:version=\"0.92.4 (5da689c313, 2019-01-14)\"><metadata ><rdf:RDF><cc:Work rdf:about=\"\"><dc:format>image/svg+xml</dc:format><dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs /><sodipodi:namedview pagecolor=\"#ffffff\" bordercolor=\"#666666\" borderopacity=\"1\" objecttolerance=\"10\" gridtolerance=\"10\" guidetolerance=\"10\" inkscape:pageopacity=\"0\" inkscape:pageshadow=\"2\" inkscape:window-width=\"1920\" inkscape:window-height=\"1017\" showgr inkscape:zoom=\"6.675088\" inkscape:cx=\"9.6569985\" inkscape:cy=\"12.384637\" inkscape:window-x=\"-8\" inkscape:window-y=\"-8\" inkscape:window-maximized=\"1\" inkscape:current-layer=\"svg8\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"M 507.785,146.242 260.318,1.175 c -2.603,-1.519 -5.803,-1.57 -8.439,-0.111 L 4.412,137.598 C 1.69,139.091 0,141.958 0,145.064 v 358.4 c 0,4.719 3.823,8.533 8.533,8.533 H 51.2 c 4.71,0 8.533,-3.814 8.533,-8.533 V 204.798 h 392.533 v 298.667 c 0,4.719 3.814,8.533 8.533,8.533 h 42.667 c 4.719,0 8.533,-3.814 8.533,-8.533 V 153.598 c 10e-4,-3.03 -1.603,-5.829 -4.214,-7.356 z m -12.852,348.689 h -25.6 V 196.264 c 0,-4.71 -3.814,-8.533 -8.533,-8.533 H 51.2 c -4.71,0 -8.533,3.823 -8.533,8.533 v 298.667 h -25.6 V 150.099 L 255.872,18.344 494.933,158.487 Z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"m 426.667,392.531 h -102.4 c -4.719,0 -8.533,3.814 -8.533,8.533 v 102.4 c 0,4.719 3.814,8.533 8.533,8.533 h 102.4 c 4.719,0 8.533,-3.814 8.533,-8.533 v -102.4 c 0,-4.719 -3.814,-8.533 -8.533,-8.533 z m -8.534,102.4 H 332.8 v -85.333 h 85.333 z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"m 384,401.064 v 25.6 h -17.067 v -25.6 h -17.067 v 34.133 c 0,4.719 3.814,8.533 8.533,8.533 h 34.133 c 4.719,0 8.533,-3.814 8.533,-8.533 v -34.133 z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"m 324.267,392.531 h -102.4 c -4.71,0 -8.533,3.814 -8.533,8.533 v 102.4 c 0,4.719 3.823,8.533 8.533,8.533 h 102.4 c 4.719,0 8.533,-3.814 8.533,-8.533 v -102.4 c 0,-4.719 -3.814,-8.533 -8.533,-8.533 z m -8.534,102.4 H 230.4 v -85.333 h 85.333 z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"m 281.6,401.064 v 25.6 h -17.067 v -25.6 h -17.067 v 34.133 c 0,4.719 3.823,8.533 8.533,8.533 h 34.133 c 4.719,0 8.533,-3.814 8.533,-8.533 v -34.133 z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"m 426.667,290.131 h -102.4 c -4.719,0 -8.533,3.814 -8.533,8.533 v 102.4 c 0,4.719 3.814,8.533 8.533,8.533 h 102.4 c 4.719,0 8.533,-3.814 8.533,-8.533 v -102.4 c 0,-4.719 -3.814,-8.533 -8.533,-8.533 z m -8.534,102.4 H 332.8 v -85.333 h 85.333 z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"m 384,298.664 v 25.6 h -17.067 v -25.6 h -17.067 v 34.133 c 0,4.719 3.814,8.533 8.533,8.533 h 34.133 c 4.719,0 8.533,-3.814 8.533,-8.533 v -34.133 z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><rect x=\"51.200001\" y=\"255.998\" width=\"409.60001\" height=\"17.066999\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><rect x=\"51.200001\" y=\"221.864\" width=\"409.60001\" height=\"17.066999\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"m 298.667,119.464 h -85.333 c -4.71,0 -8.533,3.823 -8.533,8.533 v 34.133 c 0,4.71 3.823,8.533 8.533,8.533 h 85.333 c 4.719,0 8.533,-3.823 8.533,-8.533 v -34.133 c 0,-4.71 -3.814,-8.533 -8.533,-8.533 z m -8.534,34.134 h -68.267 v -17.067 h 68.267 z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /></svg>"
777
+ /** AUTO GENERATED FILE. DO NOT CHANGE.. **/
778
+ const IconSvg = {
779
+ "add_to_cart_drop": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M16.58,34.84a1.8,1.8,0,1,0,1.8,1.8A1.79,1.79,0,0,0,16.58,34.84Z\" fill=\"#484f60\"/><path d=\"M31.49,34.84a1.8,1.8,0,1,0,1.8,1.8A1.79,1.79,0,0,0,31.49,34.84Z\" fill=\"#484f60\"/><path d=\"M35.6,17.9l-1.51.18L31.88,20.3l1.31-.17a.88.88,0,0,1,1,1.08L32.35,29.5a1.52,1.52,0,0,1-1.44,1.2H16.51a1.75,1.75,0,0,1-1.57-1.17l-2.31-5.6a1,1,0,0,1,.85-1.29l4.43-.56-1.86-1.86-5.13.61a1,1,0,0,0-.87,1.28l3.34,9.44A1.73,1.73,0,0,0,15,32.72H32.64a1.51,1.51,0,0,0,1.43-1.2L36.6,19A.89.89,0,0,0,35.6,17.9Z\" fill=\"#484f60\"/><path d=\"M39,17a1.87,1.87,0,0,0-1.36,1.46l-.42,2.89c-.1.67.31,1,.9.7a2.75,2.75,0,0,0,1.33-1.7L40,18A.73.73,0,0,0,39,17Z\" fill=\"#484f60\"/><polygon points=\"24 25.35 32.04 17.3 27.04 17.3 27.04 10 20.95 10 20.95 17.3 15.96 17.3 24 25.35\" fill=\"#484f60\"/></svg>",
780
+ "delivery_truck": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M25,45A20,20,0,1,1,45,25,20,20,0,0,1,25,45ZM25,6.29A18.71,18.71,0,1,0,43.71,25,18.73,18.73,0,0,0,25,6.29Z\" fill=\"#484f60\"/><path d=\"M21.86,24.09a7.14,7.14,0,0,1,.72-3.24,6.94,6.94,0,0,1,1.18-1.66H13v10.1h8.51a3.25,3.25,0,0,1,3.27-3.07A3.33,3.33,0,0,1,27,27V25.75H21.9Z\" fill=\"#484f60\" opacity=\"0.5\"/><path d=\"M21.65,30.47h-.48a3.51,3.51,0,0,1,1.13,2.19h1.57a3.22,3.22,0,0,1-1.41-.83A3.13,3.13,0,0,1,21.65,30.47Z\" fill=\"#484f60\" opacity=\"0.5\"/><path d=\"M34.63,21.89H28.87c-.3.25-.5.43-.63.56v8H28a3.19,3.19,0,0,1-.82,1.37,3.3,3.3,0,0,1-1.41.82H29a3.53,3.53,0,0,1,7,0h1V27.1Zm-.2,5.38H30.8a.47.47,0,0,1-.46-.46V23.36a.46.46,0,0,1,.46-.46h2.1a.45.45,0,0,1,.42.27l1.53,3.45A.46.46,0,0,1,34.43,27.27Z\" fill=\"#484f60\" opacity=\"0.5\"/><path d=\"M16.42,30.47a3.51,3.51,0,0,0-1.13,2.19H14.6l-1.6-1V30.47Z\" fill=\"#484f60\" opacity=\"0.5\"/><path d=\"M30,33.08a2.53,2.53,0,1,0,2.53-2.53A2.52,2.52,0,0,0,30,33.08Z\" fill=\"#484f60\" opacity=\"0.5\"/><path d=\"M16.27,33.08a2.53,2.53,0,1,0,2.53-2.53A2.52,2.52,0,0,0,16.27,33.08Z\" fill=\"#484f60\" opacity=\"0.5\"/><path d=\"M22.45,17.27h-3.2a4.29,4.29,0,0,1,1.61-3.49,6.45,6.45,0,0,1,4.31-1.38,6.79,6.79,0,0,1,2.92.57A4.72,4.72,0,0,1,30,14.62a4,4,0,0,1,.72,2.26,3.74,3.74,0,0,1-.23,1.27,5.31,5.31,0,0,1-.73,1.29,12,12,0,0,1-1.4,1.29A8.74,8.74,0,0,0,27.06,22a3.17,3.17,0,0,0-.46.94,7.56,7.56,0,0,0-.23,1.65h-3.3v-.49a6,6,0,0,1,.59-2.68,6.8,6.8,0,0,1,1.94-2.25,9.44,9.44,0,0,0,1.56-1.41,1.5,1.5,0,0,0,.27-.9,1.47,1.47,0,0,0-.65-1.19A2.9,2.9,0,0,0,25,15.14a2.77,2.77,0,0,0-1.84.6A1.91,1.91,0,0,0,22.45,17.27Z\" fill=\"#484f60\"/><path d=\"M24.78,27.42a2.06,2.06,0,0,1,1.51.61,2,2,0,0,1,.63,1.47A2,2,0,0,1,26.3,31a2.08,2.08,0,0,1-1.5.62A2,2,0,0,1,23.31,31a2.08,2.08,0,0,1,0-2.95A2,2,0,0,1,24.78,27.42Z\" fill=\"#484f60\"/></svg>",
781
+ "download": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\" version=\"1.1\" sodipodi:docname=\"download.svg\" inkscape:version=\"0.92.4 (5da689c313, 2019-01-14)\"><metadata ><rdf:RDF><cc:Work rdf:about=\"\"><dc:format>image/svg+xml</dc:format><dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs /><sodipodi:namedview pagecolor=\"#ffffff\" bordercolor=\"#666666\" borderopacity=\"1\" objecttolerance=\"10\" gridtolerance=\"10\" guidetolerance=\"10\" inkscape:pageopacity=\"0\" inkscape:pageshadow=\"2\" inkscape:window-width=\"1920\" inkscape:window-height=\"1017\" showgr inkscape:zoom=\"6.675088\" inkscape:cx=\"-14.056273\" inkscape:cy=\"29.806579\" inkscape:window-x=\"-8\" inkscape:window-y=\"-8\" inkscape:window-maximized=\"1\" inkscape:current-layer=\"svg8\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"m 498.966,339.946 c -7.197,0 -13.034,5.837 -13.034,13.034 v 49.804 c 0,28.747 -23.388,52.135 -52.135,52.135 H 78.203 c -28.747,0 -52.135,-23.388 -52.135,-52.135 V 352.98 c 0,-7.197 -5.835,-13.034 -13.034,-13.034 C 5.835,339.946 0,345.782 0,352.98 v 49.804 c 0,43.121 35.082,78.203 78.203,78.203 h 355.594 c 43.121,0 78.203,-35.082 78.203,-78.203 V 352.98 c 0,-7.198 -5.835,-13.034 -13.034,-13.034 z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"M 419.833,391.3 H 92.167 c -7.197,0 -13.034,5.837 -13.034,13.034 0,7.197 5.835,13.034 13.034,13.034 h 327.665 c 7.199,0 13.034,-5.835 13.034,-13.034 0,-7.197 -5.835,-13.034 -13.033,-13.034 z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"m 387.919,207.93 c -4.795,-5.367 -13.034,-5.834 -18.404,-1.038 L 269.033,296.657 V 44.048 c 0,-7.197 -5.835,-13.034 -13.034,-13.034 -7.197,0 -13.034,5.835 -13.034,13.034 V 296.657 L 142.483,206.893 c -5.367,-4.796 -13.607,-4.328 -18.404,1.038 -4.794,5.369 -4.331,13.609 1.037,18.404 l 109.174,97.527 c 6.187,5.529 13.946,8.292 21.708,8.292 7.759,0 15.519,-2.763 21.708,-8.289 l 109.174,-97.53 c 5.37,-4.798 5.834,-13.038 1.039,-18.405 z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /></svg>",
782
+ "full_screen": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M38,38.17H12v-26H38ZM13.24,36.93H36.76V13.4H13.24Z\" fill=\"#484f60\"/><polygon points=\"17.35 32.81 17.35 26.75 19.46 28.86 28.69 19.63 26.59 17.52 32.65 17.52 32.65 23.58 30.54 21.47 21.31 30.71 23.41 32.81 17.35 32.81\" fill=\"#484f60\"/></svg>",
783
+ "location": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M25,12.67A8.33,8.33,0,0,0,16.67,21c0,4.6,8.33,16.67,8.33,16.67S33.33,25.6,33.33,21A8.33,8.33,0,0,0,25,12.67Zm0,10.41A2.08,2.08,0,1,1,27.08,21,2.08,2.08,0,0,1,25,23.08Z\" fill=\"#484f60\"/></svg>",
784
+ "logo": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><rect x=\"10\" y=\"21.19\" width=\"2.04\" height=\"6.32\" fill=\"#484f60\"/><path d=\"M18.66,29.24a3.84,3.84,0,0,1-2.85-1.19,4.19,4.19,0,0,1,0-5.77,4,4,0,0,1,5.71,0,4.19,4.19,0,0,1,0,5.77A3.85,3.85,0,0,1,18.66,29.24Zm0-6.16a1.79,1.79,0,0,0-1.38.58,2.12,2.12,0,0,0-.57,1.51,2,2,0,0,0,.57,1.49,1.94,1.94,0,0,0,2.76,0,2.08,2.08,0,0,0,.56-1.5,2.15,2.15,0,0,0-.56-1.51A1.76,1.76,0,0,0,18.67,23.08Z\" fill=\"#484f60\"/><polygon points=\"31.05 29.18 27.33 25.02 27.33 29.14 25.29 29.14 25.29 21.15 26.57 21.15 30.29 25.33 30.29 21.19 32.33 21.19 32.33 29.18 31.05 29.18\" fill=\"#484f60\"/><polygon points=\"35.34 29.14 35.34 21.19 39.9 21.19 39.9 23.17 37.38 23.17 37.38 23.9 39.66 23.9 39.66 25.87 37.38 25.87 37.38 27.14 40 27.14 40 29.14 35.34 29.14\" fill=\"#484f60\"/></svg>",
785
+ "magic_wand": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><title>magic_wand</title><g style=\"isolation:isolate\"><path d=\"M20.45,10.71a.28.28,0,0,1,.49-.19l1.4,1.25a.93.93,0,0,0,.83.23L25,11.62a.29.29,0,0,1,.34.41l-.76,1.71a.93.93,0,0,0,0,.86l.93,1.62c.12.26,0,.45-.29.45l-1.86-.2a1,1,0,0,0-.81.32l-1.26,1.38a.28.28,0,0,1-.5-.14l-.39-1.83a1,1,0,0,0-.55-.67l-1.71-.77a.28.28,0,0,1,0-.52l1.62-.94a1,1,0,0,0,.48-.73Z\" fill=\"#484f60\"/><g style=\"mix-blend-mode:lighten\"><path d=\"M23.3,16.21a1,1,0,0,0-.8.31l-1,1.13a.29.29,0,0,1-.51-.14L20.66,16a1,1,0,0,0-.55-.68l-1.39-.62a.28.28,0,0,1,0-.52L20,13.45a1,1,0,0,0,.48-.73l.16-1.5a.29.29,0,0,1,.49-.2l1.13,1a.93.93,0,0,0,.83.23L24.58,12a.29.29,0,0,1,.34.41l-.62,1.38a.91.91,0,0,0,.05.86l.75,1.32a.29.29,0,0,1-.29.44Z\" fill=\"#484f60\"/></g><path d=\"M33.57,36.76a.53.53,0,0,1,0,.72l-2.37,2.18a.48.48,0,0,1-.7,0L18,25.34a.51.51,0,0,1,0-.71l2.36-2.19a.49.49,0,0,1,.7,0Z\" fill=\"#484f60\"/><path d=\"M18.6,19.94a.51.51,0,0,1,0,.71L16.2,22.84a.48.48,0,0,1-.7,0l-2.76-3.13a.51.51,0,0,1,0-.71l2.37-2.19a.48.48,0,0,1,.7,0Z\" fill=\"#484f60\"/><path d=\"M30.67,10.55a.29.29,0,0,1,.47.24v1.12a1,1,0,0,0,.4.77l.9.66a.29.29,0,0,1-.08.52l-1.07.35a1,1,0,0,0-.61.61l-.35,1.06a.28.28,0,0,1-.51.09l-.67-.91a1,1,0,0,0-.77-.4H27.27a.29.29,0,0,1-.25-.47l.66-.9a.93.93,0,0,0,.14-.85l-.35-1.07a.29.29,0,0,1,.38-.38l1.07.35a1,1,0,0,0,.85-.13Z\" fill=\"#484f60\"/><g style=\"mix-blend-mode:lighten\"><path d=\"M29.25,14.88a1,1,0,0,0-.77-.4h-.86a.29.29,0,0,1-.24-.47l.5-.69a.93.93,0,0,0,.14-.85l-.26-.82c-.07-.27.1-.44.37-.37l.82.26a1,1,0,0,0,.85-.13l.69-.51a.29.29,0,0,1,.47.25V12a.94.94,0,0,0,.39.76l.7.51a.29.29,0,0,1-.09.52l-.81.26a1,1,0,0,0-.62.61l-.26.82a.29.29,0,0,1-.52.08Z\" fill=\"#484f60\"/></g><path d=\"M37,15.81a.29.29,0,0,1,.32.43l-.13.26a.91.91,0,0,0,0,.85l.15.26A.29.29,0,0,1,37,18l-.29,0a.93.93,0,0,0-.81.27l-.2.21a.28.28,0,0,1-.5-.16l0-.29a1,1,0,0,0-.52-.69l-.27-.13a.28.28,0,0,1,0-.52l.26-.13a.93.93,0,0,0,.5-.71l0-.29a.29.29,0,0,1,.5-.17l.21.21a.92.92,0,0,0,.82.26Z\" fill=\"#484f60\"/><g style=\"mix-blend-mode:lighten\"><path d=\"M35.25,18a1,1,0,0,0-.52-.7l-.12-.05a.28.28,0,0,1,0-.52l.12-.06a1,1,0,0,0,.51-.7V15.8a.29.29,0,0,1,.5-.18l.09.1a.92.92,0,0,0,.82.26l.13,0a.29.29,0,0,1,.32.42L37,16.5a.91.91,0,0,0,0,.85l.07.12a.29.29,0,0,1-.31.43l-.13,0a1,1,0,0,0-.82.28l-.09.1a.28.28,0,0,1-.5-.16Z\" fill=\"#484f60\"/></g></g></svg>",
786
+ "normal_screen": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M38,38.17H12v-26H38ZM13.24,36.93H36.76V13.4H13.24Z\" fill=\"#484f60\"/><polygon points=\"22.18 29.83 24.29 31.93 24.29 25.87 18.23 25.87 20.34 27.98 16.43 31.89 18.28 33.73 22.18 29.83\" fill=\"#484f60\"/><polygon points=\"33.57 18.44 31.73 16.6 27.82 20.51 25.71 18.4 25.71 24.46 31.77 24.46 29.66 22.35 33.57 18.44\" fill=\"#484f60\"/></svg>",
787
+ "quote": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M14.5,31.51V12a.5.5,0,0,1,.5-.5H35a.5.5,0,0,1,.5.5V38a.5.5,0,0,1-.5.5H21.27V40H35a2,2,0,0,0,2-2V12a2,2,0,0,0-2-2H15a2,2,0,0,0-2,2V31.51Z\" fill=\"#484f60\"/><path d=\"M21.27,40V33.56c0-1.78-.27-2.05-2.05-2.05H13Z\" fill=\"#484f60\"/><rect x=\"17.5\" y=\"18.5\" width=\"6\" height=\"4\" fill=\"#484f60\"/><rect x=\"25.5\" y=\"21.5\" width=\"7\" height=\"1\" fill=\"#484f60\"/><rect x=\"25.5\" y=\"18.5\" width=\"7\" height=\"1\" fill=\"#484f60\"/><rect x=\"26.5\" y=\"25.5\" width=\"6\" height=\"4\" transform=\"translate(59 55) rotate(-180)\" fill=\"#484f60\"/><rect x=\"17.5\" y=\"28.5\" width=\"7\" height=\"1\" fill=\"#484f60\"/><rect x=\"17.5\" y=\"25.5\" width=\"7\" height=\"1\" fill=\"#484f60\"/><rect x=\"17.5\" y=\"14.5\" width=\"6\" height=\"1\" fill=\"#484f60\"/><rect x=\"26.5\" y=\"34.5\" width=\"6\" height=\"1\" fill=\"#484f60\"/></svg>",
788
+ "refresh": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\" version=\"1.1\" sodipodi:docname=\"refresh.svg\" inkscape:version=\"0.92.4 (5da689c313, 2019-01-14)\"><metadata ><rdf:RDF><cc:Work rdf:about=\"\"><dc:format>image/svg+xml</dc:format><dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs /><sodipodi:namedview pagecolor=\"#ffffff\" bordercolor=\"#666666\" borderopacity=\"1\" objecttolerance=\"10\" gridtolerance=\"10\" guidetolerance=\"10\" inkscape:pageopacity=\"0\" inkscape:pageshadow=\"2\" inkscape:window-width=\"1920\" inkscape:window-height=\"1017\" showgr inkscape:zoom=\"9.44\" inkscape:cx=\"13.990693\" inkscape:cy=\"13.961336\" inkscape:window-x=\"-8\" inkscape:window-y=\"-8\" inkscape:window-maximized=\"1\" inkscape:current-layer=\"svg6\" /><g transform=\"matrix(0.05356365,0,0,0.05356365,11.44076,11.82465)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"M 414.32892,173.53368 397.86852,58.29997 c -1.3534,-9.447409 -12.96516,-13.373353 -19.75699,-6.581524 l -23.97472,23.97472 C 323.3074,57.095569 288.30682,47.308258 252.3168,47.308258 c -108.23157,0 -195.126154,84.711612 -197.8314,192.852392 -0.147446,5.91103 4.149441,10.98085 9.992183,11.82206 l 46.516107,6.64982 c 6.93462,1.01194 13.38577,-4.43269 13.28954,-11.68548 -0.9646,-71.37163 56.68057,-129.79595 128.03357,-129.79595 17.27835,0 34.3526,3.51232 50.13165,10.23043 l -23.11022,23.11022 c -6.74915,6.74915 -2.91866,18.3966 6.58152,19.75699 l 115.23371,16.4604 c 7.59269,1.14465 14.26423,-5.4586 13.17546,-13.17546 z\" style=\"fill:#484f60;fill-opacity:1;stroke-width:0.77603161\" /></g></g><path inkscape:connector-curvature=\"0\" d=\"m 35.105827,24.725982 -2.489742,-0.355606 c -0.321647,-0.04073 -0.711797,0.234897 -0.711797,0.671018 0,3.781814 -3.076753,6.858567 -6.858567,6.858567 -0.920628,0 -1.830946,-0.186303 -2.673013,-0.542533 l 1.198298,-1.198297 c 0.361507,-0.361507 0.156331,-0.985389 -0.352533,-1.058254 l -6.172336,-0.882302 c -0.405403,-0.05792 -0.764422,0.289765 -0.705726,0.705725 l 0.881637,6.172381 c 0.07258,0.506577 0.694003,0.71545 1.058254,0.352527 l 1.315225,-1.314599 c 1.643397,0.987012 3.516951,1.506391 5.450194,1.506391 5.769264,0 10.423029,-4.514936 10.595325,-10.27871 0.0091,-0.317237 -0.221012,-0.591248 -0.535219,-0.636308 z\" style=\"fill:#484f60;fill-opacity:1;stroke-width:0.04156709\" /></svg>",
789
+ "three_d": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M16.08,30.77a4.85,4.85,0,0,1-3-.8,4,4,0,0,0-2.49-.15,6.21,6.21,0,0,0,2.53,1.09,12.84,12.84,0,0,0,2.93-.14\" fill=\"#484f60\" opacity=\"0.5\"/><path d=\"M14.27,19.68A4.71,4.71,0,0,0,11,20.78l2,.14c.31,0,1.2-.69,1.55-.81a3.88,3.88,0,0,1,1.65-.24l-1.94-.19\" fill=\"#484f60\" opacity=\"0.5\"/><path d=\"M21.64,28.79a4.13,4.13,0,0,0-3.1-4c.89-.7,1.77-1.09,2.26-2.21a5.12,5.12,0,0,0,.35-1.9c-.13-3.24-2.64-3.73-5.29-4.15a4,4,0,0,1,3.44,3.7,4.61,4.61,0,0,1-.83,3.12,9.7,9.7,0,0,1-1.82,1.43,4.3,4.3,0,0,1,3.17,4.34,4.9,4.9,0,0,1-4.21,5c2.09-.34,4.37-.64,5.46-2.69a5,5,0,0,0,.57-2.58\" fill=\"#484f60\" opacity=\"0.5\"/><path d=\"M28.44,18.88l.38-.07.48-.06.57,0h.75l.36,0,.35.05c-.2,0-.42-.08-1.57-.25l-.36-.05-.37,0h-.77l-.59,0-.49.07a3.08,3.08,0,0,0-.39.07l-.3.07V31.38H27l.13,0h1.63l.21,0h.2l.2,0h.05l1.55-.24h0l-.34.05-.33,0H29.12l-.36,0-.33,0a1.15,1.15,0,0,1-.28-.06V19Z\" fill=\"#484f60\" opacity=\"0.5\"/><path d=\"M40,24.34a9,9,0,0,0-3-7.1,11.06,11.06,0,0,0-4.47-1.86c4.38,1.13,6.23,5.31,6.13,9.54-.12,4.5-2.27,8.55-6.86,9.66,2.59-.63,5-1.41,6.52-3.78A12,12,0,0,0,40,24.34\" fill=\"#484f60\" opacity=\"0.5\"/><path d=\"M35.38,16.71A7.32,7.32,0,0,1,36.74,18a7.82,7.82,0,0,1,1,1.73,10.32,10.32,0,0,1,.68,2.16,13.86,13.86,0,0,1,.23,2.59,15,15,0,0,1-.25,2.78,11.39,11.39,0,0,1-.68,2.31,9.34,9.34,0,0,1-1,1.85,8.23,8.23,0,0,1-1.28,1.4,7.76,7.76,0,0,1-1.7,1.07,9.07,9.07,0,0,1-2,.69,13.36,13.36,0,0,1-2.26.33,18.25,18.25,0,0,1-2.45,0c-.5,0-1-.08-1.39-.12l-1.17-.14c-.36,0-.68-.11-1-.16l-.77-.15V15.86c.34-.09.71-.18,1.09-.26s.81-.15,1.24-.21.88-.12,1.34-.17.95-.1,1.44-.13a20.57,20.57,0,0,1,2.33,0,12,12,0,0,1,2,.24,8.24,8.24,0,0,1,1.72.55A7.1,7.1,0,0,1,35.38,16.71ZM27.92,31.53a6.53,6.53,0,0,0,2.46-.32A4.81,4.81,0,0,0,32.32,30a5.82,5.82,0,0,0,1.27-2.18A10.11,10.11,0,0,0,34,24.67a8.65,8.65,0,0,0-.42-2.85,4.94,4.94,0,0,0-1.18-2,4.45,4.45,0,0,0-1.83-1.11,6.55,6.55,0,0,0-2.35-.28l-.59,0-.49.07a3.08,3.08,0,0,0-.39.07l-.3.07V31.38a2.11,2.11,0,0,0,.29.06l.34,0,.37,0,.36,0h.07\" fill=\"#484f60\"/><path d=\"M14.57,16.47a5.49,5.49,0,0,1,2,.22,3.89,3.89,0,0,1,1.49.84A3.66,3.66,0,0,1,19,18.89a4.29,4.29,0,0,1,.33,1.7,5.29,5.29,0,0,1-.17,1.34,4.29,4.29,0,0,1-.5,1.16,4.17,4.17,0,0,1-.84.94,4.88,4.88,0,0,1-1.16.69v.05a3.7,3.7,0,0,1,1.22.5,4,4,0,0,1,1,.92,4.61,4.61,0,0,1,.69,1.3,5.24,5.24,0,0,1,.25,1.62,5.36,5.36,0,0,1-.42,2.15,4.44,4.44,0,0,1-1.2,1.64,4.84,4.84,0,0,1-1.86,1,6.78,6.78,0,0,1-2.39.23,7.69,7.69,0,0,1-2.36-.52,6.89,6.89,0,0,1-.9-.42,4.36,4.36,0,0,1-.69-.47l.62-2.9a4.12,4.12,0,0,0,.53.34,6.21,6.21,0,0,0,.73.36,5.69,5.69,0,0,0,.88.31,5.19,5.19,0,0,0,1,.15,3.11,3.11,0,0,0,1.1-.13,2,2,0,0,0,.8-.45,1.93,1.93,0,0,0,.49-.71,2.35,2.35,0,0,0,.17-.89A2.48,2.48,0,0,0,16,27.67a2.23,2.23,0,0,0-.63-.79,2.9,2.9,0,0,0-.89-.46,3.5,3.5,0,0,0-1-.15H12.2V23.44l1.23,0a3.44,3.44,0,0,0,.83-.11,2.83,2.83,0,0,0,.79-.36,2,2,0,0,0,.6-.62,2,2,0,0,0,.23-.94,1.8,1.8,0,0,0-.13-.71,1.36,1.36,0,0,0-.38-.56,1.58,1.58,0,0,0-.64-.35,2.79,2.79,0,0,0-.9-.1,4.07,4.07,0,0,0-.84.13c-.27.08-.53.18-.78.28a6.56,6.56,0,0,0-1.17.7L10.42,18a5,5,0,0,1,.72-.51,7.82,7.82,0,0,1,2.12-.82A8,8,0,0,1,14.57,16.47Z\" fill=\"#484f60\"/></svg>",
790
+ "truck": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\" version=\"1.1\" sodipodi:docname=\"truck.svg\" inkscape:version=\"0.92.4 (5da689c313, 2019-01-14)\"><metadata ><rdf:RDF><cc:Work rdf:about=\"\"><dc:format>image/svg+xml</dc:format><dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs /><sodipodi:namedview pagecolor=\"#ffffff\" bordercolor=\"#666666\" borderopacity=\"1\" objecttolerance=\"10\" gridtolerance=\"10\" guidetolerance=\"10\" inkscape:pageopacity=\"0\" inkscape:pageshadow=\"2\" inkscape:window-width=\"1920\" inkscape:window-height=\"1017\" showgr inkscape:zoom=\"9.44\" inkscape:cx=\"31.555563\" inkscape:cy=\"21.585628\" inkscape:window-x=\"-8\" inkscape:window-y=\"-8\" inkscape:window-maximized=\"1\" inkscape:current-layer=\"svg8\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"m 119.467,337.067 c -28.237,0 -51.2,22.963 -51.2,51.2 0,28.237 22.963,51.2 51.2,51.2 28.237,0 51.2,-22.963 51.2,-51.2 0,-28.237 -22.964,-51.2 -51.2,-51.2 z m 0,85.333 c -18.825,0 -34.133,-15.309 -34.133,-34.133 0,-18.825 15.309,-34.133 34.133,-34.133 18.824,0 34.133,15.309 34.133,34.133 0,18.824 -15.309,34.133 -34.133,34.133 z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"m 409.6,337.067 c -28.237,0 -51.2,22.963 -51.2,51.2 0,28.237 22.963,51.2 51.2,51.2 28.237,0 51.2,-22.963 51.2,-51.2 0,-28.237 -22.963,-51.2 -51.2,-51.2 z m 0,85.333 c -18.825,0 -34.133,-15.309 -34.133,-34.133 0,-18.825 15.309,-34.133 34.133,-34.133 18.825,0 34.133,15.309 34.133,34.133 0,18.824 -15.308,34.133 -34.133,34.133 z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"m 510.643,289.784 -76.8,-119.467 c -1.57,-2.441 -4.275,-3.917 -7.177,-3.917 H 332.8 c -4.719,0 -8.533,3.823 -8.533,8.533 v 213.333 c 0,4.719 3.814,8.533 8.533,8.533 h 34.133 v -17.067 h -25.6 V 183.467 h 80.674 l 72.926,113.442 v 82.825 H 452.266 V 396.8 h 51.2 c 4.719,0 8.533,-3.814 8.533,-8.533 V 294.4 c 10e-4,-1.63 -0.468,-3.243 -1.356,-4.616 z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"M 375.467,277.333 V 217.6 h 68.267 v -17.067 h -76.8 c -4.719,0 -8.533,3.823 -8.533,8.533 v 76.8 c 0,4.719 3.814,8.533 8.533,8.533 h 128 V 277.332 H 375.467 Z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"M 332.8,106.667 H 8.533 C 3.823,106.667 0,110.49 0,115.2 v 273.067 c 0,4.719 3.823,8.533 8.533,8.533 H 76.8 V 379.733 H 17.067 v -256 h 307.2 v 256 H 162.133 V 396.8 H 332.8 c 4.719,0 8.533,-3.814 8.533,-8.533 V 115.2 c 0,-4.71 -3.814,-8.533 -8.533,-8.533 z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><rect x=\"8.533\" y=\"345.60001\" width=\"51.200001\" height=\"17.066999\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><rect x=\"179.2\" y=\"345.60001\" width=\"145.067\" height=\"17.066999\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><rect x=\"469.33301\" y=\"345.60001\" width=\"34.132999\" height=\"17.066999\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><rect x=\"34.132999\" y=\"140.8\" width=\"298.66699\" height=\"17.066999\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><rect x=\"110.933\" y=\"379.733\" width=\"17.066999\" height=\"17.066999\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><rect x=\"401.06699\" y=\"379.733\" width=\"17.066999\" height=\"17.066999\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /></svg>",
791
+ "two_d": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M22.41,33.89H11V31c.87-.76,1.75-1.56,2.62-2.41S15.2,27,15.73,26.39A11.84,11.84,0,0,0,17.4,24a4.45,4.45,0,0,0,.5-2,2.52,2.52,0,0,0-.64-1.85,2.47,2.47,0,0,0-1.84-.65,4.57,4.57,0,0,0-1.89.45,8.17,8.17,0,0,0-1.84,1.14h-.31V17.2a10.26,10.26,0,0,1,2-.73,10.46,10.46,0,0,1,2.71-.36,5.79,5.79,0,0,1,4.16,1.37,5.15,5.15,0,0,1,1.44,3.9,7.37,7.37,0,0,1-.69,3.14A12.94,12.94,0,0,1,19,27.59c-.6.66-1.19,1.26-1.79,1.81s-1,.93-1.28,1.15h6.53Z\" fill=\"#484f60\"/><path d=\"M38.14,20.79a7.49,7.49,0,0,0-2.37-3,6.52,6.52,0,0,0-2.17-1,11.93,11.93,0,0,0-3.06-.35H25.26V33.89h5.13a13.25,13.25,0,0,0,3-.3,6.61,6.61,0,0,0,2.33-1.08,7.71,7.71,0,0,0,2.34-3A9.9,9.9,0,0,0,39,25.19,10.47,10.47,0,0,0,38.14,20.79Zm-3.49,7.27a4,4,0,0,1-1.51,1.88,3.77,3.77,0,0,1-1.22.54,10.07,10.07,0,0,1-2,.14H29V19.7H30a9.8,9.8,0,0,1,1.81.13,3.75,3.75,0,0,1,1.18.46,4.07,4.07,0,0,1,1.65,1.92,7.4,7.4,0,0,1,.52,2.94A7.92,7.92,0,0,1,34.65,28.06Z\" fill=\"#484f60\"/></svg>",
792
+ "warehouse": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\" version=\"1.1\" sodipodi:docname=\"warehouse.svg\" inkscape:version=\"0.92.4 (5da689c313, 2019-01-14)\"><metadata ><rdf:RDF><cc:Work rdf:about=\"\"><dc:format>image/svg+xml</dc:format><dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs /><sodipodi:namedview pagecolor=\"#ffffff\" bordercolor=\"#666666\" borderopacity=\"1\" objecttolerance=\"10\" gridtolerance=\"10\" guidetolerance=\"10\" inkscape:pageopacity=\"0\" inkscape:pageshadow=\"2\" inkscape:window-width=\"1920\" inkscape:window-height=\"1017\" showgr inkscape:zoom=\"6.675088\" inkscape:cx=\"9.6569985\" inkscape:cy=\"12.384637\" inkscape:window-x=\"-8\" inkscape:window-y=\"-8\" inkscape:window-maximized=\"1\" inkscape:current-layer=\"svg8\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"M 507.785,146.242 260.318,1.175 c -2.603,-1.519 -5.803,-1.57 -8.439,-0.111 L 4.412,137.598 C 1.69,139.091 0,141.958 0,145.064 v 358.4 c 0,4.719 3.823,8.533 8.533,8.533 H 51.2 c 4.71,0 8.533,-3.814 8.533,-8.533 V 204.798 h 392.533 v 298.667 c 0,4.719 3.814,8.533 8.533,8.533 h 42.667 c 4.719,0 8.533,-3.814 8.533,-8.533 V 153.598 c 10e-4,-3.03 -1.603,-5.829 -4.214,-7.356 z m -12.852,348.689 h -25.6 V 196.264 c 0,-4.71 -3.814,-8.533 -8.533,-8.533 H 51.2 c -4.71,0 -8.533,3.823 -8.533,8.533 v 298.667 h -25.6 V 150.099 L 255.872,18.344 494.933,158.487 Z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"m 426.667,392.531 h -102.4 c -4.719,0 -8.533,3.814 -8.533,8.533 v 102.4 c 0,4.719 3.814,8.533 8.533,8.533 h 102.4 c 4.719,0 8.533,-3.814 8.533,-8.533 v -102.4 c 0,-4.719 -3.814,-8.533 -8.533,-8.533 z m -8.534,102.4 H 332.8 v -85.333 h 85.333 z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"m 384,401.064 v 25.6 h -17.067 v -25.6 h -17.067 v 34.133 c 0,4.719 3.814,8.533 8.533,8.533 h 34.133 c 4.719,0 8.533,-3.814 8.533,-8.533 v -34.133 z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"m 324.267,392.531 h -102.4 c -4.71,0 -8.533,3.814 -8.533,8.533 v 102.4 c 0,4.719 3.823,8.533 8.533,8.533 h 102.4 c 4.719,0 8.533,-3.814 8.533,-8.533 v -102.4 c 0,-4.719 -3.814,-8.533 -8.533,-8.533 z m -8.534,102.4 H 230.4 v -85.333 h 85.333 z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"m 281.6,401.064 v 25.6 h -17.067 v -25.6 h -17.067 v 34.133 c 0,4.719 3.823,8.533 8.533,8.533 h 34.133 c 4.719,0 8.533,-3.814 8.533,-8.533 v -34.133 z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"m 426.667,290.131 h -102.4 c -4.719,0 -8.533,3.814 -8.533,8.533 v 102.4 c 0,4.719 3.814,8.533 8.533,8.533 h 102.4 c 4.719,0 8.533,-3.814 8.533,-8.533 v -102.4 c 0,-4.719 -3.814,-8.533 -8.533,-8.533 z m -8.534,102.4 H 332.8 v -85.333 h 85.333 z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"m 384,298.664 v 25.6 h -17.067 v -25.6 h -17.067 v 34.133 c 0,4.719 3.814,8.533 8.533,8.533 h 34.133 c 4.719,0 8.533,-3.814 8.533,-8.533 v -34.133 z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><rect x=\"51.200001\" y=\"255.998\" width=\"409.60001\" height=\"17.066999\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><rect x=\"51.200001\" y=\"221.864\" width=\"409.60001\" height=\"17.066999\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"m 298.667,119.464 h -85.333 c -4.71,0 -8.533,3.823 -8.533,8.533 v 34.133 c 0,4.71 3.823,8.533 8.533,8.533 h 85.333 c 4.719,0 8.533,-3.823 8.533,-8.533 v -34.133 c 0,-4.71 -3.814,-8.533 -8.533,-8.533 z m -8.534,34.134 h -68.267 v -17.067 h 68.267 z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /></svg>"
791
793
  };
792
794
 
793
- class IconCacheService {
794
- constructor(_sanitizer) {
795
- this._sanitizer = _sanitizer;
796
- this._iconCache = {};
797
- this._allIcons = IconSvg;
798
- this.setIconCache();
799
- }
800
- /**
801
- * All the icons as a large JSON object, from the all-icons.json file.
802
- * The object has property keys that are the icon names, and property values with the data string of the actual svg icon.
803
- */
804
- get iconCache() {
805
- return this._iconCache;
806
- }
807
- getIcon(iconName) {
808
- return this._iconCache[iconName.toLowerCase()];
809
- }
810
- setIconCache() {
811
- for (const key in this._allIcons) {
812
- if (this._allIcons.hasOwnProperty(key)) {
813
- this._iconCache[key.toLowerCase()] = this._sanitizer.bypassSecurityTrustHtml(this._allIcons[key]);
814
- }
815
- }
816
- }
817
- }
818
- IconCacheService.ɵprov = i0.ɵɵdefineInjectable({ factory: function IconCacheService_Factory() { return new IconCacheService(i0.ɵɵinject(i1$1.DomSanitizer)); }, token: IconCacheService, providedIn: "root" });
819
- IconCacheService.decorators = [
820
- { type: Injectable, args: [{
821
- providedIn: 'root'
822
- },] }
823
- ];
824
- IconCacheService.ctorParameters = () => [
825
- { type: DomSanitizer }
795
+ class IconCacheService {
796
+ constructor(_sanitizer) {
797
+ this._sanitizer = _sanitizer;
798
+ this._iconCache = {};
799
+ this._allIcons = IconSvg;
800
+ this.setIconCache();
801
+ }
802
+ /**
803
+ * All the icons as a large JSON object, from the all-icons.json file.
804
+ * The object has property keys that are the icon names, and property values with the data string of the actual svg icon.
805
+ */
806
+ get iconCache() {
807
+ return this._iconCache;
808
+ }
809
+ getIcon(iconName) {
810
+ return this._iconCache[iconName.toLowerCase()];
811
+ }
812
+ setIconCache() {
813
+ for (const key in this._allIcons) {
814
+ if (this._allIcons.hasOwnProperty(key)) {
815
+ this._iconCache[key.toLowerCase()] = this._sanitizer.bypassSecurityTrustHtml(this._allIcons[key]);
816
+ }
817
+ }
818
+ }
819
+ }
820
+ IconCacheService.ɵprov = i0.ɵɵdefineInjectable({ factory: function IconCacheService_Factory() { return new IconCacheService(i0.ɵɵinject(i1$1.DomSanitizer)); }, token: IconCacheService, providedIn: "root" });
821
+ IconCacheService.decorators = [
822
+ { type: Injectable, args: [{
823
+ providedIn: 'root'
824
+ },] }
825
+ ];
826
+ IconCacheService.ctorParameters = () => [
827
+ { type: DomSanitizer }
826
828
  ];
827
829
 
828
- class ProductPageComponent {
829
- constructor(_ione, _renderer, _changeDetector, iconCache, settingsService, appEventService) {
830
- this._ione = _ione;
831
- this._renderer = _renderer;
832
- this._changeDetector = _changeDetector;
833
- this.iconCache = iconCache;
834
- this.settingsService = settingsService;
835
- this.appEventService = appEventService;
836
- this.icon = IconEnum;
837
- this.createFrozenArticle = true;
838
- this.openStockEvent = new EventEmitter();
839
- this.configurable = false;
840
- this.threeD = false;
841
- this.show2D = true;
842
- this.show3D = false;
843
- this.configuring = false;
844
- this.fullscreenAnimationEnd = false;
845
- this.settingsLoaded = false;
846
- this._fullScreen = false;
847
- this._subs = [];
848
- this._subs.push(this.appEventService.onForceRenderImage.subscribe((x) => {
849
- if (this.selections.nativeElement) {
850
- this.selections.nativeElement.forceRenderImage();
851
- }
852
- }), this.settingsService.settingsLoaded.subscribe(loaded => this._handleSettingsLoaded(loaded)), this._ione.controllerInitialized.subscribe((initialized) => {
853
- this.settingsLoaded = initialized;
854
- }));
855
- }
856
- set sku(value) {
857
- if (value) {
858
- if (this.configuring) {
859
- this.show3D = false;
860
- this.fullScreen = false;
861
- this.configuring = false;
862
- this._changeDetector.detectChanges();
863
- }
864
- this._sku = value;
865
- this._getArticle();
866
- }
867
- }
868
- get sku() {
869
- return this._sku;
870
- }
871
- set settings(value) {
872
- if (value) {
873
- if (typeof value === 'string') {
874
- this._settings = JSON.parse(value);
875
- }
876
- else {
877
- this._settings = value;
878
- }
879
- }
880
- }
881
- get settings() {
882
- return this._settings;
883
- }
884
- set fullScreen(value) {
885
- this._fullScreen = value;
886
- this.fullscreenAnimationEnd = true;
887
- this._changeDetector.detectChanges();
888
- // setTimeout(() => {
889
- // this.fullscreenAnimationEnd = true;
890
- // }, 400)
891
- }
892
- get fullScreen() {
893
- return this._fullScreen;
894
- }
895
- get fullScreenIcon() {
896
- return this.fullScreen ? this.icon.NormalScreen : this.icon.FullScreen;
897
- }
898
- set currentView(value) {
899
- this._currentView = value;
900
- this.show2D = this._currentView === SelectorType.TwoD;
901
- this.show3D = this._currentView === SelectorType.ThreeD;
902
- this._changeDetector.detectChanges();
903
- }
904
- get currentView() {
905
- return this._currentView;
906
- }
907
- ngOnInit() {
908
- if (this._settings) {
909
- this.settingsService.settings = undefined;
910
- this.settingsService.createSettingsFromObject(this._settings);
911
- }
912
- else {
913
- this._settings = this.settingsService.settings;
914
- }
915
- }
916
- ngAfterViewInit() {
917
- }
918
- ngOnDestroy() {
919
- this._subs.forEach(s => s.unsubscribe());
920
- if (this._initializedSub) {
921
- this._initializedSub.unsubscribe();
922
- }
923
- this.configurator = undefined;
924
- this.selections = undefined;
925
- this.fullscreenbutton = undefined;
926
- }
927
- setInstance(event) {
928
- if (event.detail) {
929
- this._ione.setInstance(event.detail);
930
- }
931
- }
932
- handleStartConfiguration() {
933
- this.configuring = true;
934
- this._changeDetector.detectChanges();
935
- }
936
- showFullScreen() {
937
- this.fullScreen = !this.fullScreen;
938
- }
939
- _handleSettingsLoaded(loaded) {
940
- if (loaded) {
941
- this._ione.initConnection();
942
- }
943
- }
944
- _getArticle() {
945
- return __awaiter(this, void 0, void 0, function* () {
946
- if (this._initializedSub) {
947
- this._initializedSub.unsubscribe();
948
- }
949
- this._initializedSub = this._ione.controllerInitialized.subscribe((init) => __awaiter(this, void 0, void 0, function* () {
950
- if (init) {
951
- this._ione.getFullArticle(this._sku).then((article) => {
952
- this.article = article;
953
- if (this.article) {
954
- this.configurable = this.article.goodType === 'B';
955
- if (this.configurable) {
956
- this.currentView = SelectorType.TwoD;
957
- }
958
- this.threeD = this.article.is3D;
959
- this.selectorType = this.article.selectorTypeCustomer;
960
- this._ione.getDeliveryPrognosis(this.article.goodId).then((stockInfo) => {
961
- const stockAndDelivery = stockInfo;
962
- this.stockAndDelivery = new StockAndDelivery(0, stockAndDelivery.returnValue ? stockAndDelivery.returnValue : ' ');
963
- this._changeDetector.detectChanges();
964
- });
965
- this._changeDetector.detectChanges();
966
- }
967
- });
968
- }
969
- }));
970
- });
971
- }
972
- openStock() {
973
- this.openStockEvent.emit();
974
- }
975
- }
976
- ProductPageComponent.decorators = [
977
- { type: Component, args: [{
978
- selector: 'app-product-page',
979
- template: "<ng-container *ngIf=\"settingsLoaded\">\n <div class=\"page-wrapper\">\n <div class=\"page-wrapper-content\">\n <div class=\"page-wrapper-left\">\n <div class=\"product-image-container\">\n <div class=\"product-page-block-selector-type\">\n <app-product-selector-type class=\"default-padding\"\n [(currentType)]=\"currentView\"\n [show2D]=\"configurable\"\n [show3D]=\"threeD\"\n ></app-product-selector-type>\n </div>\n <div class=\"product-page-block-image default-padding\" [class.full]=\"fullScreen\">\n <app-image-carousel [@toggleVisibilityByState]=\"show2D ? 'show' : 'hide'\" [images]=\"article?.images\" [showRefresh]=\"configurable && threeD\"></app-image-carousel>\n <ng-container *ngIf=\"settingsLoaded\">\n <threed-configurator #configurator class=\"threed-configurator\"\n [class.configurator-full-screen]=\"fullScreen\"\n [@toggleVisibilityByState]=\"show3D ? 'show' : 'hide'\"\n [@toggleFullScreen]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\n ></threed-configurator>\n </ng-container>\n <co-icon #fullscreenbutton class=\"fullscreen-button\" *ngIf=\"show3D\"\n [@toggleTopLeft]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\n [iconData]=\"iconCache.getIcon(fullScreenIcon)\"\n (click)=\"showFullScreen()\"></co-icon>\n <co-icon class=\"threed-watermark\" *ngIf=\"show3D && fullScreen\"\n [iconData]=\"iconCache.getIcon(icon.Logo)\"></co-icon>\n </div>\n </div>\n </div>\n <div class=\"page-wrapper-right\">\n <div class=\"product-page-block-description\">\n <app-product-description class=\"default-padding\" [article]=\"article\"></app-product-description>\n </div>\n <div class=\"product-page-block-additional\">\n <div class=\"product-page-block-additional-description\">\n <app-product-additional-description class=\"default-padding\" [article]=\"article\"></app-product-additional-description>\n </div>\n <div class=\"product-page-block-price\" [class.full]=\"configuring\">\n <app-product-price class=\"s-padding\" *ngIf=\"!configuring\"\n [pricing]=\"article?.pricing\"\n [configurable]=\"configurable\"\n ></app-product-price>\n <ng-container *ngIf=\"settingsLoaded\">\n <threed-selections #selections class=\"threed-selections\" [class.show-selections]=\"configuring\" [@toggleFullScreenRight]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\n [class.default-padding]=\"!fullScreen\"\n [class.show-full-screen]=\"fullScreen\"\n [class.mini-scrollbar]=\"fullScreen\"\n [sku]=\"sku\"\n [settings]=\"settings\"\n (onUserActionFromThreeD)=\"configuring = true\"\n (instanceSet)=\"setInstance($event)\"\n (onImageReceived)=\"appEventService.onImageReceived.next($event)\"\n (onRenderStarted)=\"appEventService.onRenderStarted.next()\"\n (onDraftRenderImageReceived)=\"appEventService.onDraftRenderImageReceived.next($event)\"\n (onArticleReceived)=\"appEventService.onArticleReceived.next($event.detail)\"\n (onSelectionsReceived)=\"appEventService.onSelectionsReceived.next($event.detail)\"\n (onArticleInfoReceived)=\"appEventService.onArticleInfoReceived.next($event.detail)\"\n ></threed-selections>\n </ng-container>\n </div>\n <div class=\"product-page-block-addtocart no-padding product-action-buttons\" *ngIf=\"!configuring\" [@toggleTopRight]=\"fullScreen ? 'fullscreen' : 'halfscreen'\">\n <app-product-addtocart\n [configurable]=\"configurable\"\n [createFrozenArticle]=\"createFrozenArticle\"\n [configuring]=\"configuring\"\n [article]=\"article\"\n (startConfiguration)=\"handleStartConfiguration()\"\n ></app-product-addtocart>\n </div>\n <div class=\"addtocart-reserved product-action-buttons\" *ngIf=\"configuring\" [class.full-screen]=\"fullScreen\">\n <app-product-addtocart class=\"default-padding\"\n [configurable]=\"false\"\n [fullscreen]=\"fullScreen\"\n [configuring]=\"configuring\"\n [article]=\"article\"\n (startConfiguration)=\"handleStartConfiguration()\"\n ></app-product-addtocart>\n </div>\n <div class=\"product-page-block-variants\">\n <app-product-related class=\"no-padding\" *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\n [articles]=\"article?.relatedArticles\" [refType]=\"64\" [label]=\"'VARIANTS' | localize\"></app-product-related>\n </div>\n <div class=\"product-page-block-stock\">\n <app-product-stock class=\"no-padding\" [goodId]=\"article?.goodId\" (openStockEvent)=\"openStock()\"></app-product-stock>\n </div>\n <div class=\"product-page-block-delivery\">\n <app-product-delivery class=\"no-padding\" [stockAndDelivery]=\"stockAndDelivery\"></app-product-delivery>\n </div>\n </div>\n </div>\n </div>\n <div class=\"page-wrapper-content\">\n <div class=\"page-wrapper-left\">\n <app-product-info-tabs class=\"no-padding\" [article]=\"article\"></app-product-info-tabs>\n </div>\n <div class=\"page-wrapper-right\">\n <div class=\"product-page-block-related s-padding\">\n <app-product-related *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\n [articles]=\"article?.relatedArticles\" [refType]=\"1\" [label]=\"'RELATED_PRODUCTS' | localize\"></app-product-related>\n </div>\n </div>\n </div>\n <div class=\"page-wrapper-content no-top-margin\">\n <div class=\"page-wrapper-full\">\n <div class=\"product-page-block-alternatives s-padding\">\n <app-product-related *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\n [articles]=\"article?.relatedArticles\" [refType]=\"4\" [isSmallModus]=\"false\" [label]=\"'ALTERNATIVE_PRODUCTS' | localize\"></app-product-related>\n </div>\n </div>\n </div>\n </div>\n</ng-container>\n",
980
- animations: [
981
- trigger('toggleFullScreen', [
982
- state('fullscreen', style({ 'position': 'fixed', 'top': '0', 'left': '0', 'width': '100%', 'height': '100%' })),
983
- state('halfscreen', style({ 'position': '*', 'top': '*', 'left': '*', 'width': '*', 'height': '*' })),
984
- transition('halfscreen <=> fullscreen', animate('200ms ease-in-out')),
985
- ]),
986
- trigger('toggleTopLeft', [
987
- state('fullscreen', style({ 'position': 'fixed', 'top': '0', 'left': '0' })),
988
- state('halfscreen', style({ 'position': 'absolute', 'top': '*', 'left': '*' })),
989
- transition('halfscreen <=> fullscreen', animate('200ms ease-in-out')),
990
- ]),
991
- trigger('toggleTopRight', [
992
- state('fullscreen', style({ 'position': 'fixed', 'top': '0', 'right': '0' })),
993
- state('halfscreen', style({ 'position': '*', 'top': '*', 'right': '*' })),
994
- transition('halfscreen <=> fullscreen', animate('200ms ease-in-out')),
995
- ]),
996
- trigger('toggleFullScreenRight', [
997
- state('fullscreen', style({ 'position': 'fixed', 'width': '400px', 'top': '0', 'right': '0' })),
998
- state('halfscreen', style({ 'position': '*', 'width': '*', 'top': '*', 'right': '*' })),
999
- transition('halfscreen <=> fullscreen', animate('200ms ease-in-out')),
1000
- ]),
1001
- trigger('toggleVisibilityByState', [
1002
- state('hide', style({ 'opacity': '0', 'display': 'none' })),
1003
- state('show', style({ 'display': 'block', 'opacity': '1' })),
1004
- transition('hide <=> show', animate('200ms 100ms ease-in-out')),
1005
- ]),
1006
- trigger('toggleVisibility', [
1007
- state('void', style({ 'opacity': '0' })),
1008
- state('*', style({ 'opacity': '1' })),
1009
- transition('void => *', animate('200ms ease-in-out')),
1010
- ])
1011
- ],
1012
- styles: [".page-wrapper{font-family:iOneMontserrat;font-size:12px;display:flex;flex-direction:column;max-width:1400px;padding:0 15px;margin:0 auto}.page-wrapper-content{display:flex;flex-direction:row;margin:40px 0}.page-wrapper-content:first-child{margin-top:0}.page-wrapper-content.no-top-margin{margin-top:0}.page-wrapper-left{display:flex;width:55%;flex-direction:column}.page-wrapper-right{display:flex;width:45%;flex-direction:column}.page-wrapper-full{display:flex;width:100%;flex-direction:column}.page-wrapper-66{display:flex;width:60%;flex-direction:column}.page-wrapper-33{display:flex;width:40%;flex-direction:column}.threed-selections{display:none}.threed-selections.show-selections{display:block}.threed-selections ::ng-deep .rp-lite-selector .rp-answers-slideout ::ng-deep co-slideout{width:480px;z-index:3}.product-action-buttons{position:relative}.product-action-buttons.full-screen{z-index:10}.product-image-container{grid-column:1/7;grid-row:1/6;position:relative}.product-page-block-selector-type{width:auto;position:absolute;top:10px;right:10px;z-index:2}.product-page-block-image{box-sizing:border-box;width:100%;z-index:1;position:relative}.product-page-block-image .threed-configurator{border:1px solid #efefef}.product-page-block-image .threed-configurator .layer .viewer canvas{height:100%;width:100%}.product-page-block-image .threed-configurator ::ng-deep .rp-element-toolbar{top:30px}.product-page-block-image app-image-carousel.show-animated,.product-page-block-image threed-configurator.show-animated{opacity:1;z-index:0;transition:all .2s ease-in-out}.product-page-block-image .fullscreen-button{cursor:pointer;height:50px;width:50px;position:absolute;left:30px;z-index:100;top:30px}.product-page-block-image.full{grid-column:1/11;grid-row:2/span 10;z-index:3}.product-page-block-description{grid-column:7/12;grid-row:1/1}.product-page-block-additional{width:100%}.product-page-block-additional-description{width:100%}.product-page-block-price{grid-column:1/3;grid-row:2/2;align-self:center}.product-page-block-price.full{grid-column:1/5}.product-page-block-addtocart{grid-column:3/5;grid-row:2/2;align-self:center;padding-top:30px!important}.product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button{cursor:pointer}.product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button:hover div.rippler{background:#f6f5f4}.product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button ::ng-deep co-icon{position:relative;z-index:2}.product-page-block-addtocart ::ng-deep co-button.cart-button{cursor:pointer}.product-page-block-addtocart ::ng-deep co-button.cart-button:hover{background:#74B77F}.addtocart-reserved{grid-column:1/3;grid-row:3/3}.product-page-block-stock{grid-column:1/3;grid-row:4/4}.product-page-block-delivery{grid-column:3/5;grid-row:4/4}::ng-deep co-scroll-container{overflow:hidden;position:relative}::ng-deep co-scroll-container .content-wrapper{padding:0}::ng-deep co-scroll-container .scroll-layer{left:0;top:0}::ng-deep co-scroll-container .scroll-layer .scroller{width:34px;height:34px;border-radius:36px;background:#fff;cursor:pointer;box-shadow:0 0 5px #0003}::ng-deep co-scroll-container .scroll-layer .scroller:hover{background:#f6f5f4}::ng-deep co-scroll-container .scroll-layer .scroller.left-scroll{left:5px}::ng-deep co-scroll-container .scroll-layer .scroller.left-scroll:before{border-width:0 3px 3px 0;padding:4px;margin-left:13px;margin-top:11px}::ng-deep co-scroll-container .scroll-layer .scroller.right-scroll{right:5px}::ng-deep co-scroll-container .scroll-layer .scroller.right-scroll:after{border-width:0 3px 3px 0;padding:4px;margin-left:9px;margin-top:11px}.product-page-block-variants{margin:20px 0 0}.product-page-block-variants ::ng-deep app-product-related>div{display:flex;grid-gap:15px;gap:15px;align-items:center;border-top:1px solid #f6f5f4;padding:5px 0 7px 15px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep app-header h3{font-size:14px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container{width:320px;max-width:100%;padding:0 16px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller{width:26px;height:26px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller.left-scroll{left:5px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller.left-scroll:before{border-width:0 2px 2px 0;margin-left:9px;margin-top:9px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller.right-scroll{right:5px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller.right-scroll:after{border-width:0 2px 2px 0;margin-left:6px;margin-top:9px}.product-page-block-variants ::ng-deep co-tile.small{min-width:50px!important;max-width:50px!important;border:1px solid #f6f5f4;margin:0 10px 0 0;border-radius:4px}.product-page-block-variants ::ng-deep co-tile.small:hover{border-color:#22313c}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper{padding:0}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .tile-top{display:none}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .image{height:40px!important;padding:5px}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .image .no-image-wrapper .no-image{width:40px;height:40px}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .image .no-image-wrapper span{display:none!important}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .tile-bottom{display:none}.product-page-block-variants ::ng-deep co-tile.small .tile-extra-bottom{display:none}.product-page-block-alternatives ::ng-deep .article-wrapper{margin:0 20px 0 0}.product-page-block-alternatives ::ng-deep .article-wrapper:last-child{margin:0}.product-page-block-alternatives ::ng-deep co-tile{cursor:pointer;transition:all .14s ease-out;border:1px solid transparent;border-bottom-color:#f6f5f4;padding:15px 10px 0;width:319px;max-width:none;min-width:0;box-sizing:border-box}.product-page-block-alternatives ::ng-deep co-tile:hover{box-shadow:none;border-color:#f6f5f4}.product-page-block-alternatives ::ng-deep co-tile:hover .tile-wrapper div.image co-image{transform:scale(1.05)}.product-page-block-alternatives ::ng-deep co-tile:hover .tile-wrapper .tile-bottom{margin:0}.product-page-block-alternatives ::ng-deep co-tile:hover .tile-extra-bottom .main .description{text-decoration:underline}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper{padding:0;position:relative;outline:none;overflow:hidden}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper .tile-top{position:absolute;left:0;top:0;width:100%}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper div.image{position:relative;padding:1px;display:flex;align-items:center;justify-content:center;overflow:hidden;max-width:250px;margin:0 auto;height:auto}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper div.image:after{content:\"\";padding:100% 0 0;float:left;width:100%}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper div.image co-image{position:absolute;left:0;top:0;overflow:hidden;width:100%;height:100%;-o-object-fit:contain;object-fit:contain;z-index:-1;transition:all .2s ease}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper div.image .no-image-wrapper{position:absolute;display:flex;left:50%;top:50%;margin:-48px 0 0 -54px;flex-direction:column;align-items:center;opacity:.25}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper .tile-bottom{position:absolute;right:0;bottom:0;margin:0 -40px 0 0;transition:all .2s ease;height:auto}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper .tile-bottom ::ng-deep co-button{margin:0 0 5px!important;width:36px;height:36px;border:1px solid #22313C;cursor:pointer;border-radius:4px;padding:0!important;font-size:0}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper .tile-bottom ::ng-deep co-button co-icon{width:32px;height:32px;margin:0 2px}.product-page-block-alternatives ::ng-deep co-tile .tile-extra-bottom{outline:none;padding:15px 0;background:transparent!important;min-height:60px}.product-page-block-alternatives ::ng-deep co-tile .tile-extra-bottom .main{padding:0 10px}.product-page-block-alternatives ::ng-deep co-tile .tile-extra-bottom .main .description{font-size:15px;font-weight:bold;margin:0 0 2px}.product-page-block-alternatives ::ng-deep co-tile .tile-extra-bottom .main .price{font-size:16px;margin:15px 0 0;font-weight:bold;color:#2b60a7}.product-page-block-additional-information{grid-column:1/6;grid-row:4/4}.product-page-block-properties{grid-column:7/10;grid-row:3/3}.product-page-block-related-articles{grid-column:2/6;grid-row:4/4}.product-page-block-alternative-articles{grid-column:6/10;grid-row:4/4}.product-page-block-documents{grid-column:2/6;grid-row:5/5}.product-page-block-symbols{grid-column:6/10;grid-row:5/5}@media screen and (max-width: 950px){.default-padding{padding-top:20px;padding-bottom:20px}.m-padding{padding-top:15px;padding-bottom:15px}.s-padding{padding-top:5px;padding-bottom:5px}.page-wrapper{max-width:650px}.page-wrapper .page-wrapper-content{flex-direction:column;margin:30px 0}.page-wrapper .page-wrapper-content .page-wrapper-left{width:100%}.page-wrapper .page-wrapper-content .page-wrapper-right{width:100%}.product-page-block-alternatives ::ng-deep co-tile{width:284px!important}}@media screen and (max-width: 650px){[class*=-padding]{padding-left:0!important;padding-right:0!important}.product-page-block-addtocart ::ng-deep co-number-picker co-button{height:38px!important}.product-page-block-addtocart ::ng-deep co-number-picker co-input-text{height:38px!important;width:36px!important}.product-page-block-addtocart ::ng-deep co-button.cart-button{height:40px;font-size:13px}}\n"]
1013
- },] }
1014
- ];
1015
- ProductPageComponent.ctorParameters = () => [
1016
- { type: ProductConnectorService },
1017
- { type: Renderer2 },
1018
- { type: ChangeDetectorRef },
1019
- { type: IconCacheService },
1020
- { type: ProductSettingsService },
1021
- { type: ProductEventService }
1022
- ];
1023
- ProductPageComponent.propDecorators = {
1024
- configurator: [{ type: ViewChild, args: ['configurator', { read: ElementRef },] }],
1025
- selections: [{ type: ViewChild, args: ['selections', { read: ElementRef },] }],
1026
- fullscreenbutton: [{ type: ViewChild, args: ['fullscreenbutton', { read: ElementRef },] }],
1027
- sku: [{ type: Input }],
1028
- settings: [{ type: Input }],
1029
- createFrozenArticle: [{ type: Input }],
1030
- openStockEvent: [{ type: Output }]
830
+ class ProductPageComponent {
831
+ constructor(_ione, _renderer, _changeDetector, iconCache, settingsService, appEventService) {
832
+ this._ione = _ione;
833
+ this._renderer = _renderer;
834
+ this._changeDetector = _changeDetector;
835
+ this.iconCache = iconCache;
836
+ this.settingsService = settingsService;
837
+ this.appEventService = appEventService;
838
+ this.icon = IconEnum;
839
+ this.createFrozenArticle = true;
840
+ this.isReturn = false;
841
+ this.openStockEvent = new EventEmitter();
842
+ this.configurable = false;
843
+ this.threeD = false;
844
+ this.show2D = true;
845
+ this.show3D = false;
846
+ this.configuring = false;
847
+ this.fullscreenAnimationEnd = false;
848
+ this.settingsLoaded = false;
849
+ this._fullScreen = false;
850
+ this._subs = [];
851
+ this._subs.push(this.appEventService.onForceRenderImage.subscribe((x) => {
852
+ if (this.selections.nativeElement) {
853
+ this.selections.nativeElement.forceRenderImage();
854
+ }
855
+ }), this.settingsService.settingsLoaded.subscribe(loaded => this._handleSettingsLoaded(loaded)), this._ione.controllerInitialized.subscribe((initialized) => {
856
+ this.settingsLoaded = initialized;
857
+ }));
858
+ }
859
+ set sku(value) {
860
+ if (value) {
861
+ if (this.configuring) {
862
+ this.show3D = false;
863
+ this.fullScreen = false;
864
+ this.configuring = false;
865
+ this._changeDetector.detectChanges();
866
+ }
867
+ this._sku = value;
868
+ this._getArticle();
869
+ }
870
+ }
871
+ get sku() {
872
+ return this._sku;
873
+ }
874
+ set settings(value) {
875
+ if (value) {
876
+ if (typeof value === 'string') {
877
+ this._settings = JSON.parse(value);
878
+ }
879
+ else {
880
+ this._settings = value;
881
+ }
882
+ }
883
+ }
884
+ get settings() {
885
+ return this._settings;
886
+ }
887
+ set fullScreen(value) {
888
+ this._fullScreen = value;
889
+ this.fullscreenAnimationEnd = true;
890
+ this._changeDetector.detectChanges();
891
+ // setTimeout(() => {
892
+ // this.fullscreenAnimationEnd = true;
893
+ // }, 400)
894
+ }
895
+ get fullScreen() {
896
+ return this._fullScreen;
897
+ }
898
+ get fullScreenIcon() {
899
+ return this.fullScreen ? this.icon.NormalScreen : this.icon.FullScreen;
900
+ }
901
+ set currentView(value) {
902
+ this._currentView = value;
903
+ this.show2D = this._currentView === SelectorType.TwoD;
904
+ this.show3D = this._currentView === SelectorType.ThreeD;
905
+ this._changeDetector.detectChanges();
906
+ }
907
+ get currentView() {
908
+ return this._currentView;
909
+ }
910
+ ngOnInit() {
911
+ if (this._settings) {
912
+ this.settingsService.settings = undefined;
913
+ this.settingsService.createSettingsFromObject(this._settings);
914
+ }
915
+ else {
916
+ this._settings = this.settingsService.settings;
917
+ }
918
+ }
919
+ ngAfterViewInit() {
920
+ }
921
+ ngOnDestroy() {
922
+ this._subs.forEach(s => s.unsubscribe());
923
+ if (this._initializedSub) {
924
+ this._initializedSub.unsubscribe();
925
+ }
926
+ this.configurator = undefined;
927
+ this.selections = undefined;
928
+ this.fullscreenbutton = undefined;
929
+ }
930
+ setInstance(event) {
931
+ if (event.detail) {
932
+ this._ione.setInstance(event.detail);
933
+ }
934
+ }
935
+ handleStartConfiguration() {
936
+ this.configuring = true;
937
+ this._changeDetector.detectChanges();
938
+ }
939
+ showFullScreen() {
940
+ this.fullScreen = !this.fullScreen;
941
+ }
942
+ _handleSettingsLoaded(loaded) {
943
+ if (loaded) {
944
+ this._ione.initConnection();
945
+ }
946
+ }
947
+ _getArticle() {
948
+ return __awaiter(this, void 0, void 0, function* () {
949
+ if (this._initializedSub) {
950
+ this._initializedSub.unsubscribe();
951
+ }
952
+ this._initializedSub = this._ione.controllerInitialized.subscribe((init) => __awaiter(this, void 0, void 0, function* () {
953
+ if (init) {
954
+ this._ione.getFullArticle(this._sku).then((article) => {
955
+ this.article = article;
956
+ if (this.article) {
957
+ this.configurable = this.article.goodType === 'B';
958
+ if (this.configurable) {
959
+ this.currentView = SelectorType.TwoD;
960
+ }
961
+ this.threeD = this.article.is3D;
962
+ this.selectorType = this.article.selectorTypeCustomer;
963
+ this._ione.getDeliveryPrognosis(this.article.goodId).then((stockInfo) => {
964
+ const stockAndDelivery = stockInfo;
965
+ this.stockAndDelivery = new StockAndDelivery(0, stockAndDelivery.returnValue ? stockAndDelivery.returnValue : ' ');
966
+ this._changeDetector.detectChanges();
967
+ });
968
+ this._changeDetector.detectChanges();
969
+ }
970
+ });
971
+ }
972
+ }));
973
+ });
974
+ }
975
+ openStock() {
976
+ this.openStockEvent.emit();
977
+ }
978
+ }
979
+ ProductPageComponent.decorators = [
980
+ { type: Component, args: [{
981
+ selector: 'app-product-page',
982
+ template: "<ng-container *ngIf=\"settingsLoaded\">\r\n <div class=\"page-wrapper\">\r\n <div class=\"page-wrapper-content\">\r\n <div class=\"page-wrapper-left\">\r\n <div class=\"product-image-container\">\r\n <div class=\"product-page-block-selector-type\">\r\n <app-product-selector-type class=\"default-padding\"\r\n [(currentType)]=\"currentView\"\r\n [show2D]=\"configurable\"\r\n [show3D]=\"threeD\"\r\n ></app-product-selector-type>\r\n </div>\r\n <div class=\"product-page-block-image default-padding\" [class.full]=\"fullScreen\">\r\n <app-image-carousel [@toggleVisibilityByState]=\"show2D ? 'show' : 'hide'\" [images]=\"article?.images\" [showRefresh]=\"configurable && threeD\"></app-image-carousel>\r\n <ng-container *ngIf=\"settingsLoaded\">\r\n <threed-configurator #configurator class=\"threed-configurator\"\r\n [class.configurator-full-screen]=\"fullScreen\"\r\n [@toggleVisibilityByState]=\"show3D ? 'show' : 'hide'\"\r\n [@toggleFullScreen]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\r\n ></threed-configurator>\r\n </ng-container>\r\n <co-icon #fullscreenbutton class=\"fullscreen-button\" *ngIf=\"show3D\"\r\n [@toggleTopLeft]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\r\n [iconData]=\"iconCache.getIcon(fullScreenIcon)\"\r\n (click)=\"showFullScreen()\"></co-icon>\r\n <co-icon class=\"threed-watermark\" *ngIf=\"show3D && fullScreen\"\r\n [iconData]=\"iconCache.getIcon(icon.Logo)\"></co-icon>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"page-wrapper-right\">\r\n <div class=\"product-page-block-description\">\r\n <app-product-description class=\"default-padding\" [article]=\"article\"></app-product-description>\r\n </div>\r\n <div class=\"product-page-block-additional\">\r\n <div class=\"product-page-block-additional-description\">\r\n <app-product-additional-description class=\"default-padding\" [article]=\"article\"></app-product-additional-description>\r\n </div>\r\n <div class=\"product-page-block-price\" [class.full]=\"configuring\">\r\n <app-product-price class=\"s-padding\" *ngIf=\"!configuring\"\r\n [pricing]=\"article?.pricing\"\r\n [configurable]=\"configurable\"\r\n ></app-product-price>\r\n <ng-container *ngIf=\"settingsLoaded\">\r\n <threed-selections #selections class=\"threed-selections\" [class.show-selections]=\"configuring\" [@toggleFullScreenRight]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\r\n [class.default-padding]=\"!fullScreen\"\r\n [class.show-full-screen]=\"fullScreen\"\r\n [class.mini-scrollbar]=\"fullScreen\"\r\n [sku]=\"sku\"\r\n [settings]=\"settings\"\r\n (onUserActionFromThreeD)=\"configuring = true\"\r\n (instanceSet)=\"setInstance($event)\"\r\n (onImageReceived)=\"appEventService.onImageReceived.next($event)\"\r\n (onRenderStarted)=\"appEventService.onRenderStarted.next()\"\r\n (onDraftRenderImageReceived)=\"appEventService.onDraftRenderImageReceived.next($event)\"\r\n (onArticleReceived)=\"appEventService.onArticleReceived.next($event.detail)\"\r\n (onSelectionsReceived)=\"appEventService.onSelectionsReceived.next($event.detail)\"\r\n (onArticleInfoReceived)=\"appEventService.onArticleInfoReceived.next($event.detail)\"\r\n ></threed-selections>\r\n </ng-container>\r\n </div>\r\n <div class=\"product-page-block-addtocart no-padding product-action-buttons\" *ngIf=\"!configuring\" [@toggleTopRight]=\"fullScreen ? 'fullscreen' : 'halfscreen'\">\r\n <app-product-addtocart\r\n [configurable]=\"configurable\"\r\n [createFrozenArticle]=\"createFrozenArticle\"\r\n [configuring]=\"configuring\"\r\n [article]=\"article\"\r\n [isReturn]=\"isReturn\"\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 [isReturn]=\"isReturn\"\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\" [goodId]=\"article?.goodId\" (openStockEvent)=\"openStock()\"></app-product-stock>\r\n </div>\r\n <div class=\"product-page-block-delivery\">\r\n <app-product-delivery class=\"no-padding\" [stockAndDelivery]=\"stockAndDelivery\"></app-product-delivery>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"page-wrapper-content\">\r\n <div class=\"page-wrapper-left\">\r\n <app-product-info-tabs class=\"no-padding\" [article]=\"article\"></app-product-info-tabs>\r\n </div>\r\n <div class=\"page-wrapper-right\">\r\n <div class=\"product-page-block-related s-padding\">\r\n <app-product-related *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\r\n [articles]=\"article?.relatedArticles\" [refType]=\"1\" [label]=\"'RELATED_PRODUCTS' | localize\"></app-product-related>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"page-wrapper-content no-top-margin\">\r\n <div class=\"page-wrapper-full\">\r\n <div class=\"product-page-block-alternatives s-padding\">\r\n <app-product-related *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\r\n [articles]=\"article?.relatedArticles\" [refType]=\"4\" [isSmallModus]=\"false\" [label]=\"'ALTERNATIVE_PRODUCTS' | localize\"></app-product-related>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>\r\n",
983
+ animations: [
984
+ trigger('toggleFullScreen', [
985
+ state('fullscreen', style({ 'position': 'fixed', 'top': '0', 'left': '0', 'width': '100%', 'height': '100%' })),
986
+ state('halfscreen', style({ 'position': '*', 'top': '*', 'left': '*', 'width': '*', 'height': '*' })),
987
+ transition('halfscreen <=> fullscreen', animate('200ms ease-in-out')),
988
+ ]),
989
+ trigger('toggleTopLeft', [
990
+ state('fullscreen', style({ 'position': 'fixed', 'top': '0', 'left': '0' })),
991
+ state('halfscreen', style({ 'position': 'absolute', 'top': '*', 'left': '*' })),
992
+ transition('halfscreen <=> fullscreen', animate('200ms ease-in-out')),
993
+ ]),
994
+ trigger('toggleTopRight', [
995
+ state('fullscreen', style({ 'position': 'fixed', 'top': '0', 'right': '0' })),
996
+ state('halfscreen', style({ 'position': '*', 'top': '*', 'right': '*' })),
997
+ transition('halfscreen <=> fullscreen', animate('200ms ease-in-out')),
998
+ ]),
999
+ trigger('toggleFullScreenRight', [
1000
+ state('fullscreen', style({ 'position': 'fixed', 'width': '400px', 'top': '0', 'right': '0' })),
1001
+ state('halfscreen', style({ 'position': '*', 'width': '*', 'top': '*', 'right': '*' })),
1002
+ transition('halfscreen <=> fullscreen', animate('200ms ease-in-out')),
1003
+ ]),
1004
+ trigger('toggleVisibilityByState', [
1005
+ state('hide', style({ 'opacity': '0', 'display': 'none' })),
1006
+ state('show', style({ 'display': 'block', 'opacity': '1' })),
1007
+ transition('hide <=> show', animate('200ms 100ms ease-in-out')),
1008
+ ]),
1009
+ trigger('toggleVisibility', [
1010
+ state('void', style({ 'opacity': '0' })),
1011
+ state('*', style({ 'opacity': '1' })),
1012
+ transition('void => *', animate('200ms ease-in-out')),
1013
+ ])
1014
+ ],
1015
+ styles: [".page-wrapper{font-family:iOneMontserrat;font-size:12px;display:flex;flex-direction:column;max-width:1400px;padding:0 15px;margin:0 auto}.page-wrapper-content{display:flex;flex-direction:row;margin:40px 0}.page-wrapper-content:first-child{margin-top:0}.page-wrapper-content.no-top-margin{margin-top:0}.page-wrapper-left{display:flex;width:55%;flex-direction:column}.page-wrapper-right{display:flex;width:45%;flex-direction:column}.page-wrapper-full{display:flex;width:100%;flex-direction:column}.page-wrapper-66{display:flex;width:60%;flex-direction:column}.page-wrapper-33{display:flex;width:40%;flex-direction:column}.threed-selections{display:none}.threed-selections.show-selections{display:block}.threed-selections ::ng-deep .rp-lite-selector .rp-answers-slideout ::ng-deep co-slideout{width:480px;z-index:3}.product-action-buttons{position:relative}.product-action-buttons.full-screen{z-index:10}.product-image-container{grid-column:1/7;grid-row:1/6;position:relative}.product-page-block-selector-type{width:auto;position:absolute;top:10px;right:10px;z-index:2}.product-page-block-image{box-sizing:border-box;width:100%;z-index:1;position:relative}.product-page-block-image .threed-configurator{border:1px solid #efefef}.product-page-block-image .threed-configurator .layer .viewer canvas{height:100%;width:100%}.product-page-block-image .threed-configurator ::ng-deep .rp-element-toolbar{top:30px}.product-page-block-image app-image-carousel.show-animated,.product-page-block-image threed-configurator.show-animated{opacity:1;z-index:0;transition:all .2s ease-in-out}.product-page-block-image .fullscreen-button{cursor:pointer;height:50px;width:50px;position:absolute;left:30px;z-index:100;top:30px}.product-page-block-image.full{grid-column:1/11;grid-row:2/span 10;z-index:3}.product-page-block-description{grid-column:7/12;grid-row:1/1}.product-page-block-additional{width:100%}.product-page-block-additional-description{width:100%}.product-page-block-price{grid-column:1/3;grid-row:2/2;align-self:center}.product-page-block-price.full{grid-column:1/5}.product-page-block-addtocart{grid-column:3/5;grid-row:2/2;align-self:center;padding-top:30px!important}.product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button{cursor:pointer}.product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button:hover div.rippler{background:#f6f5f4}.product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button ::ng-deep co-icon{position:relative;z-index:2}.product-page-block-addtocart ::ng-deep co-button.cart-button{cursor:pointer}.product-page-block-addtocart ::ng-deep co-button.cart-button:hover{background:#74B77F}.addtocart-reserved{grid-column:1/3;grid-row:3/3}.product-page-block-stock{grid-column:1/3;grid-row:4/4}.product-page-block-delivery{grid-column:3/5;grid-row:4/4}::ng-deep co-scroll-container{overflow:hidden;position:relative}::ng-deep co-scroll-container .content-wrapper{padding:0}::ng-deep co-scroll-container .scroll-layer{left:0;top:0}::ng-deep co-scroll-container .scroll-layer .scroller{width:34px;height:34px;border-radius:36px;background:#fff;cursor:pointer;box-shadow:0 0 5px #0003}::ng-deep co-scroll-container .scroll-layer .scroller:hover{background:#f6f5f4}::ng-deep co-scroll-container .scroll-layer .scroller.left-scroll{left:5px}::ng-deep co-scroll-container .scroll-layer .scroller.left-scroll:before{border-width:0 3px 3px 0;padding:4px;margin-left:13px;margin-top:11px}::ng-deep co-scroll-container .scroll-layer .scroller.right-scroll{right:5px}::ng-deep co-scroll-container .scroll-layer .scroller.right-scroll:after{border-width:0 3px 3px 0;padding:4px;margin-left:9px;margin-top:11px}.product-page-block-variants{margin:20px 0 0}.product-page-block-variants ::ng-deep app-product-related>div{display:flex;grid-gap:15px;gap:15px;align-items:center;border-top:1px solid #f6f5f4;padding:5px 0 7px 15px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep app-header h3{font-size:14px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container{width:320px;max-width:100%;padding:0 16px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller{width:26px;height:26px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller.left-scroll{left:5px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller.left-scroll:before{border-width:0 2px 2px 0;margin-left:9px;margin-top:9px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller.right-scroll{right:5px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller.right-scroll:after{border-width:0 2px 2px 0;margin-left:6px;margin-top:9px}.product-page-block-variants ::ng-deep co-tile.small{min-width:50px!important;max-width:50px!important;border:1px solid #f6f5f4;margin:0 10px 0 0;border-radius:4px}.product-page-block-variants ::ng-deep co-tile.small:hover{border-color:#22313c}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper{padding:0}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .tile-top{display:none}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .image{height:40px!important;padding:5px}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .image .no-image-wrapper .no-image{width:40px;height:40px}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .image .no-image-wrapper span{display:none!important}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .tile-bottom{display:none}.product-page-block-variants ::ng-deep co-tile.small .tile-extra-bottom{display:none}.product-page-block-alternatives ::ng-deep .article-wrapper{margin:0 20px 0 0}.product-page-block-alternatives ::ng-deep .article-wrapper:last-child{margin:0}.product-page-block-alternatives ::ng-deep co-tile{cursor:pointer;transition:all .14s ease-out;border:1px solid transparent;border-bottom-color:#f6f5f4;padding:15px 10px 0;width:319px;max-width:none;min-width:0;box-sizing:border-box}.product-page-block-alternatives ::ng-deep co-tile:hover{box-shadow:none;border-color:#f6f5f4}.product-page-block-alternatives ::ng-deep co-tile:hover .tile-wrapper div.image co-image{transform:scale(1.05)}.product-page-block-alternatives ::ng-deep co-tile:hover .tile-wrapper .tile-bottom{margin:0}.product-page-block-alternatives ::ng-deep co-tile:hover .tile-extra-bottom .main .description{text-decoration:underline}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper{padding:0;position:relative;outline:none;overflow:hidden}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper .tile-top{position:absolute;left:0;top:0;width:100%}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper div.image{position:relative;padding:1px;display:flex;align-items:center;justify-content:center;overflow:hidden;max-width:250px;margin:0 auto;height:auto}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper div.image:after{content:\"\";padding:100% 0 0;float:left;width:100%}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper div.image co-image{position:absolute;left:0;top:0;overflow:hidden;width:100%;height:100%;-o-object-fit:contain;object-fit:contain;z-index:-1;transition:all .2s ease}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper div.image .no-image-wrapper{position:absolute;display:flex;left:50%;top:50%;margin:-48px 0 0 -54px;flex-direction:column;align-items:center;opacity:.25}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper .tile-bottom{position:absolute;right:0;bottom:0;margin:0 -40px 0 0;transition:all .2s ease;height:auto}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper .tile-bottom ::ng-deep co-button{margin:0 0 5px!important;width:36px;height:36px;border:1px solid #22313C;cursor:pointer;border-radius:4px;padding:0!important;font-size:0}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper .tile-bottom ::ng-deep co-button co-icon{width:32px;height:32px;margin:0 2px}.product-page-block-alternatives ::ng-deep co-tile .tile-extra-bottom{outline:none;padding:15px 0;background:transparent!important;min-height:60px}.product-page-block-alternatives ::ng-deep co-tile .tile-extra-bottom .main{padding:0 10px}.product-page-block-alternatives ::ng-deep co-tile .tile-extra-bottom .main .description{font-size:15px;font-weight:bold;margin:0 0 2px}.product-page-block-alternatives ::ng-deep co-tile .tile-extra-bottom .main .price{font-size:16px;margin:15px 0 0;font-weight:bold;color:#2b60a7}.product-page-block-additional-information{grid-column:1/6;grid-row:4/4}.product-page-block-properties{grid-column:7/10;grid-row:3/3}.product-page-block-related-articles{grid-column:2/6;grid-row:4/4}.product-page-block-alternative-articles{grid-column:6/10;grid-row:4/4}.product-page-block-documents{grid-column:2/6;grid-row:5/5}.product-page-block-symbols{grid-column:6/10;grid-row:5/5}@media screen and (max-width: 950px){.default-padding{padding-top:20px;padding-bottom:20px}.m-padding{padding-top:15px;padding-bottom:15px}.s-padding{padding-top:5px;padding-bottom:5px}.page-wrapper{max-width:650px}.page-wrapper .page-wrapper-content{flex-direction:column;margin:30px 0}.page-wrapper .page-wrapper-content .page-wrapper-left{width:100%}.page-wrapper .page-wrapper-content .page-wrapper-right{width:100%}.product-page-block-alternatives ::ng-deep co-tile{width:284px!important}}@media screen and (max-width: 650px){[class*=-padding]{padding-left:0!important;padding-right:0!important}.product-page-block-addtocart ::ng-deep co-number-picker co-button{height:38px!important}.product-page-block-addtocart ::ng-deep co-number-picker co-input-text{height:38px!important;width:36px!important}.product-page-block-addtocart ::ng-deep co-button.cart-button{height:40px;font-size:13px}}\n"]
1016
+ },] }
1017
+ ];
1018
+ ProductPageComponent.ctorParameters = () => [
1019
+ { type: ProductConnectorService },
1020
+ { type: Renderer2 },
1021
+ { type: ChangeDetectorRef },
1022
+ { type: IconCacheService },
1023
+ { type: ProductSettingsService },
1024
+ { type: ProductEventService }
1025
+ ];
1026
+ ProductPageComponent.propDecorators = {
1027
+ configurator: [{ type: ViewChild, args: ['configurator', { read: ElementRef },] }],
1028
+ selections: [{ type: ViewChild, args: ['selections', { read: ElementRef },] }],
1029
+ fullscreenbutton: [{ type: ViewChild, args: ['fullscreenbutton', { read: ElementRef },] }],
1030
+ sku: [{ type: Input }],
1031
+ settings: [{ type: Input }],
1032
+ createFrozenArticle: [{ type: Input }],
1033
+ isReturn: [{ type: Input }],
1034
+ openStockEvent: [{ type: Output }]
1031
1035
  };
1032
1036
 
1033
- class ProductSelectorTypeComponent {
1034
- constructor(_iconCache, _changeDetector) {
1035
- this._iconCache = _iconCache;
1036
- this._changeDetector = _changeDetector;
1037
- this.type = SelectorType;
1038
- this.icons = IconEnum;
1039
- this.onIconClick = new EventEmitter();
1040
- this.currentTypeChange = new EventEmitter();
1041
- this.twoDIcon = this._iconCache.getIcon(this.icons.TwoD);
1042
- this.threeDIcon = this._iconCache.getIcon(this.icons.ThreeD);
1043
- }
1044
- ngOnInit() {
1045
- }
1046
- handleIconClick(type) {
1047
- this.currentType = type;
1048
- this.currentTypeChange.next(this.currentType);
1049
- this.onIconClick.next(this.currentType);
1050
- this._changeDetector.detectChanges();
1051
- }
1052
- }
1053
- ProductSelectorTypeComponent.decorators = [
1054
- { type: Component, args: [{
1055
- selector: 'app-product-selector-type',
1037
+ class ProductSelectorTypeComponent {
1038
+ constructor(_iconCache, _changeDetector) {
1039
+ this._iconCache = _iconCache;
1040
+ this._changeDetector = _changeDetector;
1041
+ this.type = SelectorType;
1042
+ this.icons = IconEnum;
1043
+ this.onIconClick = new EventEmitter();
1044
+ this.currentTypeChange = new EventEmitter();
1045
+ this.twoDIcon = this._iconCache.getIcon(this.icons.TwoD);
1046
+ this.threeDIcon = this._iconCache.getIcon(this.icons.ThreeD);
1047
+ }
1048
+ ngOnInit() {
1049
+ }
1050
+ handleIconClick(type) {
1051
+ this.currentType = type;
1052
+ this.currentTypeChange.next(this.currentType);
1053
+ this.onIconClick.next(this.currentType);
1054
+ this._changeDetector.detectChanges();
1055
+ }
1056
+ }
1057
+ ProductSelectorTypeComponent.decorators = [
1058
+ { type: Component, args: [{
1059
+ selector: 'app-product-selector-type',
1056
1060
  template: `
1057
1061
  <div *ngIf="show2D || show3D" class="show-in" [textContent]="'SHOW_IN' | localize"></div>
1058
1062
  <co-icon *ngIf="show2D" class="selector-type-icon"
@@ -1065,200 +1069,200 @@ ProductSelectorTypeComponent.decorators = [
1065
1069
  [iconData]="threeDIcon"
1066
1070
  (click)="handleIconClick(type.ThreeD)"
1067
1071
  ></co-icon>
1068
- `,
1069
- styles: [":host{display:flex;flex-direction:row;align-items:center}:host .show-in{display:none}:host>*:not(:last-child){margin-right:10px}::ng-deep co-icon.selector-type-icon{box-shadow:inset 0 0 0 1px #22313c;border-radius:50%;background:none;height:34px;width:34px;cursor:pointer}::ng-deep co-icon.selector-type-icon.active{box-shadow:none;background:#74B77F;transition:all .2s ease-in-out}::ng-deep co-icon.selector-type-icon.active [fill]{fill:#fff}\n"]
1070
- },] }
1071
- ];
1072
- ProductSelectorTypeComponent.ctorParameters = () => [
1073
- { type: IconCacheService },
1074
- { type: ChangeDetectorRef }
1075
- ];
1076
- ProductSelectorTypeComponent.propDecorators = {
1077
- show2D: [{ type: Input }],
1078
- show3D: [{ type: Input }],
1079
- currentType: [{ type: Input }],
1080
- onIconClick: [{ type: Output }],
1081
- currentTypeChange: [{ type: Output }]
1072
+ `,
1073
+ styles: [":host{display:flex;flex-direction:row;align-items:center}:host .show-in{display:none}:host>*:not(:last-child){margin-right:10px}::ng-deep co-icon.selector-type-icon{box-shadow:inset 0 0 0 1px #22313c;border-radius:50%;background:none;height:34px;width:34px;cursor:pointer}::ng-deep co-icon.selector-type-icon.active{box-shadow:none;background:#74B77F;transition:all .2s ease-in-out}::ng-deep co-icon.selector-type-icon.active [fill]{fill:#fff}\n"]
1074
+ },] }
1075
+ ];
1076
+ ProductSelectorTypeComponent.ctorParameters = () => [
1077
+ { type: IconCacheService },
1078
+ { type: ChangeDetectorRef }
1079
+ ];
1080
+ ProductSelectorTypeComponent.propDecorators = {
1081
+ show2D: [{ type: Input }],
1082
+ show3D: [{ type: Input }],
1083
+ currentType: [{ type: Input }],
1084
+ onIconClick: [{ type: Output }],
1085
+ currentTypeChange: [{ type: Output }]
1082
1086
  };
1083
1087
 
1084
- // A pipe for localizing string values in view templates.
1085
- class LocalizePipe {
1086
- constructor(_dictionaryService) {
1087
- this._dictionaryService = _dictionaryService;
1088
- }
1089
- transform(value, upperCaseFirst = true, replace = []) {
1090
- if (!value) {
1091
- return '';
1092
- }
1093
- replace = replace ? replace : [];
1094
- if (!Array.isArray(replace)) {
1095
- replace = [replace];
1096
- }
1097
- return this._dictionaryService.get(value, upperCaseFirst, ...replace);
1098
- }
1099
- }
1100
- LocalizePipe.decorators = [
1101
- { type: Pipe, args: [{
1102
- name: 'localize'
1103
- },] }
1104
- ];
1105
- LocalizePipe.ctorParameters = () => [
1106
- { type: DictionaryService }
1088
+ // A pipe for localizing string values in view templates.
1089
+ class LocalizePipe {
1090
+ constructor(_dictionaryService) {
1091
+ this._dictionaryService = _dictionaryService;
1092
+ }
1093
+ transform(value, upperCaseFirst = true, replace = []) {
1094
+ if (!value) {
1095
+ return '';
1096
+ }
1097
+ replace = replace ? replace : [];
1098
+ if (!Array.isArray(replace)) {
1099
+ replace = [replace];
1100
+ }
1101
+ return this._dictionaryService.get(value, upperCaseFirst, ...replace);
1102
+ }
1103
+ }
1104
+ LocalizePipe.decorators = [
1105
+ { type: Pipe, args: [{
1106
+ name: 'localize'
1107
+ },] }
1108
+ ];
1109
+ LocalizePipe.ctorParameters = () => [
1110
+ { type: DictionaryService }
1107
1111
  ];
1108
1112
 
1109
- class PipeModule {
1110
- }
1111
- PipeModule.decorators = [
1112
- { type: NgModule, args: [{
1113
- declarations: [
1114
- LocalizePipe
1115
- ],
1116
- providers: [
1117
- LocalizePipe
1118
- ],
1119
- exports: [
1120
- LocalizePipe
1121
- ]
1122
- },] }
1113
+ class PipeModule {
1114
+ }
1115
+ PipeModule.decorators = [
1116
+ { type: NgModule, args: [{
1117
+ declarations: [
1118
+ LocalizePipe
1119
+ ],
1120
+ providers: [
1121
+ LocalizePipe
1122
+ ],
1123
+ exports: [
1124
+ LocalizePipe
1125
+ ]
1126
+ },] }
1123
1127
  ];
1124
1128
 
1125
- // import {IconModule} from '@colijnit/corecomponents';
1126
- class ProductSelectorTypeModule {
1127
- }
1128
- ProductSelectorTypeModule.decorators = [
1129
- { type: NgModule, args: [{
1130
- imports: [
1131
- CommonModule,
1132
- PipeModule,
1133
- IconModule,
1134
- /*,
1135
- IconModule*/
1136
- ],
1137
- declarations: [
1138
- ProductSelectorTypeComponent
1139
- ],
1140
- exports: [
1141
- ProductSelectorTypeComponent
1142
- ]
1143
- },] }
1129
+ // import {IconModule} from '@colijnit/corecomponents';
1130
+ class ProductSelectorTypeModule {
1131
+ }
1132
+ ProductSelectorTypeModule.decorators = [
1133
+ { type: NgModule, args: [{
1134
+ imports: [
1135
+ CommonModule,
1136
+ PipeModule,
1137
+ IconModule,
1138
+ /*,
1139
+ IconModule*/
1140
+ ],
1141
+ declarations: [
1142
+ ProductSelectorTypeComponent
1143
+ ],
1144
+ exports: [
1145
+ ProductSelectorTypeComponent
1146
+ ]
1147
+ },] }
1144
1148
  ];
1145
1149
 
1146
- class ImageCarouselComponent {
1147
- constructor(_ione, _appEventService, _changeDetector, _domSanitizer, iconCache) {
1148
- this._ione = _ione;
1149
- this._appEventService = _appEventService;
1150
- this._changeDetector = _changeDetector;
1151
- this._domSanitizer = _domSanitizer;
1152
- this.iconCache = iconCache;
1153
- this.icons = IconEnum;
1154
- this.showLoader = false;
1155
- this.showRefresh = false;
1156
- this.resizing = false;
1157
- this._currentIndex = 0;
1158
- this._images = [];
1159
- this._subs = [];
1160
- this._subs.push(this._appEventService.onRenderStarted.subscribe(() => {
1161
- this.showLoader = true;
1162
- }), this._appEventService.onDraftRenderImageReceived.subscribe((url) => {
1163
- if (this._images[0] instanceof CoDocument) {
1164
- this._images.unshift(url);
1165
- }
1166
- else {
1167
- this._images[0] = url;
1168
- }
1169
- this.showLoader = false;
1170
- }));
1171
- }
1172
- set images(value) {
1173
- if (value && value.length > 0) {
1174
- this._images = value;
1175
- this._loadImages();
1176
- this._changeDetector.detectChanges();
1177
- }
1178
- }
1179
- handleWindowResize() {
1180
- this.resizing = true;
1181
- this._scrollCarouselToIndex();
1182
- clearTimeout(this._resizeTimer);
1183
- this._resizeTimer = setTimeout(() => {
1184
- this.resizing = false;
1185
- }, 200);
1186
- }
1187
- gotoNextSlide() {
1188
- this.currentIndex++;
1189
- }
1190
- gotoPrevSlide() {
1191
- this.currentIndex--;
1192
- }
1193
- isCurrentIndex(index) {
1194
- return this.currentIndex === index;
1195
- }
1196
- get currentIndex() {
1197
- return this._currentIndex;
1198
- }
1199
- set currentIndex(value) {
1200
- this._currentIndex = value;
1201
- this._scrollCarouselToIndex();
1202
- }
1203
- get images() {
1204
- return this._images;
1205
- }
1206
- ngOnInit() {
1207
- }
1208
- ngOnDestroy() {
1209
- this.carousel = undefined;
1210
- this._subs.forEach(s => s.unsubscribe());
1211
- }
1212
- handleThumbClick(index) {
1213
- this.currentIndex = index;
1214
- }
1215
- onForceRenderImage() {
1216
- this._appEventService.onForceRenderImage.next();
1217
- }
1218
- getImageSrc(image) {
1219
- let source = '';
1220
- if (image instanceof CoDocument) {
1221
- if (image.filePath) {
1222
- source = image.filePath;
1223
- }
1224
- else {
1225
- source = image.documentBodyAsDataUri;
1226
- }
1227
- }
1228
- else if (image.detail !== undefined) {
1229
- source = image.detail;
1230
- }
1231
- return this._domSanitizer.bypassSecurityTrustUrl(source);
1232
- }
1233
- _loadImages() {
1234
- if (this._images) {
1235
- this._images.forEach((i) => {
1236
- if (!i.documentBody && !i.filePath) {
1237
- this._ione.getDocumentContent(i.documentId, false).then((content) => {
1238
- if (content) {
1239
- i.documentBody = content.documentContent;
1240
- }
1241
- });
1242
- }
1243
- });
1244
- }
1245
- }
1246
- _scrollCarouselToIndex() {
1247
- if (this.currentIndex > -1 && this.currentIndex <= this.images.length) {
1248
- const movePx = this.currentIndex * this.carousel.nativeElement.clientWidth;
1249
- if (this.carousel && this.carousel.nativeElement) {
1250
- this.carousel.nativeElement.scrollLeft = movePx;
1251
- // this.carousel.nativeElement.scrollTo({
1252
- // left: movePx,
1253
- // behavior: 'smooth'
1254
- // });
1255
- }
1256
- }
1257
- }
1258
- }
1259
- ImageCarouselComponent.decorators = [
1260
- { type: Component, args: [{
1261
- selector: 'app-image-carousel',
1150
+ class ImageCarouselComponent {
1151
+ constructor(_ione, _appEventService, _changeDetector, _domSanitizer, iconCache) {
1152
+ this._ione = _ione;
1153
+ this._appEventService = _appEventService;
1154
+ this._changeDetector = _changeDetector;
1155
+ this._domSanitizer = _domSanitizer;
1156
+ this.iconCache = iconCache;
1157
+ this.icons = IconEnum;
1158
+ this.showLoader = false;
1159
+ this.showRefresh = false;
1160
+ this.resizing = false;
1161
+ this._currentIndex = 0;
1162
+ this._images = [];
1163
+ this._subs = [];
1164
+ this._subs.push(this._appEventService.onRenderStarted.subscribe(() => {
1165
+ this.showLoader = true;
1166
+ }), this._appEventService.onDraftRenderImageReceived.subscribe((url) => {
1167
+ if (this._images[0] instanceof CoDocument) {
1168
+ this._images.unshift(url);
1169
+ }
1170
+ else {
1171
+ this._images[0] = url;
1172
+ }
1173
+ this.showLoader = false;
1174
+ }));
1175
+ }
1176
+ set images(value) {
1177
+ if (value && value.length > 0) {
1178
+ this._images = value;
1179
+ this._loadImages();
1180
+ this._changeDetector.detectChanges();
1181
+ }
1182
+ }
1183
+ handleWindowResize() {
1184
+ this.resizing = true;
1185
+ this._scrollCarouselToIndex();
1186
+ clearTimeout(this._resizeTimer);
1187
+ this._resizeTimer = setTimeout(() => {
1188
+ this.resizing = false;
1189
+ }, 200);
1190
+ }
1191
+ gotoNextSlide() {
1192
+ this.currentIndex++;
1193
+ }
1194
+ gotoPrevSlide() {
1195
+ this.currentIndex--;
1196
+ }
1197
+ isCurrentIndex(index) {
1198
+ return this.currentIndex === index;
1199
+ }
1200
+ get currentIndex() {
1201
+ return this._currentIndex;
1202
+ }
1203
+ set currentIndex(value) {
1204
+ this._currentIndex = value;
1205
+ this._scrollCarouselToIndex();
1206
+ }
1207
+ get images() {
1208
+ return this._images;
1209
+ }
1210
+ ngOnInit() {
1211
+ }
1212
+ ngOnDestroy() {
1213
+ this.carousel = undefined;
1214
+ this._subs.forEach(s => s.unsubscribe());
1215
+ }
1216
+ handleThumbClick(index) {
1217
+ this.currentIndex = index;
1218
+ }
1219
+ onForceRenderImage() {
1220
+ this._appEventService.onForceRenderImage.next();
1221
+ }
1222
+ getImageSrc(image) {
1223
+ let source = '';
1224
+ if (image instanceof CoDocument) {
1225
+ if (image.filePath) {
1226
+ source = image.filePath;
1227
+ }
1228
+ else {
1229
+ source = image.documentBodyAsDataUri;
1230
+ }
1231
+ }
1232
+ else if (image.detail !== undefined) {
1233
+ source = image.detail;
1234
+ }
1235
+ return this._domSanitizer.bypassSecurityTrustUrl(source);
1236
+ }
1237
+ _loadImages() {
1238
+ if (this._images) {
1239
+ this._images.forEach((i) => {
1240
+ if (!i.documentBody && !i.filePath) {
1241
+ this._ione.getDocumentContent(i.documentId, false).then((content) => {
1242
+ if (content) {
1243
+ i.documentBody = content.documentContent;
1244
+ }
1245
+ });
1246
+ }
1247
+ });
1248
+ }
1249
+ }
1250
+ _scrollCarouselToIndex() {
1251
+ if (this.currentIndex > -1 && this.currentIndex <= this.images.length) {
1252
+ const movePx = this.currentIndex * this.carousel.nativeElement.clientWidth;
1253
+ if (this.carousel && this.carousel.nativeElement) {
1254
+ this.carousel.nativeElement.scrollLeft = movePx;
1255
+ // this.carousel.nativeElement.scrollTo({
1256
+ // left: movePx,
1257
+ // behavior: 'smooth'
1258
+ // });
1259
+ }
1260
+ }
1261
+ }
1262
+ }
1263
+ ImageCarouselComponent.decorators = [
1264
+ { type: Component, args: [{
1265
+ selector: 'app-image-carousel',
1262
1266
  template: `
1263
1267
  <div id="product_page_carousel">
1264
1268
  <div id="product_page_carousel_items">
@@ -1289,139 +1293,139 @@ ImageCarouselComponent.decorators = [
1289
1293
  </co-scroll-container>
1290
1294
  </div>
1291
1295
  </div>
1292
- `,
1293
- styles: [":host{max-height:540px;height:100%;position:relative}:host:not(.resizing) .inner-carousel{scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory}#product_page_carousel{position:relative}#product_page_carousel .refresh-button{position:absolute;bottom:10px;right:10px;background:#fff}#product_page_carousel .refresh-button.loading{animation:spin 1s linear infinite}#product_page_carousel .refresh-button:hover{box-shadow:none;background:#74B77F;transition:all .2s ease-in-out}#product_page_carousel .refresh-button:hover ::ng-deep svg path{fill:#fff!important}#product_page_carousel #product_page_carousel_items{position:relative;margin-bottom:10px}#product_page_carousel #product_page_carousel_items ::ng-deep co-loader{position:absolute}#product_page_carousel .inner-carousel{display:flex;flex-direction:row;align-items:center;overflow:hidden;max-height:500px;border:1px solid #efefef}#product_page_carousel .carousel-item{max-height:500px;width:100%;display:flex;flex-shrink:0;flex-grow:0}#product_page_carousel .carousel-item img{width:100%;height:auto;-o-object-fit:contain;object-fit:contain}#product_page_carousel .carousel-scroller-layer{height:100%;width:100%;position:absolute;pointer-events:none;top:0;left:0}#product_page_carousel #product_page_carousel_thumbs{display:flex;justify-content:flex-start;height:80px;margin-left:auto;margin-right:auto}#product_page_carousel #product_page_carousel_thumbs ::ng-deep co-scroll-container{padding:0 22px}#product_page_carousel #product_page_carousel_thumbs ::ng-deep co-scroll-container .content-wrapper{padding:0}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb{opacity:1;cursor:pointer;transition:all .2s ease;padding:4px;border:1px solid #f6f5f4}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb.active,#product_page_carousel #product_page_carousel_thumbs .carousel-thumb:hover{border-color:#22313c}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb:not(:last-child){margin-right:10px}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb img{height:68px}@media screen and (max-width: 650px){#product_page_carousel_thumbs{height:57px!important}#product_page_carousel_thumbs .carousel-thumb img{height:50px!important}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"]
1294
- },] }
1295
- ];
1296
- ImageCarouselComponent.ctorParameters = () => [
1297
- { type: ProductConnectorService },
1298
- { type: ProductEventService },
1299
- { type: ChangeDetectorRef },
1300
- { type: DomSanitizer },
1301
- { type: IconCacheService }
1302
- ];
1303
- ImageCarouselComponent.propDecorators = {
1304
- carousel: [{ type: ViewChild, args: ['carousel', { read: ElementRef },] }],
1305
- showRefresh: [{ type: Input }],
1306
- images: [{ type: Input }],
1307
- handleWindowResize: [{ type: HostListener, args: ['window:resize',] }],
1308
- gotoNextSlide: [{ type: HostListener, args: ['swipeleft',] }],
1309
- gotoPrevSlide: [{ type: HostListener, args: ['swiperight',] }],
1310
- resizing: [{ type: HostBinding, args: ['class.resizing',] }]
1296
+ `,
1297
+ styles: [":host{max-height:540px;height:100%;position:relative}:host:not(.resizing) .inner-carousel{scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory}#product_page_carousel{position:relative}#product_page_carousel .refresh-button{position:absolute;bottom:10px;right:10px;background:#fff}#product_page_carousel .refresh-button.loading{animation:spin 1s linear infinite}#product_page_carousel .refresh-button:hover{box-shadow:none;background:#74B77F;transition:all .2s ease-in-out}#product_page_carousel .refresh-button:hover ::ng-deep svg path{fill:#fff!important}#product_page_carousel #product_page_carousel_items{position:relative;margin-bottom:10px}#product_page_carousel #product_page_carousel_items ::ng-deep co-loader{position:absolute}#product_page_carousel .inner-carousel{display:flex;flex-direction:row;align-items:center;overflow:hidden;max-height:500px;border:1px solid #efefef}#product_page_carousel .carousel-item{max-height:500px;width:100%;display:flex;flex-shrink:0;flex-grow:0}#product_page_carousel .carousel-item img{width:100%;height:auto;-o-object-fit:contain;object-fit:contain}#product_page_carousel .carousel-scroller-layer{height:100%;width:100%;position:absolute;pointer-events:none;top:0;left:0}#product_page_carousel #product_page_carousel_thumbs{display:flex;justify-content:flex-start;height:80px;margin-left:auto;margin-right:auto}#product_page_carousel #product_page_carousel_thumbs ::ng-deep co-scroll-container{padding:0 22px}#product_page_carousel #product_page_carousel_thumbs ::ng-deep co-scroll-container .content-wrapper{padding:0}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb{opacity:1;cursor:pointer;transition:all .2s ease;padding:4px;border:1px solid #f6f5f4}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb.active,#product_page_carousel #product_page_carousel_thumbs .carousel-thumb:hover{border-color:#22313c}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb:not(:last-child){margin-right:10px}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb img{height:68px}@media screen and (max-width: 650px){#product_page_carousel_thumbs{height:57px!important}#product_page_carousel_thumbs .carousel-thumb img{height:50px!important}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"]
1298
+ },] }
1299
+ ];
1300
+ ImageCarouselComponent.ctorParameters = () => [
1301
+ { type: ProductConnectorService },
1302
+ { type: ProductEventService },
1303
+ { type: ChangeDetectorRef },
1304
+ { type: DomSanitizer },
1305
+ { type: IconCacheService }
1306
+ ];
1307
+ ImageCarouselComponent.propDecorators = {
1308
+ carousel: [{ type: ViewChild, args: ['carousel', { read: ElementRef },] }],
1309
+ showRefresh: [{ type: Input }],
1310
+ images: [{ type: Input }],
1311
+ handleWindowResize: [{ type: HostListener, args: ['window:resize',] }],
1312
+ gotoNextSlide: [{ type: HostListener, args: ['swipeleft',] }],
1313
+ gotoPrevSlide: [{ type: HostListener, args: ['swiperight',] }],
1314
+ resizing: [{ type: HostBinding, args: ['class.resizing',] }]
1311
1315
  };
1312
1316
 
1313
- class ImageCarouselModule {
1314
- }
1315
- ImageCarouselModule.decorators = [
1316
- { type: NgModule, args: [{
1317
- imports: [
1318
- CommonModule,
1319
- LoaderModule,
1320
- // IconModule,
1321
- ScrollContainerModule
1322
- ],
1323
- declarations: [
1324
- ImageCarouselComponent
1325
- ],
1326
- exports: [
1327
- ImageCarouselComponent
1328
- ]
1329
- },] }
1317
+ class ImageCarouselModule {
1318
+ }
1319
+ ImageCarouselModule.decorators = [
1320
+ { type: NgModule, args: [{
1321
+ imports: [
1322
+ CommonModule,
1323
+ LoaderModule,
1324
+ // IconModule,
1325
+ ScrollContainerModule
1326
+ ],
1327
+ declarations: [
1328
+ ImageCarouselComponent
1329
+ ],
1330
+ exports: [
1331
+ ImageCarouselComponent
1332
+ ]
1333
+ },] }
1330
1334
  ];
1331
1335
 
1332
- class ProductDescriptionComponent {
1333
- constructor() { }
1334
- ngOnInit() {
1335
- }
1336
- }
1337
- ProductDescriptionComponent.decorators = [
1338
- { type: Component, args: [{
1339
- selector: 'app-product-description',
1336
+ class ProductDescriptionComponent {
1337
+ constructor() { }
1338
+ ngOnInit() {
1339
+ }
1340
+ }
1341
+ ProductDescriptionComponent.decorators = [
1342
+ { type: Component, args: [{
1343
+ selector: 'app-product-description',
1340
1344
  template: `
1341
1345
  <div class="pd-title-wrapper">
1342
1346
  <span class="pd-description" [textContent]="article?.descriptionRetail" *ngIf="article?.descriptionRetail"></span>
1343
1347
  <span class="pd-sku" [textContent]="article?.articleNr" *ngIf="article?.articleNr"></span>
1344
1348
  </div>
1345
- `,
1346
- styles: [":host{display:block}.pd-title-wrapper{margin:20px 0 0}.pd-description{color:#22313c;font-size:25px;font-weight:bold;width:100%;display:block}.pd-sku{color:#5b6875;font-size:16px}@media screen and (max-width: 650px){.pd-description{font-size:21px}.pd-sku{font-size:13px}}\n"]
1347
- },] }
1348
- ];
1349
- ProductDescriptionComponent.ctorParameters = () => [];
1350
- ProductDescriptionComponent.propDecorators = {
1351
- article: [{ type: Input }]
1349
+ `,
1350
+ styles: [":host{display:block}.pd-title-wrapper{margin:20px 0 0}.pd-description{color:#22313c;font-size:25px;font-weight:bold;width:100%;display:block}.pd-sku{color:#5b6875;font-size:16px}@media screen and (max-width: 650px){.pd-description{font-size:21px}.pd-sku{font-size:13px}}\n"]
1351
+ },] }
1352
+ ];
1353
+ ProductDescriptionComponent.ctorParameters = () => [];
1354
+ ProductDescriptionComponent.propDecorators = {
1355
+ article: [{ type: Input }]
1352
1356
  };
1353
1357
 
1354
- class ProductDescriptionModule {
1355
- }
1356
- ProductDescriptionModule.decorators = [
1357
- { type: NgModule, args: [{
1358
- imports: [
1359
- CommonModule
1360
- ],
1361
- declarations: [
1362
- ProductDescriptionComponent
1363
- ],
1364
- exports: [
1365
- ProductDescriptionComponent
1366
- ]
1367
- },] }
1358
+ class ProductDescriptionModule {
1359
+ }
1360
+ ProductDescriptionModule.decorators = [
1361
+ { type: NgModule, args: [{
1362
+ imports: [
1363
+ CommonModule
1364
+ ],
1365
+ declarations: [
1366
+ ProductDescriptionComponent
1367
+ ],
1368
+ exports: [
1369
+ ProductDescriptionComponent
1370
+ ]
1371
+ },] }
1368
1372
  ];
1369
1373
 
1370
- class BitUtils {
1371
- static IsShortDescription(bit) {
1372
- return (1 & bit) > 0;
1373
- }
1374
- static IsFullDescription(bit) {
1375
- return (2 & bit) > 0;
1376
- }
1377
- static IsMetaTitle(bit) {
1378
- return (4 & bit) > 0;
1379
- }
1380
- static IsMetaDescription(bit) {
1381
- return (8 & bit) > 0;
1382
- }
1383
- static IsMetaKeys(bit) {
1384
- return (16 & bit) > 0;
1385
- }
1374
+ class BitUtils {
1375
+ static IsShortDescription(bit) {
1376
+ return (1 & bit) > 0;
1377
+ }
1378
+ static IsFullDescription(bit) {
1379
+ return (2 & bit) > 0;
1380
+ }
1381
+ static IsMetaTitle(bit) {
1382
+ return (4 & bit) > 0;
1383
+ }
1384
+ static IsMetaDescription(bit) {
1385
+ return (8 & bit) > 0;
1386
+ }
1387
+ static IsMetaKeys(bit) {
1388
+ return (16 & bit) > 0;
1389
+ }
1386
1390
  }
1387
1391
 
1388
- class ProductAdditionalDescriptionComponent {
1389
- constructor(_appEventService) {
1390
- this._appEventService = _appEventService;
1391
- }
1392
- set article(value) {
1393
- this._article = value;
1394
- if (this._article) {
1395
- this.description = this.article.additionalDescription;
1396
- this._prepareDescription();
1397
- }
1398
- }
1399
- get article() {
1400
- return this._article;
1401
- }
1402
- ngOnInit() {
1403
- }
1404
- onReadMore() {
1405
- this._appEventService.onUpdateProductInfoTab.next(0);
1406
- }
1407
- _prepareDescription() {
1408
- this.description = '';
1409
- if (this.article.texts && this.article.texts.length > 0) {
1410
- this.article.texts.forEach((txt) => {
1411
- if (BitUtils.IsShortDescription(txt.publication)) {
1412
- this.description += txt.text;
1413
- }
1414
- });
1415
- this.description = this.description.replace(/<[^>]*>?/gm, '');
1416
- if (this.description.length > 250) {
1417
- this.description = this.description.substr(0, 250) + ' [..]';
1418
- }
1419
- }
1420
- }
1421
- }
1422
- ProductAdditionalDescriptionComponent.decorators = [
1423
- { type: Component, args: [{
1424
- selector: 'app-product-additional-description',
1392
+ class ProductAdditionalDescriptionComponent {
1393
+ constructor(_appEventService) {
1394
+ this._appEventService = _appEventService;
1395
+ }
1396
+ set article(value) {
1397
+ this._article = value;
1398
+ if (this._article) {
1399
+ this.description = this.article.additionalDescription;
1400
+ this._prepareDescription();
1401
+ }
1402
+ }
1403
+ get article() {
1404
+ return this._article;
1405
+ }
1406
+ ngOnInit() {
1407
+ }
1408
+ onReadMore() {
1409
+ this._appEventService.onUpdateProductInfoTab.next(0);
1410
+ }
1411
+ _prepareDescription() {
1412
+ this.description = '';
1413
+ if (this.article.texts && this.article.texts.length > 0) {
1414
+ this.article.texts.forEach((txt) => {
1415
+ if (BitUtils.IsShortDescription(txt.publication)) {
1416
+ this.description += txt.text;
1417
+ }
1418
+ });
1419
+ this.description = this.description.replace(/<[^>]*>?/gm, '');
1420
+ if (this.description.length > 250) {
1421
+ this.description = this.description.substr(0, 250) + ' [..]';
1422
+ }
1423
+ }
1424
+ }
1425
+ }
1426
+ ProductAdditionalDescriptionComponent.decorators = [
1427
+ { type: Component, args: [{
1428
+ selector: 'app-product-additional-description',
1425
1429
  template: `
1426
1430
  <ng-container *ngIf="description !== ''">
1427
1431
  <div class="pd-additional-description">
@@ -1429,82 +1433,82 @@ ProductAdditionalDescriptionComponent.decorators = [
1429
1433
  <button class="pd-read-more-btn" [textContent]="'READ_MORE' | localize" (click)="onReadMore()"></button>
1430
1434
  </div>
1431
1435
  </ng-container>
1432
- `,
1433
- styles: [":host{display:block;padding-top:0!important}:host *:focus{outline:0!important}:host .pd-additional-description{line-height:190%;color:#22313c;font-size:13px}:host .pd-read-more-btn{color:#2b60a7;border:none;background:transparent;cursor:pointer;text-decoration:underline;font-family:iOneMontserrat}:host .pd-read-more-btn:hover{color:#74b77f}@media screen and (max-width: 650px){:host .pd-additional-description{font-size:12px}}\n"]
1434
- },] }
1435
- ];
1436
- ProductAdditionalDescriptionComponent.ctorParameters = () => [
1437
- { type: ProductEventService }
1438
- ];
1439
- ProductAdditionalDescriptionComponent.propDecorators = {
1440
- article: [{ type: Input }]
1436
+ `,
1437
+ styles: [":host{display:block;padding-top:0!important}:host *:focus{outline:0!important}:host .pd-additional-description{line-height:190%;color:#22313c;font-size:13px}:host .pd-read-more-btn{color:#2b60a7;border:none;background:transparent;cursor:pointer;text-decoration:underline;font-family:iOneMontserrat}:host .pd-read-more-btn:hover{color:#74b77f}@media screen and (max-width: 650px){:host .pd-additional-description{font-size:12px}}\n"]
1438
+ },] }
1439
+ ];
1440
+ ProductAdditionalDescriptionComponent.ctorParameters = () => [
1441
+ { type: ProductEventService }
1442
+ ];
1443
+ ProductAdditionalDescriptionComponent.propDecorators = {
1444
+ article: [{ type: Input }]
1441
1445
  };
1442
1446
 
1443
- class ProductAdditionalDescriptionModule {
1444
- }
1445
- ProductAdditionalDescriptionModule.decorators = [
1446
- { type: NgModule, args: [{
1447
- imports: [
1448
- CommonModule,
1449
- PipeModule
1450
- ],
1451
- declarations: [
1452
- ProductAdditionalDescriptionComponent
1453
- ],
1454
- exports: [
1455
- ProductAdditionalDescriptionComponent
1456
- ]
1457
- },] }
1447
+ class ProductAdditionalDescriptionModule {
1448
+ }
1449
+ ProductAdditionalDescriptionModule.decorators = [
1450
+ { type: NgModule, args: [{
1451
+ imports: [
1452
+ CommonModule,
1453
+ PipeModule
1454
+ ],
1455
+ declarations: [
1456
+ ProductAdditionalDescriptionComponent
1457
+ ],
1458
+ exports: [
1459
+ ProductAdditionalDescriptionComponent
1460
+ ]
1461
+ },] }
1458
1462
  ];
1459
1463
 
1460
- class ProductPriceComponent {
1461
- constructor(_changeDetector) {
1462
- this._changeDetector = _changeDetector;
1463
- this.showFromPrice = false;
1464
- this._configurable = false;
1465
- }
1466
- set pricing(value) {
1467
- this._pricing = value;
1468
- this._setPrices();
1469
- }
1470
- get pricing() {
1471
- return this._pricing;
1472
- }
1473
- set configurable(value) {
1474
- this._configurable = value;
1475
- this._setPrices();
1476
- }
1477
- ngOnInit() {
1478
- }
1479
- _setPrices() {
1480
- if (this._pricing) {
1481
- this.valutaSign = this._getSign(this._pricing.retailCurrency);
1482
- if (this._configurable) {
1483
- this.fromPrice = this._pricing.retailBasePrice ? this._pricing.retailBasePrice : this._pricing.priceBaseline;
1484
- this.fromLabel = this._pricing.retailBasePrice ? 'PRICE' : 'FROM';
1485
- this.toPrice = undefined;
1486
- }
1487
- else {
1488
- this.fromPrice = this._pricing.retailSuggestedPrice ? this._pricing.retailSuggestedPrice : this._pricing.retailBasePrice;
1489
- this.fromLabel = this._pricing.retailSuggestedPrice ? 'Was' : 'PRICE';
1490
- this.toPrice = this._pricing.retailSuggestedPrice ? this._pricing.retailBasePrice : undefined;
1491
- this.toLabel = this._pricing.retailSuggestedPrice ? 'IS_NOW' : '';
1492
- }
1493
- this._changeDetector.detectChanges();
1494
- }
1495
- }
1496
- _getSign(currency) {
1497
- switch (currency) {
1498
- case 'EUR':
1499
- return '€';
1500
- default:
1501
- return '€';
1502
- }
1503
- }
1504
- }
1505
- ProductPriceComponent.decorators = [
1506
- { type: Component, args: [{
1507
- selector: 'app-product-price',
1464
+ class ProductPriceComponent {
1465
+ constructor(_changeDetector) {
1466
+ this._changeDetector = _changeDetector;
1467
+ this.showFromPrice = false;
1468
+ this._configurable = false;
1469
+ }
1470
+ set pricing(value) {
1471
+ this._pricing = value;
1472
+ this._setPrices();
1473
+ }
1474
+ get pricing() {
1475
+ return this._pricing;
1476
+ }
1477
+ set configurable(value) {
1478
+ this._configurable = value;
1479
+ this._setPrices();
1480
+ }
1481
+ ngOnInit() {
1482
+ }
1483
+ _setPrices() {
1484
+ if (this._pricing) {
1485
+ this.valutaSign = this._getSign(this._pricing.retailCurrency);
1486
+ if (this._configurable) {
1487
+ this.fromPrice = this._pricing.retailBasePrice ? this._pricing.retailBasePrice : this._pricing.priceBaseline;
1488
+ this.fromLabel = this._pricing.retailBasePrice ? 'PRICE' : 'FROM';
1489
+ this.toPrice = undefined;
1490
+ }
1491
+ else {
1492
+ this.fromPrice = this._pricing.retailSuggestedPrice ? this._pricing.retailSuggestedPrice : this._pricing.retailBasePrice;
1493
+ this.fromLabel = this._pricing.retailSuggestedPrice ? 'Was' : 'PRICE';
1494
+ this.toPrice = this._pricing.retailSuggestedPrice ? this._pricing.retailBasePrice : undefined;
1495
+ this.toLabel = this._pricing.retailSuggestedPrice ? 'IS_NOW' : '';
1496
+ }
1497
+ this._changeDetector.detectChanges();
1498
+ }
1499
+ }
1500
+ _getSign(currency) {
1501
+ switch (currency) {
1502
+ case 'EUR':
1503
+ return '€';
1504
+ default:
1505
+ return '€';
1506
+ }
1507
+ }
1508
+ }
1509
+ ProductPriceComponent.decorators = [
1510
+ { type: Component, args: [{
1511
+ selector: 'app-product-price',
1508
1512
  template: `
1509
1513
  <div *ngIf="toPrice">
1510
1514
  <div class="price-wrapper" *ngIf="fromPrice > toPrice">
@@ -1516,99 +1520,116 @@ ProductPriceComponent.decorators = [
1516
1520
  <div class="to-price" [textContent]="toPrice | priceDisplay: valutaSign"></div>
1517
1521
  </div>
1518
1522
  </div>
1519
- `,
1520
- styles: [":host{display:flex;flex-direction:column}.price-wrapper{width:100%;font-size:15px;margin:0 0 5px;display:inline-block}.price-wrapper:last-child{margin:0}.from-price-label,.to-price-label{color:#5b6875;display:none}.from-price{font-size:16px;font-weight:bold;text-decoration:line-through;color:#5b6875}.to-price{font-size:25px;font-weight:bold;color:#74b77f}@media screen and (max-width: 650px){.from-price{font-size:13px}.to-price{font-size:21px}}\n"]
1521
- },] }
1522
- ];
1523
- ProductPriceComponent.ctorParameters = () => [
1524
- { type: ChangeDetectorRef }
1525
- ];
1526
- ProductPriceComponent.propDecorators = {
1527
- pricing: [{ type: Input }],
1528
- configurable: [{ type: Input }]
1523
+ `,
1524
+ styles: [":host{display:flex;flex-direction:column}.price-wrapper{width:100%;font-size:15px;margin:0 0 5px;display:inline-block}.price-wrapper:last-child{margin:0}.from-price-label,.to-price-label{color:#5b6875;display:none}.from-price{font-size:16px;font-weight:bold;text-decoration:line-through;color:#5b6875}.to-price{font-size:25px;font-weight:bold;color:#74b77f}@media screen and (max-width: 650px){.from-price{font-size:13px}.to-price{font-size:21px}}\n"]
1525
+ },] }
1526
+ ];
1527
+ ProductPriceComponent.ctorParameters = () => [
1528
+ { type: ChangeDetectorRef }
1529
+ ];
1530
+ ProductPriceComponent.propDecorators = {
1531
+ pricing: [{ type: Input }],
1532
+ configurable: [{ type: Input }]
1529
1533
  };
1530
1534
 
1531
- class ProductPriceModule {
1532
- }
1533
- ProductPriceModule.decorators = [
1534
- { type: NgModule, args: [{
1535
- imports: [
1536
- CommonModule,
1537
- PipeModule,
1538
- PriceDisplayPipeModule
1539
- ],
1540
- declarations: [
1541
- ProductPriceComponent
1542
- ],
1543
- exports: [
1544
- ProductPriceComponent
1545
- ]
1546
- },] }
1535
+ class ProductPriceModule {
1536
+ }
1537
+ ProductPriceModule.decorators = [
1538
+ { type: NgModule, args: [{
1539
+ imports: [
1540
+ CommonModule,
1541
+ PipeModule,
1542
+ PriceDisplayPipeModule
1543
+ ],
1544
+ declarations: [
1545
+ ProductPriceComponent
1546
+ ],
1547
+ exports: [
1548
+ ProductPriceComponent
1549
+ ]
1550
+ },] }
1547
1551
  ];
1548
1552
 
1549
- class ProductAddtocartComponent {
1550
- constructor(iconCache, _ioneControllerService, _appEventService, _settingsService) {
1551
- this.iconCache = iconCache;
1552
- this._ioneControllerService = _ioneControllerService;
1553
- this._appEventService = _appEventService;
1554
- this._settingsService = _settingsService;
1555
- this.icon = IconEnum;
1556
- this.createFrozenArticle = true;
1557
- this.configurable = false;
1558
- this.configuring = false;
1559
- this.fullscreen = false;
1560
- this.startConfiguration = new EventEmitter();
1561
- this.addToCartClick = new EventEmitter();
1562
- this.addToQuoteClick = new EventEmitter();
1563
- this.showQuoteButton = false;
1564
- this._quantity = 1;
1565
- }
1566
- set quantity(value) {
1567
- this._quantity = Math.max(1, value);
1568
- }
1569
- get quantity() {
1570
- return this._quantity;
1571
- }
1572
- ngOnInit() {
1573
- }
1574
- ngOnDestroy() {
1575
- this.addToCartButton = undefined;
1576
- }
1577
- handleAddToCartClick(quantity) {
1578
- return __awaiter(this, void 0, void 0, function* () {
1579
- if (this.createFrozenArticle) {
1580
- this._appEventService.onAddToCart.next({ article: yield this._getJSONFromArticleObject({ article: this.article, quantity: quantity }), quantity: quantity });
1581
- }
1582
- else {
1583
- const article = this._ioneControllerService.convertArticleFullObjectToArticleExtended(this.article);
1584
- this._appEventService.onAddToCart.next({ article: article, quantity: quantity });
1585
- }
1586
- });
1587
- }
1588
- handleAddToQuoteClick(quantity) {
1589
- return __awaiter(this, void 0, void 0, function* () {
1590
- this._appEventService.onAddToQuote.next(yield this._getJSONFromArticleObject({ article: this.article, quantity: quantity }));
1591
- });
1592
- }
1593
- _getJSONFromArticleObject(article) {
1594
- return __awaiter(this, void 0, void 0, function* () {
1595
- const configuratorStatistics = new ConfiguratorStatisticsEnvironment();
1596
- configuratorStatistics.userType = 'iOneProductPage';
1597
- configuratorStatistics.transactionType = 'Sales';
1598
- configuratorStatistics.actionDomain = 'bundle';
1599
- configuratorStatistics.sessionId = this._settingsService.settings.session ? this._settingsService.settings.session.sessionId : 'unknown';
1600
- configuratorStatistics.webHost = window.location.host;
1601
- configuratorStatistics.bundleHost = window.location.host;
1602
- return yield this._ioneControllerService.getJsonArticleFlatTree(article.article.goodId, article.article.goodType, article.quantity, true, configuratorStatistics);
1603
- });
1604
- }
1605
- }
1606
- ProductAddtocartComponent.decorators = [
1607
- { type: Component, args: [{
1608
- selector: 'app-product-addtocart',
1553
+ class ProductAddtocartComponent {
1554
+ constructor(iconCache, _ioneControllerService, _appEventService, _settingsService) {
1555
+ this.iconCache = iconCache;
1556
+ this._ioneControllerService = _ioneControllerService;
1557
+ this._appEventService = _appEventService;
1558
+ this._settingsService = _settingsService;
1559
+ this.icon = IconEnum;
1560
+ this.createFrozenArticle = true;
1561
+ this.configurable = false;
1562
+ this.configuring = false;
1563
+ this.isReturn = false;
1564
+ this.fullscreen = false;
1565
+ this.startConfiguration = new EventEmitter();
1566
+ this.addToCartClick = new EventEmitter();
1567
+ this.addToQuoteClick = new EventEmitter();
1568
+ this.showQuoteButton = false;
1569
+ this._quantity = 1;
1570
+ }
1571
+ set quantity(value) {
1572
+ if (this.isReturn) {
1573
+ if (this._quantity === 1) {
1574
+ this._quantity = -1;
1575
+ }
1576
+ else {
1577
+ this._quantity = value;
1578
+ }
1579
+ }
1580
+ else {
1581
+ this._quantity = Math.max(1, value);
1582
+ }
1583
+ }
1584
+ get quantity() {
1585
+ return this._quantity;
1586
+ }
1587
+ ngOnInit() {
1588
+ }
1589
+ ngOnDestroy() {
1590
+ this.addToCartButton = undefined;
1591
+ }
1592
+ handleAddToCartClick(quantity) {
1593
+ return __awaiter(this, void 0, void 0, function* () {
1594
+ if (this.createFrozenArticle) {
1595
+ this._appEventService.onAddToCart.next({ article: yield this._getJSONFromArticleObject({ article: this.article, quantity: quantity }), quantity: quantity });
1596
+ }
1597
+ else {
1598
+ const article = this._ioneControllerService.convertArticleFullObjectToArticleExtended(this.article);
1599
+ this._appEventService.onAddToCart.next({ article: article, quantity: quantity });
1600
+ }
1601
+ });
1602
+ }
1603
+ handleAddToQuoteClick(quantity) {
1604
+ return __awaiter(this, void 0, void 0, function* () {
1605
+ this._appEventService.onAddToQuote.next(yield this._getJSONFromArticleObject({ article: this.article, quantity: quantity }));
1606
+ });
1607
+ }
1608
+ _getJSONFromArticleObject(article) {
1609
+ return __awaiter(this, void 0, void 0, function* () {
1610
+ const configuratorStatistics = new ConfiguratorStatisticsEnvironment();
1611
+ configuratorStatistics.userType = 'iOneProductPage';
1612
+ configuratorStatistics.transactionType = 'Sales';
1613
+ configuratorStatistics.actionDomain = 'bundle';
1614
+ configuratorStatistics.sessionId = this._settingsService.settings.session ? this._settingsService.settings.session.sessionId : 'unknown';
1615
+ configuratorStatistics.webHost = window.location.host;
1616
+ configuratorStatistics.bundleHost = window.location.host;
1617
+ return yield this._ioneControllerService.getJsonArticleFlatTree(article.article.goodId, article.article.goodType, article.quantity, true, configuratorStatistics);
1618
+ });
1619
+ }
1620
+ }
1621
+ ProductAddtocartComponent.decorators = [
1622
+ { type: Component, args: [{
1623
+ selector: 'app-product-addtocart',
1609
1624
  template: `
1610
1625
  <div class="atc-wrapper">
1611
- <co-number-picker *ngIf="!configurable && !configuring" class="quantity-select" [(model)]="quantity" [min]="1" horizontal></co-number-picker>
1626
+ <ng-container *ngIf="isReturn">
1627
+ <co-number-picker *ngIf="!configurable && !configuring" class="quantity-select" [(model)]="quantity" [min]="-100" horizontal></co-number-picker>
1628
+ </ng-container>
1629
+
1630
+ <ng-container *ngIf="!isReturn">
1631
+ <co-number-picker *ngIf="!configurable && !configuring" class="quantity-select" [(model)]="quantity" [min]="1" horizontal></co-number-picker>
1632
+ </ng-container>
1612
1633
  <div class="button-wrapper">
1613
1634
  <co-button class="configure-button" *ngIf="configurable"
1614
1635
  [iconData]="iconCache.getIcon(icon.MagicWand)"
@@ -1627,93 +1648,94 @@ ProductAddtocartComponent.decorators = [
1627
1648
  ></co-button>
1628
1649
  </div>
1629
1650
  </div>
1630
- `,
1631
- styles: [":host{display:flex;flex-direction:column}:host *:not(:last-child){margin-bottom:5px}:host .atc-wrapper{display:flex;flex-direction:row;align-items:baseline}:host .atc-wrapper .quantity-select{margin-right:5px}:host.full-screen .cart-button{position:fixed;right:20px;bottom:20px;z-index:3}::ng-deep co-number-picker{max-width:100px;border:2px solid #f6f5f4;border-radius:5px}::ng-deep co-number-picker ::ng-deep co-input-text{height:50px!important;border:none!important;width:50px!important}::ng-deep co-number-picker ::ng-deep co-input-text:after{display:none}::ng-deep co-number-picker ::ng-deep co-input-text.focused{box-shadow:none!important;border:none!important;background:none!important}::ng-deep co-number-picker ::ng-deep co-input-text .clear-icon{display:none}::ng-deep co-number-picker ::ng-deep co-input-text input{width:100%;text-align:center}::ng-deep co-number-picker ::ng-deep co-button{justify-content:center;padding:0!important;margin:0!important;height:50px!important;background-color:transparent!important}::ng-deep co-number-picker ::ng-deep co-button ::ng-deep co-icon [fill]{fill:#22313c!important}.button-wrapper ::ng-deep co-button{height:50px;max-width:300px;justify-content:center;font-size:15px;border-radius:5px!important;cursor:pointer;padding:0 20px!important}.button-wrapper ::ng-deep co-button:hover{background:#74B77F}::ng-deep co-button.cart-button{border-radius:5px}::ng-deep co-button.cart-button.quote{background:#7292b6}\n"]
1632
- },] }
1633
- ];
1634
- ProductAddtocartComponent.ctorParameters = () => [
1635
- { type: IconCacheService },
1636
- { type: ProductConnectorService },
1637
- { type: ProductEventService },
1638
- { type: ProductSettingsService }
1639
- ];
1640
- ProductAddtocartComponent.propDecorators = {
1641
- addToCartButton: [{ type: ViewChild, args: ['addtocartbutton', { read: ElementRef },] }],
1642
- article: [{ type: Input }],
1643
- createFrozenArticle: [{ type: Input }],
1644
- configurable: [{ type: Input }],
1645
- configuring: [{ type: Input }],
1646
- fullscreen: [{ type: HostBinding, args: ['class.full-screen',] }, { type: Input }],
1647
- quantity: [{ type: Input }],
1648
- startConfiguration: [{ type: Output }],
1649
- addToCartClick: [{ type: Output }],
1650
- addToQuoteClick: [{ type: Output }]
1651
+ `,
1652
+ styles: [":host{display:flex;flex-direction:column}:host *:not(:last-child){margin-bottom:5px}:host .atc-wrapper{display:flex;flex-direction:row;align-items:baseline}:host .atc-wrapper .quantity-select{margin-right:5px}:host.full-screen .cart-button{position:fixed;right:20px;bottom:20px;z-index:3}::ng-deep co-number-picker{max-width:100px;border:2px solid #f6f5f4;border-radius:5px}::ng-deep co-number-picker ::ng-deep co-input-text{height:50px!important;border:none!important;width:50px!important}::ng-deep co-number-picker ::ng-deep co-input-text:after{display:none}::ng-deep co-number-picker ::ng-deep co-input-text.focused{box-shadow:none!important;border:none!important;background:none!important}::ng-deep co-number-picker ::ng-deep co-input-text .clear-icon{display:none}::ng-deep co-number-picker ::ng-deep co-input-text input{width:100%;text-align:center}::ng-deep co-number-picker ::ng-deep co-button{justify-content:center;padding:0!important;margin:0!important;height:50px!important;background-color:transparent!important}::ng-deep co-number-picker ::ng-deep co-button ::ng-deep co-icon [fill]{fill:#22313c!important}.button-wrapper ::ng-deep co-button{height:50px;max-width:300px;justify-content:center;font-size:15px;border-radius:5px!important;cursor:pointer;padding:0 20px!important}.button-wrapper ::ng-deep co-button:hover{background:#74B77F}::ng-deep co-button.cart-button{border-radius:5px}::ng-deep co-button.cart-button.quote{background:#7292b6}\n"]
1653
+ },] }
1654
+ ];
1655
+ ProductAddtocartComponent.ctorParameters = () => [
1656
+ { type: IconCacheService },
1657
+ { type: ProductConnectorService },
1658
+ { type: ProductEventService },
1659
+ { type: ProductSettingsService }
1660
+ ];
1661
+ ProductAddtocartComponent.propDecorators = {
1662
+ addToCartButton: [{ type: ViewChild, args: ['addtocartbutton', { read: ElementRef },] }],
1663
+ article: [{ type: Input }],
1664
+ createFrozenArticle: [{ type: Input }],
1665
+ configurable: [{ type: Input }],
1666
+ configuring: [{ type: Input }],
1667
+ isReturn: [{ type: Input }],
1668
+ fullscreen: [{ type: HostBinding, args: ['class.full-screen',] }, { type: Input }],
1669
+ quantity: [{ type: Input }],
1670
+ startConfiguration: [{ type: Output }],
1671
+ addToCartClick: [{ type: Output }],
1672
+ addToQuoteClick: [{ type: Output }]
1651
1673
  };
1652
1674
 
1653
- class ProductAddtocartModule {
1654
- }
1655
- ProductAddtocartModule.decorators = [
1656
- { type: NgModule, args: [{
1657
- imports: [
1658
- CommonModule,
1659
- NumberPickerModule,
1660
- ButtonModule,
1661
- PipeModule
1662
- ],
1663
- declarations: [
1664
- ProductAddtocartComponent
1665
- ],
1666
- exports: [
1667
- ProductAddtocartComponent
1668
- ]
1669
- },] }
1675
+ class ProductAddtocartModule {
1676
+ }
1677
+ ProductAddtocartModule.decorators = [
1678
+ { type: NgModule, args: [{
1679
+ imports: [
1680
+ CommonModule,
1681
+ NumberPickerModule,
1682
+ ButtonModule,
1683
+ PipeModule
1684
+ ],
1685
+ declarations: [
1686
+ ProductAddtocartComponent
1687
+ ],
1688
+ exports: [
1689
+ ProductAddtocartComponent
1690
+ ]
1691
+ },] }
1670
1692
  ];
1671
1693
 
1672
- class ProductRelatedComponent {
1673
- constructor(_iOne, _appEventService) {
1674
- this._iOne = _iOne;
1675
- this._appEventService = _appEventService;
1676
- this.isSmallModus = true;
1677
- this._articles = [];
1678
- }
1679
- set articles(value) {
1680
- if (value) {
1681
- if (this.refType && this.refType !== undefined) {
1682
- if (value.length > 0) {
1683
- value.forEach((x) => {
1684
- if (x.refType === this.refType) {
1685
- this._articles.push(x);
1686
- }
1687
- });
1688
- }
1689
- }
1690
- else {
1691
- this._articles = value;
1692
- }
1693
- this._loadImages();
1694
- }
1695
- }
1696
- get articles() {
1697
- return this._articles;
1698
- }
1699
- handleContentClick(article) {
1700
- this._appEventService.onAlternativeClick.next(article);
1701
- }
1702
- _loadImages() {
1703
- this._articles.forEach((a) => {
1704
- if (!a.image.documentBody) {
1705
- this._iOne.getDocumentContent(a.image.documentId).then((content) => {
1706
- if (content) {
1707
- a.image.documentBody = content.documentContent;
1708
- }
1709
- });
1710
- }
1711
- });
1712
- }
1713
- }
1714
- ProductRelatedComponent.decorators = [
1715
- { type: Component, args: [{
1716
- selector: 'app-product-related',
1694
+ class ProductRelatedComponent {
1695
+ constructor(_iOne, _appEventService) {
1696
+ this._iOne = _iOne;
1697
+ this._appEventService = _appEventService;
1698
+ this.isSmallModus = true;
1699
+ this._articles = [];
1700
+ }
1701
+ set articles(value) {
1702
+ if (value) {
1703
+ if (this.refType && this.refType !== undefined) {
1704
+ if (value.length > 0) {
1705
+ value.forEach((x) => {
1706
+ if (x.refType === this.refType) {
1707
+ this._articles.push(x);
1708
+ }
1709
+ });
1710
+ }
1711
+ }
1712
+ else {
1713
+ this._articles = value;
1714
+ }
1715
+ this._loadImages();
1716
+ }
1717
+ }
1718
+ get articles() {
1719
+ return this._articles;
1720
+ }
1721
+ handleContentClick(article) {
1722
+ this._appEventService.onAlternativeClick.next(article);
1723
+ }
1724
+ _loadImages() {
1725
+ this._articles.forEach((a) => {
1726
+ if (!a.image.documentBody) {
1727
+ this._iOne.getDocumentContent(a.image.documentId).then((content) => {
1728
+ if (content) {
1729
+ a.image.documentBody = content.documentContent;
1730
+ }
1731
+ });
1732
+ }
1733
+ });
1734
+ }
1735
+ }
1736
+ ProductRelatedComponent.decorators = [
1737
+ { type: Component, args: [{
1738
+ selector: 'app-product-related',
1717
1739
  template: `
1718
1740
  <div *ngIf="articles && articles.length > 0">
1719
1741
  <app-header [label]="label" [amount]="articles?.length" *ngIf="label"></app-header>
@@ -1731,29 +1753,29 @@ ProductRelatedComponent.decorators = [
1731
1753
  </div>
1732
1754
  </co-scroll-container>
1733
1755
  </div>
1734
- `,
1735
- styles: [":host{display:block}.article-wrapper{display:flex;flex-direction:row}.article-wrapper ::ng-deep co-tile.small{min-width:189px;max-width:189px;height:100%}.article-wrapper ::ng-deep co-tile.small:hover{box-shadow:none;cursor:pointer}.article-wrapper ::ng-deep co-tile.small:hover .tile-bottom .left-buttons{margin:0!important}.article-wrapper ::ng-deep co-tile.small .tile-wrapper{outline:none!important;padding-bottom:0;overflow:hidden}.article-wrapper ::ng-deep co-tile.small .tile-wrapper div.image{height:100px}.article-wrapper ::ng-deep co-tile.small .tile-wrapper .tile-bottom .left-buttons{position:absolute;top:0;right:0;margin:0 -32px 0 0;align-items:flex-end;transition:.2s ease-in-out}.article-wrapper ::ng-deep co-tile.small .tile-wrapper .tile-bottom .left-buttons ::ng-deep co-button.card-button.mini{width:30px;height:30px;transform:none;border-radius:4px;margin:0 0 5px}.article-wrapper ::ng-deep co-tile.small .tile-wrapper .tile-bottom .left-buttons ::ng-deep co-button.card-button.mini ::ng-deep co-icon{width:30px;height:30px}.article-wrapper ::ng-deep co-tile.small .tile-extra-bottom{outline:none!important;background:transparent!important}.article-wrapper ::ng-deep co-tile.small .tile-extra-bottom .price{color:#74b77f;margin:5px 0 0;font-weight:400;font-size:12px}\n"]
1736
- },] }
1737
- ];
1738
- ProductRelatedComponent.ctorParameters = () => [
1739
- { type: ProductConnectorService },
1740
- { type: ProductEventService }
1741
- ];
1742
- ProductRelatedComponent.propDecorators = {
1743
- refType: [{ type: Input }],
1744
- label: [{ type: Input }],
1745
- isSmallModus: [{ type: Input }],
1746
- articles: [{ type: Input }]
1756
+ `,
1757
+ styles: [":host{display:block}.article-wrapper{display:flex;flex-direction:row}.article-wrapper ::ng-deep co-tile.small{min-width:189px;max-width:189px;height:100%}.article-wrapper ::ng-deep co-tile.small:hover{box-shadow:none;cursor:pointer}.article-wrapper ::ng-deep co-tile.small:hover .tile-bottom .left-buttons{margin:0!important}.article-wrapper ::ng-deep co-tile.small .tile-wrapper{outline:none!important;padding-bottom:0;overflow:hidden}.article-wrapper ::ng-deep co-tile.small .tile-wrapper div.image{height:100px}.article-wrapper ::ng-deep co-tile.small .tile-wrapper .tile-bottom .left-buttons{position:absolute;top:0;right:0;margin:0 -32px 0 0;align-items:flex-end;transition:.2s ease-in-out}.article-wrapper ::ng-deep co-tile.small .tile-wrapper .tile-bottom .left-buttons ::ng-deep co-button.card-button.mini{width:30px;height:30px;transform:none;border-radius:4px;margin:0 0 5px}.article-wrapper ::ng-deep co-tile.small .tile-wrapper .tile-bottom .left-buttons ::ng-deep co-button.card-button.mini ::ng-deep co-icon{width:30px;height:30px}.article-wrapper ::ng-deep co-tile.small .tile-extra-bottom{outline:none!important;background:transparent!important}.article-wrapper ::ng-deep co-tile.small .tile-extra-bottom .price{color:#74b77f;margin:5px 0 0;font-weight:400;font-size:12px}\n"]
1758
+ },] }
1759
+ ];
1760
+ ProductRelatedComponent.ctorParameters = () => [
1761
+ { type: ProductConnectorService },
1762
+ { type: ProductEventService }
1763
+ ];
1764
+ ProductRelatedComponent.propDecorators = {
1765
+ refType: [{ type: Input }],
1766
+ label: [{ type: Input }],
1767
+ isSmallModus: [{ type: Input }],
1768
+ articles: [{ type: Input }]
1747
1769
  };
1748
1770
 
1749
- class HeaderComponent {
1750
- constructor() { }
1751
- ngOnInit() {
1752
- }
1753
- }
1754
- HeaderComponent.decorators = [
1755
- { type: Component, args: [{
1756
- selector: 'app-header',
1771
+ class HeaderComponent {
1772
+ constructor() { }
1773
+ ngOnInit() {
1774
+ }
1775
+ }
1776
+ HeaderComponent.decorators = [
1777
+ { type: Component, args: [{
1778
+ selector: 'app-header',
1757
1779
  template: `
1758
1780
  <ng-container *ngIf="label">
1759
1781
  <div class="header-wrapper">
@@ -1761,94 +1783,94 @@ HeaderComponent.decorators = [
1761
1783
  <span *ngIf="amount" class="amount" [textContent]="'(' + amount + ')'"></span>
1762
1784
  </div>
1763
1785
  </ng-container>
1764
- `,
1765
- styles: [".header-wrapper{display:flex;flex-direction:row;align-items:center}.header-wrapper .amount{margin-left:5px}\n"]
1766
- },] }
1767
- ];
1768
- HeaderComponent.ctorParameters = () => [];
1769
- HeaderComponent.propDecorators = {
1770
- label: [{ type: Input }],
1771
- amount: [{ type: Input }]
1786
+ `,
1787
+ styles: [".header-wrapper{display:flex;flex-direction:row;align-items:center}.header-wrapper .amount{margin-left:5px}\n"]
1788
+ },] }
1789
+ ];
1790
+ HeaderComponent.ctorParameters = () => [];
1791
+ HeaderComponent.propDecorators = {
1792
+ label: [{ type: Input }],
1793
+ amount: [{ type: Input }]
1772
1794
  };
1773
1795
 
1774
- class HeaderModule {
1775
- }
1776
- HeaderModule.decorators = [
1777
- { type: NgModule, args: [{
1778
- imports: [
1779
- CommonModule
1780
- ],
1781
- declarations: [
1782
- HeaderComponent
1783
- ],
1784
- exports: [
1785
- HeaderComponent
1786
- ]
1787
- },] }
1796
+ class HeaderModule {
1797
+ }
1798
+ HeaderModule.decorators = [
1799
+ { type: NgModule, args: [{
1800
+ imports: [
1801
+ CommonModule
1802
+ ],
1803
+ declarations: [
1804
+ HeaderComponent
1805
+ ],
1806
+ exports: [
1807
+ HeaderComponent
1808
+ ]
1809
+ },] }
1788
1810
  ];
1789
1811
 
1790
- class ProductRelatedModule {
1791
- }
1792
- ProductRelatedModule.decorators = [
1793
- { type: NgModule, args: [{
1794
- imports: [
1795
- CommonModule,
1796
- HeaderModule,
1797
- ScrollContainerModule,
1798
- ArticleTileModule
1799
- ],
1800
- declarations: [
1801
- ProductRelatedComponent
1802
- ],
1803
- exports: [
1804
- ProductRelatedComponent
1805
- ]
1806
- },] }
1812
+ class ProductRelatedModule {
1813
+ }
1814
+ ProductRelatedModule.decorators = [
1815
+ { type: NgModule, args: [{
1816
+ imports: [
1817
+ CommonModule,
1818
+ HeaderModule,
1819
+ ScrollContainerModule,
1820
+ ArticleTileModule
1821
+ ],
1822
+ declarations: [
1823
+ ProductRelatedComponent
1824
+ ],
1825
+ exports: [
1826
+ ProductRelatedComponent
1827
+ ]
1828
+ },] }
1807
1829
  ];
1808
1830
 
1809
- class ProductStockComponent {
1810
- constructor(_iOne, _iconCache) {
1811
- this._iOne = _iOne;
1812
- this._iconCache = _iconCache;
1813
- this.icon = IconEnum;
1814
- this.openStockEvent = new EventEmitter();
1815
- this.inStock = false;
1816
- this.iconData = this._iconCache.getIcon(this.icon.Warehouse);
1817
- }
1818
- set goodId(value) {
1819
- this._goodId = value;
1820
- this._getStockStatus();
1821
- }
1822
- get goodId() {
1823
- return this._goodId;
1824
- }
1825
- openStock() {
1826
- this.openStockEvent.emit();
1827
- }
1828
- _getStockStatus() {
1829
- if (this.goodId) {
1830
- this._iOne.getArtStockStatus(this.goodId).then((result) => {
1831
- switch (result) {
1832
- case 1: // niet op voorraad
1833
- this.stockLabel = 'PRODUCT_LIMITED_STOCK';
1834
- this.inStock = true;
1835
- break;
1836
- case 2:
1837
- this.stockLabel = 'PRODUCT_IN_STOCK';
1838
- this.inStock = true;
1839
- break;
1840
- default:
1841
- this.stockLabel = 'PRODUCT_NOT_IN_STOCK';
1842
- this.inStock = false;
1843
- break;
1844
- }
1845
- });
1846
- }
1847
- }
1848
- }
1849
- ProductStockComponent.decorators = [
1850
- { type: Component, args: [{
1851
- selector: 'app-product-stock',
1831
+ class ProductStockComponent {
1832
+ constructor(_iOne, _iconCache) {
1833
+ this._iOne = _iOne;
1834
+ this._iconCache = _iconCache;
1835
+ this.icon = IconEnum;
1836
+ this.openStockEvent = new EventEmitter();
1837
+ this.inStock = false;
1838
+ this.iconData = this._iconCache.getIcon(this.icon.Warehouse);
1839
+ }
1840
+ set goodId(value) {
1841
+ this._goodId = value;
1842
+ this._getStockStatus();
1843
+ }
1844
+ get goodId() {
1845
+ return this._goodId;
1846
+ }
1847
+ openStock() {
1848
+ this.openStockEvent.emit();
1849
+ }
1850
+ _getStockStatus() {
1851
+ if (this.goodId) {
1852
+ this._iOne.getArtStockStatus(this.goodId).then((result) => {
1853
+ switch (result) {
1854
+ case 1: // niet op voorraad
1855
+ this.stockLabel = 'PRODUCT_LIMITED_STOCK';
1856
+ this.inStock = true;
1857
+ break;
1858
+ case 2:
1859
+ this.stockLabel = 'PRODUCT_IN_STOCK';
1860
+ this.inStock = true;
1861
+ break;
1862
+ default:
1863
+ this.stockLabel = 'PRODUCT_NOT_IN_STOCK';
1864
+ this.inStock = false;
1865
+ break;
1866
+ }
1867
+ });
1868
+ }
1869
+ }
1870
+ }
1871
+ ProductStockComponent.decorators = [
1872
+ { type: Component, args: [{
1873
+ selector: 'app-product-stock',
1852
1874
  template: `
1853
1875
  <!--<app-header [label]="'STOCK' | localize"></app-header>-->
1854
1876
  <!--<co-level-indicator [model]="'medium'"></co-level-indicator>-->
@@ -1858,59 +1880,59 @@ ProductStockComponent.decorators = [
1858
1880
  <div class="pp-default-label" [class.in-stock]="inStock" [textContent]="stockLabel | localize"></div>
1859
1881
  </div>
1860
1882
  </div>
1861
- `,
1862
- styles: [":host{display:block}.product-stock-wrapper{display:flex;flex-direction:row;align-items:center;border-top:1px solid #f6f5f4;border-bottom:1px solid #f6f5f4;padding:20px 15px;cursor:pointer}.product-stock-wrapper .stock-icon{margin:0 15px 0 0;width:40px;height:37px}.product-stock-wrapper .product-stock-fields{display:flex;flex-direction:row}.product-stock-wrapper .product-stock-fields .pp-default-label{font-size:14px;margin:0;color:#2b60a7;text-decoration:underline}.product-stock-wrapper .product-stock-fields .pp-default-label:after{content:\"\";width:10px;height:10px;border-radius:10px;background:#f15152;display:inline-block;margin:0 0 0 15px}.product-stock-wrapper .product-stock-fields .pp-default-label.in-stock:after{background:#74B77F}@media screen and (max-width: 400px){.product-stock-wrapper{padding:15px 0 15px 10px}.product-stock-wrapper .stock-icon{margin:0 15px 0 0;width:32px;height:28px}.product-stock-wrapper .product-stock-fields .pp-default-label{font-size:13px}}\n"]
1863
- },] }
1864
- ];
1865
- ProductStockComponent.ctorParameters = () => [
1866
- { type: ProductConnectorService },
1867
- { type: IconCacheService }
1868
- ];
1869
- ProductStockComponent.propDecorators = {
1870
- goodId: [{ type: Input }],
1871
- openStockEvent: [{ type: Output }]
1883
+ `,
1884
+ styles: [":host{display:block}.product-stock-wrapper{display:flex;flex-direction:row;align-items:center;border-top:1px solid #f6f5f4;border-bottom:1px solid #f6f5f4;padding:20px 15px;cursor:pointer}.product-stock-wrapper .stock-icon{margin:0 15px 0 0;width:40px;height:37px}.product-stock-wrapper .product-stock-fields{display:flex;flex-direction:row}.product-stock-wrapper .product-stock-fields .pp-default-label{font-size:14px;margin:0;color:#2b60a7;text-decoration:underline}.product-stock-wrapper .product-stock-fields .pp-default-label:after{content:\"\";width:10px;height:10px;border-radius:10px;background:#f15152;display:inline-block;margin:0 0 0 15px}.product-stock-wrapper .product-stock-fields .pp-default-label.in-stock:after{background:#74B77F}@media screen and (max-width: 400px){.product-stock-wrapper{padding:15px 0 15px 10px}.product-stock-wrapper .stock-icon{margin:0 15px 0 0;width:32px;height:28px}.product-stock-wrapper .product-stock-fields .pp-default-label{font-size:13px}}\n"]
1885
+ },] }
1886
+ ];
1887
+ ProductStockComponent.ctorParameters = () => [
1888
+ { type: ProductConnectorService },
1889
+ { type: IconCacheService }
1890
+ ];
1891
+ ProductStockComponent.propDecorators = {
1892
+ goodId: [{ type: Input }],
1893
+ openStockEvent: [{ type: Output }]
1872
1894
  };
1873
1895
 
1874
- class ProductStockModule {
1875
- }
1876
- ProductStockModule.decorators = [
1877
- { type: NgModule, args: [{
1878
- imports: [
1879
- CommonModule,
1880
- IconModule,
1881
- PipeModule
1882
- ],
1883
- declarations: [
1884
- ProductStockComponent
1885
- ],
1886
- exports: [
1887
- ProductStockComponent
1888
- ]
1889
- },] }
1896
+ class ProductStockModule {
1897
+ }
1898
+ ProductStockModule.decorators = [
1899
+ { type: NgModule, args: [{
1900
+ imports: [
1901
+ CommonModule,
1902
+ IconModule,
1903
+ PipeModule
1904
+ ],
1905
+ declarations: [
1906
+ ProductStockComponent
1907
+ ],
1908
+ exports: [
1909
+ ProductStockComponent
1910
+ ]
1911
+ },] }
1890
1912
  ];
1891
1913
 
1892
- class ProductDeliveryComponent {
1893
- constructor(_localizePipe, _iOne, _iconCache) {
1894
- this._localizePipe = _localizePipe;
1895
- this._iOne = _iOne;
1896
- this._iconCache = _iconCache;
1897
- this.icon = IconEnum;
1898
- this.iconData = this._iconCache.getIcon(this.icon.Truck);
1899
- }
1900
- set stockAndDelivery(value) {
1901
- if (value) {
1902
- this.deliveryDescription = value.deliveryDescription;
1903
- if (this.deliveryDescription.length > 0 && this.deliveryDescription[0] === ' ') {
1904
- this.deliveryDescription = this._localizePipe.transform('ASK_FOR_INFORMATION');
1905
- }
1906
- }
1907
- }
1908
- ngOnInit() {
1909
- }
1910
- }
1911
- ProductDeliveryComponent.decorators = [
1912
- { type: Component, args: [{
1913
- selector: 'app-product-delivery',
1914
+ class ProductDeliveryComponent {
1915
+ constructor(_localizePipe, _iOne, _iconCache) {
1916
+ this._localizePipe = _localizePipe;
1917
+ this._iOne = _iOne;
1918
+ this._iconCache = _iconCache;
1919
+ this.icon = IconEnum;
1920
+ this.iconData = this._iconCache.getIcon(this.icon.Truck);
1921
+ }
1922
+ set stockAndDelivery(value) {
1923
+ if (value) {
1924
+ this.deliveryDescription = value.deliveryDescription;
1925
+ if (this.deliveryDescription.length > 0 && this.deliveryDescription[0] === ' ') {
1926
+ this.deliveryDescription = this._localizePipe.transform('ASK_FOR_INFORMATION');
1927
+ }
1928
+ }
1929
+ }
1930
+ ngOnInit() {
1931
+ }
1932
+ }
1933
+ ProductDeliveryComponent.decorators = [
1934
+ { type: Component, args: [{
1935
+ selector: 'app-product-delivery',
1914
1936
  template: `
1915
1937
  <!--<app-header [label]="'DELIVERY_TIME_PERIOD' | localize"></app-header>-->
1916
1938
  <div class="product-delivery-wrapper">
@@ -1920,83 +1942,83 @@ ProductDeliveryComponent.decorators = [
1920
1942
  <div class="pp-default-description" [textContent]="deliveryDescription | date:'dd MMMM yyyy'"></div>
1921
1943
  </div>
1922
1944
  </div>
1923
- `,
1924
- styles: [":host{display:block}.product-delivery-wrapper{display:flex;flex-direction:row;align-items:center;border-bottom:1px solid #f6f5f4;padding:20px 15px}.product-delivery-wrapper .delivery-icon{margin:0 15px 0 0;width:40px;height:37px}.product-delivery-wrapper .product-delivery-fields{display:flex;flex-direction:column}.product-delivery-wrapper .product-delivery-fields .pp-default-label{font-size:14px;margin:0}@media screen and (max-width: 400px){.product-delivery-wrapper{padding:15px 0 15px 10px}.product-delivery-wrapper .delivery-icon{margin:0 15px 0 0;width:32px;height:28px}.product-delivery-wrapper .product-delivery-fields .pp-default-label{font-size:13px}}\n"]
1925
- },] }
1926
- ];
1927
- ProductDeliveryComponent.ctorParameters = () => [
1928
- { type: LocalizePipe },
1929
- { type: ProductConnectorService },
1930
- { type: IconCacheService }
1931
- ];
1932
- ProductDeliveryComponent.propDecorators = {
1933
- stockAndDelivery: [{ type: Input }]
1945
+ `,
1946
+ styles: [":host{display:block}.product-delivery-wrapper{display:flex;flex-direction:row;align-items:center;border-bottom:1px solid #f6f5f4;padding:20px 15px}.product-delivery-wrapper .delivery-icon{margin:0 15px 0 0;width:40px;height:37px}.product-delivery-wrapper .product-delivery-fields{display:flex;flex-direction:column}.product-delivery-wrapper .product-delivery-fields .pp-default-label{font-size:14px;margin:0}@media screen and (max-width: 400px){.product-delivery-wrapper{padding:15px 0 15px 10px}.product-delivery-wrapper .delivery-icon{margin:0 15px 0 0;width:32px;height:28px}.product-delivery-wrapper .product-delivery-fields .pp-default-label{font-size:13px}}\n"]
1947
+ },] }
1948
+ ];
1949
+ ProductDeliveryComponent.ctorParameters = () => [
1950
+ { type: LocalizePipe },
1951
+ { type: ProductConnectorService },
1952
+ { type: IconCacheService }
1953
+ ];
1954
+ ProductDeliveryComponent.propDecorators = {
1955
+ stockAndDelivery: [{ type: Input }]
1934
1956
  };
1935
1957
 
1936
- class ProductDeliveryModule {
1937
- }
1938
- ProductDeliveryModule.decorators = [
1939
- { type: NgModule, args: [{
1940
- imports: [
1941
- CommonModule,
1942
- IconModule,
1943
- PipeModule
1944
- ],
1945
- declarations: [
1946
- ProductDeliveryComponent
1947
- ],
1948
- exports: [
1949
- ProductDeliveryComponent
1950
- ]
1951
- },] }
1958
+ class ProductDeliveryModule {
1959
+ }
1960
+ ProductDeliveryModule.decorators = [
1961
+ { type: NgModule, args: [{
1962
+ imports: [
1963
+ CommonModule,
1964
+ IconModule,
1965
+ PipeModule
1966
+ ],
1967
+ declarations: [
1968
+ ProductDeliveryComponent
1969
+ ],
1970
+ exports: [
1971
+ ProductDeliveryComponent
1972
+ ]
1973
+ },] }
1952
1974
  ];
1953
1975
 
1954
- class ProductInfoTabsComponent {
1955
- constructor(_appEventService) {
1956
- this._appEventService = _appEventService;
1957
- this.activeTabHeight = 0;
1958
- this.tabs = [];
1959
- this._subs = [];
1960
- this._subs.push(this._appEventService.onUpdateProductInfoTab.subscribe((index) => {
1961
- this.updateTab(index);
1962
- this.tabContent.nativeElement.scrollIntoView({ behavior: 'smooth' });
1963
- }));
1964
- }
1965
- set article(value) {
1966
- if (value) {
1967
- this.articleObject = value;
1968
- this._setupTabs();
1969
- this.updateTab(0);
1970
- }
1971
- }
1972
- ngOnDestroy() {
1973
- this._subs.forEach(s => s.unsubscribe());
1974
- }
1975
- updateTab(tabIndex) {
1976
- this.activeTab = tabIndex;
1977
- this.updateHeight(tabIndex);
1978
- }
1979
- updateHeight(tabIndex) {
1980
- if (this.tabContent.nativeElement.children.length > 0) {
1981
- if (this.tabContent.nativeElement.children[tabIndex] !== undefined) {
1982
- this.activeTabHeight = this.tabContent.nativeElement.children[tabIndex].offsetHeight;
1983
- }
1984
- }
1985
- }
1986
- _setupTabs() {
1987
- this.tabs.push({ title: 'DESCRIPTION' });
1988
- this.tabs.push({ title: 'FEATURES' });
1989
- if (this.articleObject.documents !== undefined && this.articleObject.documents.length > 0) {
1990
- this.tabs.push({ title: 'DOWNLOADS' });
1991
- }
1992
- if (this.articleObject.symbols !== undefined && this.articleObject.symbols.length > 0) {
1993
- this.tabs.push({ title: 'SYMBOLS' });
1994
- }
1995
- }
1996
- }
1997
- ProductInfoTabsComponent.decorators = [
1998
- { type: Component, args: [{
1999
- selector: 'app-product-info-tabs',
1976
+ class ProductInfoTabsComponent {
1977
+ constructor(_appEventService) {
1978
+ this._appEventService = _appEventService;
1979
+ this.activeTabHeight = 0;
1980
+ this.tabs = [];
1981
+ this._subs = [];
1982
+ this._subs.push(this._appEventService.onUpdateProductInfoTab.subscribe((index) => {
1983
+ this.updateTab(index);
1984
+ this.tabContent.nativeElement.scrollIntoView({ behavior: 'smooth' });
1985
+ }));
1986
+ }
1987
+ set article(value) {
1988
+ if (value) {
1989
+ this.articleObject = value;
1990
+ this._setupTabs();
1991
+ this.updateTab(0);
1992
+ }
1993
+ }
1994
+ ngOnDestroy() {
1995
+ this._subs.forEach(s => s.unsubscribe());
1996
+ }
1997
+ updateTab(tabIndex) {
1998
+ this.activeTab = tabIndex;
1999
+ this.updateHeight(tabIndex);
2000
+ }
2001
+ updateHeight(tabIndex) {
2002
+ if (this.tabContent.nativeElement.children.length > 0) {
2003
+ if (this.tabContent.nativeElement.children[tabIndex] !== undefined) {
2004
+ this.activeTabHeight = this.tabContent.nativeElement.children[tabIndex].offsetHeight;
2005
+ }
2006
+ }
2007
+ }
2008
+ _setupTabs() {
2009
+ this.tabs.push({ title: 'DESCRIPTION' });
2010
+ this.tabs.push({ title: 'FEATURES' });
2011
+ if (this.articleObject.documents !== undefined && this.articleObject.documents.length > 0) {
2012
+ this.tabs.push({ title: 'DOWNLOADS' });
2013
+ }
2014
+ if (this.articleObject.symbols !== undefined && this.articleObject.symbols.length > 0) {
2015
+ this.tabs.push({ title: 'SYMBOLS' });
2016
+ }
2017
+ }
2018
+ }
2019
+ ProductInfoTabsComponent.decorators = [
2020
+ { type: Component, args: [{
2021
+ selector: 'app-product-info-tabs',
2000
2022
  template: `
2001
2023
  <div class="tab-container">
2002
2024
  <div class="tab-header">
@@ -2019,178 +2041,178 @@ ProductInfoTabsComponent.decorators = [
2019
2041
  </div>
2020
2042
  </div>
2021
2043
  </div>
2022
- `,
2023
- styles: ["*:focus{outline:none}:host .tab-header{border-bottom:3px solid #f6f5f4;margin:0 0 30px}:host .tab-header .tab-header-button{background:transparent;border:none;border-bottom:3px solid transparent;line-height:20px;padding:15px 20px;cursor:pointer;font-family:iOneMontserrat;color:#22313c;font-weight:bold;margin:0 0 -3px;opacity:.5}:host .tab-header .tab-header-button:hover{opacity:1}:host .tab-header .tab-header-button.active{opacity:1;border-color:#74b77f}:host .tab-content{padding:0 20px 30px;margin:0 0 20px;border-bottom:2px solid #f6f5f4;transition:all .2s ease-in-out;position:relative}:host .tab-content .tab-content-item{opacity:0;position:absolute;left:0;top:0;visibility:hidden;width:100%}:host .tab-content .tab-content-item.active{opacity:1;visibility:visible;position:static}@media screen and (max-width: 650px){:host .tab-content{padding:0 10px 15px}}@media screen and (max-width: 450px){:host .tab-header{display:flex}:host .tab-header .tab-header-button{width:100%;padding:10px;font-size:11px}}\n"]
2024
- },] }
2025
- ];
2026
- ProductInfoTabsComponent.ctorParameters = () => [
2027
- { type: ProductEventService }
2028
- ];
2029
- ProductInfoTabsComponent.propDecorators = {
2030
- tabContent: [{ type: ViewChild, args: ['tabContent',] }],
2031
- article: [{ type: Input }]
2044
+ `,
2045
+ styles: ["*:focus{outline:none}:host .tab-header{border-bottom:3px solid #f6f5f4;margin:0 0 30px}:host .tab-header .tab-header-button{background:transparent;border:none;border-bottom:3px solid transparent;line-height:20px;padding:15px 20px;cursor:pointer;font-family:iOneMontserrat;color:#22313c;font-weight:bold;margin:0 0 -3px;opacity:.5}:host .tab-header .tab-header-button:hover{opacity:1}:host .tab-header .tab-header-button.active{opacity:1;border-color:#74b77f}:host .tab-content{padding:0 20px 30px;margin:0 0 20px;border-bottom:2px solid #f6f5f4;transition:all .2s ease-in-out;position:relative}:host .tab-content .tab-content-item{opacity:0;position:absolute;left:0;top:0;visibility:hidden;width:100%}:host .tab-content .tab-content-item.active{opacity:1;visibility:visible;position:static}@media screen and (max-width: 650px){:host .tab-content{padding:0 10px 15px}}@media screen and (max-width: 450px){:host .tab-header{display:flex}:host .tab-header .tab-header-button{width:100%;padding:10px;font-size:11px}}\n"]
2046
+ },] }
2047
+ ];
2048
+ ProductInfoTabsComponent.ctorParameters = () => [
2049
+ { type: ProductEventService }
2050
+ ];
2051
+ ProductInfoTabsComponent.propDecorators = {
2052
+ tabContent: [{ type: ViewChild, args: ['tabContent',] }],
2053
+ article: [{ type: Input }]
2032
2054
  };
2033
2055
 
2034
- class ProductAdditionalInfoComponent {
2035
- constructor(_sanitizer, _connectorService, _changeDetector) {
2036
- this._sanitizer = _sanitizer;
2037
- this._connectorService = _connectorService;
2038
- this._changeDetector = _changeDetector;
2039
- this.showLabel = false;
2040
- this.textParts = [];
2041
- this._superArticles = new Map();
2042
- }
2043
- set article(value) {
2044
- if (value) {
2045
- this._article = value;
2046
- this._buildInfo().then(() => {
2047
- this._changeDetector.detectChanges();
2048
- });
2049
- }
2050
- }
2051
- get article() {
2052
- return this._article;
2053
- }
2054
- ngOnInit() {
2055
- }
2056
- _getTextsSuperArticle() {
2057
- return __awaiter(this, void 0, void 0, function* () {
2058
- return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
2059
- const texts = [];
2060
- if (this.article.superArticleNr) {
2061
- let mainArticle;
2062
- if (this._superArticles.has(this.article.superArticleNr)) {
2063
- mainArticle = this._superArticles.get(this.article.superArticleNr);
2064
- }
2065
- else {
2066
- mainArticle = yield this._connectorService.getSuperArticle(this.article.superArticleNr);
2067
- this._superArticles.set(this.article.superArticleNr, mainArticle);
2068
- }
2069
- mainArticle.texts.forEach((txt) => {
2070
- if (BitUtils.IsFullDescription(txt.publication)) {
2071
- const safeTxt = this._sanitizer.sanitize(SecurityContext.HTML, txt.text);
2072
- texts.push(safeTxt);
2073
- }
2074
- });
2075
- resolve(texts);
2076
- }
2077
- else {
2078
- resolve(texts);
2079
- }
2080
- }));
2081
- });
2082
- }
2083
- _prepareArticleTexts() {
2084
- return __awaiter(this, void 0, void 0, function* () {
2085
- const texts = yield this._getTextsSuperArticle();
2086
- if (texts.length > 0) {
2087
- this.textParts.push(...texts);
2088
- }
2089
- if (this.article.texts) {
2090
- this.article.texts.forEach((txt) => {
2091
- if (BitUtils.IsFullDescription(txt.publication)) {
2092
- const safeTxt = this._sanitizer.sanitize(SecurityContext.HTML, txt.text);
2093
- this.textParts.push(safeTxt);
2094
- }
2095
- });
2096
- }
2097
- });
2098
- }
2099
- _buildInfo() {
2100
- return __awaiter(this, void 0, void 0, function* () {
2101
- this.textParts.length = 0;
2102
- yield this._prepareArticleTexts();
2103
- if (this.textParts.length === 0) {
2104
- if (this.article.additionalDescription) {
2105
- this.textParts.push(this.article.additionalDescription);
2106
- }
2107
- else if (this.article.description) {
2108
- this.textParts.push(this.article.description);
2109
- }
2110
- }
2111
- return;
2112
- });
2113
- }
2114
- }
2115
- ProductAdditionalInfoComponent.decorators = [
2116
- { type: Component, args: [{
2117
- selector: 'app-product-additional-info',
2056
+ class ProductAdditionalInfoComponent {
2057
+ constructor(_sanitizer, _connectorService, _changeDetector) {
2058
+ this._sanitizer = _sanitizer;
2059
+ this._connectorService = _connectorService;
2060
+ this._changeDetector = _changeDetector;
2061
+ this.showLabel = false;
2062
+ this.textParts = [];
2063
+ this._superArticles = new Map();
2064
+ }
2065
+ set article(value) {
2066
+ if (value) {
2067
+ this._article = value;
2068
+ this._buildInfo().then(() => {
2069
+ this._changeDetector.detectChanges();
2070
+ });
2071
+ }
2072
+ }
2073
+ get article() {
2074
+ return this._article;
2075
+ }
2076
+ ngOnInit() {
2077
+ }
2078
+ _getTextsSuperArticle() {
2079
+ return __awaiter(this, void 0, void 0, function* () {
2080
+ return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
2081
+ const texts = [];
2082
+ if (this.article.superArticleNr) {
2083
+ let mainArticle;
2084
+ if (this._superArticles.has(this.article.superArticleNr)) {
2085
+ mainArticle = this._superArticles.get(this.article.superArticleNr);
2086
+ }
2087
+ else {
2088
+ mainArticle = yield this._connectorService.getSuperArticle(this.article.superArticleNr);
2089
+ this._superArticles.set(this.article.superArticleNr, mainArticle);
2090
+ }
2091
+ mainArticle.texts.forEach((txt) => {
2092
+ if (BitUtils.IsFullDescription(txt.publication)) {
2093
+ const safeTxt = this._sanitizer.sanitize(SecurityContext.HTML, txt.text);
2094
+ texts.push(safeTxt);
2095
+ }
2096
+ });
2097
+ resolve(texts);
2098
+ }
2099
+ else {
2100
+ resolve(texts);
2101
+ }
2102
+ }));
2103
+ });
2104
+ }
2105
+ _prepareArticleTexts() {
2106
+ return __awaiter(this, void 0, void 0, function* () {
2107
+ const texts = yield this._getTextsSuperArticle();
2108
+ if (texts.length > 0) {
2109
+ this.textParts.push(...texts);
2110
+ }
2111
+ if (this.article.texts) {
2112
+ this.article.texts.forEach((txt) => {
2113
+ if (BitUtils.IsFullDescription(txt.publication)) {
2114
+ const safeTxt = this._sanitizer.sanitize(SecurityContext.HTML, txt.text);
2115
+ this.textParts.push(safeTxt);
2116
+ }
2117
+ });
2118
+ }
2119
+ });
2120
+ }
2121
+ _buildInfo() {
2122
+ return __awaiter(this, void 0, void 0, function* () {
2123
+ this.textParts.length = 0;
2124
+ yield this._prepareArticleTexts();
2125
+ if (this.textParts.length === 0) {
2126
+ if (this.article.additionalDescription) {
2127
+ this.textParts.push(this.article.additionalDescription);
2128
+ }
2129
+ else if (this.article.description) {
2130
+ this.textParts.push(this.article.description);
2131
+ }
2132
+ }
2133
+ return;
2134
+ });
2135
+ }
2136
+ }
2137
+ ProductAdditionalInfoComponent.decorators = [
2138
+ { type: Component, args: [{
2139
+ selector: 'app-product-additional-info',
2118
2140
  template: `
2119
2141
  <h3 *ngIf="showLabel" [textContent]="'ADDITIONAL_DATA' | localize"></h3>
2120
2142
  <ng-container *ngIf="textParts && textParts.length > 0">
2121
2143
  <div class="additional-info-parts" *ngFor="let text of textParts" [innerHTML]="text"></div>
2122
2144
  </ng-container>
2123
- `,
2124
- styles: [":host{display:block}:host .additional-info-parts{margin-bottom:20px;line-height:190%;color:#22313c;font-size:13px}:host ::ng-deep p{line-height:190%;margin:15px 0}:host ::ng-deep font{font-family:\"iOneMontserrat\"}:host .additional-info-parts>*:first-child{margin-top:0}:host .additional-info-parts>*:last-child{margin-bottom:0}\n"]
2125
- },] }
2126
- ];
2127
- ProductAdditionalInfoComponent.ctorParameters = () => [
2128
- { type: DomSanitizer },
2129
- { type: ProductConnectorService },
2130
- { type: ChangeDetectorRef }
2131
- ];
2132
- ProductAdditionalInfoComponent.propDecorators = {
2133
- article: [{ type: Input }],
2134
- showLabel: [{ type: Input }]
2145
+ `,
2146
+ styles: [":host{display:block}:host .additional-info-parts{margin-bottom:20px;line-height:190%;color:#22313c;font-size:13px}:host ::ng-deep p{line-height:190%;margin:15px 0}:host ::ng-deep font{font-family:\"iOneMontserrat\"}:host .additional-info-parts>*:first-child{margin-top:0}:host .additional-info-parts>*:last-child{margin-bottom:0}\n"]
2147
+ },] }
2148
+ ];
2149
+ ProductAdditionalInfoComponent.ctorParameters = () => [
2150
+ { type: DomSanitizer },
2151
+ { type: ProductConnectorService },
2152
+ { type: ChangeDetectorRef }
2153
+ ];
2154
+ ProductAdditionalInfoComponent.propDecorators = {
2155
+ article: [{ type: Input }],
2156
+ showLabel: [{ type: Input }]
2135
2157
  };
2136
2158
 
2137
- class ProductAdditionalInfoModule {
2138
- }
2139
- ProductAdditionalInfoModule.decorators = [
2140
- { type: NgModule, args: [{
2141
- imports: [
2142
- CommonModule,
2143
- PipeModule
2144
- ],
2145
- declarations: [
2146
- ProductAdditionalInfoComponent
2147
- ],
2148
- exports: [
2149
- ProductAdditionalInfoComponent
2150
- ]
2151
- },] }
2159
+ class ProductAdditionalInfoModule {
2160
+ }
2161
+ ProductAdditionalInfoModule.decorators = [
2162
+ { type: NgModule, args: [{
2163
+ imports: [
2164
+ CommonModule,
2165
+ PipeModule
2166
+ ],
2167
+ declarations: [
2168
+ ProductAdditionalInfoComponent
2169
+ ],
2170
+ exports: [
2171
+ ProductAdditionalInfoComponent
2172
+ ]
2173
+ },] }
2152
2174
  ];
2153
2175
 
2154
- const propertyMap = new Map([
2155
- ['articleNr', 'ARTICLE_NUMBER'],
2156
- ['catExtra', 'CATEGORY'],
2157
- ['catType', 'CATEGORY_TYPE'],
2158
- ['description', 'DESCRIPTION'],
2159
- ['material', 'MATERIAL'],
2160
- ['title', 'TITLE'],
2161
- ['turnOverGroup', 'TURNOVERGROUP'],
2162
- ['height', 'HEIGHT'],
2163
- ['width', 'WIDTH']
2164
- ]);
2165
- class ProductPropertiesComponent {
2166
- constructor() {
2167
- this.showLabel = false;
2168
- this.properties = [];
2169
- }
2170
- set article(value) {
2171
- this._article = value;
2172
- this._prepareProperties();
2173
- }
2174
- get article() {
2175
- return this._article;
2176
- }
2177
- ngOnInit() {
2178
- }
2179
- _prepareProperties() {
2180
- this.properties.length = 0;
2181
- if (!this._article) {
2182
- return;
2183
- }
2184
- propertyMap.forEach((value, key) => {
2185
- if (this.article.hasOwnProperty(key)) {
2186
- this.properties.push({ key: value, value: this.article[key] });
2187
- }
2188
- });
2189
- }
2190
- }
2191
- ProductPropertiesComponent.decorators = [
2192
- { type: Component, args: [{
2193
- selector: 'app-product-properties',
2176
+ const propertyMap = new Map([
2177
+ ['articleNr', 'ARTICLE_NUMBER'],
2178
+ ['catExtra', 'CATEGORY'],
2179
+ ['catType', 'CATEGORY_TYPE'],
2180
+ ['description', 'DESCRIPTION'],
2181
+ ['material', 'MATERIAL'],
2182
+ ['title', 'TITLE'],
2183
+ ['turnOverGroup', 'TURNOVERGROUP'],
2184
+ ['height', 'HEIGHT'],
2185
+ ['width', 'WIDTH']
2186
+ ]);
2187
+ class ProductPropertiesComponent {
2188
+ constructor() {
2189
+ this.showLabel = false;
2190
+ this.properties = [];
2191
+ }
2192
+ set article(value) {
2193
+ this._article = value;
2194
+ this._prepareProperties();
2195
+ }
2196
+ get article() {
2197
+ return this._article;
2198
+ }
2199
+ ngOnInit() {
2200
+ }
2201
+ _prepareProperties() {
2202
+ this.properties.length = 0;
2203
+ if (!this._article) {
2204
+ return;
2205
+ }
2206
+ propertyMap.forEach((value, key) => {
2207
+ if (this.article.hasOwnProperty(key)) {
2208
+ this.properties.push({ key: value, value: this.article[key] });
2209
+ }
2210
+ });
2211
+ }
2212
+ }
2213
+ ProductPropertiesComponent.decorators = [
2214
+ { type: Component, args: [{
2215
+ selector: 'app-product-properties',
2194
2216
  template: `
2195
2217
  <div class="article-properties-wrapper">
2196
2218
  <h3 *ngIf="showLabel" [textContent]="'PROPERTIES' | localize"></h3>
@@ -2201,104 +2223,104 @@ ProductPropertiesComponent.decorators = [
2201
2223
  </div>
2202
2224
  </ng-container>
2203
2225
  </div>
2204
- `,
2205
- styles: [":host{display:block}.article-properties-wrapper{display:flex;flex-direction:column}.article-property{display:flex;flex-direction:row;border-bottom:1px solid #f6f5f4;padding:11px 0;font-size:13px}.article-property:first-child{border-top:1px solid #f6f5f4}.article-property-key{flex-basis:200px;flex-shrink:0;color:#5b6875}@media screen and (max-width: 450px){.article-property-key{flex-basis:130px}}\n"]
2206
- },] }
2207
- ];
2208
- ProductPropertiesComponent.ctorParameters = () => [];
2209
- ProductPropertiesComponent.propDecorators = {
2210
- article: [{ type: Input }],
2211
- showLabel: [{ type: Input }]
2226
+ `,
2227
+ styles: [":host{display:block}.article-properties-wrapper{display:flex;flex-direction:column}.article-property{display:flex;flex-direction:row;border-bottom:1px solid #f6f5f4;padding:11px 0;font-size:13px}.article-property:first-child{border-top:1px solid #f6f5f4}.article-property-key{flex-basis:200px;flex-shrink:0;color:#5b6875}@media screen and (max-width: 450px){.article-property-key{flex-basis:130px}}\n"]
2228
+ },] }
2229
+ ];
2230
+ ProductPropertiesComponent.ctorParameters = () => [];
2231
+ ProductPropertiesComponent.propDecorators = {
2232
+ article: [{ type: Input }],
2233
+ showLabel: [{ type: Input }]
2212
2234
  };
2213
2235
 
2214
- class ProductPropertiesModule {
2215
- }
2216
- ProductPropertiesModule.decorators = [
2217
- { type: NgModule, args: [{
2218
- imports: [
2219
- CommonModule,
2220
- PipeModule
2221
- ],
2222
- declarations: [
2223
- ProductPropertiesComponent
2224
- ],
2225
- exports: [
2226
- ProductPropertiesComponent
2227
- ]
2228
- },] }
2236
+ class ProductPropertiesModule {
2237
+ }
2238
+ ProductPropertiesModule.decorators = [
2239
+ { type: NgModule, args: [{
2240
+ imports: [
2241
+ CommonModule,
2242
+ PipeModule
2243
+ ],
2244
+ declarations: [
2245
+ ProductPropertiesComponent
2246
+ ],
2247
+ exports: [
2248
+ ProductPropertiesComponent
2249
+ ]
2250
+ },] }
2229
2251
  ];
2230
2252
 
2231
- class ProductDocumentsComponent {
2232
- constructor(iconCache) {
2233
- this.iconCache = iconCache;
2234
- this.icon = IconEnum;
2235
- this.showLabel = false;
2236
- this.documents = [];
2237
- }
2238
- }
2239
- ProductDocumentsComponent.decorators = [
2240
- { type: Component, args: [{
2241
- selector: 'app-product-documents',
2253
+ class ProductDocumentsComponent {
2254
+ constructor(iconCache) {
2255
+ this.iconCache = iconCache;
2256
+ this.icon = IconEnum;
2257
+ this.showLabel = false;
2258
+ this.documents = [];
2259
+ }
2260
+ }
2261
+ ProductDocumentsComponent.decorators = [
2262
+ { type: Component, args: [{
2263
+ selector: 'app-product-documents',
2242
2264
  template: `
2243
2265
  <app-header *ngIf="showLabel" [label]="'DOCUMENTS' | localize" [amount]="documents?.length"></app-header>
2244
2266
  <div *ngIf="documents && documents.length > 0">
2245
2267
  <co-files-upload [documents]="documents" [canAdd]="false" readonly></co-files-upload>
2246
2268
  </div>
2247
- `,
2248
- styles: [":host{display:block}::ng-deep co-files-upload{flex-direction:column!important;width:100%}::ng-deep co-file-upload{margin:0!important;border-bottom:1px solid #f6f5f4}::ng-deep co-file-upload:first-child{border-top:1px solid #f6f5f4}::ng-deep co-files-upload .files-upload-wrapper{flex-direction:column!important;width:100%}::ng-deep co-file-upload co-tile{max-width:100%!important;width:100%;position:relative}::ng-deep co-file-upload co-tile:hover{box-shadow:none!important}::ng-deep co-file-upload co-tile:hover .tile-extra-bottom{background-color:#f6f5f4!important}::ng-deep co-file-upload co-tile .tile-wrapper{position:absolute!important;left:0;top:0;width:100%;height:100%;z-index:2;opacity:0;box-sizing:border-box}::ng-deep co-file-upload co-tile .tile-wrapper .image{position:absolute!important;left:0;top:0;width:100%!important;height:100%!important;cursor:pointer}::ng-deep co-file-upload co-tile .tile-extra-bottom{outline:none!important;border:none!important;background:transparent!important;line-height:20px;padding:20px 20px 20px 60px!important;margin:0!important;background:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22 standalone%3D%22no%22%3F%3E%3Csvg xmlns%3Adc%3D%22http%3A%2F%2Fpurl.org%2Fdc%2Felements%2F1.1%2F%22 xmlns%3Acc%3D%22http%3A%2F%2Fcreativecommons.org%2Fns%23%22 xmlns%3Ardf%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23%22 xmlns%3Asvg%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Asodipodi%3D%22http%3A%2F%2Fsodipodi.sourceforge.net%2FDTD%2Fsodipodi-0.dtd%22 xmlns%3Ainkscape%3D%22http%3A%2F%2Fwww.inkscape.org%2Fnamespaces%2Finkscape%22 viewBox%3D%220 0 50 50%22 version%3D%221.1%22 id%3D%22svg8%22 sodipodi%3Adocname%3D%22download.svg%22 inkscape%3Aversion%3D%220.92.4 (5da689c313%2C 2019-01-14)%22%3E %3Cmetadata id%3D%22metadata14%22%3E %3Crdf%3ARDF%3E %3Ccc%3AWork rdf%3Aabout%3D%22%22%3E %3Cdc%3Aformat%3Eimage%2Fsvg%2Bxml%3C%2Fdc%3Aformat%3E %3Cdc%3Atype rdf%3Aresource%3D%22http%3A%2F%2Fpurl.org%2Fdc%2Fdcmitype%2FStillImage%22 %2F%3E %3Cdc%3Atitle%3E%3C%2Fdc%3Atitle%3E %3C%2Fcc%3AWork%3E %3C%2Frdf%3ARDF%3E %3C%2Fmetadata%3E %3Cdefs id%3D%22defs12%22 %2F%3E %3Csodipodi%3Anamedview pagecolor%3D%22%23ffffff%22 bordercolor%3D%22%23666666%22 borderopacity%3D%221%22 objecttolerance%3D%2210%22 gridtolerance%3D%2210%22 guidetolerance%3D%2210%22 inkscape%3Apageopacity%3D%220%22 inkscape%3Apageshadow%3D%222%22 inkscape%3Awindow-width%3D%221920%22 inkscape%3Awindow-height%3D%221017%22 id%3D%22namedview10%22 showgrid%3D%22false%22 inkscape%3Azoom%3D%226.675088%22 inkscape%3Acx%3D%22-14.056273%22 inkscape%3Acy%3D%2229.806579%22 inkscape%3Awindow-x%3D%22-8%22 inkscape%3Awindow-y%3D%22-8%22 inkscape%3Awindow-maximized%3D%221%22 inkscape%3Acurrent-layer%3D%22svg8%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g62%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g64%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g66%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g68%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g70%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g72%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g74%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g76%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g78%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g80%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g82%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g84%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g86%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g88%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g90%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g6-0%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22%3E %3Cg id%3D%22g4-9%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22%3E %3Cpath inkscape%3Aconnector-curvature%3D%220%22 d%3D%22m 498.966%2C339.946 c -7.197%2C0 -13.034%2C5.837 -13.034%2C13.034 v 49.804 c 0%2C28.747 -23.388%2C52.135 -52.135%2C52.135 H 78.203 c -28.747%2C0 -52.135%2C-23.388 -52.135%2C-52.135 V 352.98 c 0%2C-7.197 -5.835%2C-13.034 -13.034%2C-13.034 C 5.835%2C339.946 0%2C345.782 0%2C352.98 v 49.804 c 0%2C43.121 35.082%2C78.203 78.203%2C78.203 h 355.594 c 43.121%2C0 78.203%2C-35.082 78.203%2C-78.203 V 352.98 c 0%2C-7.198 -5.835%2C-13.034 -13.034%2C-13.034 z%22 id%3D%22path2%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3C%2Fg%3E %3C%2Fg%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g12-0%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22%3E %3Cg id%3D%22g10-8%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22%3E %3Cpath inkscape%3Aconnector-curvature%3D%220%22 d%3D%22M 419.833%2C391.3 H 92.167 c -7.197%2C0 -13.034%2C5.837 -13.034%2C13.034 0%2C7.197 5.835%2C13.034 13.034%2C13.034 h 327.665 c 7.199%2C0 13.034%2C-5.835 13.034%2C-13.034 0%2C-7.197 -5.835%2C-13.034 -13.033%2C-13.034 z%22 id%3D%22path8-3%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3C%2Fg%3E %3C%2Fg%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g18-4%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22%3E %3Cg id%3D%22g16-7%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22%3E %3Cpath inkscape%3Aconnector-curvature%3D%220%22 d%3D%22m 387.919%2C207.93 c -4.795%2C-5.367 -13.034%2C-5.834 -18.404%2C-1.038 L 269.033%2C296.657 V 44.048 c 0%2C-7.197 -5.835%2C-13.034 -13.034%2C-13.034 -7.197%2C0 -13.034%2C5.835 -13.034%2C13.034 V 296.657 L 142.483%2C206.893 c -5.367%2C-4.796 -13.607%2C-4.328 -18.404%2C1.038 -4.794%2C5.369 -4.331%2C13.609 1.037%2C18.404 l 109.174%2C97.527 c 6.187%2C5.529 13.946%2C8.292 21.708%2C8.292 7.759%2C0 15.519%2C-2.763 21.708%2C-8.289 l 109.174%2C-97.53 c 5.37%2C-4.798 5.834%2C-13.038 1.039%2C-18.405 z%22 id%3D%22path14-9%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3C%2Fg%3E %3C%2Fg%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g20%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g22-9%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g24-3%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g26%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g28-4%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g30-2%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g32%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g34-2%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g36-1%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g38%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g40-6%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g42-4%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g44%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g46-7%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g48-3%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E%3C%2Fsvg%3E\") no-repeat left 6px center / 36px auto!important}::ng-deep co-file-upload co-tile .tile-extra-bottom .main{padding:0!important}\n"]
2249
- },] }
2250
- ];
2251
- ProductDocumentsComponent.ctorParameters = () => [
2252
- { type: IconCacheService }
2253
- ];
2254
- ProductDocumentsComponent.propDecorators = {
2255
- showLabel: [{ type: Input }],
2256
- documents: [{ type: Input }]
2269
+ `,
2270
+ styles: [":host{display:block}::ng-deep co-files-upload{flex-direction:column!important;width:100%}::ng-deep co-file-upload{margin:0!important;border-bottom:1px solid #f6f5f4}::ng-deep co-file-upload:first-child{border-top:1px solid #f6f5f4}::ng-deep co-files-upload .files-upload-wrapper{flex-direction:column!important;width:100%}::ng-deep co-file-upload co-tile{max-width:100%!important;width:100%;position:relative}::ng-deep co-file-upload co-tile:hover{box-shadow:none!important}::ng-deep co-file-upload co-tile:hover .tile-extra-bottom{background-color:#f6f5f4!important}::ng-deep co-file-upload co-tile .tile-wrapper{position:absolute!important;left:0;top:0;width:100%;height:100%;z-index:2;opacity:0;box-sizing:border-box}::ng-deep co-file-upload co-tile .tile-wrapper .image{position:absolute!important;left:0;top:0;width:100%!important;height:100%!important;cursor:pointer}::ng-deep co-file-upload co-tile .tile-extra-bottom{outline:none!important;border:none!important;background:transparent!important;line-height:20px;padding:20px 20px 20px 60px!important;margin:0!important;background:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22 standalone%3D%22no%22%3F%3E%3Csvg xmlns%3Adc%3D%22http%3A%2F%2Fpurl.org%2Fdc%2Felements%2F1.1%2F%22 xmlns%3Acc%3D%22http%3A%2F%2Fcreativecommons.org%2Fns%23%22 xmlns%3Ardf%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23%22 xmlns%3Asvg%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Asodipodi%3D%22http%3A%2F%2Fsodipodi.sourceforge.net%2FDTD%2Fsodipodi-0.dtd%22 xmlns%3Ainkscape%3D%22http%3A%2F%2Fwww.inkscape.org%2Fnamespaces%2Finkscape%22 viewBox%3D%220 0 50 50%22 version%3D%221.1%22 id%3D%22svg8%22 sodipodi%3Adocname%3D%22download.svg%22 inkscape%3Aversion%3D%220.92.4 (5da689c313%2C 2019-01-14)%22%3E %3Cmetadata id%3D%22metadata14%22%3E %3Crdf%3ARDF%3E %3Ccc%3AWork rdf%3Aabout%3D%22%22%3E %3Cdc%3Aformat%3Eimage%2Fsvg%2Bxml%3C%2Fdc%3Aformat%3E %3Cdc%3Atype rdf%3Aresource%3D%22http%3A%2F%2Fpurl.org%2Fdc%2Fdcmitype%2FStillImage%22 %2F%3E %3Cdc%3Atitle%3E%3C%2Fdc%3Atitle%3E %3C%2Fcc%3AWork%3E %3C%2Frdf%3ARDF%3E %3C%2Fmetadata%3E %3Cdefs id%3D%22defs12%22 %2F%3E %3Csodipodi%3Anamedview pagecolor%3D%22%23ffffff%22 bordercolor%3D%22%23666666%22 borderopacity%3D%221%22 objecttolerance%3D%2210%22 gridtolerance%3D%2210%22 guidetolerance%3D%2210%22 inkscape%3Apageopacity%3D%220%22 inkscape%3Apageshadow%3D%222%22 inkscape%3Awindow-width%3D%221920%22 inkscape%3Awindow-height%3D%221017%22 id%3D%22namedview10%22 showgrid%3D%22false%22 inkscape%3Azoom%3D%226.675088%22 inkscape%3Acx%3D%22-14.056273%22 inkscape%3Acy%3D%2229.806579%22 inkscape%3Awindow-x%3D%22-8%22 inkscape%3Awindow-y%3D%22-8%22 inkscape%3Awindow-maximized%3D%221%22 inkscape%3Acurrent-layer%3D%22svg8%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g62%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g64%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g66%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g68%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g70%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g72%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g74%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g76%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g78%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g80%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g82%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g84%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g86%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g88%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g90%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g6-0%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22%3E %3Cg id%3D%22g4-9%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22%3E %3Cpath inkscape%3Aconnector-curvature%3D%220%22 d%3D%22m 498.966%2C339.946 c -7.197%2C0 -13.034%2C5.837 -13.034%2C13.034 v 49.804 c 0%2C28.747 -23.388%2C52.135 -52.135%2C52.135 H 78.203 c -28.747%2C0 -52.135%2C-23.388 -52.135%2C-52.135 V 352.98 c 0%2C-7.197 -5.835%2C-13.034 -13.034%2C-13.034 C 5.835%2C339.946 0%2C345.782 0%2C352.98 v 49.804 c 0%2C43.121 35.082%2C78.203 78.203%2C78.203 h 355.594 c 43.121%2C0 78.203%2C-35.082 78.203%2C-78.203 V 352.98 c 0%2C-7.198 -5.835%2C-13.034 -13.034%2C-13.034 z%22 id%3D%22path2%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3C%2Fg%3E %3C%2Fg%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g12-0%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22%3E %3Cg id%3D%22g10-8%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22%3E %3Cpath inkscape%3Aconnector-curvature%3D%220%22 d%3D%22M 419.833%2C391.3 H 92.167 c -7.197%2C0 -13.034%2C5.837 -13.034%2C13.034 0%2C7.197 5.835%2C13.034 13.034%2C13.034 h 327.665 c 7.199%2C0 13.034%2C-5.835 13.034%2C-13.034 0%2C-7.197 -5.835%2C-13.034 -13.033%2C-13.034 z%22 id%3D%22path8-3%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3C%2Fg%3E %3C%2Fg%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g18-4%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22%3E %3Cg id%3D%22g16-7%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22%3E %3Cpath inkscape%3Aconnector-curvature%3D%220%22 d%3D%22m 387.919%2C207.93 c -4.795%2C-5.367 -13.034%2C-5.834 -18.404%2C-1.038 L 269.033%2C296.657 V 44.048 c 0%2C-7.197 -5.835%2C-13.034 -13.034%2C-13.034 -7.197%2C0 -13.034%2C5.835 -13.034%2C13.034 V 296.657 L 142.483%2C206.893 c -5.367%2C-4.796 -13.607%2C-4.328 -18.404%2C1.038 -4.794%2C5.369 -4.331%2C13.609 1.037%2C18.404 l 109.174%2C97.527 c 6.187%2C5.529 13.946%2C8.292 21.708%2C8.292 7.759%2C0 15.519%2C-2.763 21.708%2C-8.289 l 109.174%2C-97.53 c 5.37%2C-4.798 5.834%2C-13.038 1.039%2C-18.405 z%22 id%3D%22path14-9%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3C%2Fg%3E %3C%2Fg%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g20%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g22-9%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g24-3%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g26%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g28-4%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g30-2%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g32%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g34-2%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g36-1%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g38%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g40-6%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g42-4%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g44%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g46-7%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g48-3%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E%3C%2Fsvg%3E\") no-repeat left 6px center / 36px auto!important}::ng-deep co-file-upload co-tile .tile-extra-bottom .main{padding:0!important}\n"]
2271
+ },] }
2272
+ ];
2273
+ ProductDocumentsComponent.ctorParameters = () => [
2274
+ { type: IconCacheService }
2275
+ ];
2276
+ ProductDocumentsComponent.propDecorators = {
2277
+ showLabel: [{ type: Input }],
2278
+ documents: [{ type: Input }]
2257
2279
  };
2258
2280
 
2259
- class ProductDocumentModule {
2260
- }
2261
- ProductDocumentModule.decorators = [
2262
- { type: NgModule, args: [{
2263
- imports: [
2264
- CommonModule,
2265
- HeaderModule,
2266
- PipeModule,
2267
- FilesUploadModule
2268
- ],
2269
- declarations: [
2270
- ProductDocumentsComponent
2271
- ],
2272
- exports: [
2273
- ProductDocumentsComponent
2274
- ]
2275
- },] }
2281
+ class ProductDocumentModule {
2282
+ }
2283
+ ProductDocumentModule.decorators = [
2284
+ { type: NgModule, args: [{
2285
+ imports: [
2286
+ CommonModule,
2287
+ HeaderModule,
2288
+ PipeModule,
2289
+ FilesUploadModule
2290
+ ],
2291
+ declarations: [
2292
+ ProductDocumentsComponent
2293
+ ],
2294
+ exports: [
2295
+ ProductDocumentsComponent
2296
+ ]
2297
+ },] }
2276
2298
  ];
2277
2299
 
2278
- class ProductSymbolsComponent {
2279
- constructor() {
2280
- this.symbolStrings = [];
2281
- }
2282
- set symbols(value) {
2283
- this._symbols = value;
2284
- if (this._symbols && this._symbols.hasOwnProperty('fontCode')) {
2285
- this._className = this._symbols['fontCode'] === 'VLOER' ? 'floor' : (this._className === 'WAS' ? 'ginetex' : '');
2286
- }
2287
- if (this._symbols && this._symbols.hasOwnProperty('symbolString')) {
2288
- for (let i = 0; i < this._symbols['symbolString'].length; i++) {
2289
- this.symbolStrings.push(this._symbols['symbolString'][i]);
2290
- }
2291
- }
2292
- }
2293
- get symbols() {
2294
- return this._symbols;
2295
- }
2296
- ngOnInit() {
2297
- }
2298
- }
2299
- ProductSymbolsComponent.decorators = [
2300
- { type: Component, args: [{
2301
- selector: 'app-product-symbols',
2300
+ class ProductSymbolsComponent {
2301
+ constructor() {
2302
+ this.symbolStrings = [];
2303
+ }
2304
+ set symbols(value) {
2305
+ this._symbols = value;
2306
+ if (this._symbols && this._symbols.hasOwnProperty('fontCode')) {
2307
+ this._className = this._symbols['fontCode'] === 'VLOER' ? 'floor' : (this._className === 'WAS' ? 'ginetex' : '');
2308
+ }
2309
+ if (this._symbols && this._symbols.hasOwnProperty('symbolString')) {
2310
+ for (let i = 0; i < this._symbols['symbolString'].length; i++) {
2311
+ this.symbolStrings.push(this._symbols['symbolString'][i]);
2312
+ }
2313
+ }
2314
+ }
2315
+ get symbols() {
2316
+ return this._symbols;
2317
+ }
2318
+ ngOnInit() {
2319
+ }
2320
+ }
2321
+ ProductSymbolsComponent.decorators = [
2322
+ { type: Component, args: [{
2323
+ selector: 'app-product-symbols',
2302
2324
  template: `
2303
2325
  <div *ngIf="symbols && symbols.length > 0">
2304
2326
  <app-header [label]="'SYMBOLS' | localize" [amount]="symbols?.length"></app-header>
@@ -2313,232 +2335,232 @@ ProductSymbolsComponent.decorators = [
2313
2335
  </co-tile>
2314
2336
  </co-scroll-container>
2315
2337
  </div>
2316
- `,
2317
- styles: [":host{display:block}:host.floor .symbol{font-family:iOneFloorsymbols}:host.ginetex .symbol{font-family:iOneGinetexsymbols}.symbol{font-size:100px}\n"]
2318
- },] }
2319
- ];
2320
- ProductSymbolsComponent.ctorParameters = () => [];
2321
- ProductSymbolsComponent.propDecorators = {
2322
- symbols: [{ type: Input }],
2323
- _className: [{ type: HostBinding, args: ['class',] }]
2338
+ `,
2339
+ styles: [":host{display:block}:host.floor .symbol{font-family:iOneFloorsymbols}:host.ginetex .symbol{font-family:iOneGinetexsymbols}.symbol{font-size:100px}\n"]
2340
+ },] }
2341
+ ];
2342
+ ProductSymbolsComponent.ctorParameters = () => [];
2343
+ ProductSymbolsComponent.propDecorators = {
2344
+ symbols: [{ type: Input }],
2345
+ _className: [{ type: HostBinding, args: ['class',] }]
2324
2346
  };
2325
2347
 
2326
- class ProductSymbolsModule {
2327
- }
2328
- ProductSymbolsModule.decorators = [
2329
- { type: NgModule, args: [{
2330
- imports: [
2331
- CommonModule,
2332
- HeaderModule,
2333
- PipeModule,
2334
- ScrollContainerModule,
2335
- TileModule
2336
- ],
2337
- declarations: [
2338
- ProductSymbolsComponent
2339
- ],
2340
- exports: [
2341
- ProductSymbolsComponent
2342
- ]
2343
- },] }
2348
+ class ProductSymbolsModule {
2349
+ }
2350
+ ProductSymbolsModule.decorators = [
2351
+ { type: NgModule, args: [{
2352
+ imports: [
2353
+ CommonModule,
2354
+ HeaderModule,
2355
+ PipeModule,
2356
+ ScrollContainerModule,
2357
+ TileModule
2358
+ ],
2359
+ declarations: [
2360
+ ProductSymbolsComponent
2361
+ ],
2362
+ exports: [
2363
+ ProductSymbolsComponent
2364
+ ]
2365
+ },] }
2344
2366
  ];
2345
2367
 
2346
- class ProductInfoTabsModule {
2347
- }
2348
- ProductInfoTabsModule.decorators = [
2349
- { type: NgModule, args: [{
2350
- imports: [
2351
- CommonModule,
2352
- PipeModule,
2353
- ProductAdditionalInfoModule,
2354
- ProductPropertiesModule,
2355
- ProductDocumentModule,
2356
- ProductSymbolsModule
2357
- ],
2358
- declarations: [
2359
- ProductInfoTabsComponent
2360
- ],
2361
- exports: [
2362
- ProductInfoTabsComponent
2363
- ]
2364
- },] }
2368
+ class ProductInfoTabsModule {
2369
+ }
2370
+ ProductInfoTabsModule.decorators = [
2371
+ { type: NgModule, args: [{
2372
+ imports: [
2373
+ CommonModule,
2374
+ PipeModule,
2375
+ ProductAdditionalInfoModule,
2376
+ ProductPropertiesModule,
2377
+ ProductDocumentModule,
2378
+ ProductSymbolsModule
2379
+ ],
2380
+ declarations: [
2381
+ ProductInfoTabsComponent
2382
+ ],
2383
+ exports: [
2384
+ ProductInfoTabsComponent
2385
+ ]
2386
+ },] }
2365
2387
  ];
2366
2388
 
2367
- class ProductPageModule {
2368
- }
2369
- ProductPageModule.decorators = [
2370
- { type: NgModule, args: [{
2371
- imports: [
2372
- CommonModule,
2373
- ProductSelectorTypeModule,
2374
- ImageCarouselModule,
2375
- IconModule,
2376
- ProductDescriptionModule,
2377
- ProductAdditionalDescriptionModule,
2378
- ProductPriceModule,
2379
- ProductAddtocartModule,
2380
- ProductRelatedModule,
2381
- ProductStockModule,
2382
- ProductDeliveryModule,
2383
- ProductInfoTabsModule,
2384
- PipeModule
2385
- ],
2386
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
2387
- declarations: [
2388
- ProductPageComponent
2389
- ],
2390
- exports: [
2391
- ProductPageComponent
2392
- ]
2393
- },] }
2389
+ class ProductPageModule {
2390
+ }
2391
+ ProductPageModule.decorators = [
2392
+ { type: NgModule, args: [{
2393
+ imports: [
2394
+ CommonModule,
2395
+ ProductSelectorTypeModule,
2396
+ ImageCarouselModule,
2397
+ IconModule,
2398
+ ProductDescriptionModule,
2399
+ ProductAdditionalDescriptionModule,
2400
+ ProductPriceModule,
2401
+ ProductAddtocartModule,
2402
+ ProductRelatedModule,
2403
+ ProductStockModule,
2404
+ ProductDeliveryModule,
2405
+ ProductInfoTabsModule,
2406
+ PipeModule
2407
+ ],
2408
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
2409
+ declarations: [
2410
+ ProductPageComponent
2411
+ ],
2412
+ exports: [
2413
+ ProductPageComponent
2414
+ ]
2415
+ },] }
2394
2416
  ];
2395
2417
 
2396
- class IoneProductModule {
2397
- }
2398
- IoneProductModule.decorators = [
2399
- { type: NgModule, args: [{
2400
- imports: [
2401
- // BrowserAnimationsModule,
2402
- CommonModule,
2403
- ProductPageModule
2404
- ],
2405
- declarations: [
2406
- IoneProductComponent
2407
- ],
2408
- exports: [
2409
- IoneProductComponent
2410
- ],
2411
- bootstrap: [
2412
- IoneProductComponent
2413
- ],
2414
- providers: [
2415
- ProductSettingsService
2416
- ]
2417
- },] }
2418
+ class IoneProductModule {
2419
+ }
2420
+ IoneProductModule.decorators = [
2421
+ { type: NgModule, args: [{
2422
+ imports: [
2423
+ // BrowserAnimationsModule,
2424
+ CommonModule,
2425
+ ProductPageModule
2426
+ ],
2427
+ declarations: [
2428
+ IoneProductComponent
2429
+ ],
2430
+ exports: [
2431
+ IoneProductComponent
2432
+ ],
2433
+ bootstrap: [
2434
+ IoneProductComponent
2435
+ ],
2436
+ providers: [
2437
+ ProductSettingsService
2438
+ ]
2439
+ },] }
2418
2440
  ];
2419
2441
 
2420
- class ProductExternalSourceComponent {
2421
- constructor(_sanitizer, _productConnectorService, _appEventService) {
2422
- this._sanitizer = _sanitizer;
2423
- this._productConnectorService = _productConnectorService;
2424
- this._appEventService = _appEventService;
2425
- this.addToCart = new EventEmitter();
2426
- this.addToQuote = new EventEmitter();
2427
- this.alternativeClick = new EventEmitter();
2428
- this.showProduct = false;
2429
- this.loaded = false;
2430
- this.externalSettings = {};
2431
- this._subs = [];
2432
- }
2433
- set externalSource(value) {
2434
- this._externalSource = value;
2435
- this.loaded = false;
2436
- this._prepareExternalSource();
2437
- }
2438
- get externalSource() {
2439
- return this._externalSource;
2440
- }
2441
- showClass() {
2442
- return true;
2443
- }
2444
- ngOnInit() {
2445
- this._subs.push(this._appEventService.onAddToCart.subscribe(json => this.addToCart.next(json)), this._appEventService.onAddToQuote.subscribe(json => this.addToQuote.next(json)), this._appEventService.onAlternativeClick.subscribe(article => this.alternativeClick.next(article)));
2446
- }
2447
- ngOnDestroy() {
2448
- this._subs.forEach(s => s.unsubscribe());
2449
- }
2450
- _prepareExternalSource() {
2451
- return __awaiter(this, void 0, void 0, function* () {
2452
- if (!this._externalSource) {
2453
- return;
2454
- }
2455
- this.externalUrl = undefined;
2456
- this.externalSettings = {};
2457
- if (this.externalSource.type === 'CATF') {
2458
- // get bundle settings from external source
2459
- const bundleSettings = yield this._productConnectorService.getProductBundleSettings(this.externalSource.url, parseInt(this.externalSource.schema, 0));
2460
- this.externalSettings = JSON.parse(bundleSettings);
2461
- if (this.options) {
2462
- this.externalSettings.options = this.options;
2463
- }
2464
- // this.externalSettings.assetPath = "https://cdn1.colijn-it.nl/content43";
2465
- // this.externalSettings.threeDAssetPath = "https://cdn1.colijn-it.nl/content43";
2466
- if (this.externalSource.username && this.externalSource.password) {
2467
- this.externalSettings.useLoginEncryption = true;
2468
- this.externalSettings.username = this.externalSource.username;
2469
- this.externalSettings.password = this.externalSource.password;
2470
- }
2471
- // finally show the catalog
2472
- this.showProduct = true;
2473
- }
2474
- else {
2475
- this.externalUrl = this.externalSource.url;
2476
- this.safeUrl = this._sanitizer.bypassSecurityTrustResourceUrl(this.externalUrl);
2477
- this.showProduct = false;
2478
- }
2479
- this.loaded = true;
2480
- });
2481
- }
2482
- }
2483
- ProductExternalSourceComponent.decorators = [
2484
- { type: Component, args: [{
2485
- selector: 'co-product-external-source',
2486
- template: `
2487
- <ng-container *ngIf="loaded">
2488
- <ng-container *ngIf="showProduct">
2489
- <app-product-page
2490
- [sku]="sku"
2491
- [settings]="externalSettings"
2492
- ></app-product-page>
2493
- </ng-container>
2494
- <ng-container *ngIf="!showProduct">
2495
- <iframe width="100%" height="100%" [src]="safeUrl" frameborder="0" allowfullscreen></iframe>
2496
- </ng-container>
2497
- </ng-container>
2498
- `,
2499
- providers: [
2500
- ProductEventService,
2501
- ProductSettingsService,
2502
- ProductConnectorAdapterService,
2503
- ProductConnectorService
2504
- ],
2505
- encapsulation: ViewEncapsulation.None
2506
- },] }
2507
- ];
2508
- ProductExternalSourceComponent.ctorParameters = () => [
2509
- { type: DomSanitizer },
2510
- { type: ProductConnectorService },
2511
- { type: ProductEventService }
2512
- ];
2513
- ProductExternalSourceComponent.propDecorators = {
2514
- sku: [{ type: Input }],
2515
- externalSource: [{ type: Input }],
2516
- options: [{ type: Input }],
2517
- addToCart: [{ type: Output }],
2518
- addToQuote: [{ type: Output }],
2519
- alternativeClick: [{ type: Output }],
2520
- showClass: [{ type: HostBinding, args: ['class.co-product-external-source',] }]
2442
+ class ProductExternalSourceComponent {
2443
+ constructor(_sanitizer, _productConnectorService, _appEventService) {
2444
+ this._sanitizer = _sanitizer;
2445
+ this._productConnectorService = _productConnectorService;
2446
+ this._appEventService = _appEventService;
2447
+ this.addToCart = new EventEmitter();
2448
+ this.addToQuote = new EventEmitter();
2449
+ this.alternativeClick = new EventEmitter();
2450
+ this.showProduct = false;
2451
+ this.loaded = false;
2452
+ this.externalSettings = {};
2453
+ this._subs = [];
2454
+ }
2455
+ set externalSource(value) {
2456
+ this._externalSource = value;
2457
+ this.loaded = false;
2458
+ this._prepareExternalSource();
2459
+ }
2460
+ get externalSource() {
2461
+ return this._externalSource;
2462
+ }
2463
+ showClass() {
2464
+ return true;
2465
+ }
2466
+ ngOnInit() {
2467
+ this._subs.push(this._appEventService.onAddToCart.subscribe(json => this.addToCart.next(json)), this._appEventService.onAddToQuote.subscribe(json => this.addToQuote.next(json)), this._appEventService.onAlternativeClick.subscribe(article => this.alternativeClick.next(article)));
2468
+ }
2469
+ ngOnDestroy() {
2470
+ this._subs.forEach(s => s.unsubscribe());
2471
+ }
2472
+ _prepareExternalSource() {
2473
+ return __awaiter(this, void 0, void 0, function* () {
2474
+ if (!this._externalSource) {
2475
+ return;
2476
+ }
2477
+ this.externalUrl = undefined;
2478
+ this.externalSettings = {};
2479
+ if (this.externalSource.type === 'CATF') {
2480
+ // get bundle settings from external source
2481
+ const bundleSettings = yield this._productConnectorService.getProductBundleSettings(this.externalSource.url, parseInt(this.externalSource.schema, 0));
2482
+ this.externalSettings = JSON.parse(bundleSettings);
2483
+ if (this.options) {
2484
+ this.externalSettings.options = this.options;
2485
+ }
2486
+ // this.externalSettings.assetPath = "https://cdn1.colijn-it.nl/content43";
2487
+ // this.externalSettings.threeDAssetPath = "https://cdn1.colijn-it.nl/content43";
2488
+ if (this.externalSource.username && this.externalSource.password) {
2489
+ this.externalSettings.useLoginEncryption = true;
2490
+ this.externalSettings.username = this.externalSource.username;
2491
+ this.externalSettings.password = this.externalSource.password;
2492
+ }
2493
+ // finally show the catalog
2494
+ this.showProduct = true;
2495
+ }
2496
+ else {
2497
+ this.externalUrl = this.externalSource.url;
2498
+ this.safeUrl = this._sanitizer.bypassSecurityTrustResourceUrl(this.externalUrl);
2499
+ this.showProduct = false;
2500
+ }
2501
+ this.loaded = true;
2502
+ });
2503
+ }
2504
+ }
2505
+ ProductExternalSourceComponent.decorators = [
2506
+ { type: Component, args: [{
2507
+ selector: 'co-product-external-source',
2508
+ template: `
2509
+ <ng-container *ngIf="loaded">
2510
+ <ng-container *ngIf="showProduct">
2511
+ <app-product-page
2512
+ [sku]="sku"
2513
+ [settings]="externalSettings"
2514
+ ></app-product-page>
2515
+ </ng-container>
2516
+ <ng-container *ngIf="!showProduct">
2517
+ <iframe width="100%" height="100%" [src]="safeUrl" frameborder="0" allowfullscreen></iframe>
2518
+ </ng-container>
2519
+ </ng-container>
2520
+ `,
2521
+ providers: [
2522
+ ProductEventService,
2523
+ ProductSettingsService,
2524
+ ProductConnectorAdapterService,
2525
+ ProductConnectorService
2526
+ ],
2527
+ encapsulation: ViewEncapsulation.None
2528
+ },] }
2529
+ ];
2530
+ ProductExternalSourceComponent.ctorParameters = () => [
2531
+ { type: DomSanitizer },
2532
+ { type: ProductConnectorService },
2533
+ { type: ProductEventService }
2534
+ ];
2535
+ ProductExternalSourceComponent.propDecorators = {
2536
+ sku: [{ type: Input }],
2537
+ externalSource: [{ type: Input }],
2538
+ options: [{ type: Input }],
2539
+ addToCart: [{ type: Output }],
2540
+ addToQuote: [{ type: Output }],
2541
+ alternativeClick: [{ type: Output }],
2542
+ showClass: [{ type: HostBinding, args: ['class.co-product-external-source',] }]
2521
2543
  };
2522
2544
 
2523
- class ProductExternalSourceModule {
2524
- }
2525
- ProductExternalSourceModule.decorators = [
2526
- { type: NgModule, args: [{
2527
- imports: [
2528
- CommonModule,
2529
- ProductPageModule
2530
- ],
2531
- declarations: [
2532
- ProductExternalSourceComponent
2533
- ],
2534
- exports: [
2535
- ProductExternalSourceComponent
2536
- ]
2537
- },] }
2545
+ class ProductExternalSourceModule {
2546
+ }
2547
+ ProductExternalSourceModule.decorators = [
2548
+ { type: NgModule, args: [{
2549
+ imports: [
2550
+ CommonModule,
2551
+ ProductPageModule
2552
+ ],
2553
+ declarations: [
2554
+ ProductExternalSourceComponent
2555
+ ],
2556
+ exports: [
2557
+ ProductExternalSourceComponent
2558
+ ]
2559
+ },] }
2538
2560
  ];
2539
2561
 
2540
- /**
2541
- * Generated bundle index. Do not edit.
2562
+ /**
2563
+ * Generated bundle index. Do not edit.
2542
2564
  */
2543
2565
 
2544
2566
  export { IoneProductComponent, IoneProductModule, ProductConnectorAdapterService, ProductConnectorService, ProductEventService, ProductExternalSourceComponent, ProductExternalSourceModule, ProductSettingsService, Version, ProductPageModule as ɵa, ProductSelectorTypeModule as ɵb, ProductInfoTabsModule as ɵba, ProductAdditionalInfoModule as ɵbb, ProductAdditionalInfoComponent as ɵbc, ProductPropertiesModule as ɵbd, ProductPropertiesComponent as ɵbe, ProductDocumentModule as ɵbf, ProductDocumentsComponent as ɵbg, ProductSymbolsModule as ɵbh, ProductSymbolsComponent as ɵbi, ProductInfoTabsComponent as ɵbj, ProductPageComponent as ɵbk, PipeModule as ɵc, LocalizePipe as ɵd, DictionaryService as ɵe, JsonUtilsService as ɵf, ProductSelectorTypeComponent as ɵg, IconCacheService as ɵh, ImageCarouselModule as ɵi, ImageCarouselComponent as ɵj, ProductDescriptionModule as ɵk, ProductDescriptionComponent as ɵl, ProductAdditionalDescriptionModule as ɵm, ProductAdditionalDescriptionComponent as ɵn, ProductPriceModule as ɵo, ProductPriceComponent as ɵp, ProductAddtocartModule as ɵq, ProductAddtocartComponent as ɵr, ProductRelatedModule as ɵs, HeaderModule as ɵt, HeaderComponent as ɵu, ProductRelatedComponent as ɵv, ProductStockModule as ɵw, ProductStockComponent as ɵx, ProductDeliveryModule as ɵy, ProductDeliveryComponent as ɵz };